@phpclubru

Страница 740 из 956
Artem
26.12.2018
20:22:06
просто меньше абстракций, а больше данных -это все отличия

Pavel
26.12.2018
20:22:27
Ну вот интерфейсы и композиция есть в php, нет генериков. И что он стал хорошим? Нет, нам было с ним трудно.

Нам нужны абстракции

Еще меня бесило что нельзя сделать енум из пары значений :)

Google
Pavel
26.12.2018
20:23:16
А какие то костыли числово-константные

Aleksandr
26.12.2018
20:26:22
Пхп местами как недоделанный выглядит. Этакое нагромождение костылей.

Artem
26.12.2018
20:26:26
А какие то костыли числово-константные
в го нет костылей, в том то и дело, что даже дженерики пока не добавляют, чтобы не ломать модель. Но их обещают, а енумы хз зачем я и в java их не использую)

Еще меня бесило что нельзя сделать енум из пары значений :)
просто нельзя писать на го после шарпа или любого классического ЯП не разобравшись в архитектуре и не переключив мозги, тебе всегда будет чего -то нехватать

Aleksandr
26.12.2018
20:27:04
А как дженерики модель ломают?

Artem
26.12.2018
20:28:45
там где то есть доклад этого года о текущем состоянии и там чувак объясняет в чем с ними беда, там сложности ненужные в текущих пропозалах, но я по памяти не помню, искать нужно

просто это совершенно другой принцип, но есть там все и ооп и полиморфизм реализован, но полиморфизм на уровне типов, опять же потому, что data first

Pavel
26.12.2018
20:29:58
Ну а как ты без енумов делаешь закрытые типы с фиксированным количеством значений?

export enum CompareStatus 419 { 420 Unchange, 421 Change, 422 Hidden, 423 UnHidden, 424 Delete, 425 Add, 426 ReOrder 427 }

Artem
26.12.2018
20:30:55
если просто перечисления то делаю конечно, удобно особенно с поддержкой типа в постгресе, но это я не считаю их использованием, поскольку в java enum может содержать логику)

а почему в GO так нельзя? используй йоту и все

Pavel
26.12.2018
20:31:35
У нас есть словари подлиннее, где значений в енуме пара сотен, но это сделано как const string

а почему в GO так нельзя? используй йоту и все
Я не знаю можно ли, просто ты сказал что не использовал. Скорее всего у тебя задачи другие

Google
Pavel
26.12.2018
20:32:12
Мы вот юзаем во всех местах, это жизненно необходимо чтобы моск не взорвался

Artem
26.12.2018
20:32:14
У нас есть словари подлиннее, где значений в енуме пара сотен, но это сделано как const string
не я против такого, это не лучше, чем отдельный файл с константами, хоть и есть такое у нас ( Лучше вы конфигурацию вынести, какой -то файл .properties никогда такой код ревью не пройдет у меня)

Aleksandr
26.12.2018
20:32:16
Ну вон в расте есть структуры и есть функции которые этими структурами оперируют. И дженерики там прекрасно вписываются.

Artem
26.12.2018
20:34:06
А какая разница? Ты получишь тот же енум, только без автокомплита
потому, что это конфигурационные параметры, они должны быть изолированны и нужна возможность их подменять без перезагрузки приложения как минимум. Да и просто неподдерживаемая фигня это, файл с настройками изначально вынудит делать универсальную реализацию и в случае бага после фикса ничего не сломается

Pavel
26.12.2018
20:34:20
Это не конфигурационные параметры, а часть логики

И они сидят в базе в том числе, и на основе них вычисляются алгоритмы

Aleksandr
26.12.2018
20:39:54
Ты вот. Так расхваиваешь го. А с какими языками кроме го и Явы ты знаком?

