@gogolang

Страница 1100 из 1630
Alexander
27.05.2018
14:18:12
"Они" говорили что дженерики не нужны. Потом "они" говорили что дженерики нужны? Кто "они"? Тот же Керниган или Пайк говорили? Основная задача разработки Go. Си-подобный код, максимально простой и понятный для "среднего" программиста с целью решения бизнес задач. Этим и объясняется недоООП и отсутствие других модных штук. И если средняя обезьяна не понимает ООП и дженерики... их не должно быть. Цель проста. Чтобы в коде разобрались и смогли поддерживать условные 100 миддлов. А не полтора сеньора, которых все ищут. Умные программисты безусловно нужны... но не нужны только Умные программисты, которых на рынке почти нет. Для работы программистом Go плох. Т.к со временем кардинально снизит уровень входа и зарплаты "умным". Задачи смогут решать не только они.
> кто они? Да собственно даже тут, пару дней назад, в очередной раз фанбои пытались доказать всем, что женерики не нужны.

Sergey
27.05.2018
14:24:07
"Они" говорили что дженерики не нужны. Потом "они" говорили что дженерики нужны? Кто "они"? Тот же Керниган или Пайк говорили? Основная задача разработки Go. Си-подобный код, максимально простой и понятный для "среднего" программиста с целью решения бизнес задач. Этим и объясняется недоООП и отсутствие других модных штук. И если средняя обезьяна не понимает ООП и дженерики... их не должно быть. Цель проста. Чтобы в коде разобрались и смогли поддерживать условные 100 миддлов. А не полтора сеньора, которых все ищут. Умные программисты безусловно нужны... но не нужны только Умные программисты, которых на рынке почти нет. Для работы программистом Go плох. Т.к со временем кардинально снизит уровень входа и зарплаты "умным". Задачи смогут решать не только они.
керниган вообще причастен к разработке языка? я думал он только книгу написал

Dmitry
27.05.2018
14:33:34
Vladimir
27.05.2018
14:50:46
"Они" говорили что дженерики не нужны. Потом "они" говорили что дженерики нужны? Кто "они"? Тот же Керниган или Пайк говорили? Основная задача разработки Go. Си-подобный код, максимально простой и понятный для "среднего" программиста с целью решения бизнес задач. Этим и объясняется недоООП и отсутствие других модных штук. И если средняя обезьяна не понимает ООП и дженерики... их не должно быть. Цель проста. Чтобы в коде разобрались и смогли поддерживать условные 100 миддлов. А не полтора сеньора, которых все ищут. Умные программисты безусловно нужны... но не нужны только Умные программисты, которых на рынке почти нет. Для работы программистом Go плох. Т.к со временем кардинально снизит уровень входа и зарплаты "умным". Задачи смогут решать не только они.
Ну так если я не ошибаюсь, го задумывался как более дешевый в поддержке питон для типа скриптов

Google
Диёр
27.05.2018
14:52:13
го задумывался как тупой с++

Vladimir
27.05.2018
14:53:25
Sergey
27.05.2018
14:53:43
го задумывался как тупой с++
а что, простите, у го общего с плюсами, кроме си-подобного синтаксиса?

Nikita
27.05.2018
14:55:10
Dmitry
27.05.2018
14:55:14
го задумывался как си на стероидах + ооп

some_random_anonymous
27.05.2018
14:55:46
Го задумывался с дженериками, но потом передумали

Dmitry
27.05.2018
14:56:14
однако не взлетело, приходится отнимать нишу у других языков

Sergey
27.05.2018
14:56:43
поучаствую в викторине го задумывался как замена луа

Vladimir
27.05.2018
14:57:07
Го задумывался как замена rust!

Sergey
27.05.2018
14:57:10
поучаствую в викторине го задумывался как замена луа
поддерживаю, заменил все свои скрипты в игре на го и рад

some_random_anonymous
27.05.2018
14:57:18
Го не задумывался, он просто появился

