
Alexander
13.10.2018
16:17:19
ну вообще конечно человеку с завышенной самооценкой в IT самое место
/thread

anatolii
13.10.2018
16:18:47

Alexander
13.10.2018
16:19:45

Google

anatolii
13.10.2018
16:21:48

Daniel
13.10.2018
16:22:22
вы это

anatolii
13.10.2018
16:22:31

Daniel
13.10.2018
16:22:38
психотерапевтический чатик создайте отдельно, а?


Pawel
13.10.2018
16:23:03
Любой коннекшн с базой?
ни разу не видел ни в одном нормальном проекте, и сам в жизни бы никогда не стал делать по очевидным причинам
Потому что it это не про it. it это про решение бизнесзадач лишь бы работало, посредством дешевой раб. силы, которая приходит в it за зарплатой, и чтобы не на завод.
А потом на всяких фронтенд конфах ебут друг друга в жопу, кто круче фреймворк освойл. ФРЕЙМВОРК, КАРЛ!
В it ценится умение решать инфраструктурные задачи. Если ты умеешь webpack'ом файлики конкатенировать или запускать всесь свой говнокод со всеви зависимостями из говна в изолированном окружении (да-да, я на тебя смотрю, мамкин девопс инженер), то это типа збс.
Вот по этому мы и живём с монолитными говнобраузерами на оверлям строк кода, с сайтиками которые ждут по 250мб и 25% цпу. По этому, у нас есть говно-конференции, где невъебенные докладчики читают о том, как блеать повысить эффективность работы сайтика. Эффективность, блеать! Сайтика, блеать!!!!
Вот потому, что для разработки, тонкого клиента + ui к базе юзерского контента у нас спрашивают по СТЕК ДЛЯ ФРОНТЕНДА, БЛЕАТЬ!
И на бекенде то же дерьмо творится. Привет жаве с её жвмом и шарпу. Для примитивнейшей логики заводят целые проекты на спринге.
По субъективным ощущщениям с конференций - у бэкендеров все прекрасно, но хочется еще лучше. Все доклады по бэкенду из серии - в этом году GC всего на 10% стал быстрее, хотелось бы хотя бы на 15%, "работаем дальше". Или там, есть две системы сборки, одна хорошо подходит для больших монолитных проектов, а другая — для маленьких стандартизированных. То есть все проблемыбэкенда: какое из двух прекрасных решений выбрать. На конфах по JS - визг, и чувство что мир катится в ад, а ты сидишь на дне колодца.


Daniel
13.10.2018
16:32:50
и колодец наполнен говном, да

Nikolay
13.10.2018
16:32:55

Tux
13.10.2018
16:33:22
нет, все доклады по бекенты это "посмотрите кокие мы пиздатые, мы переехали на новую инфраструктуру, но она вам скорее всего не подойдёт, и вообще это частный случай"

Daniel
13.10.2018
16:33:43
мои, как минимум, другие

Tux
13.10.2018
16:35:32

Daniel
13.10.2018
16:36:48
https://www.youtube.com/results?search_query=%D0%B4%D0%B0%D0%BD%D0%B8%D0%B8%D0%BB+%D0%BF%D0%BE%D0%B4%D0%BE%D0%BB%D1%8C%D1%81%D0%BA%D0%B8%D0%B9

Pawel
13.10.2018
16:38:25
По каким?
трудно тестить, профилировать и параллелить, а профита нет.

Google

Alexander
13.10.2018
16:38:48
По субъективным ощущщениям с конференций - у бэкендеров все прекрасно, но хочется еще лучше. Все доклады по бэкенду из серии - в этом году GC всего на 10% стал быстрее, хотелось бы хотя бы на 15%, "работаем дальше". Или там, есть две системы сборки, одна хорошо подходит для больших монолитных проектов, а другая — для маленьких стандартизированных. То есть все проблемыбэкенда: какое из двух прекрасных решений выбрать. На конфах по JS - визг, и чувство что мир катится в ад, а ты сидишь на дне колодца.
> в этом году GC всего на 10% стал быстрее, хотелось бы хотя бы на 15%, "работаем дальше"
Верный признак того, что бэкенд стагнирует
Любой коннекшн с базой?
любой коннекшн с базой должен быть установлен только после получения и парсинга конфига из енва/стдина/файла или у вас конфиг коннекшна прям в коде?

Никита
13.10.2018
16:42:29

Alexander
13.10.2018
16:44:16

Никита
13.10.2018
16:44:57

Pawel
13.10.2018
17:05:55

Alexander
14.10.2018
05:49:02
Помните я говорил о том, что не хватает алгебраических типов (aka типов сумм). Нашёл хорошую статью, которая хорошо поясняет почему их не хватает. https://habr.com/post/424895/

SkyCoffee
14.10.2018
05:54:54
В конечном итоге код из статьи создает контакт, который может содержать или не содержать email, содержать или не содержать почту. Содержит ли этот контакт почту? Можно проверить языком типов (принадлежит ли контакт к типу, содержащему почту), или функцией hasEmail() или, еще проще, contact.Email != "" (при том что "" - значение Email по умолчанию)
т.е. код в статье не делает невыразимым некорректное состояние, он просто содержит проверки (matching) на каждый допустимый случай, а такое вроде доступно и средствами Go

Нави
14.10.2018
07:59:51
а как то можно объявить глобальную переменную из функции?

Marperia
14.10.2018
08:03:08

Нави
14.10.2018
08:05:33
получается пакеты это надглобальные объекты шоле)

Marperia
14.10.2018
09:05:38

Ivan
14.10.2018
09:37:06

Marperia
14.10.2018
09:44:59