Artem
26.12.2018
20:40:10
хз начал писать, но просто прдполагая как оно -сложно что -то сказать. Если это значения из базы, то они должны быть частью композитного объекта какого -то в стейте, если это просто перечисление полей (типа статусы) то они должны быть в отдельный файлах, чтобы их проще было найти и поправить. НО опять же даже просто константы используют десятки лет и ничего, чтобы разобраться почему иначе сделать лучше или не хуже, нужен реальный кейс.

Pavel
26.12.2018
20:40:34
Вот у нас все сложно, и да, есть кейсы

Pavel
26.12.2018
20:41:02
А почему нельзя обойтись константами - потому что енум надо тоже передавать в аргументы функций, и должен быть контроль типа

Aleksandr
26.12.2018
20:41:35
Ну тогда понятно почему ты расхваиваешь го.

Pavel
26.12.2018
20:41:52
То есть надо передать статус например - и в аргументах зафиксирована не строка, а именно енум, чтобы лишние строки туда не пролезли. У нас у сущностей сотни свойств и значений фиксированных тоже, это важно

Artem
26.12.2018
20:42:24
Ну тогда понятно почему ты расхваиваешь го.
так я не расхваливаю его, просто в данном случае речь о кейсах которые там отлично решены, просто иначе и часто на эту часть люди начинают гнать не разбираясь, что там просто все иначе.

Pavel
26.12.2018
20:43:03
с енумом и писать, он неотъемлемая часть

Aleksandr
26.12.2018
20:43:20
Отсутствие дженериков это не отличное решение.

Наличие нулов то не отличное решение.

Artem
26.12.2018
20:44:53
Отсутствие дженериков это не отличное решение.
невозможно их было реализовать на предыдущих этапов сохранив то, на что делается основная ставка в языке

Google
Pavel
26.12.2018
20:44:59
void closeTicket(TicketStatus status) { assert(status != TicketStatus.closed); } вот банальный пример, сюда в аргументы можно передать только статус и ничего больше, контроль входных данных легко произвести. Удобненько.

Artem
26.12.2018
20:45:08
Наличие нулов то не отличное решение.
это о чем? все ок там с нулами

Pavel
26.12.2018
20:45:12
И главное с первого раза понятно что передается

Aleksandr
26.12.2018
20:45:44
Отсутствие енумов, паттерн матчинга тоже не ок решение.

Это я о том что в го есть нулы.

Artem
26.12.2018
20:46:21
Это я о том что в го есть нулы.
они есть в тех местах, где нужны на ссылочных типах

И главное с первого раза понятно что передается
так а зачем тебе enum если статусы в базе ты просто в поле массива при инициализации грузишь же из базы и все.

Aleksandr
26.12.2018
20:47:11
Спорное утверждение что они нужны.

Artem
26.12.2018
20:47:57
Спорное утверждение что они нужны.
чувак ты прикалываешься? несуществующая ссылка -это какой тип? в Го все построенно на основании сильной типизации языка

Pavel
26.12.2018
20:48:02
Если они в базе то допустим удали статус closed и что? Система поломается. Так нельзя.

Ты про набор значений в базе или про значения у существующих тикетов?

Artem
26.12.2018
20:49:01
Они не могут быть в базе, на них завязана логика.
ну так если ты в коде их держишь то при необходимости внести изменения нужен тот, кто полезет в код это править, как миниму файл конфига даст просто любомувозможность изменить статусы и положить файлик в нужное место

Pavel
26.12.2018
20:49:23
Я не понимаю зачем тебе конфиг. Это часть логики

Aleksandr
26.12.2018
20:49:34
На самом деле спорить дальше смысла нет. Пока человек сам не попробует что то более выразительное чем го он не поймет.

Pavel
26.12.2018
20:49:38
Вот там допустим 5 статусов и все, ни больше ни меньше.

Менять статусы в базе или конфиге не имеешь права просто так - это отдельная задача которую должны сделать программисты, подправив код.

Учтя возможные значения, переходы между статусами и т.д.

Это не данные а именно логика

