
Vadim
04.06.2018
06:12:40
Кстати,кто то знаком с нодой?Распределенные системы строят на сие?

Sergey
04.06.2018
06:21:17

terancet
04.06.2018
07:14:08
всем привет. есть общий вопрос по дизайну методов интерфейса (или сервис АПИ): почему Public метод должен принимать наиболее общие параметры, а возвращать наиболее специфичный результат (например, ArrayList instead of List)?
Если с принимаемыми параметрами может пройти аргумент, что public method должен быть универсальным, то я не понимаю, какие аргрументы могут быть за то, что бы возвращать более специфичные типы.

Роман
04.06.2018
07:16:02
terancet "Если с принимаемыми параметрами может пройти аргумент, что public method должен быть универсальным" what? Переформулируй максимально просто

Google

terancet
04.06.2018
07:20:20
есть два метода:
LinkedList<Customer> findAllCustomers(Iterable<Long> ids) <— принимает супер-тип Iterable, возвращает конкретную имплементацию (почему этот вариант может быть best practice?)
LinkedList<Customer> findAllCustomers(ArrayList<Long> ids) <— принимает кокретный тип параметров, возвращает конкретную имплементацию

Роман
04.06.2018
07:22:37
тебе бы пришлось менять сигнатуру метода, а это минус обратная совместимость,
мапа может быть например, Map<long id, Customer customer>, ключи например у hashmap это hashset, а с hashset'ом нельзя работать, как с arraylist'om

Dmitry
04.06.2018
07:25:38

terancet
04.06.2018
07:28:07

Dmitry
04.06.2018
07:28:47
ага, лучше возвращать в данном случае List

Alexander
04.06.2018
07:28:52

Роман
04.06.2018
07:29:48

Alexander
04.06.2018
07:30:24

Роман
04.06.2018
07:30:30
*пардон там коллекция*

Dmitry
04.06.2018
07:30:51

Роман
04.06.2018
07:31:33
в конексте чего не угодил ?
ну ты говоришь нужно явное приведение типа, зачем если можно создать например
LinkedList<Customer> customers = new LinkedList<> ();
customers.addAll(collection); Это если что по интерфейсу всё делать, большенство коллекций, как и сетов в конструкторе тоже самое могут сделать например вот так:
LinkedList<Customer> customers = new LinkedList<> (collection);

Alexander
04.06.2018
07:34:05

Google

Роман
04.06.2018
07:36:13

Alexander
04.06.2018
07:36:32
нет, если я пишу List<чего-то> = new LinkedList<>
просто мне потом нужно будет только в одном месте заменить линкед, на эррэйлист, например. если захочется поменять реализацию

Роман
04.06.2018
07:37:38
мне кажется или вот это уже может сдать bad practice?

Alexander
04.06.2018
07:37:59
мм, объявлять переменные максимально общим типом ? да хорош

Evgen
04.06.2018
07:38:06
Всем привет, живу в питере нуждаюсь в наставнике

Роман
04.06.2018
07:38:24
о, с stepic'a

Alexander
04.06.2018
07:38:35

Роман
04.06.2018
07:38:51

Dmitry
04.06.2018
07:38:54

Роман
04.06.2018
07:39:37

Dmitry
04.06.2018
07:41:03
не припомню

Роман
04.06.2018
07:42:43
а просадки по производительности разве нет? Ведь у тебя внутри лежит LinkedList обобщённый до List'a и ты вдруг преобразуешь к ArrayList не словишь ли ты exception?

Alexander
04.06.2018
07:43:07
да не надо его в рантайме преобразовывать.

Dmitry
04.06.2018
07:43:53
не надо да
работаешь с интерфейсом и все

Ataro
04.06.2018
07:44:12
Привет ребят, не бейте, считайте я новенький, необразованный, без практики

Роман
04.06.2018
07:44:41
я просто вот этого не понимаю
просто мне потом нужно будет только в одном месте заменить линкед, на эррэйлист, например. если захочется поменять реализацию
я думал приведение используешь :C

Google

Alexander
04.06.2018
07:45:16
речь о том, что вот накодил ты чего-то, например внутренний кеш и использовал там HashMap. и везде у тебя по всему коду, во всех объявлениях и в методах "HashMap". а вот потом ты решил, что нужен тебе TreeMap, например. и пошел и делать везде замену, HashMap -> TreeMap. а вот если бы ты везде использовал просто Map, то проблем нет. в одном месте где объект создаешь, там и меняешь. ну и там где надо - переписываешь логику чтобы фишки тримапа использовать
я сейчас очень упрощенно
ну и для DI надо использовать интерфейсы, а не конкретные реализации.