Sergey
27.05.2018
14:57:33
го задумывался, но так и не принял решение

Google
Sergey
27.05.2018
14:58:18
Stop the world?
recover не в том месте вызвали

Sergey
27.05.2018
14:58:47
го задумывался без сборщика мусора

Vladimir
27.05.2018
15:00:00
го задумывался без сборщика мусора
Добавили сборщик мусора и го перестал задумываться

Dmitry
27.05.2018
15:00:59
го задумывался как скриптовый язык движка для игры в ГО

Димка
27.05.2018
16:00:00
Почему тут ещё не банят за слово «дженерики»?))

Alexander
27.05.2018
16:15:17
Потому что не банить же Фитцпатрика, если он вдруг зайдет

Phil
27.05.2018
16:24:35
О. Тут еще не было срачика 26 лет golang?

Sergey
27.05.2018
16:24:51
не было

Phil
27.05.2018
16:26:03
И то что дженерики были, но их выпилили, тоже?

some_random_anonymous
27.05.2018
16:26:35
Когда дженерики появятся в стандарте Си?

Сколько можно терпеть?

Phil
27.05.2018
16:27:11
Надо сделать один раз обзор в оба чата и попросить его в описание вставить

Dmitry
27.05.2018
16:27:58
чето у меня последнее время фигня какая то, сяду поиграть, а потом внезапно дня через три мод уже для игры клепаю. это наверно старость.

jack
27.05.2018
16:42:14
"Они" говорили что дженерики не нужны. Потом "они" говорили что дженерики нужны? Кто "они"? Тот же Керниган или Пайк говорили? Основная задача разработки Go. Си-подобный код, максимально простой и понятный для "среднего" программиста с целью решения бизнес задач. Этим и объясняется недоООП и отсутствие других модных штук. И если средняя обезьяна не понимает ООП и дженерики... их не должно быть. Цель проста. Чтобы в коде разобрались и смогли поддерживать условные 100 миддлов. А не полтора сеньора, которых все ищут. Умные программисты безусловно нужны... но не нужны только Умные программисты, которых на рынке почти нет. Для работы программистом Go плох. Т.к со временем кардинально снизит уровень входа и зарплаты "умным". Задачи смогут решать не только они.
Господа. В корень проблемы взглянуть желаете? Идите сюда, покажу - локтями не толкаться, будьте друг к другу терпимее, у нас у всех одна задача разобраться, в не выяснить кто чьи педали одел. Гоу нацелен прежде всего на то, чтобы снизить влияние человеческого фактора на код. Для этого постарались выбрать базис , состоящий из элементов неоспоримых а ИТ индустрии и всем более менее понятных. Вместе с тем на язык существует давление со стороны "опытных" (консервативных) разработчиков. Это и привело к так называемому переобуванию. Сложная концепция объектов не оправдывает себя по затратам на изучение/ сложности поддержки. Лучшее решение проблемы ЧФ пока не найдено, но гоу ближе всего к эталону.

Maxim
27.05.2018
16:50:47
Go это public poll Тупой опрос – 13 ??????? 76% @Am1rkin, @toby3d, @zuldare, @GreatInk, @avkomarov, @onokonem, @Civiloid, @NikBond, @ravenhost, @Clouded, @EvgeniyBaranov, @shaulyn47, @JohnnyDou Тупой C – 3 ?? 18% @youaintgotnoloyality, Dmitry, @deathmoroz Тупой Python – 1 ? 6% @twentydraft Тупой JavaScript ▫️ 0% ? 17 people voted so far.

jack
27.05.2018
16:53:40
Жжоте

