@gogolang

Страница 1553 из 1630
Alexander
13.10.2018
16:17:19
ну вообще конечно человеку с завышенной самооценкой в IT самое место

/thread

anatolii
13.10.2018
16:18:47
ну вообще конечно человеку с завышенной самооценкой в IT самое место
Мой опыт показыаает что люди с завышеной самооценкой не развиваются, а с заниженой пытаются возобновить ее всем подряд и развиваются в оч хороших спецов

Google
anatolii
13.10.2018
16:21:48
по моему опыту в IT каждый первый всё знает и не видит смысла развиваться дальше
Фи на вас в айти 90% имбицилов, и тока на людей которые дцмают что не могут чета и пытаются постичь недостаток знания вся надежда

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

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
и колодец наполнен говном, да

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
Никита
13.10.2018
16:42:29
> в этом году GC всего на 10% стал быстрее, хотелось бы хотя бы на 15%, "работаем дальше" Верный признак того, что бэкенд стагнирует
Почему стагнирует, вон зоопарки микросервисов разводят и пытаются держать их в узде

Никита
13.10.2018
16:44:57
модель акторов изобрели в 70-х
Само собой ничего нового нет, все новое - хорошо забытое старое

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
получается пакеты это надглобальные объекты шоле)
Нет, пакеты это пакеты. Ты просто импортируешь пакет и все public переменные вместе с ним.

Ivan
14.10.2018
09:37:06
а как то можно объявить глобальную переменную из функции?
Можно заранее объявить/создать нужный "объект", и потом юзать указатели, чтобы вносить все изменения в него уже в самой функции.

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

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

Google
Alexander
14.10.2018
10:08:59
Дефолтный гофер всю алгебру еще в 5 классе прогулял ))
Херово это, учитывая что программирование по большей части это те же самые символьные преобразования

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

Pawel
14.10.2018
10:17:06
Дефолтный гофер всю алгебру еще в 5 классе прогулял ))
отучаемся говорить за весь интернет

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

Pawel
14.10.2018
10:22:24
Мне одному кажется, что генерики и альтернативная обработка ошибок усложнят читаемость кода?
альтернативная - нет, не осложнит. Дженерики - уж точно не одному вам, судя по волне негативных отзывов https://npf.io/2018/09/go2-contracts-go-too-far/ А позитивных - осмысленных - я не видел

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

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
точно так же как ты её ловишь здесь, ? — это просто сахар для кода, проверяет, является ли результат ошибкой и тогда возвращает ошибку из функции или результат не является ошибкой и тогда выполнение функции продолжается

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

Alexander
14.10.2018
10:33:22
А если таких ? было много, то потом полчаса пишешь сверху обработку с матчингом, какая из ошибок все-таки поймалась. Или нет?
Ну в Go ты для этого тайпсвич или тайпассершены будешь использовать. Только в го тебе система типов ничем не поможет

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

Google
Алексей
14.10.2018
10:35:18
В go2 будет check для этих целей
Почему нельзя было сразу такой сахар сделать - большая загадка.

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
Потому же почему нельзя было запилить сразу генерики или алгебраические типы — авторы языка слишком узколобы.
Ну алгебраические типы на го не очень хорошо ложатся, учитывая, что даже кортежей нормальных нет. А генерики они до сих пор не придумали как лучше всего сделать. Но вот то, что не захотели впиливать такой простейший сахар как check - вот это просто поразительно

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

SkyCoffee
14.10.2018
10:42:19
Вот только сами создатели go уже решили сделать из go2 что-то отдаленно похожее на раст.
эм.. А по каким критериям можно это увидеть? check в черновиках?

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

Алексей
14.10.2018
10:43:08
эм.. А по каким критериям можно это увидеть? check в черновиках?
Так всем ненужные дженерики собираются сделать

Алексей
14.10.2018
10:43:42
Так всем ненужные дженерики собираются сделать
Видимо они не настолько ненужными оказались

SkyCoffee
14.10.2018
10:44:38
> сложнее его учить Ну конечно же намного лучше тратить свое время на изобретение велосипедов, чем на самообразование.
Я хочу сказать, что обобщенные решения обычно едят больше ресурсов и рассчитаны на общие случаи, чем если писать велосипед под конкретный случай

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

Google
Alexander
14.10.2018
10:47:06
Я хочу сказать, что обобщенные решения обычно едят больше ресурсов и рассчитаны на общие случаи, чем если писать велосипед под конкретный случай
> едят больше ресурсов Ложь. > рассчитаны на общие случаи Тем и хороши. > C++ Худший пример полиморфизма из возможных. Худший пример языка из возможных. Ну и вообще не аргумент.

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

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
Вот что-то тут мусолится уже 3й день, а толковых конструктивных предложений на github.com/golang/go/issues так и не появилось
Боюсь авторы языка не осилят. Параметрический полиморфизм — не та фича, которую можно нахрапом взять.

Алексей
14.10.2018
10:53:09
Ага-ага Я пока на генериках видел только велосипеды
Заменяем генерики на пустые интерфейсы, тайпкасты, кодогенерацию и получаем go

Alexander
14.10.2018
10:54:09
То есть уже будет язык не для написания кода, а для использования библиотек? А как библиотекописцам быть?
Писать код который использует компайл-тайм рефлексию и параметрический полиморфизм вместо, прости Господи, рантайм рефлексии.

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