Роман
04.06.2018
07:46:20
а понял, спасибо, я думал раз разговор зашёл про приведение то через приведение и дело пойдет

Ataro
04.06.2018
07:49:50
?? оокей

Роман
04.06.2018
07:52:25
ну и втыкай в html/css + js потом в jquery для базы и потом в vue можно, он не сложный это для фронта
для бэка можно сначала самому что-то попытаться сделать потом прийти к spring-jdbc, потом к hibernate, а потом к этой статье https://dou.ua/lenta/articles/java-enterprise-guide/ , ну и sql must have

Egor
04.06.2018
07:52:56
А потом начать писать на Эльме, LuL LuL LuL

Роман
04.06.2018
07:53:23
на котлин ещё можно, но это ад для новичка

Anton
04.06.2018
07:55:22

Роман
04.06.2018
07:56:01
а мне норм(нет), а вот бэк писать на котлин удовольствие

Anton
04.06.2018
07:57:48

Роман
04.06.2018
07:58:57
Нy fullstack же надо прокачивать, я теперь больше скажу я ещё в gamedev залез, а ещё в геометрию и физику и высший матан ради gamedev'a

Evgeny
04.06.2018
08:04:37

Anton
04.06.2018
08:06:37

Alexander
04.06.2018
08:07:57
зачем нужен транспайлер котлина на ноде, если есть грааль ?

Evgeny
04.06.2018
08:08:13
есть плагин для webpack https://www.npmjs.com/package/@jetbrains/kotlin-webpack-plugin
но на самом деле я бы не советовал прям совсем выкидывать gradle, с мультиплатформенными проектами весело, да и мне больше нравится все выносить на него, ту же подготовку webpack конфига и package.json файла с помощью https://github.com/Kotlin/kotlin-frontend-plugin
грааль все же чутка другая вещь, у тебя фиксированная версия jvm и node внутри, ты не можешь просто взять и обновить node
а тут у тебя все раздельно

Anton
04.06.2018
08:11:28

Evgeny
04.06.2018
08:12:31
лучше ничего не выкидывать, все может дружно жить вместе
ты можешь подготавливать js файлы через gradle а потом запускать webpack с dev сервером

Google

Evgeny
04.06.2018
08:13:09
ну пока да, на самом деле gradle немного подзадумывается над мультиплатформенными проектами) но там большая движуха идет в строну улучшения

Triple
04.06.2018
08:37:30
Всем привет от фронтенда, как у вас тут оформляются вакансии?

Igor
04.06.2018
08:38:15

Triple
04.06.2018
08:39:06

Igor
04.06.2018
08:39:23

Alexander
04.06.2018
08:39:33

Triple
04.06.2018
08:39:43

Роман
04.06.2018
08:39:48
там на хабре интересная статья о CSRF-уязвимостях вышла

Igor
04.06.2018
08:40:00
как написали выше, описание != пин
давай попробуем найти описание ?

Triple
04.06.2018
08:40:37

Igor
04.06.2018
08:40:50
так, ты уже ближе) осталось прочитать :)

Митко Соловец?
04.06.2018
08:40:52
а фронтенд тут причем?

Igor
04.06.2018
08:41:00
или gwt ?

Митко Соловец?
04.06.2018
08:41:27
SVING

Alexander
04.06.2018
08:41:27

Triple
04.06.2018
08:41:32
Это описание. Там есть ссылка на канал вакансий, канал вакансий просто подписка без возможности написать свою

Митко Соловец?
04.06.2018
08:41:43
ну вы знаете руса

Igor
04.06.2018
08:42:02

Google

Igor
04.06.2018
08:42:59
игла - в яйце, яйцо - в утке, ... :)

шлюхогон42
04.06.2018
08:43:07
Ребят, небольшой вопрос в гугле не получается найти инфу поэтому поводу. Вопрос: в javafx, а конкретнее в linechart есть шкала. Я хочу в названии этой шкалы вставить сложную формулу. Подскажите возможно ли это?

Triple
04.06.2018
08:43:47

Igor
04.06.2018
08:44:04
но если у вас вакансия не связана с jvm - то вам не к нам :)

Triple
04.06.2018
08:44:45

Alexander
04.06.2018
08:45:06

Igor
04.06.2018
08:45:34

Triple
04.06.2018
08:46:12

Alexander
04.06.2018
08:46:18

Igor
04.06.2018
08:46:59

Alexander
04.06.2018
08:47:34
а это почитываю

Денис
04.06.2018
08:47:58

Igor
04.06.2018
08:48:23

Triple
04.06.2018
08:48:36