Dmitry
27.05.2018
17:00:26
Господа. В корень проблемы взглянуть желаете? Идите сюда, покажу - локтями не толкаться, будьте друг к другу терпимее, у нас у всех одна задача разобраться, в не выяснить кто чьи педали одел. Гоу нацелен прежде всего на то, чтобы снизить влияние человеческого фактора на код. Для этого постарались выбрать базис , состоящий из элементов неоспоримых а ИТ индустрии и всем более менее понятных. Вместе с тем на язык существует давление со стороны "опытных" (консервативных) разработчиков. Это и привело к так называемому переобуванию. Сложная концепция объектов не оправдывает себя по затратам на изучение/ сложности поддержки. Лучшее решение проблемы ЧФ пока не найдено, но гоу ближе всего к эталону.
а ну да. эти волшебные правила преобразования интерфейсов в другие типы и обратно. а если уж массив интерфейсов то совсем все просто

тоесть как бы чтото типа дженериков есть но лучше бы их не было в таком виде

Google
Мерлин
27.05.2018
17:03:18
контрвариантность и ковариантность типов

было бы неплохо

Dmitry
27.05.2018
17:05:17
контрвариантность и ковариантность типов
да, вот эти умные слова неплохо бы воплотить в го

Мерлин
27.05.2018
17:05:42
контрвариантность и ковариантность типов
хотя бы для функций и методов (для контейнеров нужно вводить ещё иммутабельность)

Daniel
27.05.2018
17:17:24
меня больше всего бесит обработка ошибок. 1. ошибке нужен стектрейс. сейчас я вынужден логировать ошибку на всех уровнях, на которых я ее обнаружил. даже если передаю ее выше без изменений. иначе поиски места, в котором ошибка действитель нопроизошла, становятся трудными 2. ошибке нужен тип. я хочу иметь возможность возвращать IO errors и input data errors так, чтобы их потом можно было отличить друг от друга. 3. ошибке нужен код. value который. я хочу иметь возможность сравнивать ошибки и выбирать обработку исходя из того, что именно вернулось. 4. Ошибке нужна возможность i18n сообщения

Daniel
27.05.2018
17:18:49
Daniel
27.05.2018
17:20:55
ты ж понимаешь, что меня это беспокоит больше в отношении ошибок, которые мне возвращают снаружи...

Alexander
27.05.2018
17:20:58
* надо доклад сделать что ли
Лучше в отдельную либу и на гитхаб

Мерлин
27.05.2018
17:21:20
Лучше в отдельную либу и на гитхаб
и кодогенератор всё есть, но пока сырое

Daniel
27.05.2018
17:21:21
да оно тривиальное же! и на гитхабе уже есть несколько

Alexander
27.05.2018
17:22:43
Ну так-то да. Да и на действительно, лучше это иметь на уровне языка

Daniel
27.05.2018
17:23:11
ну или хотя бы на уровне стандартной либы и гайдлайнов (как в яве)

Мерлин
27.05.2018
17:23:45
вообще всё это лечится внесением тегированного enum (или тип сумм, или variant, называйте как хотите)

Daniel
27.05.2018
17:25:27
именно ошибки - они уже интерфейсы, и на этом месте замену можно произвести не особенно напрягаясь

Мерлин
27.05.2018
17:25:52
const iota?
это кастрированная хрень, которая нравится только сишникам, которые ничерта кроме числовых ошибок не видели ты не можешь туда пропихнуть что-то сложнее строки или числа

Google
Мерлин
27.05.2018
17:27:56
А надо ли пихать что-то сложнее? И типы, кстати, никто не отменял
нужно для нормальной передачи ошибок для нормальной работы с каналами вместе с интерфесами это будет прекрасно работать нет, ты можешь сделать с помощью iota только обёртку на числом

Численная ошибка — это максимально дерьмовое решение

Maxim
27.05.2018
17:28:52
var ErrMyCustomError = ...

И проверка на совпадение

Мерлин
27.05.2018
17:29:31
И проверка на совпадение
как только ты захочешь что-то сложнее строковых констант, это перестаёт работать

это раз

Maxim
27.05.2018
17:30:14
Возможно у меня просто не было ситуаций, когда требовалось что-то сложнее

