@jvmchat

Страница 2515 из 2890
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
есть два метода: LinkedList<Customer> findAllCustomers(Iterable<Long> ids) <— принимает супер-тип Iterable, возвращает конкретную имплементацию (почему этот вариант может быть best practice?) LinkedList<Customer> findAllCustomers(ArrayList<Long> ids) <— принимает кокретный тип параметров, возвращает конкретную имплементацию
итератор есть даже у set'ов, и ты вдруг неожиданно решил передать hashset, или у тебя есть мапа ключ значение, где ключи например то, что тебе нужно и было бы нелогично фильтровать мапу по значениям

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

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

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

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

Роман
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
ну ты говоришь нужно явное приведение типа, зачем если можно создать например LinkedList<Customer> customers = new LinkedList<> (); customers.addAll(collection); Это если что по интерфейсу всё делать, большенство коллекций, как и сетов в конструкторе тоже самое могут сделать например вот так: LinkedList<Customer> customers = new LinkedList<> (collection);
ну во-первых создавать переменную LinkedList<Customer> customers = new LinkedList<> (); - плохо, лучше просто List<>. во-вторых addAll не подходит к примеру, тут речь про методы бизнес-логики приложения. а не про библиотечные, для работы с коллекциями

Google
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
мне кажется или вот это уже может сдать bad practice?
если про аргументы и возвращаемые значения в методах еще можно дискутировать, то про переменные - наврядли.

Роман
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.nitami.ru на spring'e например, и будет у тебя практика, найди себе того кто тебе объяснит что плохо, а что нет, как мне например сейчас, и будет всё хорошо

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
зачем вообще ты туда залез? собирать фронт градлом или мавеном... ну это такое, боль, унижения, тормоза, насмешки различных гуру вебпака, итд...
с Kotlin на самом деле не так страшно) webpack, node и т.п все остается, можно даже без gradle все собирать (а gradle нужен только если мультиплатформенный проект собираешь)

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
слушай, а описание чата вообще видно? а то каждый день одно и то же
в описании чата "братишки....scala" Поэтому и спрашиваю)

Alexander
04.06.2018
08:39:33
в описании чата "братишки....scala" Поэтому и спрашиваю)
описание != прикрепленное сообщение

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
ну вы знаете руса

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
но если у вас вакансия не связана с jvm - то вам не к нам :)
если много денег дают, я бы не гнал. я вот за деньги на любую гадость согласен

Alexander
04.06.2018
08:46:18
@javascript_jobs
окей, не настолько на любую

Igor
04.06.2018
08:46:59
окей, не настолько на любую
может тогда так? @golangjob

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

Денис
04.06.2018
08:47:58
может тогда так? @golangjob
А ПХП - это следующий по мерзости уровень или где-то посерединке?

Triple
04.06.2018
08:48:36
но если у вас вакансия не связана с jvm - то вам не к нам :)
ага, прошу прощения. увидел java, не разобрался) это же чат виртуальной машины. А где чат классической EE java?

Страница 2515 из 2890