Google
Artem
26.12.2018
20:51:11
Вот там допустим 5 статусов и все, ни больше ни меньше.
ну так 5 статусов мы же с этого начинали, я так тоже делаю, просто перечисление по именам, но это не чиспользование enum, там же можно полноценную логику описывать, речь была о примере, где енам с сотнями полей

Pavel
26.12.2018
20:51:20
Если сделаешь константами - ``` void closeTicket(int status) { ``` то сюда уже можно передавать любую дичь, хоть -2 хоть 100500, то есть контроль типов стал хуже.

Pavel
26.12.2018
20:51:55
Джава достаточно выразительна

Даже по наркомански выразительна )

Artem
26.12.2018
20:52:07
вот и я о том же)

там на всю жизнь навыражаться можно за один проект на спринге)

чего только выразителоность нейминга стоит в бинах

Aleksandr
26.12.2018
20:52:41
Например скала, котлин, раст, хаскель.

Artem
26.12.2018
20:55:20
Например скала, котлин, раст, хаскель.
раст -гавно которое должно умереть и не хочу его обсуждать. Скала хз при чем тут, но на ней я тоже писал, просто бесплатно, больше не хочу. КОтлин хз -слышу только жалобы и насмешки над костылями в общем спасибо за предложение, но нет)) мне java хватает и новые поделки на jvm не нужны)

Admin
ERROR: S client not available

Aleksandr
26.12.2018
20:57:06
Окей. В принципе с человеком который заявляет что что то "говно и должно умереть" смысла вести.какие либо дискуссии нет.

Artem
26.12.2018
21:04:43
Окей. В принципе с человеком который заявляет что что то "говно и должно умереть" смысла вести.какие либо дискуссии нет.
ок, раст просто мертвое г*, я хз зачем приводить в пример технологии которых нет в проде и используют три калеки))

Aleksandr
26.12.2018
21:06:31
У вас какая то другая реальность.

Pavel
26.12.2018
21:10:27
Ахаха, к расту у меня противоречивые чувства

Он вроде как щас лидер по имплементации в webassembly, возможно это наше будущее

Artem
26.12.2018
21:11:42
гоша тоже его поддерживает но коряво пока, а будущее -хз, надоело уже везде про него слушать и при чем все говорят, но никто не используют. ВОт раст крутой... а пишем как и 10 лет назад на яве

Pavel
26.12.2018
21:13:00
Это не так то быстро заюзать в проде, но сама идея просто убийственная

Вот когда пишешь бэкенд и еще на ангуляер фронтенд, то есть такая проблема - на бэке и фронте надо сначала описать модели на бэкенде, а потом +- те же модели на фронтенде (JS, TS), чтобы работать с ними

Но нафига все это дублировать два раза, когда всю предметную область можно написать на одном языке и представить что это такая пара микросервисов - один сервер а другой на клиенте, и общаются они между собой через API

Google
Pavel
26.12.2018
21:14:36
Это же новый офигенный мир.

Aleksandr
26.12.2018
21:15:31
Может перед тем как говорить что никто не использует сначала погуглить кто использует?

Artem
26.12.2018
21:16:20
Это же новый офигенный мир.
это все круто звучит, но я смотрю вокруг и вижу что все крупные игроки пишут основные продукты на java и многие на мигрировать только начали на 1.5, когда уже 12 на носу.

Может перед тем как говорить что никто не использует сначала погуглить кто использует?
и кто использует? на hh я вижу 33 вакансии, кроме мтс -еще несколько ноунеймов

Pavel
26.12.2018
21:17:05
это все круто звучит, но я смотрю вокруг и вижу что все крупные игроки пишут основные продукты на java и многие на мигрировать только начали на 1.5, когда уже 12 на носу.
Да это не показатель, когда технология дозревает, в нее добавляют фичу которая является последней каплей, то экосистема сразу быстро нарастает