Мерлин
27.05.2018
17:30:22
во вторых, если по честному, множественные возвращаеме значения — это херовое решение, так как даёт много неопределённостей и позволяет игнорировать ошибки

Admin
ERROR: S client not available

Мерлин
27.05.2018
17:30:28
если у тебя что-то сложнее CRUD, то тебе нужны более развесистые ошибки

Мерлин
27.05.2018
17:34:21
Например?
например ошибки валидации если ты хочешь отдавать имена полей и конкретное описание ошибки, тебе нужно где то эту информацию хранить или если у тебя на методе висит что-то сложное, какой-нибудь нетривиальный процесс типа развёртывания какой-нибудь системы, тебе нужно знать, что зафейлилось при работе, и не только видеть это при отладке, но и обрабатывать

Dmitry
27.05.2018
17:35:37
ммм. с точки зрения ооп это ведет к нарушению инкапсуляции

ты кишки наружу хочешь отдать

Мерлин
27.05.2018
17:35:59
в общем как только к ошибке нужно добавлять хоть какой-то контекст, то у тебя ошибки го работают не очень

ты кишки наружу хочешь отдать
а? причём тут инкапсуляция тебе не обязательно отдавать подробности реализации, тебе нужно отдавать причины фейла

Мерлин
27.05.2018
17:37:51
ну отдавай как строку, в чем проблема ?
как эту строку потом обрабатывать? Парсить? JSON туда класть?

Igor
27.05.2018
17:38:08
Извините за глупый вопрос: а почему нельзя отдавать стракт, который удовлетворяет интерфейсу Error?

Google
Dmitry
27.05.2018
17:38:16
зачем обрабатывать?

Мерлин
27.05.2018
17:38:20
зачем обрабатывать?
чтобы предпринять связанные с ошибкой действия да, такое нужно, если у тебя приложение — это не тупой интерфейс к СУБД

если у тебя приложение — это обёртка над базой, то конечно. тупо логируешь ошибку и отдаёшь пользователю урезаную версию

Dmitry
27.05.2018
17:40:43
окей, а что ты хочешь отдать такого что тебя не хзватает строки, ну как пример

Мерлин
27.05.2018
17:42:25
окей, а что ты хочешь отдать такого что тебя не хзватает строки, ну как пример
- поля с зафейленной валидацией - контекстные ошибки (например ошибки, пришедшие от других сервисов или компонентов) - стектрейс - таймстемп - какие-то параметры для рековери - id запроса

в случае если у тебя ошибка уезжает на фронтенд, ещё хорошо бы отдавать кусок документации, которую наверное ещё нужно переводить на разные языки

ошибки — это сложно

Dmitry
27.05.2018
17:45:07
и вот как вот это ты собираешься в автоматическом режиме обрабатывать ?

поле зафейлило валидацию - повторить 1000 раз пока не пройдет ?

Мерлин
27.05.2018
17:46:26
и вот как вот это ты собираешься в автоматическом режиме обрабатывать ?
это зависит от бизнес логики, тут нет общего ответа

Dmitry
27.05.2018
17:46:44
вернуло стектрейс, запустить автоматом дебагер, подключить ИИ для определения причины ошибки , исправить , запустить еще раз и все автоматом ?

Dmitry
27.05.2018
17:47:42
вернуло тайстемп - проверить что мы в 21 веке , если нет запустить другую функцию ?

Мерлин
27.05.2018
17:47:43
поле зафейлило валидацию - повторить 1000 раз пока не пройдет ?
как раз такое сейчас очень часто делается, потому что не могут отличить ошибку разрыва сети от ошибки валидации той же

и тупо долбятся запросом

Sergey
27.05.2018
17:48:53
вернуло тайстемп - проверить что мы в 21 веке , если нет запустить другую функцию ?
что за странные поиски оправдания ненужности ошибок?)

Dmitry
27.05.2018
17:48:57
по мне все что не может быть решено на уровне вызывающем ошибки не должно выдавать детали реализации наружу

Страница 1100 из 1630