Ivan
14.10.2018
10:05:36
Вы имеете в виду объект как глобальная переменная в пакете main?
Да, но можно и не в main. В маин вызывать только создание/инициирование объекта и присваивать это всё глобальной переменной, как пример. Я кодить серьезно менее месяца начал, могу коряво объяснять, извиняюсь. Как пример набросал:
https://play.golang.org/p/8Rqf6S6zACf

Евгений
14.10.2018
10:06:53

Marperia
14.10.2018
10:06:53

Ivan
14.10.2018
10:07:38
Можно и так. Я за то чтобы в main всё подряд не тащить. Но это опционально конечно.

Google

Alexander
14.10.2018
10:08:59

SkyCoffee
14.10.2018
10:16:55
Мне одному кажется, что генерики и альтернативная обработка ошибок усложнят читаемость кода?

Pawel
14.10.2018
10:17:06

Alexander
14.10.2018
10:21:46

SkyCoffee
14.10.2018
10:21:56
Если взять подход Rust к ошибкам, то из проверки err на nil код превратится в постоянную распаковку с матчингом, результат работы функции пришел или ошибка

Pawel
14.10.2018
10:22:24

SkyCoffee
14.10.2018
10:23:30
впрочем, я доволен go1.11 и вполне могу пользоваться для своего кода им, это уже само по себе здорово

Alexander
14.10.2018
10:24:43

SkyCoffee
14.10.2018
10:25:37
а у нас result, _ := function()
то же самое

Alexander
14.10.2018
10:25:41
а вообще дженерики это такая штука, которая с одной стороны позволяет создавать куда более хитрые и изощрённые велосипеды, а с другой стороны практически полностью убирает в велосипедах необходимость

SkyCoffee
14.10.2018
10:26:35
в чем разница?

Alexander
14.10.2018
10:27:03
? прокидывает ошибку наверх, result, _ := function() просто её игнорирует

SkyCoffee
14.10.2018
10:29:12
И где и как поймать её наверху?

Alexander
14.10.2018
10:30:41
точно так же как ты её ловишь здесь, ? — это просто сахар для кода, проверяет, является ли результат ошибкой и тогда возвращает ошибку из функции или результат не является ошибкой и тогда выполнение функции продолжается

Алексей
14.10.2018
10:31:37

SkyCoffee
14.10.2018
10:32:06
А если таких ? было много, то потом полчаса пишешь сверху обработку с матчингом, какая из ошибок все-таки поймалась. Или нет?

Alexander
14.10.2018
10:33:22

SkyCoffee
14.10.2018
10:33:39
ну да, в Go все ошибки error

Google

Алексей
14.10.2018
10:35:18

Alexander
14.10.2018
10:36:14

SkyCoffee
14.10.2018
10:36:31
Чтобы читать код было проще

Alexander
14.10.2018
10:37:13

SkyCoffee
14.10.2018
10:37:20
всем.

Alexander
14.10.2018
10:37:45
всем.
https://t.me/gogolang/155254
всем.
То есть вы считаете что каждый раз читать полностью новый велосипед проще, чем пользоваться всем известными обобщёнными решениями?

Алексей
14.10.2018
10:38:50

SkyCoffee
14.10.2018
10:39:55
Я считаю, что "всем известное обобщенное решение" - очень субъективное понятие. Чем больше в языке таких решений, тем дольше\сложнее его учить, читать, писать на нем и понимать его. Не понимаю, почему из Go хотят сделать Rust, когда можно писать на Rust? Там как раз много кода с дженериками, ёлки из аргументов-типов к ним, обработка ошибок как в Rust и прочие радости

Alexander
14.10.2018
10:40:09

Алексей
14.10.2018
10:41:22

Alexander
14.10.2018
10:41:43
Мечта прям

SkyCoffee
14.10.2018
10:42:19

Alexander
14.10.2018
10:42:49
Раст с HKT
Вот после этого изменения любители изобретать велосипеды вместо того, чтобы учиться, просрутся.

Алексей
14.10.2018
10:43:08

Alexander
14.10.2018
10:43:40

Алексей
14.10.2018
10:43:42

SkyCoffee
14.10.2018
10:44:38
В С++ много обобщенных решений, кто-нибудь знает их все?

Google

Алексей
14.10.2018
10:46:49
Я считаю, что "всем известное обобщенное решение" - очень субъективное понятие. Чем больше в языке таких решений, тем дольше\сложнее его учить, читать, писать на нем и понимать его. Не понимаю, почему из Go хотят сделать Rust, когда можно писать на Rust? Там как раз много кода с дженериками, ёлки из аргументов-типов к ним, обработка ошибок как в Rust и прочие радости
И вообще нужно никогда не забывать, что есть ситуации в которых, чем проще язык, тем сложнее на нём писать. Это не всегда выполняется, но для Go это вполне верно.

Alexander
14.10.2018
10:47:06

Алексей
14.10.2018
10:47:42

Artem
14.10.2018
10:49:11
Вот что-то тут мусолится уже 3й день, а толковых конструктивных предложений на github.com/golang/go/issues так и не появилось

Daniel
14.10.2018
10:49:30

Alexander
14.10.2018
10:49:43

Алексей
14.10.2018
10:50:01

SkyCoffee
14.10.2018
10:50:59
А когда следующий релиз go? А то сколько ругаемся, а в нем может быть и не будет ничего страшного

Alexander
14.10.2018
10:51:45

SkyCoffee
14.10.2018
10:53:02

Alexander
14.10.2018
10:53:08

Алексей
14.10.2018
10:53:09

Alexander
14.10.2018
10:54:09

Daniel
14.10.2018
10:54:45