Так было с JS, так было и с go. Никто не юзал и вдруг в течение 2-3 лет все сразу заюзали и возникла куча вакансий

Artem
26.12.2018
21:18:26
Да это не показатель, когда технология дозревает, в нее добавляют фичу которая является последней каплей, то экосистема сразу быстро нарастает
для меня показатель то, что деньги сегодня в мире java. Там больше вакансий и платят за нее больше. Все остальное - выбросы по рынку с большой конкуренцией. И основная проблема в том, что те у кого есть деньги очень сложно осваивают что -то новое. Потому не факт, что я доживу до этого "нового мира"

Pavel
26.12.2018
21:18:43
На русте тоже реально трудно писать бизнес логику, там нет сборщика мусора и заточка над низкоуровневое владение данными... Как только на языке уровня джавы можно будет писать васм приложения, и которые будут уметь манипулировать DOM на уровне vue или ангуляра, сразу все прохавают фишку и это взорвет рынок :)

Aleksandr
26.12.2018
21:20:21
Atlassian, coreos, npm, wire. Это из тех компаний про которые вы могли слышать.

А вообще их гораздо больше

Ну и да, тут люди уже фрилансят на расте на апворке вовсю. Хх далеко не показатель.

Artem
26.12.2018
21:21:59
Atlassian, coreos, npm, wire. Это из тех компаний про которые вы могли слышать.
мне перечислить сколько компаний используют java/php или golang? но вопрос в другом, что эти компании на rust реализовали?

Ну и да, тут люди уже фрилансят на расте на апворке вовсю. Хх далеко не показатель.
мне давно не интересны игрушки и поделки фрилансеров, но все же несовсем понятно о чем речь? мне чтобы понять, что гоша гавно нужно пойти на расте пописать? вообще не понятна суть наброса )

Aleksandr
26.12.2018
21:24:58
Это же новый офигенный мир.
А еще есть такая интересная вещь как n2o, когда код выполняется на сервере и генерит жс, который улетает по вс на клиента и обновляет представление.

Artem
26.12.2018
21:25:25
ну и как бы проблемы есть везде, просто в том же гоше я их вижу совсем в других местах, а не там, где не осилил (и да я тоже пол года назад думал, что логика на гоше -это плохо и нужно писать на джаве) -ничего мнение меняется, оказывается все ок.

Aleksandr
26.12.2018
21:26:08
У вас какая то болезненная фиксация на яве.

Artem
26.12.2018
21:27:16
А еще есть такая интересная вещь как n2o, когда код выполняется на сервере и генерит жс, который улетает по вс на клиента и обновляет представление.
я прекрасно знаю что такое h2o (если это конечно те ребята, которые .ai) и написанно это ПО на java в большей части, есть и python там

Pavel
26.12.2018
21:27:23
А еще есть такая интересная вещь как n2o, когда код выполняется на сервере и генерит жс, который улетает по вс на клиента и обновляет представление.
Интересная, но согласись это наркомания ) Когда можно скомпилировать код и сразу его выполнять на клиенте

Artem
26.12.2018
21:27:48
У вас какая то болезненная фиксация на яве.
большая часть рынка на нем сегодня, но почему на ней? вроде была же фиксация болезненная на го? )

Aleksandr
26.12.2018
21:28:03
Интересная, но согласись это наркомания ) Когда можно скомпилировать код и сразу его выполнять на клиенте
Емнип приват банк на этой штуке работает. Так что не такая и наркомания.

Pavel
26.12.2018
21:28:30
Artem
26.12.2018
21:29:26
Емнип приват банк на этой штуке работает. Так что не такая и наркомания.
приват банк -это типа показатель? Альфа, Сбер, Тинькоф и т.д. работают на яве, но это глупо конечно так говорить, но вполне допустимо )))

Aleksandr
26.12.2018
21:29:58
Это спецификация. И есть уже несколько реализаций. Изначальная на эрланге была.

Страница 740 из 956