Это копия, сохраненная 31 декабря 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Пщ едва не единственный язык который на уровне синтаксиса позволяет синхронизировать подпрограммы, разве только не Pony или Erlang. Это в 2018 году-то.
Дженериков нет, просто смирись.
Обработка ошибок получается охуенно через http://github.com/pkg/errors | в приложениях обычно можно просто паниковать на ошибках.
HTTP-сервер для убер максимального маня-хайлоада: https://github.com/valyala/fasthttp
С версии Go 1.11 наконец-то появится официальный менеджер зависимостей vgo
https://github.com/avelino/awesome-go - список всяких разных пакетов, написанных на Go.
Для вката в Go читай Донован, Керниган "Язык программирования Go", https://www.golang-book.com/, книги из списка https://github.com/dariubs/GoBooks, а также смотрим видео https://www.youtube.com/channel/UC_BzFbxG2za3bp5NRRRXJSw
Вкатываемся в эпоху докера, микросервисов и адово кошерной сетевухи.
Прошлый тут: https://2ch.hk/pr/res/1159767.html (М)
>Пщ едва не единственный язык который на уровне синтаксиса позволяет синхронизировать подпрограммы, разве только не Pony или Erlang. Это в 2018 году-то.
Вы заебали уже, дохуя где это есть, от кложи до эликсира.
А чо, нельзя там к Грефу кабанчиком подскочить, обкашлять вопросик, я не знаю? Ну это же очевидная неповоротливость бюрократической машины, наверняка они в 2016 просто скопипастили это из предыдущей версии той же хуйни. Ну то есть бля, кто-нибудь вообще долбит их по этому поводу?
иди на хуй ленивая свинья
>Ну то есть бля, кто-нибудь вообще долбит их по этому поводу?
После того как все участники электронного документооборота закупились системами работающими с xml в кодировке WINDOWS-1251?
Включая налоговую?
Это еще не самый дикий тупняк.
Самая дикая хуйня будет если ты крупное предприятие и у тебе на балансе котельная.
Тогда тебе придется сдавать отчет по форме 46.
В виде Exсel файла.
С макросами.
Это что, сделано специально чтобы спускать грехи или как?
Пиздец конечно. Даже не знаю, что и добавить.
Почему у меня нету проблем с докером даже на макосе?
Блокчейн заебись. Если идея будет, то технология сейчас популярная и достаточно опыта даст, потому что это не сайтики клёпать. Хотя идей не подскажу, я не углублялся пока-что, скоро собираюсь.
Я в-принципе согласен, но как мне быть с обработкой падения? У меня есть сокет-сервер, например. Мне кажется логичным в случае паники сначала послать клиентам сообщение о шатдауне, а уже потом рвать коннект.
Насколько я не прав?
Такими темпами лет через 20 может что хорошее и получится из гошечки-аутиста.
Он не такой мудрый. Проёбывает функционал языка, порой необходимый, ради пустословья про отсутствие исключений.
Чувак видимо забыл, что пишет не на ерланге, лол.
Понятно что мнение чисто субъективное
Мне не хватает:
- Нормального двустороннего мессаджинга (гошная реализация socket.io убога);
- Стандартизованной структуры приложения (видел кучу вариантов, rails-like, modules-like и т.п.);
- Единого нормального менеджера зависимостей.
А, ну и да. И ещё нормальных курсов (хотя вроде mail.ru выпустили ничего так) и нормальных сертификатов (от гугла или хотя бы uber).
>(видел кучу вариантов, rails-like, modules-like и т.п.);
Модуле-подобно это типа как в питоне (и сейчас js пытаются), да?
А rails-like как это?
В первую очередь надо понять, ч>>246707
> Стандартизованной структуры приложения (видел кучу вариантов, rails-like, modules-like и т.п.);
Вот с этим реально проблемы. Хотя это не проблема конкретно языка, а скорее проблема консенсуса между разработчиками.
>>246707
>- Единого нормального менеджера зависимостей.
Так vgo же. Не знаю, насчет нормальности, но он станет единым официальным.
rails-like это кажется как в руби он рейлс. Там на каждый контроллер свой жышэ файл и можно реквайрить файлы и зависимости //= require smth вроде
Магия, не могу вставить ссылку.
В общем, https://medium.com/СОБАЧКАbenbjohnson/standard-package-layout-7cdbc8391fc1
Какие подводные? До этого с бекендом так таковым дело не имел.
Нормальненько ли здесь писать хттп запросики? Если мне завтра приспичет развернуть борду на го как она себя будет чувствовать?
На тиобе видел как язык поднялся за годы. А может это очередной хайп как на руби в 2008? Этот язык будет жив в 20+ десятилетии?
>Какие подводные?
Язык ниочень нет дженериков
>Нормальненько ли здесь писать хттп запросики?
да
>Если мне завтра приспичет развернуть борду на го как она себя будет чувствовать?
нормально
>А может это очередной хайп как на руби в 2008?
Он уже второй год падает во всех рейтингах (и это при том, что он только появился + его гугл тащит)
>Этот язык будет жив в 20+ десятилетии?
Да жив-то будет, куда он денется, вон перл сейчас тоже жив, например. Или какой-нибудь дарт (простихоспоти) тоже жив (к сожалению). В качестве единственного языка для бэкенда который ты знаешь не подходит вообще, в качестве еще одного инструмента для своей ниши - почему бы и нет.
Всё с языком нормально, развивается, гуглом поддерживается. Для всяких нагруженных проектов используется
>Так vgo же. Не знаю, насчет нормальности, но он станет единым официальным.
А как же go get? Почему люди сразу же забыли, про столь мощный и лучший депенденси-менеджер в го?
Расплодили, расплодили кучу клонов. го не торт уже
> Какие подводные?
+ Отличный инструмент для решения асинхронных задач, в том числе и веб (там это мастхев и никаких страданий с асик-авей и тем более допотопными промисами и калбэками).
+ Отличный инструмент для микросервисов (лучший!)
+ Простые и прагматичные библиотеки надеюсь так и останется
- Плохой инструмент для программиста, в общем, ручками будешь писать много и долго, потому что это такая фича или потому что кто-то поленился и сделал упор на легкий компилятор, в ущерб труда программиста
- Отсутствие исключений, это отсутствие проброса ошибки вверх. А значит где-то в глубине может "где-то что-то" немножко поломаться и ты как и в js не будешь понимать - почему "это" работает немножко не так или почему оно падает вообще в другом месте исключения бьют по рукам, если программист явно не замалчивает и бьет по рукам уже сам себя. Поэтому исключение решает несколько проблем
1. Всегда в курсе если что-то не так.
2. Можно нагуглить ошибку и найти решение за 5 минут,
3. Можно понять где из 100500 вызовов одного метода это сейчас произошло и запустить отладчик
>дарт (простихоспоти) тоже жив (к сожалению)
На днях 2.0 зарелизили, там у них кросс-флагманский проект, которым они еще всякие котлины попугают. Я не фанбой, просто есть перспектива
И вроде они свою рекламную площадку под него переписали. Как слухи в каком-то дермокасте услышал
Интерфейсов для полей структуры.
>go get
Потому что это не менеджер зависимостей.
Еще есть go dep, у которого нашли какие-то недостатки.
>Этот язык будет жив в 20+ десятилетии?
Да, потому что удобно решает ряд задач, то есть действительно является инструментом, а не очередным сахаром-ради-сахара.
Так же есть еще потребность писать не на скриптовых языках веб, но джаву брать не хочется. он устойчиво займет такую промежуточную нишу
ИНСАЙД, ТОП ЯЗЫКИ 20+ летия позиция роли не играет
python - ИИшки
javascript - так было велено браузерами, а теперь он уже везде
C - нужен
C++ - тонны легаси
php - тонны легаси
java - тонны легаси, мобильная
swift - мобильная
go - есть ниша, так же возможно станет языком для игр в браузере на wasm (на хабре читайте будет поддержка в релизе каком-то).
dart - (возможно) кросс мобильная разработка
-неизвестный- - ключевой язык в нише робототехники, скорее специфичный и узкий.
остальные языки останутся и будут вечно телепаться в аутсайдерах, некоторые возможно окончательно протухнут
>Отличный инструмент для решения асинхронных задач
Каналы давно уже везде есть, вы заебали. И го - это не эрлаг\эликсир. Вот реально, всю эту хуйню про ЛУДШИЙ ЯЗЫК ДЛЯ АСИНХРОНЩИНЫ вам маркетологи в голову вбили (ну по сравнению с сишечкой конечно лучший), и раз за разом эту хуйню пересказываете.
>Отличный инструмент для микросервисов (лучший!)
Баззворд на баззворде. Опять же, прочитал на медиуме хуйню и ретранслируешь. А вот на ноде микросервисы получаются видимо недостаточно шелковистые, хехмда.
>Простые и прагматичные библиотеки
Вообще какая-то субъективная хуйня. А у питона сложные и идеалистичные, да?
>ручками будешь писать много и долго
Это правда, тут не поспоришь.
>Отсутствие исключений
Это наоборот хорошо, ну и "проброс ошибки вверх" там таки есть.
Понимаешь, когда пилят новый язык, а потом через пару лет выкидывают все нахуй и переписывают заново без сохранения обратной совместимости - никакой нормальный человек к этому говну даже близко больше не подойдет, никогда. Но опять же, маркетолухи гугла говна в уши нальют про "а вот Х все переписали на дарте, бегите и вы переписывать!!!" и "ФЛАГМАНСКИЙ ПРОЕКТ гугла, бегите учите а то отстанете от всего и будете неактуальны!!!" - глядишь индусы со смузихлебами и подтянутся. Но хуй знает, дарт настолько провальный, что тут даже есть надежда, что это говно в этот раз не проканает.
>станет языком для игр в браузере на wasm
>на хабре читайте будет поддержка в релизе каком-то
))
Тебе сколько лет-то, инсайдер мамкин? Нахер ты со своими инсайдами лезешь, если не шаришь, а? Ладно бы сказал: "ну не знаю, вот лично мне вот эти вот нравятся" - нет ведь, блядь, ИНСАЙД у него. Тьфу, блядь.
>Не совсем понятно, о чем речь.
гугли "бойлерплейт"
>Ошибки как раз вверх и пробрасываются.
Это значит, что надо в каждой функции, на всякий случай, предусмотреть возврат ошибки. Вдруг она попадет в ту самую цепочку проброса.
>А чтобы знать, где что упало как раз и передаешь в тексте ошибки место
Ну скажет тебе что упала функция работы с текстом, ты такой полезешь и увидишь что эта функции из 50 разных мест вызывается, да еще 1000 раз.
Конечно ты полезешь руками фиксы писать, чтобы понять где и как, но это уже костылеварение.
>увидишь что эта функции из 50 разных мест вызывается
Значит в каждом месте пишешь return fmt.Errorf("cannot read text in function MyFunc: %v",err)
>>246858
>Это значит, что надо в каждой функции, на всякий случай, предусмотреть возврат ошибки.
Так это и есть go-style. Почти каждая функция должна возвращать ошибку.
>>246858
>гугли "бойлерплейт"
Я знаю, что такое бойлерплейт, пример приведи. Только без примеров, которые решаются за счет шаблонов в других языках( чего нет, того нет)
>Каналы давно уже везде есть
И не забудь ручками асинк-авейт написать.
>А вот на ноде микросервисы получаются видимо недостаточно шелковистые
Все скриптовые без реальных потоков, вкинул дробилку, убил целый процесс. Так что да, не шелковистые ни разу. Го он как - скомпилил с десяток сервисов и вкинул, не зависимостей не прочей мудотни - один бинарник - одна зависимость под что скомпилил - одна любовь.
>Вообще какая-то субъективная хуйня. А у питона сложные и идеалистичные, да?
Самый близкий язык по сравнению это джава (статика, компиляция...), никто ничто не говорил про питон. Понятно это субъективно, но если сравнить с джавой, да, проще либы.
>Это наоборот хорошо, ну и "проброс ошибки вверх" там таки есть.
Если ты про фатал - то такого не надо. Проброс конечно есть, исключительно трудом программиста (а не рантайма) если ты разработчик рантайма и компилятора - конечно это наоборот хорошо, но когда на программиста часть работы кидают - надо тут немного проснуться
>Так это и есть go-style.
Это не го-стайл, это говно-стайл хи-хи, ну хотя да, ты прав из 80-ых. В сишечке так делали, после каждого вызова условие, ой а все ли нормально ниче не сломалось?))0) А сейчас как бы 2018, люди давно уже знают, как эта проблема решается правильно, но Пайк как всегда в танке. А еще он не осилил написать тайпчекер с дженериками. Ну то есть натурально чувак застрял в 80-ых и не лечится.
>Значит в каждом месте пишешь return fmt.Errorf("cannot read text in function MyFunc: %v",err)
>Конечно ты полезешь руками фиксы писать, чтобы понять где и как, но это уже костылеварение.
Ты уже в ответе полез костыли заваривать, не надо :)
Это не решение, это адаптация.
>Так это и есть go-style. Почти каждая функция должна возвращать ошибку.
А потом до кого-то дойдет мысль "раз почти в каждой функции надо пробрасывать, а не сделать ли это автоматически??" И тут произойдет изобретение исключений, своих каких-то, через жопу, но уже автоматических. Эволюция блин, тут братюнь не поспоришь.
>Я знаю, что такое бойлерплейт, пример приведи.
Я тебе прям в картинке ответил, эталонный пример бойлерплейта. В какой-то IDE даже придумали автоматическое сворачивание для этой штуки Эволюция блин, тут братюнь не поспоришь.
>И не забудь ручками асинк-авейт написать.
Ты чем читаешь? КАНАЛЫ, какой асинк-авейт?
>Все скриптовые без реальных потоков
Конечно, отсутствие мультитрединга - это гигантская проблема при микросервисной архитектуре. Спасибо, что открыл мне глаза, анон.
>не зависимостей не прочей мудотни
А докер чо, уже немодно юзать?
>Самый близкий язык по сравнению это джава (статика, компиляция...)
Да нет, как раз к ноде\питону оно ближе и по духу, и по нише. Статика там уровня /b, компиляция - ну, питон тоже можно компилировать, в чем поинт-то? А вообще, это типа сишка с гц по задумке же.
>Если ты про фатал - то такого не надо.
Про него, по части «и "проброс ошибки вверх" там таки есть.» Надо\не надо - это уже другой вопрос, я тебя просто по части фактов подправил.
>>246864
>>246877
>Конечно ты полезешь руками фиксы писать, чтобы понять где и как, но это уже костылеварение.
Такая обработка ошибок в го, может привести к такой плавающей ошибке, что ты не за день, и даже не за неделю, не сможешь решить. Такое уже проходили и исключение это одно из лучший изобретений хер с ними с дженериками
>Ты чем читаешь? КАНАЛЫ, какой асинк-авейт?
Мы про асинхронное программирование или про то как без гонки записать данные? может про мьютексы еще расскажешь?
>Конечно, отсутствие мультитрединга - это гигантская проблема при микросервисной архитектуре.
Как бы да, один запрос один процесс это ужас и спасение было как раз в асинхронщине. Та же нода на один процесс могла отдать больше за счет асинхронной обработки. Но это справедливо если ответ достаточно быстро вычисляется. А если нет? Снова один один запрос один процесс (там где запросов тысячи).
В общем, скриптами можно делать микросервисы, способностей хватит, но это не лучшее архитектурное решение и да го лучше под это он и создавался
>А докер чо, уже немодно юзать?
Меньше ПО в связке проекта, меньше проблем сопровождения. Если го предоставляет возможность тупо залить файл и запустить - то зачем платить больше? А вот если у тебя там 1000 машин и надо деплоить по клику - то да.
>Статика там уровня /b, компиляция - ну, питон тоже можно компилировать
Статика и компиляция - это ближе к питону чем к джаве, ну да, ты способный, тут не отрезать.
>Про него
Роль фатала - это когда надо сказать "кина не будет" и убиться (в рамках приложения или в рамках одного запроса). Так что не надо эволюционировать и адаптировать такие вещи под исключения потому что фатал там несет некоторые технические нюансы, которые привнесут приятные сюрпризы
>Мы про асинхронное программирование или про то как без гонки записать данные?
Я не знаю, про что ты, а я про CSP.
>А если нет?
То ты поднимаешь пул воркеров и фронтенд-сервер, который отдает им нагрузку. Это называется "микросервисная архитектура", привет.
>го лучше
Спорно.
>под это он и создавался
А вот тут не поспоришь, лол.
>Если го предоставляет возможность тупо залить файл и запустить - то зачем платить больше?
Джава тоже позволяет, и чо? На жвм еще и нормальные менеджеры зависимостей уже сотню лет как есть, а не вот эта параша, что в сабже. Ты уж определись, про микросервисы ты говоришь или про "руками тупо залить и запустить".
>Статика и компиляция - это ближе к питону чем к джаве
Я ведь вроде по-русски написал: статика там уровня /b даже по сравнению с джавой (как в си, толку от нее около нуля). По нише он ближе к питону\ноде (ты сам это в прошлом абзаце написал). Компилировать можно и питон, и руби, и даже пхп, так что это вообще ни к чему упоминать. Ну что непонятно-то?
>Так что не надо эволюционировать и адаптировать такие вещи под исключения
Так я тебе еще раз говорю, что я с исключениями фатал и не сравнивал, я тебя просто поправил насчет того, что "проброс ошибки вверх" там таки есть.
У тебя ирония сломалась, проверь пробрасываемую ошибку слово инсайд мемично на двачах и скорее всегда отражают маняфантазии автора, что как бы и есть
Я частично согласен, но там и людей то не было, какая разница, это же не аудитория питона 2.0 и релиз 3.0 может между 1.0 и 2.0 так же было???
Конечно, можно взять и тащить поддержку полностью протухшего языка, вопреки логики и здравого смысла, или же, быть может, дать ему второй шанс, полностью переписать и накатить флагман, чтобы не только на авось надеяться?
>никакой нормальный человек к этому говну даже близко больше не подойдет
Питон едят же
>То ты поднимаешь пул воркеров и фронтенд-сервер
Больше железа, богу железа. Один процесс - один запрос, это плохо даже с пуллом воркеров.
>Спорно
Синтаксис там на отъебись сделан, а как инструмент для микросервисов он отличный.
>Джава тоже позволяет, и чо?
Да кто говорит что нельзя или не позволено.
>нормальные менеджеры зависимостей уже сотню лет как есть
Разве на джаве есть официальный менеджер зависимостей поставляющийся с языком? Это ты про ANT? Или про... ох шит...
>про микросервисы ты говоришь или про "руками тупо залить и запустить".
Что не так? Какая сложность залить залить 1 файл или 10 или 100? Или ты думаешь обязательно надо руками и их запускать, а баш файл или супервизор для неудачников?
>Я ведь вроде по-русски написал
Да там все понятно, умозаключение "Статика и компиляция - это ближе к питону чем к джаве" должна попасть в золотой цитатник.
> я тебя просто поправил насчет того, что "проброс ошибки вверх" там таки есть.
И что? Как это решает проблему ручного проброса если использовать можно только для фатальных случаев. Не все же скрипты пишут, где можно просто падать по чиху в 100 строк кода.
Ну ладно, меня просто триггернуло твое откровение про васм и игры в браузере, лол.
>>246886
>Питон едят же
Ну ты сравнил. Говнидо конечно уебок, но к третьей версии питон уже в любом дистрибутиве искаропки был.
>дать ему второй шанс
Нет, нужно было просто закопать говно и прекратить уже пытаться подмять под себя всю инфраструктуру веба. Единственный смысл существования дарта - вендор-лок миллионов макак на (((гугл))). В нем нет никаких улучшений, нет никаких новых идей, нет вообще ничего - только NIH и эффективные манагеры. Короче, нахуй его.
>Больше железа, богу железа.
Ты сам только что ратовал за микросервисы. Когда я тебе описал, как выглядит микросервисная архитектура в простейшем случае, ты пишешь "Больше железа, богу железа". Анон, извини, но у меня начинает закрадываться ощущение, что ты не шаришь.
>Один процесс - один запрос, это плохо даже с пуллом воркеров.
Эм, пулл воркеров для того и нужен, чтобы избавиться от "Один процесс - один запрос". Погугли, пожалуйста.
>как инструмент для микросервисов он отличный.
Ну, см. выше и предыдущий пост, где я про маркетолухов писал.
>Да кто говорит что нельзя или не позволено.
Ну ты же писал, что на го все шелковисто заливается, а не на го - нешелковисто.
>Разве на джаве есть официальный менеджер зависимостей поставляющийся с языком?
Да вроде ни в одном (промышленном) языке с самим языком менеджер зависимостей не поставляется. Я говорил про maven + gradle/lein/sbt, очевидно.
>Какая сложность залить залить 1 файл или 10 или 100?
Эм, ну сложность в том, что тебе надо делать дискавери, балансинг, одновременный деплой итп итд. Опять же, гугли оркестрацию, девопс, ну или просто "микросервисы".
>умозаключение "Статика и компиляция - это ближе к питону чем к джаве" должна попасть в золотой цитатник.
Ну, это ты сказал, ты и добавляй это в цитатники. Я-то тут при чем?
>И что?
То, что ты озвучил фактически неверное утверждение, я тебя поправил. Все. Больше ничего, move on. Третий раз об этом говорю.
>проблему ручного проброса
Ну, если ты хочешь поговорить на эту (отдельную) тему, то можно, благо в 2018 это уже решенная (но только не в го, лол) проблема. Не знаю, правда, есть ли в этом смысл.
>Больше железа, богу железа.
Ты сам только что ратовал за микросервисы. Когда я тебе описал, как выглядит микросервисная архитектура в простейшем случае, ты пишешь "Больше железа, богу железа". Анон, извини, но у меня начинает закрадываться ощущение, что ты не шаришь.
>Один процесс - один запрос, это плохо даже с пуллом воркеров.
Эм, пулл воркеров для того и нужен, чтобы избавиться от "Один процесс - один запрос". Погугли, пожалуйста.
>как инструмент для микросервисов он отличный.
Ну, см. выше и предыдущий пост, где я про маркетолухов писал.
>Да кто говорит что нельзя или не позволено.
Ну ты же писал, что на го все шелковисто заливается, а не на го - нешелковисто.
>Разве на джаве есть официальный менеджер зависимостей поставляющийся с языком?
Да вроде ни в одном (промышленном) языке с самим языком менеджер зависимостей не поставляется. Я говорил про maven + gradle/lein/sbt, очевидно.
>Какая сложность залить залить 1 файл или 10 или 100?
Эм, ну сложность в том, что тебе надо делать дискавери, балансинг, одновременный деплой итп итд. Опять же, гугли оркестрацию, девопс, ну или просто "микросервисы".
>умозаключение "Статика и компиляция - это ближе к питону чем к джаве" должна попасть в золотой цитатник.
Ну, это ты сказал, ты и добавляй это в цитатники. Я-то тут при чем?
>И что?
То, что ты озвучил фактически неверное утверждение, я тебя поправил. Все. Больше ничего, move on. Третий раз об этом говорю.
>проблему ручного проброса
Ну, если ты хочешь поговорить на эту (отдельную) тему, то можно, благо в 2018 это уже решенная (но только не в го, лол) проблема. Не знаю, правда, есть ли в этом смысл.
Я вообще не в курсе всей этой кухни дарта, так как мне на него пох. Но флагман дающий кросс-мобильную разработку - это мощный флагман. Никакие докеры и новые браузеры не сравняться тут с этим, так как это не просто некий "показатель", а показатель с мощным и главное нужным инструментом - поэтому даю 70% что выстрелит.
Выкинуть дарт тоже никак, у гугла уже и так не очень репутация по закрытым проектам. Переделать - лучше, чем выкинуть и под новым именем подобное же сделать.
>Эм, пулл воркеров для того и нужен, чтобы избавиться от "Один процесс - один запрос". Погугли, пожалуйста.
Снова золотая цитата. Один процесс - один запрос - это внутренние обстоятельство программы (ну она больше не дает сама по себе, тебе надо больше процессов и машин). В общем ты топишь за ноду и даже не понял почему она выстрелила в свое время а после появления го тупо стала не нужной).
подсказка:
нода выстрелила потому, что из-за асинхронной модели смогла исполнять не один запрос на процесс, а (условно) 10 запросов на процесс, в какой-то промежуток времени. И да, воркер и процесс одно и тоже, я сначала подумал ты ошибся и говорил про маршрутизацию, оказывается ты просто очень компетентен в этом вопросе
>...менеджер зависимостей не поставляется.
Ты только представь насколько реально крут го, у него в отличие от джавы будет свой и официальный, поставляемый прям с самим языком и батарейками - менеджер зависимости.
И это объективно же. Ты только подумай, насколько искаженно твое восприятие, что ты считаешь какие-то де-факто признанные библиотеки как достоинство? которая сначала была одна - ANT, потом другая - maven, а сейчас вообще две, а завтра три или четыре....
Да и если быть честными не официальных менеджеров у го тоже полно, откуда радость то?
>(промышленном) языке
Что это такое? Питон промышленный? У него pip встроен.
>Эм, ну сложность в том, что тебе надо делать
Наслушался конференций на ютубе?
Ничего не надо, заливаю файл в папку, "говорю" ребут и супервизор (а может даже и скрипт) определяет по имени что есть новая версия (manja_service_1453) и ребутит нужный сервис. Все остальное роль небольшого супервизора и админской статистики, потому что мы не супер-гугл-хайлоад система и никогда не станем, а если станем, то меня выгонят и наймут такого как ты, который умеет балансить, дискаверить и при этом писать микросервисы на питоне или жс.
>я тебя поправил
Поправил в чем? Фатал и проброс ошибок два совершенно разных случая. То есть альтернативы для проброса - нет. Фатал это другое. Ты бы еще похвастался что го может упасть в сигфолте и сказать что это альтернатива фаталу лол
Не поправляй, когда не знаешь технических тонкостей похожих на первый взгляд вещей.
>Эм, пулл воркеров для того и нужен, чтобы избавиться от "Один процесс - один запрос". Погугли, пожалуйста.
Снова золотая цитата. Один процесс - один запрос - это внутренние обстоятельство программы (ну она больше не дает сама по себе, тебе надо больше процессов и машин). В общем ты топишь за ноду и даже не понял почему она выстрелила в свое время а после появления го тупо стала не нужной).
подсказка:
нода выстрелила потому, что из-за асинхронной модели смогла исполнять не один запрос на процесс, а (условно) 10 запросов на процесс, в какой-то промежуток времени. И да, воркер и процесс одно и тоже, я сначала подумал ты ошибся и говорил про маршрутизацию, оказывается ты просто очень компетентен в этом вопросе
>...менеджер зависимостей не поставляется.
Ты только представь насколько реально крут го, у него в отличие от джавы будет свой и официальный, поставляемый прям с самим языком и батарейками - менеджер зависимости.
И это объективно же. Ты только подумай, насколько искаженно твое восприятие, что ты считаешь какие-то де-факто признанные библиотеки как достоинство? которая сначала была одна - ANT, потом другая - maven, а сейчас вообще две, а завтра три или четыре....
Да и если быть честными не официальных менеджеров у го тоже полно, откуда радость то?
>(промышленном) языке
Что это такое? Питон промышленный? У него pip встроен.
>Эм, ну сложность в том, что тебе надо делать
Наслушался конференций на ютубе?
Ничего не надо, заливаю файл в папку, "говорю" ребут и супервизор (а может даже и скрипт) определяет по имени что есть новая версия (manja_service_1453) и ребутит нужный сервис. Все остальное роль небольшого супервизора и админской статистики, потому что мы не супер-гугл-хайлоад система и никогда не станем, а если станем, то меня выгонят и наймут такого как ты, который умеет балансить, дискаверить и при этом писать микросервисы на питоне или жс.
>я тебя поправил
Поправил в чем? Фатал и проброс ошибок два совершенно разных случая. То есть альтернативы для проброса - нет. Фатал это другое. Ты бы еще похвастался что го может упасть в сигфолте и сказать что это альтернатива фаталу лол
Не поправляй, когда не знаешь технических тонкостей похожих на первый взгляд вещей.
>Один процесс - один запрос - это внутренние обстоятельство программы
Разберись с тем, что такое мультитрединг и асинхронность. Потом разберись с тем, что такое хттп и что означает слово "запрос". Потом перечитай мой пост еще раз. Я не вижу смысла объяснять тебе элементарные вещи которые можно нагуглить самому, когда ты общаешься в таком тоне.
>свой и официальный, поставляемый прям с самим языком
Мавен тоже свой и официальный (ну и не кривой, в отличие от того же пипа), практической разницы нет никакой.
>а сейчас вообще две, а завтра три или четыре
Анон, ты опять не уловил поинта, потому что не знаком с сабжем. Я говорю о менеджменте зависимостей, а не о билд тулах. Я хочу (могу хотеть) иметь разные билд тулы (в зависимости от нужд проекта, одно может быть удобнее другого; плюс для скалы, например, хочу пользоваться сбт, а для джавы - грейдлом; плюс элементарно со временем появляются более лучшие альтернативы, поэтому я не хочу вендор-лока), но при этом хочу иметь единый формат репозиториев зависимостей. На жвм все так и есть: у тебя есть мавен-репы, которые поддерживаются абсолютно всеми билд тулами. Поэтому в любой проект на любом жвм языке с любым билд-тулом я могу подключить любую жвм библиотеку. Смекаешь? Алсо, "сначала была одна" тоже неверно - она не была, она есть. Ант билд-скрипты поддерживаются мавеном и грейдлом. Мавен-репозитории поддерживаются всеми билд тулами. Это не "написали, выкинули, написали другое", а инкрементальное развитие, одни тулзы используют другие. Уловил?
>Да и если быть честными не официальных менеджеров у го тоже полно, откуда радость то?
Тут как раз никакой радости и нет, лол.
>Питон промышленный? У него pip встроен.
Куда встроен? Вот у меня стоит python3-pip, отдельный пакет. Да, с 2.7 он идет в дефолтной поставке в виртуаленв и является рекомендуемым ээ, даже хз как его назвать, "инсталлятором пакетов". Ну так и с рубиджемс та же история, например. Это же не значит, что они "встроены в язык".
>Ничего не надо, заливаю файл в папку
Ну если тебе на вашей задаче не надо - ну так слава богу ж. Вопрос был "чем отличается 1 сервис от 100", конкретно про твой случай я ничего не знаю.
>Поправил в чем?
В том, что "проброс ошибок" в голанг есть. В четвертый раз повторяю, лол, плюс еще другой анон тебе об этом тоже вроде писал.
>Фатал и проброс ошибок два совершенно разных случая.
Ты видимо придаешь какое-то особое значение словам "проброс ошибок", а это не общепринятый технический термин (а телепаты в отпуске). В го есть фатал\рековер, которые, типа, можно вызвать при ошибке, и они, типа, эту ошибку пробросят вверх по стеку. Я ничем не хвастаюсь голанг - говно по части обработки ошибок (да и вообще говно), я вроде ясно это дал понять, я просто озвучиваю очевидный факт.
>Один процесс - один запрос - это внутренние обстоятельство программы
Разберись с тем, что такое мультитрединг и асинхронность. Потом разберись с тем, что такое хттп и что означает слово "запрос". Потом перечитай мой пост еще раз. Я не вижу смысла объяснять тебе элементарные вещи которые можно нагуглить самому, когда ты общаешься в таком тоне.
>свой и официальный, поставляемый прям с самим языком
Мавен тоже свой и официальный (ну и не кривой, в отличие от того же пипа), практической разницы нет никакой.
>а сейчас вообще две, а завтра три или четыре
Анон, ты опять не уловил поинта, потому что не знаком с сабжем. Я говорю о менеджменте зависимостей, а не о билд тулах. Я хочу (могу хотеть) иметь разные билд тулы (в зависимости от нужд проекта, одно может быть удобнее другого; плюс для скалы, например, хочу пользоваться сбт, а для джавы - грейдлом; плюс элементарно со временем появляются более лучшие альтернативы, поэтому я не хочу вендор-лока), но при этом хочу иметь единый формат репозиториев зависимостей. На жвм все так и есть: у тебя есть мавен-репы, которые поддерживаются абсолютно всеми билд тулами. Поэтому в любой проект на любом жвм языке с любым билд-тулом я могу подключить любую жвм библиотеку. Смекаешь? Алсо, "сначала была одна" тоже неверно - она не была, она есть. Ант билд-скрипты поддерживаются мавеном и грейдлом. Мавен-репозитории поддерживаются всеми билд тулами. Это не "написали, выкинули, написали другое", а инкрементальное развитие, одни тулзы используют другие. Уловил?
>Да и если быть честными не официальных менеджеров у го тоже полно, откуда радость то?
Тут как раз никакой радости и нет, лол.
>Питон промышленный? У него pip встроен.
Куда встроен? Вот у меня стоит python3-pip, отдельный пакет. Да, с 2.7 он идет в дефолтной поставке в виртуаленв и является рекомендуемым ээ, даже хз как его назвать, "инсталлятором пакетов". Ну так и с рубиджемс та же история, например. Это же не значит, что они "встроены в язык".
>Ничего не надо, заливаю файл в папку
Ну если тебе на вашей задаче не надо - ну так слава богу ж. Вопрос был "чем отличается 1 сервис от 100", конкретно про твой случай я ничего не знаю.
>Поправил в чем?
В том, что "проброс ошибок" в голанг есть. В четвертый раз повторяю, лол, плюс еще другой анон тебе об этом тоже вроде писал.
>Фатал и проброс ошибок два совершенно разных случая.
Ты видимо придаешь какое-то особое значение словам "проброс ошибок", а это не общепринятый технический термин (а телепаты в отпуске). В го есть фатал\рековер, которые, типа, можно вызвать при ошибке, и они, типа, эту ошибку пробросят вверх по стеку. Я ничем не хвастаюсь голанг - говно по части обработки ошибок (да и вообще говно), я вроде ясно это дал понять, я просто озвучиваю очевидный факт.
Сап, стоит учить вместо питуна?
Взлетаете во всяких там научных вычислениях?
В графичках/плоттинге?
Почему шапка именно про сеть, это что, язык написания серверов?
>Сап, стоит учить вместо питуна?
хочешь быстрый и асинхронный веб - да
не хочешь считать отступы после копипасты кода - да
долбишься об GIL - да
Сам с С/С++, его синтаксис будет мне ближе.
Хочу
import $matlib_name;
import $plotlib_name;
matlib.poshitay_eto_der'mo(data1);
matlib.i_eto_pzh(data2);
graphic.v_studiyu(data, axes, field);
По сути usage питуна, но надеюсь на более высокую скорость и удобный пакет-менеджмент.
смотри инструменты и как они решают твои задачи, а не красочность синтаксиса, в большинстве случаем питона тебе для научной фигни хватит, так как многое там в натив переписано и работает шустро.
Нет, нет, нет, типа того.
>язык который на уровне синтаксиса позволяет синхронизировать подпрограммы
>добавили сахарный синтаксис в язык для producer/consumer коллекции из стандартной библиотеки
кек. никогда не понимал, зачем добавлять синтаксис для отдельных коллекций, если можно использовать просто интерфейс коллекции?
ладно там хаскели всякие, где коллекции встроены, потому что на самом языке их нельзя сделать. Но в го то эти встроенные каналы и хэшмапы зачем?
>ладно там хаскели всякие, где коллекции встроены, потому что на самом языке их нельзя сделать. Но в го то эти встроенные каналы и хэшмапы зачем?
Потому что без генериков ты не сделаешь типизированные мапы и каналы, очевидно же
Потому что гуманитариям проще в уши залить "не нужно" или "это плохо", чем реализовывать это в рантайме и компиляторе, на каждой платформе.
panic - recover
Пайк не осилил нормальный тайпчекер написать, но сделать язык динамическим у него яиц не хватило, пацаны бы не понели. В итоге имеем вот такое govno.
Кстати, я просто оставлю это здесь:
http://tindaloscode.blogspot.com/2017/03/imitating-scala-futures-with-go.html
>Clojure borrowed its go-routine and channels idea from Golang. Yet the difference between the Clojure and Go versions in terms of brevity is striking.
>...
>With generics many of Go's problems would go away. Rob Pike explicitly said, no generics, but hopefully someone will just force him or do it himself instead.
> Он уже второй год падает во всех рейтингах (и это при том, что он только появился + его гугл тащит)
Это в каких? По google trends "golang" стабильно растёт.
По github:
https://madnight.github.io/githut/#/pull_requests/2018/2
Тоже.
Вероятно какие-то твои лично отобранные рейтинги.
>Он уже второй год падает во всех рейтингах (и это при том, что он только появился + его гугл тащит)
Классический цикл хайпа, ты видимо в ИТ недавно, да?
Вот если бы гугл действительно бы тащил свои проекты, мы бы уже с 2014 года писали бы все на дарте вместо js, а вместо node.js юзали бы го на сервере.
Основной - пакет может существовать в приложении только в одной версии. Основная боль здесь в транзитивных зависимостях.
Я хочу себе пакеты A и B (клиенты для апи амазона и гугла), при этом они оба зависят от пакета С (http клиент) разных версий. Всё, боль, паника.
Стоит ли зависимости помещать в папку vendor?
Напоминаю, что докер ВСЕ, а сабж НЕНУЖЕН:
https://github.com/docker/docker.github.io/issues/6910
Сообщество бугуртит, что для того, чтобы скачать докер под винду или мак, надо регаться
Годауны изобретают свои исключения. Как мило. Исключения это плохо! Поэтому нужно от них отказаться и сделать свои исключения.
Какие-же смузихлебы дауны.
Если ты до сих пор не понял, что такое исключения, и почему их нет в Го, то тебе нечего делать в программировании.
Чтобы не писать сложный рантайм и возложить проброс на руки программиста?
Всегда лучше один час по-рассказывать что-то, чем реализовать это в рантайме на всех платформах и потом это еще и поддерживать.
Это как со строками, в сети были целые статьи, рассказывающие что го-строки самые лучшие и вообще просто обосраться круть... но на деле это просто массив сырых байтов и все! Но как удалось завернуть :)
Братишка, что ты несешь? Каким образом github.com/pkg/errors относится к исключениям? Ты, похоже, даже просто не прочел там ничего.
тем, что функции исключений имитируются средствами языка.
Цитата из их ридми:
>...which applied recursively up the call stack results in error reports without context or debugging information. The errors package allows programmers to add context to the failure path in their code in a way that does not destroy the original value of the error.
Ничего не напоминает? Ну ты подумай, не торопись с ответом. какие же смузихлебы дауны
мимо
>Это как со строками, в сети были целые статьи, рассказывающие что го-строки самые лучшие и вообще просто обосраться круть... но на деле это просто массив сырых байтов и все! Но как удалось завернуть :)
Массив байтов, можно читать по байтам, можно по utf-символам, можно "бесплатно" загонять в bytes.Buffer
Чего тебе не хватает, нуль-терминатора?
не понял о чем ты. видео это хорошее интро в стратегии управления ошибками, про преимущества и недостатки разных методов и как объединить их в одно решение
>Ничего не напоминает?
Это паттен "докуратор". В данном случае декоратор ошибки.
И нет это никаким образом не Exception.
Разница значительная.
- Runtime Exception можно выкидывать из любой функции. В Golang если функция может вернуть ошибку это указано в сигнатуре функции
- Одновременно может быть выброшено только одно исключение. Ошибки в Golang это обычные значения. Никто не мешает вернуть несколько или даже массив ошибок.
>Разница значительная
Естественно, значительная. Потому что одно - средство языка, а другое - имитация.
Исключения как раз и придумали, чтобы не писать эти if (error != null) return error;
99% програмных ошибок не нужно проверять и нельзя исправить, потому что это по определению исключительные ситуации, иначе это бы не было ошибкой. Обработка ошибок всегда выглядит одинаково: это сделать откат, там где нужно (в finally) и написать ошибку в лог. Все.
Без исключений это превращается в кучу boilerplate кода и ошибок обработки ошибок. Непойманное исключение хотя бы крашит программу, необработанная ошибка-значение никак себя не выдает.
Энджой ер поиск багов.
Вся дурная слава исключений от их неправильного применения. Особенно в java с ее checked exception и огромным ассортиментом исключений на любой вкус.
В с# намного лучше это все. В 90% случаев ты просто кидаешь одно из немногих стандартных исключений и ловишь его где нибудь подальше, не оборачивая каждый вызов метода в catch
>Массив байтов, можно читать по байтам, можно по utf-символам
Не п#зди, нельзя, нужно призывать к магии, то есть к рунам (тупо распарсить сырой поток байтов в настоящий 4-байтовый массив).
И это нужно делать каждый раз, когда хочешь корректно обработать utf-строку (конечно, если твои строки не байтовые аскии символы).
>99% програмных ошибок не нужно проверять и нельзя исправить,
Маня, ты хоть раз в жизни программировал?
100% Ошибок надо проверять. Ты только что обосрал все известные мне гайдлайны.Для примера, Сони за такое штрафует. Отправь такое приложение в Playstation store и через неделю ты им будешь хату должен и все свои органы.
>99% програмных ошибок...нельзя исправить
Какое, блядь, нельзя исправить?
Нет сетевого соединения с хостом - попробовал через Х секунд или запасной.
Remote Logging не отвечает? Не беда пишем логи на диск
Нет файла с конфигом? Создаем конфиг по умолчанию
БД вернула ошибку транзакции? Создаем sqlite локально и пишем туда, что бы информация не пропала, потом синхронизируем
Даже после ООМ и ребута можно выжить записывая локальный журнал или используя Event Sourcing.
Хули ты мне втираешь? С таким подходом только лендинги на ПоХаПе лепить.
>Обработка ошибок всегда выглядит одинаково: это сделать откат, там где нужно (в finally) и написать ошибку в лог.
Вон из профессии. Макаки думают что реальное программирование это высрать Happy Path и сидеть дрочить до конца работы.
Большая часть кода это обработка ошибок. В критически важных приложениях соотношение до 80%/20%, где 80% обработка ошибок.
Такие долбоебы. Не удивительно что ракеты падают.
Молодец, написал все 2 use case исключений: повторить что-то или выполнить другую функцию в случае ошибки.
В языках с исключениями это пишется декларативно парой строк с использований библиотек. Например https://github.com/App-vNext/Polly
>В критически важных приложениях соотношение до 80%/20%, где 80% обработка ошибок
Вот это манямирок. В коде с нормальной архитектурой вообще мест где может случится ошибка очень мало. Это буквально 1, 2 интерфейса.
>В коде с нормальной архитектурой вообще мест где может случится ошибка очень мало
Да-да, слышал про "нормальную архитектуру", подтверждаю.
Но вообще это устаревший подход.
Если разрабатывать по концепции "хорошая архитектура", то ошибок вообще можно избежать. Никаких сайд эффектов, все просто работает идеально.
Вы дауны, что ли, разрабатывать систему, в которой могут проявляться ошибки?
Есть такой класс ошибок, которые называются transient error, которые возникают сами по себе и исчезают независимо от программы. Их нельзя предусмотреть и решить внутри программы. Например, перегружен сервер, или мыши перегрызли провод.
>- Runtime Exception можно выкидывать из любой функции. В Golang если функция может вернуть ошибку это указано в сигнатуре функции
То есть ты не слышал ни про checked exceptions, ни про panic в го.
>Никто не мешает вернуть несколько или даже массив ошибок.
Ты вообще ни с одним языком не знаком, ведь так? Ну либо тебе аллах запрещает возвращать в исключении любые нужные данные.
Анон, ну ведь со стороны видно, что ты совсем некомпетентен. Давай закончим этот разговор.
>Runtime Exception
>То есть ты не слышал ни про checked exceptions
Читать умеем?
>checked exceptions
Кроме Жабы исключения никто не использует?
>ни про panic в го.
В Го панику не используют для сообщения о такой ужасающей ошибке, как, барабанная дробь, КОНЕЦ ФАЙЛА ПРИ ЧТЕНИИ!!!
java.io.EOFException!!!
ФАЙЛ КОНЧИЛСЯ, ВСЕ В МАШИНУ!!!
>Ну либо тебе аллах запрещает возвращать в исключении любые нужные данные.
Одновременно выброшено может быть только одно исключение. Мат. часть, учим ее.
> Давай закончим этот разговор.
Ой все?
>Не п#зди, нельзя, нужно призывать к магии, то есть к рунам (тупо распарсить сырой поток байтов в настоящий 4-байтовый массив).
а в чём твоя проблема к ним призвать?
На какой стул лучше сесть рельсоабизяну? Смотрю в сторону buffalo, но может лучше осилить какой-нибудь ирис/ревил?
Что тебе не нормально? Тебе что, чтобы прочитать строку по рунам нужно библиотеку подключать или что?
Работа со строками очень нативная операция. Любые накладные расходы на таком уровне, потом очень сильно отражаются на производительностей всей программы (а веб это как раз частая работа со строками). Так что парсить постоянно сырые байты в строку по правилам utf-8 рунами (не обращая внимание на то что еще и память засоряем) - не лучший дизайн.
>(а веб это как раз частая работа со строками). Так что парсить постоянно сырые байты в строку по правилам utf-8 рунами (не обращая внимание на то что еще и память засоряем) - не лучший дизайн.
Чот мне сдаётся, что ты не в говорить то, о чём где-то слышал.
Анон, расскажи, как ты будешь "парсить постоянно сырые байты в строку по правилам utf-8 рунами"?
Получить трейс так можно. А вот как понять, что это за ошибка? Поддержки кодов нету, тип всегда один (структура из pkg/errors), смотреть по тексту - ну вообще не очень..
>Чот мне сдаётся, что ты не в говорить то, о чём где-то слышал.
По-моему ты перегрелся?
>Анон, расскажи, как ты будешь "парсить постоянно сырые байты в строку по правилам utf-8 рунами"?
см картинку, но ты походу индиго и не знаешь даже как устроен utf-8 и что за правила ведущих нулей
Express, koa.
https://blog.golang.org/go1.11
>>252305
Ты и правда какой-то индиго
Тебя в школе пиздили индиго и называли тупым, что теперь тебе они мерещатся на програмаче?
>выиграешь из-за статик языка
>нет даже дженериков
>везде interface{} или по функции на каждый тип
>статик языка
))
Парни, там дженерики подвезут в Go2
https://go.googlesource.com/proposal/+/master/design/go2draft.md
>Они уже собираются ломать обратную совместимость
Сам хуйню написал - сам пригорел. Типичный анон.
Никто обратную совместимость ломать не будет. Старый код как выполнялся, так и будет выполняться, сможешь вообще новые фичи игнорить и писать на го 2 так же, как на го 1.
>Сам хуйню написал - сам пригорел.
Знак вопроса видишь? Значение знаешь?
>Никто обратную совместимость ломать не будет.
В чем смысл названия "го2" тогда? Судя по тайтлам (сами их драфты я не читал если что), они собираются перелопачивать много базовой хуйни, с которой облажались изначально. А это значит, что придется менять библиотеки, в том числе стд. Так что ну такое, на словах конечно хорошо если они обещают полную обратную совместимость (пруфца кстати кинь заодно, а?), а уж как на деле получится - посмотрим.
Каждый раз когда речь заходит про go 2, то подчеркивают, что не хотят повторять успех python 2/3 и perl 5/6.
https://github.com/golang/go/wiki/Go2#compatibility
>сами их драфты я не читал если что
Братишка, ну так чего спешишь мнением своим делиться? В драфте про дженерики как раз какие-то всратые контракты описаны, чтобы оно текущую концепцию языка не поломало.
> > В качестве единственного языка для бэкенда который ты знаешь не подходит вообще, в качестве еще одного инструмента для своей ниши - почему бы и нет.
А что надо в придачу к го учить?
Ох, они вышли из манямирка и начали действительно улучшать язык?
Но все это имхо поздно, да и такие фундаментальные вещи надо дизайнить при создание языка
Нет, я искал. Нету.
а что там, не так?
Люди всегда будут ныть из-за того, что им приходится вырабатывать новые привычки.
А вообще изменения заебись, как бы они в конечном итоге не выглядели.
Джва года ждал такого, тупо меньше всратного кода набивать же:
https://go.googlesource.com/proposal/+/master/design/go2draft-contracts.md#map_reduce_filter
Сейчас набигут годети, которые годами кричали, мол, дженерики нинужны, и переобуются, мол, какие пиздатые дженерики в го.
>Но это справедливо если ответ достаточно быстро вычисляется. А если нет?
Тогда просто разбиваешь сложную ёбу на дохуя блоков и их в дохуя промисов. Итерации тоже в промисы.
Все так, как до недавного кричали что `go get` пиздат и больше ничего не нужно.
А, еще что GOPATH это норм, ага.
Есть такая пизданутая черта у гошного коммьюнити.
>Сейчас набигут годети, которые годами кричали, мол, джене
штука в том, Анон, что на 10 шумных годетей приходятся таки 90 адекватов, которые слушают вайн хейтеров (и попивают смузи).
>Братишка, ну так чего спешишь мнением своим делиться?
Каким мнением? Перечитай еще раз два предыдущих поста.
>чтобы оно текущую концепцию языка не поломало.
Опять же, перечитай предыдущий пост.
>Go 1 and Go 2 code must be able to interoperate in programs with ease.
Interoperate - значение знаешь? То есть это будут по факту два разных языка с интеропом между ними. Ровно то, о чем я говорил, причем походу даже хуже, чем с пи3.
Впрочем, чего еще было ожидать от гугла с его дарт-клоунадой. Алсо, самое смешное, что все нормальные люди с самого начала говорили: вы сделали говно, вы тупые мудаки, сделайте нормально и потом релизьте. Нет, пайк уперся (потому что тупо не умеет компиляторы писать, лол), а теперь спустя эн лет после релиза они все будут переделывать. Рукожопие как оно есть.
Ни для чего серьезного го не годится. Лет через 10 можно будет на него посмотреть, сейчас это - игрушка для мамкиных блокчейн-стартапиров и двух с половиной команд, которым вместо python+c хочется нескучных обоев. Увы.
>Тогда просто разбиваешь сложную ёбу на дохуя блоков и их в дохуя промисов. Итерации тоже в промисы.
Как это бывает в реальности - хер пойми где эта сложная йоба окажется в коде. Поэтому асинхронщина в одном потоке может идти лесом сразу
>Ни для чего серьезного го не годится.
Действительно. На нем же написаны только несерьезные ethereum и docker
>игрушка для мамкиных блокчейн-стартапиров и двух с половиной команд, которым вместо python+c хочется нескучных обоев
>ethereum и docker
Лол. Нищий тупой двачер считает себя лучше людей, которые создают и управляют айти-компаниями.
> Ни для чего серьезного го не годится
То есть Prometheus, CockroachDB, Kubernetes это не серьезно, DropBox просто так написали 1.3 ляма строк на го, а Microsoft просто так сама пишет порт для windows/arm архитектуры и уже уверенно начинает разрабатывать прикладной софт на нём?
Попробуй хоть иногда из своего манямирка вылезать.
>>254979
Тренд восходящий, не надейся. Хайп уже прошел, на го написано огромное количество серверного софта, так что влажные мечты о его смерти, к сожалению для тебя, хейтерок, уже не осуществимы.
> Microsoft просто так сама пишет порт для windows/arm архитектуры и уже уверенно начинает разрабатывать прикладной софт на нём?
у них же сишарп есть, нафига им го?
>То есть Prometheus, CockroachDB, Kubernetes это не серьезно
Да, эти баззворды-обертки над jail/chroot не серьёзны.
Саша, ты?
стагнация
> Остальным ответ очевиден, имхо.
ОЧЕВИДНЫ такие вещи только сектантам. У адекватных технарей для простых вещей есть простое и понятное объяснение.
Понятно, что хуже от знания какого-нить Хаскеля не будет, но вот практическая польза так же не очевидна.
Практическая польза в том, что ты сегодня даже форму на реакте не нашлепаешь без понимания основ ФП. Вылазь уже из танка или не вылазь, мне похуй.
>Вылазь уже из танка или не вылазь, мне похуй.
тааак, а теперь скажи: ты понимаешь разницу между "основами ФП" (в которые сектанты записывают всё подряд, вплоть до const в C) и изучением Хаскеля или другого ФП языка?
Для форм на реакте ВНЕЗАПНО нужен JS, и понимание first class functions, а вот Хаскель -- не нужен.
>Если упомянул х-ль ДОЛЖОН ВЫУЧИТЬ, Я СКОЗАЛ
сосачеры не меняются.
Ещё раз, для тех кто в танке. Для понимания функций как параметров других функций и прочего Map, Filter, Reduce на JS нужно учить (внезапно!) не х-ль , а JS.
Вопрос сектантам: нахуя ж учить ФП языки программирования?
Нафига нам твой говно-жс, который дрочится в одном процессе/потоке с туевой тучей лапши из калбэков, промисов, когда есть божественный само-асинхронный ГО?
>сосачеры не меняются.
Действительно.
>Ещё раз, для тех кто в танке.
Так и будешь сам с собой разговаривать?
>нахуя ж учить ФП языки программирования?
Чтобы писать более лучший код. Твой вопрос звучит как "нахуя учить ООП" в 90-ом году. На эту тему столько всего уже везде написано, что ты либо совсем нюфаня, либо пытаешься в троллинг и наброс на вентилятор. В любом случае, мне похуй: не хочешь - не учи, твоя жизнь, мне на нее насрать, понимаешь ты это?
Понятно что го для бэкенда хорош и совершенно нормально со скриптов переписать на го свой проект и получить профит. Но какой смысл слазить с няшных засахаренных скриптов, чтобы идти на дядю писать ему if != nil ???
>>255142
Docker работает и на винде, там нет chroot/jail, это уже давно все не обёртка, а де факто доминирующая технология. А CockroachDB и миллионы строк кода у дропбокс хейтеркам лучше игнорировать.
Обзови огромный доминирующий проект обёрткой и пытайся всех убедить что это не серьезно - задетектируй в себе зашоренного хейтерка с горящей от го и проектов на нем жопой. Что же тогда на вашем любимом расте даже баззвордов таких нет?
Алсо, забыл про Graphana, да.
Как же все таки больно хейтеркам от тотальной доминации гошечки в его нише и огромных темпах роста. Если бы го не было, его нужно было бы придумать только для этого. Наблюдать за горением ограниченных, завистливых, тупых ублюдков, подписывая уже 25-ый инвойс одной европейской конторе, пишущей бекенд исключительно на го - бесценно. А если потом ещё заглянуть в почту, на которую постоянно пишут HR с вакансиями для гоферов, то ещё смешнее становится.
Вылезайте уже из манямирка. В 2014 году, когда я начинал писать коммерчески на нём, когда только появлялся докер, который действительно был больше похож на обёртку - да, тогда было стрёмно.
А сейчас он уже в топ-10 и совсем не собирается оттуда слазить, а совсем наоборот. Ну питон, конечно, лучше тоже выучить, всякие ML штуки, анализ данных и автоматизация деплоя (привет ансибл) на нём.
Вот у меня же не болит срака от доминации питона в его сферах, я просто выучил, беру и использую. Так нелья, что ли?
Блять, возвращайся в свой петушиный угол на хаброхабре, сойбой.
Лол, нормально у местного шизика подгорает.
>на вашем любимом расте
Лол, его растеры так довели, что они ему теперь везде мерещаться. Валидольчику выпей, шиз.
>огромных темпах роста
>хайп прошел, второй год популярность падает СТАБИЛИЗИРУЕТСЯ
))
Короче сидел выбирал фпшный-околофпшный язык, чтобы бекенд писать, да и вообще знания подтянуть я реакт.джс фроентендер, но и ноду знаю, уже неделю листал всякие скалотреды, ваш тред, дискуссии на разных форумах про бекенд на этих языках, смотрел синтаксис, читал особенности, смотрел количество вакансий... А ПОТОМ БЛЯ КАК ВСПОМНЮ, ЧТО Я МОГУ ВСЕ ЭТО ЖЕ ДЕЛАТЬ НА НОДЕ, ЗА БОЛЬШИЕ ДЕНЬГИ С БОЛЬШИМ ВЫБОРОМ ВАКАНСИЙ И КАК ЗАОРАЛ СНАЧАЛА С СЕБЯ, А ПОТОМ С ВАШИХ НЕДОЯЗЫКОВ
лол жиза
>Я МОГУ ВСЕ ЭТО ЖЕ ДЕЛАТЬ НА НОДЕ
Можно и на ассемблере бэкенд писать. Но зачем?
JS на бэкенде это настолько убогое зрелище, что в больших проектах его стараются не использовать.
Забавно, что ты привел в пример NodeJS, создатель которого призвал отказаться от ноды в пользу GO.
>А ПОТОМ БЛЯ КАК ВСПОМНЮ, ЧТО Я МОГУ ВСЕ ЭТО ЖЕ ДЕЛАТЬ НА НОДЕ, ЗА БОЛЬШИЕ ДЕНЬГИ
Очередной гуманитарий-программист решает, что именно он выбирает технологии, а не бизнес.
Реальность такова, что лучше пойти в пхп контору чем нод.жс, во первых потому что это говно совершенно невозможно нормально сопровождать калбэк-спаггети-хелл, а при ошибке, ты утопишь целый процесс, во вторых, сразу ясно что язык притащили на хайпе фронтендеры, которые дальше своего фронта не видели и код там будет соответствующий. код на в ноде и так ужасен, а тут его еще пищут малоопытные люди, которые бэкенд раньше и не видели
Так что добровольно идти и потом кусать свои локти, потому что у тебя еще 2010 год и ты опоздал на хайпе-поезд ноды - ну не знаю...
я знаю что ты тупо тролль и у тебя бомбит от го, потому что он решает те же задачи ноды, но безболезненно. Поэтому можешь не отвечать
Он подкуплен гуглоблядями. Такие люди за деньги и за брейнфак в продакшене агитировать будут.
Поезд с gовном летит под откос
Жалобно плачет разраб-хуесос
Лучше б писал он фронтенды на вью
Чем плотно сидел на Гугла хую
Ну, или возможно, просто предположить если, Го решает асинхронные задачи лучше чем нода (за счет чего она в свое время выстрелила верните мне мой 2009)
С точки зрения бизнеса - удобно конечно иметь фронт и бэк разработчика по одной цене, не спорю. Но нахера за это добровольно топят сами программисты?
>Но нахера за это добровольно топят сами программисты?
Потому что проще кричать, что Нода классная, чем переучиться с нее.
У ноды кризис какой-то? Откуда такое засилье индиго-программистов с маня-победами? хотя, судя по сленгу и стилю, это может быть вообще один и тот же дебил? Не верю что на ноде все такие одарённые
Под кроватью у себя семенов поищи, долбоеб.
Когда слышу фулстак, сразу перед глазами конторка на 10 человек со скучным формошлепством на заказах.
А на галерах с сотнями макак в вольерах формошлепством не занимаются, нет
Мимодевелопер из уютной продуктовой конторки на 7 человек
>Новый же механизм вводит контекстно-зависимый "прыжок", похожий одновременно на исключения, на defer, на break и на goto. И хотя данный подход сильно отличается от исключений, и больше похож на goto,
Хороший механизм, одобряю, самое то для Пщ.
Го - просто невыносимый провал. Да, идея с асинхронщиной хорошая и идея вообще продукта, но как его сделали, это ппц. Так еще никто не посылал программистов на... Самое забавное, что они даже комьюнити выдрессировали посылать всех инакомыслящих на...
>Го - просто невыносимый провал.
Авторитетненько.
>Да, идея с асинхронщиной хорошая и идея вообще продукта, но как его сделали, это ппц.
ППЦ сдилали, Ни магли сдилать в сто разов лучшее!!!11
>Так еще никто не посылал программистов на
При чем тут истерички?
Обосрался с проверки ошибок. Расскажите годаунам про finally и using в нормальных языках.
Вкатиться несложно. Проблемы возникнут, только если у тебя ООП головного мозга.
Годные материалы на русском?
но ведь ООП - самое логичное и удобное развитие ЯП за всю историю. Как можно уйти от этого?
Я только вкатываюсь в кодинг, го хороший язык для первого знакомства?
Интересует в первую очередь возможность эмиграции по работе.
https://www.opennet.ru/opennews/art.shtml?num=48991
Го все? Его заменит недавно анонсированный Дарт2 с дженериками и исключениями?
Мы на одной стороне!
К сожалению нет, го показал свое отношение к комьюнити.
Ну нельзя почти 10 лет вменяемому программисту заливать в уши про особый путь, особые ошибки, ненадобность всего и вся, про эту тягомотину с дженериками и менеджера зависимостей и потом, еле как, начать двигаться в сторону реального мира программирования и начать копировать уже устоявшиеся решения, но опять же криво и по своему.
Поэтом только дарт2 бро. Надеюсь под рантайм го сделают компиляцию дарта.
т.е. ты всерьёз предлагаешь переходить на Дарт, успевший сломать совместимость, не имеющий таки кошерного гошного рантайма, да и вообще являющимся "JS без _фатального недостатка_"?
не-не-не, бро, столько смузи мне не выхлебать
>успевший сломать совместимость
Где? Не утрируй, там нормальная миграция на 2.0
Переход на го2 с тем что нарисовали - тоже не будет безболезненным. Но язык должен развиваться, а не быть подобным "го", где раз в 10 лет завозят подобие goto для обработки ошибок.
>не имеющий таки кошерного гошного рантайма
Кто сказал что он там такой прекрасный? Я вот слышал обратное. В любом случае, если бы он был так хорош, то уже сделали накатали какой-то транслятор из других языков или из новых, с лучшим синтаксисом.
>"JS без _фатального недостатка_"
Причем тут js? как там в 2011? Дарт имеет отношение к жс так же как и котлин.
>не-не-не, бро, столько смузи мне не выхлебать
Ты реально с 2011. Но я понимаю что у тебя просто бомбит, хотя дарт ппц как консервативно выглядит, в сравнение с теми же го, растом, котлином, свифтом. Там даже порядок "Тип переменная" на классическом месте, какой смузи?
Окей, дитя 2018-го, я готов тебя слушать: Чем в бекенде Дарт2 кошернее Го2?
Без тралинга и саркезма, просто поясни на примерах. Ну там вот httprouter на go не удобный, а на Дарт смотри какой удобный. Вот у тебя в Go какая ебала из каналов и горутин, а в Дарт смотри пример какая охуенная конкурентность. Готов тебя слушать
Ты нормально для начала сформулируй, чтобы тебя хотя бы понял.
Ты спрашиваешь есть ли в дарте асинхронное программирование - да есть и конкурентность - в виде изолятов, которые сообщениями обмениваются как и во всех языках это уже давно все есть. В go даже без костылей свой поток не подымешь, приходится на каждый чих супер-микро-сервис пилить.
А теперь ты мне скажи, есть ли в го исключения, дженерики, ООП, коллекции...?
Дженерики таки будут, а с ними и дженерик-коллекции.
ООП -- вопрос веры: Как способ объеденить данные и методы работы с ними, и полиморфизм через интерфейсы всегда было. А как наследование, и абстрактные фабрики конструкторов виртуальных объектов -- ну нах.
Теперь вопрос: чем хорош Дарт вообще, и лучше Го в частности? конкретно
>ООП -- вопрос веры
ООП - это вопрос безопасного кода путем инкапсуляции данных, и decoupling объектов путем полиморфизма.
go - это процедурно ориентированный язык со всеми недостатками.
>дарт против го
>моча против говна
Самый дегенеративный тред на доске, просто квинтэссенция всего /pr, лол.
>Теперь вопрос: чем хорош Дарт вообще, и лучше Го в частности? конкретно
>исключения, дженерики, ООП, коллекции...?
пакетный менеджер, потоки, флаттер который будет GUI в новой ОС вместо андроид и для пк, а пока кросс-мобильная разработка без абстрактных мостов.
Удобная разработка gui на процедурном языке гуи ужасен
язык впитал все лучше из джава-си-подобных языков, с минимум фантазий, что очень удобно.
что тебе мешает безопасно инкапсулировать данные в Го и развязывать через интерфейсы?
Ну давай проверим на вшивость как для языка 2018 года. Optional/Maybe есть? ADT есть?
А есть такой??
>на вшивость как для языка 2018 года. Optional/Maybe есть? ADT есть?
Ты сейчас больно гоферам только делаешь.
GUI - это графический пользовательский интерфейс, а не то, что ты там себе придумал.
Даже интерактивная презентация, нарисованная в PowerPoint - это GUI, потому что у нее графический, а не какой-то иной интерфейс взаимодействия с пользователем.
Как запустить го?
Вот я скачал его, а как запускать?
Просто я думал, что я как на паскале открою файл и в нем буду писать код..
Пишешь код в тхт файле, сохраняешь его с расширением .go, затем запускаешь go build имя_файла.go, получишь программу - её и запускай.
Извини за тупые вопросы, но где запускать go build?
И на чем, например, ты пишешь код?
В блокноте/ворде?
На сайте golang.org посмотри инструкции по установке и пользованию. Когда хоть как-то поймешь, то качай IDE (vscode или jetbrains goland) и там пиши программы.
>GUI
Не нужно мешать говно и палки, чтобы оправдать свое унижение. Если браузер это GUI, потому что это графический элемент твоей ОС, которая предоставляет тебе GUI и ты можешь взаимодействовать с ним локально, то веб-сайт с которым ты взаимодействуешь уже не является частью твоей графической среды, он предоставляет такое понятие как веб-интерфейс.
Все правильно говорит, если программа рисует внутри какой-то свой UI - это не часть общего графического юзер интерфейса например GUI рисует тебе командную строку (терминал), от этого командная строка не становиться GUI
есть всего три вида интерфейсов (если не рассматривать войсо\vr интерфейсы взаимодействия) - cli, tui и gui.
Ну или у тебя GUI в ОС может быть в 256 цветов, а браузер (который тоже 256 цветом) рисует тебе графику (веб-интерфейс) в 32 миллионов цветов (как обычно).
Тебе, видимо, трудно понять. Все эти GUI, CLI... это интерфейсы взаимодействия с твоим железом, веб сайт, в общей форме, не является интерфейсом взаимодействием с твоей аппаратурой
Ты согласен с утверждением?
>GUI рисует тебе командную строку (терминал), перестает от этого командная строка быть GUI?
>Лол.
Лол в том, что такие как ты скоро начнут рисунки на обоях называть графическим интерфейсом, бегом читать что такое user interface вообще и что такое вообще interface.
С большим трудом я смог сделать так, чтоб по команде run у меня появлялся хелло ворлд в цмд, но когда я прописываю ./имяфайла, то у меня пишет, что . не является внутренне или внешней командой, а как я понял, должен был появится хелло ворлд..
Вместо go run ./helloworld.go используй go build ./helloworld.go и тогда в папке $GOPATH/bin/ появится файл helloworld - то есть твоя программа.
я фиг знает, что ты и как грузишь, но например у http.Client и http.Server есть поле Timeout. И это одна из причин не пользоваться default
> Вы заебали уже, дохуя где это есть, от кложи до эликсира.
в хуёже и в хуексире, бля
Ты хотя бы Котлин бы вспомнил, а не свою никому не нужную ебанину, петушок
Как я понял с видео на Ютубе, он интерпретируемый. Но у Гугла не получится, они слишком далеко метят, какие-то фантазёры у них в управлении.
Ты не поверишь...
мимо
Блядь, ну даже в жс-треде таких дебилов как тут нет, как Пайку это удалось?
Как в го принято тестить ошибки? Нашел https://github.com/bouk/monkey чтобы можно было мокать методы по типу os.Exit, это норм?
Да и вообще, почему такая беда с остальным? Тесты на ифах в 2018... Из-за этого толком непонятно, сколько вообще тестов выполнено, ну хотя бы коверейдж неплохой завезли.
Что значит тестить ошибки?
Если ты вообще про тесты, то есть несколько либ для этого, самая популярная testify.
Имею в виду, что надо же как-то заставить функцию выбросить ошибку, чтобы if стейтмент проверить. Например, эта у меня файл открывала, поэтому я легко мог передать другой путь, чтобы специально ошибку получить, но вот будут другие, где так не получится.
> testify
Да, то что нужно. Пиздец себя дураком чувствую, почему-то гуглил про тесты на го, а эту либу пропустил/не встретил, зато всякое говно на 0-1000 звезд откопал.
Ты же понимаешь, что просто пукнул и даже не объяснил в чем прав?
Статик типизированный язык не может быть интерпретируемым априори. Если ты думаешь что быстрая компиляция и последующий запуск это интерпретация, то ты глупее чем думаешь.
Есть жаба.
он интерпретируемый во время разработки. релизная версия компилируется в нативный код
Недаано на гитхаб гтк заходил, вроде разработкк под го идёт и по сей день.
Где искать документацию?
Ну ты сам посмотри, что ты вбросил. Первый вариант = 72 коммита, второй = temporary fork. С мускулем ситуация такая же. Мне если чо самая концепция дарта норм, но я хотя бы признаю, что серверный дарт на данный момент -- выбор для ебанутых наглухо фанбоев.
> см картинку
> работаешь с настоящим utf-8
А как мне работать с настоящими индексами? Чёт ты хуйню какую-то пизданул, и рад. Пик стронгли рилейтед.
Алсо, богоугодный swift. Размер бинарника ещё посмотри. Go взял и сожрал 2 мегабайта на ровном месте.
у ты монстр. А как ты так пишешь тест в начале?
Вооще гря s.enumerated() возвращяет EnumeratedSequence<String>, а меж тем стринга сама по себе сиквенция.
> А как ты так пишешь тест в начале?
Так обычно же, это prompt для баша с директорией, типа export PS1="\W \$ " в ~/.bash_profile
> стринга сама по себе сиквенция
Ну да, и нумеруются нормально, а у Go с range придётся поебаться.
>Ну да, и нумеруются нормально, а у Go с range придётся поебаться.
Н у просто эти индексы это Int, по ним ты в саму строку не сможешь обратиться. Там тоже своя ебатория.
так это как раз правильные индексы, если бы там было 0, 1, 2, 3, то вот тогда как раз я хуй знает, как с этим работать. мимодругойанон.
>Зачем он мне, лол.
Рассказывать какие-то умные штуки для русни. Редко тут пробегает анон, который много знает
Я первый день сегодня вижу Golang, лол. Думал, чем бы развлечься, решил глянуть, что за язык такой, на котором средняя зарплата выше, чем у меня. Зашёл в тред, посмотрел литературу, увидел обсуждение про строки, решил пример состряпать, и сравнить.
Самое интересное, что пример на Golang компилится и выполняет куда быстрее, чем на swift'е. Вот это и правда загадка. Пожалуй, и правда стоит поколупать. Пойду, попробую какой-нибудь проект пореальнее сделаю, да сравню.
>Самое интересное, что пример на Golang компилится и выполняет куда быстрее, чем на swift'е
Попробуй Foundation не тянуть
Почему? Просто я глянул, что на голанге зарплаты выше по больничке, и подумал, а чего не присмотреться бы.
Сам в том же положении себя обнаружил, айосник. Но какой же, блядь, го убогий после свифта. Для себя решил, что нахожусь в самом пиздатом технологичнском стеке, посмотрим что там дальше будет.
C мускулем по-лучше будет
https://pub.dartlang.org/packages/sqljocky5
Если нужно побольше коммитов:
https://github.com/xxgreg/dart_postgresql
Но в целом трудно не согласиться что выбора не очень много, тем более что к топовым языка драйвер вообще пишут сами DB.
Язык относительно новый (если смотреть с релиза 2.0), но не все так критично.
У Wrike бэк разве не на дарте? В ру-слаке сидят разработчики, спроси у них, если любопытно (сам я только играюсь конечно)
Этот порвался, несите следующего гофера.
Ну да, может и убогий, но если решает задачи, да за это ещё и платят - можно и привыкнуть. Попробую что-нибудь серьёзнее на нём сделать, посмотрю на его убожество воочию.
Гоганы, а накидайте, пожалуйста, примеров тасков, которые вы решаете на работе. Прямо из джиры с пылу-жару
Жаба со строгой типизацией, это в первой строчке на Википедии написано.
Го при всех его плюсах очень специфичен. Это не хуже, чем начинать с js'а, например - но я бы посоветовал что-нибудь более классическое. Java, C++ или, прости господи, PHP (сам я начинал с pascal/delphi, но это было довольно давно). В-общем, C-подобное, нормально развитое, с классическим ООП и без дополнительных взрывающих мозг концепций навроде зелёных потоков (новичку оно не надо).
Хотя, с другой стороны, гугл пропагандирует го, как максимально простой язык, из готорого вырезали всё ненужное.. Я даже засомневался. Если продожишь с го и выживешь, то напиши рассказ про свой опыт лет через 5, интересно будет прочитать.
Чего тебе, дибилушке не хватает? Говори не стесняйся.
Go второй год в лидерах по размеру заработка разработчиков.
https://www.theregister.co.uk/2018/09/07/software_developer_salaries/
>According to the survey data, Go, Scala, Redis, and React are the technologies most associated with high salaries.
PHP, ожидаемо, в жопе.
>And PHP, it seems, is correlated with lower salaries.
Короче, пока додики пиздострадают, умные люди освоили перспективный язык и хорошо зарабатывают.
Ты в США живёшь? В этой стране заработок у сусликов чуть меньше чем нихуя, а пхп-сеньёры шикуют за 100-200 всё равно меньше 3000$ лол
Чем зеленые потоки разрывают мозг? Если объяснить концепцию в изначальной форме, то это просто распределение задач на готовом наборе обычных потоков. Го тем и хорош, что в нем нет сложных концепций.
Ну але, епта
Че пацаны, эксепшены?
Ты совершаешь классическую ошибку профессионала: хорошо разбираясь в какой-то области и обладая определённым опытом, ты видишь многое простым и очень легко понимаешь многие концепции просто за счёт бекграунда.
Новичку бы понять смысл таких вещей как "цикл", "ветвление" и "функция". Потом "объекты" и "классы". А ты сразу предлагаешь ему целую область многопоточных вычислений запихать в голову.
Приди к школьнику и начни ему рассказывать про числовые ряды и их сходимость. Это всё очень просто, но без знания сложения, умножения и каких-нибудь степеней он этого не осилит.
Го настолько убог, что на его костыли, даже абстракцию никакую не повесишь, чтобы решить его проблемы.
Всем if err != nil {} в этом чатике
любой модный язык, где исключения НИНУЖНЫ у ог в этом смысле ровно настолько же. в расте ничуть не лучше
В расте лучше, в свифте лучше, в джаве лучше, да где угодно лучше. Удачи с переписыванием всего под вторую версию, кстати :3
>даже абстракцию никакую не повесишь
Как это не повесишь.
На него можно повесить другой синтаксис\язык поверх, который будет транслироваться.
Го отличная платформа, чтобы не заморачиваться со сборщиком мусора и многопоточностью, и кросплатформенностью. А так же на выходе иметь статичный бинарь.
это "goto" в go2, который придумали, не решает проблем с ошибками никак. Если тебе надо решить все ошибки в одном скопе, то скорее всего тебе уже нужен фатал или же ты начнешь городить простыню из if, что будет доставлять, потому что даже в си гото внизу пишут, а не сверху этот трешь в функции читать.
Да хули бы нет, поработай с докером, напиши пару простых сервисов,чтобы один ходил в другой, оберни их в докер, поднимай вместе и эксплуатируй. Можешь книжку по микросервисам почитать от О'Райли.
что нужно, чтобы стать полноценным бекендером на го? Что написать, чтобы понять как писать на го и выложить на гитхаб, чтобы работодатель сказал "ай маладца". Алгоритмы и структуры знаю, писал на жаве и с.
Напиши интернет-магазин для каких-нибудь товаров. Товары храни в nosql базе данных. Разбей приложение на микросервисы, к примеру: сервис работы с бд, сервис админа ( то есть добавление товаров и тому подобное), сервис для работы с пользователями( показать товар, добавить в корзину и тд). Для взаимодействия сервисов используй gRPC.
Спасибо тебе, анон
interface {}
> Товары храни в nosql базе данных.
> микросервисы
>Для взаимодействия сервисов используй gRPC.
Больше раздутого дерьма! Вы же очередной Facebook изобретаете блядь.
Пиздец с такими тестовыми, я теперь понимаю почему Windows 10 на SSD грузиться почти минуту, а macOS Mojave еще больше. Лютый ужас да и только. Поколение безликого стада, а не программистов.
>У кого-то руки кривые. Винда за секунд 15 грузится с нормального ссд
При том что порезанная от дерьма линуха у меня грузится за 2 секунды. Без всякого говна на С++ и Java.
>Нормальное тестовое, как раз чтобы потренировать все веяния в разработке на го.
Какие нахуй веяния? Вы что поехали головой, уважаемый анон?
Я понимаю научиться с каналами работать, с сетью показать работу, и другое системное, ну может чистый protobuf, но не блядь баговый gRPC разработанный дебилами для даунов.
Какие нахуй noSQL? Они не нужны в 99,999% случаев нахуй НИКОМУ(!). Поиграться - максимум, да базы без схемы данных! Ого, ничего себе. Конечно же на реляционке такое не реализовать(!). Давайте лишимся транзакция человеческих, согласованности, научим целое поколения срать на информацию. Для задачи - построить магазин, и обслужить клиентов хватит с головой православного PostgreSQL, не нужно плодить сущностей лишних.
Нужно масштабирование и шардирование - ебетеся с кластерами и Master-Master схемами с правильным человеческим подходом, а не блжад изобретаете хуйню очередную на базе Кассандры для шизофреников конченых. Есть еще крутейший Microsoft SQL, но всему свое время.
Нужен хороший RPC - делаете его на базе человеческого Protobuf и HTTP или простых сокетов самостоятельно.
Тред выше не смотрел, но сразу придирусь к твоим словам:
> баговый gRPC разработанный дебилами для даунов.
Я не думаю, что в google сидят дебилы или что они разрабатывают для даунов.
> Какие нахуй noSQL? Они не нужны в 99,999% случаев нахуй НИКОМУ(!).
После таких высказываний можно и заканчивать. noSQL по понятным причинам намного проще масштабируются это раз, позволяют хранить неструктурированные данные - это два. Не говоря уже о том, что в мире распределённых систем все представления о согласованности сильно видоизменяются (читай про саги). А транзакции даже и в монге недавно появились.
Подытожу, ещё один хейтер, который считает, что все вокруг дибилы, понавыдумывали хрень, а он один шарит. Видел я людей с такой точкой зрения в реальной жизни, код зачастую пишут вообще отвратительный.
Да не нужно таких сложных штук для тестового. Просто написать производительный веб-сервис, который вычисляет, например, N-ый член какого-нибудь числового ряда, с кэшированием результатов в бд, автотестами и длинной арифметикой.
За глаза хватит.
Я же просто привел пример, типа похожее на реальное приложение. Поэтому и микросервисы с gRPC и докером
> noSQL по понятным причинам намного проще масштабируются это раз, позволяют хранить неструктурированные данные - это два.
1) Охуенно так масштабируются - ценой крови программистов. Охунное масштабирование уровня /pr/
2) Удивительно, но хранение данных без схемы - этап давно пройденный. В PostgreSQL том же уже давно есть JSON и XML колонки. Продолжать здесь не буду. Просто не вижу смысла.
>>271963
>Не говоря уже о том, что в мире распределённых систем все представления о согласованности сильно видоизменяются (читай про саги)
Охуенно так видоизменяются. Попробуй, мразь, в банке поставить свое говно уровня MongoDB. Пусть клиент А дважды снимет со своего баланса денежку, пусть банковские ведомости не сохранятся сразу, хули же видоизменились же по твоему профессиОНАЛЬному велению. Тебя нахуй убьют по стене на следующий день.
>>271963
> А транзакции даже и в монге недавно появились.
Нихуя себе, а параграфом выше ты топил за видоизменения понятий согласованности данных. Ты прост таки как истребитель Су-27... Еще в Кобру Пугачева тут исполни.
И последнее, вишенка на торте.
>Я не думаю, что в google сидят дебилы или что они разрабатывают для даунов.
Ну конечно не дебилы. Ведь не дебилы пишут Android который на топовых телефонах тормозит, тормозит на их пикселях с 4 гб ОЗУ, ведь нужно уже 6 гб сразу, а давайте 8 гб хули.
Не дебилы, ведь они же могли посмотреть какой тип параметра что они передавали при сериализации структуры данных в библиотеке C gprc. Не дебилы, ведь мне ЛИЧНО этим мразям не пришлось отправлять позорный для них фикс.
Итого:
Гугл набрали даунов, который мыслить дальше дебильных интервью не могут. Они мыслят шаблонно и топорно, а это - ужасно. Пайк один из немногих адекватов которые там остались в режиме: "мы тебе дадим бабки, а ты сделай язык для наших макак".
>>271963
>Видел я людей с такой точкой зрения в реальной жизни, код зачастую пишут вообще отвратительный.
Ну по я по крайней мере не буду вставлять 100500 библиотек и переписывать в коде ICMP, чтобы реализовать задачу которая запускается раз в 1 минуту типа попингуй тот хост. Я запущу сторонним процессом /sbin/ping с нужными мне параметрами, и подожду завершения, и если надо - считаю stdout/stderr. И чтобы время получить точное с удаленного сервера я воспользуюсь ntpdate.
В этом и разница между нами, хомячок. Я не пишу нахуй не нужный код.
> noSQL по понятным причинам намного проще масштабируются это раз, позволяют хранить неструктурированные данные - это два.
1) Охуенно так масштабируются - ценой крови программистов. Охунное масштабирование уровня /pr/
2) Удивительно, но хранение данных без схемы - этап давно пройденный. В PostgreSQL том же уже давно есть JSON и XML колонки. Продолжать здесь не буду. Просто не вижу смысла.
>>271963
>Не говоря уже о том, что в мире распределённых систем все представления о согласованности сильно видоизменяются (читай про саги)
Охуенно так видоизменяются. Попробуй, мразь, в банке поставить свое говно уровня MongoDB. Пусть клиент А дважды снимет со своего баланса денежку, пусть банковские ведомости не сохранятся сразу, хули же видоизменились же по твоему профессиОНАЛЬному велению. Тебя нахуй убьют по стене на следующий день.
>>271963
> А транзакции даже и в монге недавно появились.
Нихуя себе, а параграфом выше ты топил за видоизменения понятий согласованности данных. Ты прост таки как истребитель Су-27... Еще в Кобру Пугачева тут исполни.
И последнее, вишенка на торте.
>Я не думаю, что в google сидят дебилы или что они разрабатывают для даунов.
Ну конечно не дебилы. Ведь не дебилы пишут Android который на топовых телефонах тормозит, тормозит на их пикселях с 4 гб ОЗУ, ведь нужно уже 6 гб сразу, а давайте 8 гб хули.
Не дебилы, ведь они же могли посмотреть какой тип параметра что они передавали при сериализации структуры данных в библиотеке C gprc. Не дебилы, ведь мне ЛИЧНО этим мразям не пришлось отправлять позорный для них фикс.
Итого:
Гугл набрали даунов, который мыслить дальше дебильных интервью не могут. Они мыслят шаблонно и топорно, а это - ужасно. Пайк один из немногих адекватов которые там остались в режиме: "мы тебе дадим бабки, а ты сделай язык для наших макак".
>>271963
>Видел я людей с такой точкой зрения в реальной жизни, код зачастую пишут вообще отвратительный.
Ну по я по крайней мере не буду вставлять 100500 библиотек и переписывать в коде ICMP, чтобы реализовать задачу которая запускается раз в 1 минуту типа попингуй тот хост. Я запущу сторонним процессом /sbin/ping с нужными мне параметрами, и подожду завершения, и если надо - считаю stdout/stderr. И чтобы время получить точное с удаленного сервера я воспользуюсь ntpdate.
В этом и разница между нами, хомячок. Я не пишу нахуй не нужный код.
>типа похожее на реальное приложение.
Типа похожее на тот кусок говна, который сейчас принято писать. Поправил, не благодари.
> Я не думаю, что в google сидят дебилы
Почему ты так не думаешь? Я вот например могу вспомнить их провальный Dart. А параллельно с ним гуглы пытались написать что-то вроде jit-компилятора для питона, но признали что провалились и полностью переключились на Го. А еще их с треском провалившийся хостинг гит-проектов (уже забыл как он назывался)
> noSQL по понятным причинам намного проще масштабируются
Нууу, нет.
https://www.youtube.com/watch?v=eSaFVX4izsQ
> позволяют хранить неструктурированные данные
Что вроде "анальный секс это хорошо потому что этот интерфейс есть у любого человека". На практике при создании интернет-магазина или платежной системы и тд у тебя всегда будут отношения между данными.
> Почему ты так не думаешь?
Потому что их веб-сервисы стабильно работают под сумасшедшими нагрузками, которые мы не можем себе даже представить и обладают при этом огромной сложностью. Тот же хром, как бы я его периодически не хейтил - крайне сложный механизм, далеко обогнавший по сложности какой-нибудь линукс.
А ещё потому что очень легко считать, что все вокруг пидорасы, а ты - Д'Артаньян и, не имея опыта и навыков, делать какие-то выводы о чужой работе.
Это называется "эффект Даннинга-Крюгера", если проще - если человек долбоёб, то он не способен даже понять этого, потому что он долбоёб. Для примера можно взять анона из >>271998 которые убеждён, что в гугле работают дауны, которые мыслят шаблонно, только почему-то получают в 20 раз больше, чем он и задачами занимаются на порядки сложнее. Я примерно то же самое, чувствую, когда еду с такстом, который начинает рассуждать о политике ("а чего тут думать, отобрать и поделить" (с)).
Что же касается Dart'а, провальных проектов и прочего, то непонятно, почему ты делаешь из неудачных проектов вывод, что они - плохие. Андроид всё ещё самая распространённая мобильная ОС, хром - самый популярный браузер, гугл - самый популярный поисковик, а youtube - видеоплатформа. В сухом остатке гугл всё ещё тотально доминирует, не забывая развиваться в новых областях (сейчас они активно лезут в CV, DataMining и прочее машинное обучение). А неудачные проекты у всех есть, провалов нет только у тех, кто не делает ничего.
> Нууу, нет.
Как раз-таки да, потому что отсутствие связей между сущностями решает целую кучу проблем при масштабировании, это концептуальное упрощение. Тут есть тонкость в том, что noSQL - это очень расплывчатое понятие, туда входит куча нереляционных и прочих не-* баз данных, все со своими особенностями.
> Что вроде "анальный секс это хорошо потому что этот интерфейс есть у любого человека". На практике при создании интернет-магазина или платежной системы и тд у тебя всегда будут отношения между данными.
Никто кроме фанатиков и не утверждает, что это серебряная пуля. Существуют определённые задачи, требующие или работы с неструктурированными бд, очень быстрого доступа по ключу и т.п. - и под каждую есть свой оптимизированный под задачу инструмент. А если ты будешь для интернет-магазина использовать nosql просто потому что модно - то логично и справедливо получишь проблем.
Тут на двачи все мы тут лучше всех знаем и моим словам верить никто не обязан, но я далеко не первый год работаю и руковожу разработкой - и видел всякого. Был среди "моих" разработчиков и такой, которому всё всегда было "а, понятно", "да тут всё понятно же", "да тут долбоёбы понаписали явно, хуйня какая-то", только вот какую задачу ему не дай - постоянно куча косяков возникала. Просто потому, что "да тут долбоёбы понаписали явно, хуйня какая-то" на самом деле должно означать "мне непонятно, зачем тут это сделали, но явно не просто так. Надо разобраться". Распространённое когнитивное искажение, начинаешь считать, что всё, что непонятно или странно - оно неправильно, а все, кто несогласен - идиоты. Только потом оказывается, что всегда находится кто-то умнее и .
> Почему ты так не думаешь?
Потому что их веб-сервисы стабильно работают под сумасшедшими нагрузками, которые мы не можем себе даже представить и обладают при этом огромной сложностью. Тот же хром, как бы я его периодически не хейтил - крайне сложный механизм, далеко обогнавший по сложности какой-нибудь линукс.
А ещё потому что очень легко считать, что все вокруг пидорасы, а ты - Д'Артаньян и, не имея опыта и навыков, делать какие-то выводы о чужой работе.
Это называется "эффект Даннинга-Крюгера", если проще - если человек долбоёб, то он не способен даже понять этого, потому что он долбоёб. Для примера можно взять анона из >>271998 которые убеждён, что в гугле работают дауны, которые мыслят шаблонно, только почему-то получают в 20 раз больше, чем он и задачами занимаются на порядки сложнее. Я примерно то же самое, чувствую, когда еду с такстом, который начинает рассуждать о политике ("а чего тут думать, отобрать и поделить" (с)).
Что же касается Dart'а, провальных проектов и прочего, то непонятно, почему ты делаешь из неудачных проектов вывод, что они - плохие. Андроид всё ещё самая распространённая мобильная ОС, хром - самый популярный браузер, гугл - самый популярный поисковик, а youtube - видеоплатформа. В сухом остатке гугл всё ещё тотально доминирует, не забывая развиваться в новых областях (сейчас они активно лезут в CV, DataMining и прочее машинное обучение). А неудачные проекты у всех есть, провалов нет только у тех, кто не делает ничего.
> Нууу, нет.
Как раз-таки да, потому что отсутствие связей между сущностями решает целую кучу проблем при масштабировании, это концептуальное упрощение. Тут есть тонкость в том, что noSQL - это очень расплывчатое понятие, туда входит куча нереляционных и прочих не-* баз данных, все со своими особенностями.
> Что вроде "анальный секс это хорошо потому что этот интерфейс есть у любого человека". На практике при создании интернет-магазина или платежной системы и тд у тебя всегда будут отношения между данными.
Никто кроме фанатиков и не утверждает, что это серебряная пуля. Существуют определённые задачи, требующие или работы с неструктурированными бд, очень быстрого доступа по ключу и т.п. - и под каждую есть свой оптимизированный под задачу инструмент. А если ты будешь для интернет-магазина использовать nosql просто потому что модно - то логично и справедливо получишь проблем.
Тут на двачи все мы тут лучше всех знаем и моим словам верить никто не обязан, но я далеко не первый год работаю и руковожу разработкой - и видел всякого. Был среди "моих" разработчиков и такой, которому всё всегда было "а, понятно", "да тут всё понятно же", "да тут долбоёбы понаписали явно, хуйня какая-то", только вот какую задачу ему не дай - постоянно куча косяков возникала. Просто потому, что "да тут долбоёбы понаписали явно, хуйня какая-то" на самом деле должно означать "мне непонятно, зачем тут это сделали, но явно не просто так. Надо разобраться". Распространённое когнитивное искажение, начинаешь считать, что всё, что непонятно или странно - оно неправильно, а все, кто несогласен - идиоты. Только потом оказывается, что всегда находится кто-то умнее и .
Андроид хуже айос, хром хуже сафари. Как минимум есть в соседнем лагере кучка людей, которая делает лучше. В остальном согласен.
>Тот же хром, как бы я его периодически не хейтил - крайне сложный механизм, далеко обогнавший по сложности какой-нибудь линукс.
Последствия - кучка CVE каждую неделю, С++ этому способствует только ИМХО. (Браузер)
Последствие такой сложности - по 2 гб на вкладку памяти, и разработчики сами не могут уже понять где что там. (Blink + V8)
И я сейчас говорю только за браузер. Это лютый ужас, который хрен пойми как работает, собирается на моей машине почти 6 часов в режиме Jumbo Build.
В пизду такую сложность. Установил Firefox, который собирается намного меньше (хотя все кричат что Rust медленный в сборке), меньше жрет памяти, и в целом - лучше. Установил параллельно Epiphany (Эпифан, лол) :-) - и там все еще лучше вопреки WebKit.
>А ещё потому что очень легко считать, что все вокруг пидорасы, а ты - Д'Артаньян и, не имея опыта и навыков, делать какие-то выводы о чужой работе.
У меня достаточно навыков и опыта чтобы слать тебя и всех твоих гуглоколлег в жопу, не волнуйся об этом
> Андроид всё ещё самая распространённая мобильная ОС
Что уже привело к весьма интересным последствиям. Люди молятся чтобы это говно не глючило при RAM <= 2GB...
Да и stagefreight оказался сладким, к слову как там Accessibility service поживает?
>хром - самый популярный браузер
Что не мешает мне снести это говно после 4-5 компиляция по 6 часов на Gentoo. Что я с успехом и сделал.
>>272192
>Как раз-таки да, потому что отсутствие связей между сущностями решает целую кучу проблем при масштабировании, это концептуальное упрощение.
В задачах человеческих сфер использования ( не для сайтов где обсуждают кто кого вчера трахнул, или "один другом писю показывает, а ему донатят" ) - в сущностях много зависимостей. Весь твой nosql с потерей данных будет кукарекать в сторонке. Никому нахуй не нужно бизнес терять данные. Kurwa no net.
>Никто кроме фанатиков и не утверждает, что это серебряная пуля. Существуют определённые задачи, требующие или работы с неструктурированными бд,
Вот там они блядь и применяются. Не в сука тестовом задании для магазина ебучего по продаже услуг шлюх явно(!).
>Тут на двачи все мы тут лучше всех знаем и моим словам верить никто не обязан, но я далеко не первый год работаю и руковожу разработкой - и видел всякого.
Я не первый десяток лет. И таких как ты послать подальше успел много. Помогало в 99% случаев.
>Просто потому, что "да тут долбоёбы понаписали явно, хуйня какая-то" на самом деле должно означать "мне непонятно, зачем тут это сделали, но явно не просто так.
Если твой код не может объяснить человек начального уровня, то проблемы у тебя. Нет, именно у тебя. Ни у кого-нибудь другого, а именно у тебя. Я не говорю, что не нужно следовать паттернам структуры и порождения, я говорю о том что не нужно злоупотреблять ебучими абстракциями.
Я говорю о том что бинарник должен решать одну сука задачу, а не миньет делать направо и налево.
>Тот же хром, как бы я его периодически не хейтил - крайне сложный механизм, далеко обогнавший по сложности какой-нибудь линукс.
Последствия - кучка CVE каждую неделю, С++ этому способствует только ИМХО. (Браузер)
Последствие такой сложности - по 2 гб на вкладку памяти, и разработчики сами не могут уже понять где что там. (Blink + V8)
И я сейчас говорю только за браузер. Это лютый ужас, который хрен пойми как работает, собирается на моей машине почти 6 часов в режиме Jumbo Build.
В пизду такую сложность. Установил Firefox, который собирается намного меньше (хотя все кричат что Rust медленный в сборке), меньше жрет памяти, и в целом - лучше. Установил параллельно Epiphany (Эпифан, лол) :-) - и там все еще лучше вопреки WebKit.
>А ещё потому что очень легко считать, что все вокруг пидорасы, а ты - Д'Артаньян и, не имея опыта и навыков, делать какие-то выводы о чужой работе.
У меня достаточно навыков и опыта чтобы слать тебя и всех твоих гуглоколлег в жопу, не волнуйся об этом
> Андроид всё ещё самая распространённая мобильная ОС
Что уже привело к весьма интересным последствиям. Люди молятся чтобы это говно не глючило при RAM <= 2GB...
Да и stagefreight оказался сладким, к слову как там Accessibility service поживает?
>хром - самый популярный браузер
Что не мешает мне снести это говно после 4-5 компиляция по 6 часов на Gentoo. Что я с успехом и сделал.
>>272192
>Как раз-таки да, потому что отсутствие связей между сущностями решает целую кучу проблем при масштабировании, это концептуальное упрощение.
В задачах человеческих сфер использования ( не для сайтов где обсуждают кто кого вчера трахнул, или "один другом писю показывает, а ему донатят" ) - в сущностях много зависимостей. Весь твой nosql с потерей данных будет кукарекать в сторонке. Никому нахуй не нужно бизнес терять данные. Kurwa no net.
>Никто кроме фанатиков и не утверждает, что это серебряная пуля. Существуют определённые задачи, требующие или работы с неструктурированными бд,
Вот там они блядь и применяются. Не в сука тестовом задании для магазина ебучего по продаже услуг шлюх явно(!).
>Тут на двачи все мы тут лучше всех знаем и моим словам верить никто не обязан, но я далеко не первый год работаю и руковожу разработкой - и видел всякого.
Я не первый десяток лет. И таких как ты послать подальше успел много. Помогало в 99% случаев.
>Просто потому, что "да тут долбоёбы понаписали явно, хуйня какая-то" на самом деле должно означать "мне непонятно, зачем тут это сделали, но явно не просто так.
Если твой код не может объяснить человек начального уровня, то проблемы у тебя. Нет, именно у тебя. Ни у кого-нибудь другого, а именно у тебя. Я не говорю, что не нужно следовать паттернам структуры и порождения, я говорю о том что не нужно злоупотреблять ебучими абстракциями.
Я говорю о том что бинарник должен решать одну сука задачу, а не миньет делать направо и налево.
Не продолжай, твою позицию, что ты - истина в последней инстанции я понял.
Потому что ты либо не сравнивал с сафари, либо пиздишь.
Я не истина в последней инстанции, но я серый кардинал того заказчика. Тот серый кардинал который посмотри на то говно которое ты сделал и скажет ТЕБЕ засунуть его в жопу и переделать.
>Например у меня есть слайс букв алфавита, как получить цифру 2 зная букву Б?
bytes.Index и strings.Index например
Инбифо: посмотри вакансии и что там требуют.
Да очевидно конечно, но почему-то ГО это какое-то исключение, если для других языков перечислены кучи библиотек, фреймворков и прочих вспомогательных технологий, то для ГО "ну эт ниплоха если вы знаете ДЖИЭС или еще какой-нибудь язык в придачу". А где блядь что-то конкретное?
В период хайпа навтыкали код со своего го, хипсторов то потом по-увольняли, а код же надо теперь сопровождать. Вот и вакансии соответствующие.
Потому что для го не нужны фреймворки, чтобы написать бэк. Богатая net/http либа это все что надо. Ну хотя я лично ещё раутер chi юзаю, чтобы бойлерки поменьше было
Для Го написали много разных библиотек и нету такого, что надо использовать конкретную.
А так, изучай базы данные, и пакеты к ним. Также может понадобиться уметь работать с профилировщиком.
>>1273526 (OP)
elixir
Ноду)
Не понел.
Современный php - это очень продвинутая и качественная штука, как бы его не хейтили. По уровню проработки доктрина или симфони оставляют многие другие фреймворки на других языках далеко позади.
И бизнесу, кстати, php по нраву. Потому что он достаточно производительный, разработчиков найти легко, а существующие решения, как правило, многофункциональны и без проблем работают из коробки.
Поэтому для новичков можно рекомендовать, ящитаю.
Слышал, что graphql не очень, потому что весь на рефлексии. И вообще, штука скорее хайповая, чем устоявшаяся. Я бы навернул обычный rest, хорошее, проверенное решение. Ну и там swagger ещё, но это уже красивости.
лол, ебаный слак ))
Ты уверен?
промазал с последним аргументом во втором powd вместо 10 там 20, но энивей какая то непонятная для меня хуйня
Ты что дебил?
Перепиши свой питоновский пример, на print(powd(3,3,10), powd(3,3,20))
Может дойдет.
Действительно дебил. В шары долблюсь.
Пытаюсь запустить gui версию одного приложения. Использовал библиотеку gtk+3.
Запускаю и вижу
>go build github.com/gotk3/gotk3/gdk: invalid flag in pkg-config --libs: -Wl,-luuid
Я несколько часов в гугле пытаюсь хоть что-то найти, ни видимо не туда смотрю. Можно на пальцах объяснить как это исправить?
Только под WebAssembly
Сделали бы обычную си-подобную хуйню, и было бы ахуенно, но нет, блять, надо тут скобочку опустить, там func вместо function использовать. Тьфу, блять.
Ваше мнение очень важно. Ты забыл добавить, что ещё и скобочки форматирует не так, как ты привык
Да так то похуй, просто непонятно для кого всё это. Вот реально, в чём смысле убирать скобочки кондишена ифа?, но в тоже время оставлять для, например, параметров метода. Как-то вот всё как-то разрознено и кажется, что сделано по принципу "потому что могу".
Хуй знает, я, как обычный джавамакак, блеванул, хотя и подумывал вкатиться.
>Да так то похуй, просто непонятно для кого всё это. Вот реально, в чём смысле убирать скобочки кондишена ифа?, но в тоже время оставлять для, например, параметров метода. Как-то вот всё как-то разрознено и кажется, что сделано по принципу "потому что могу".
Вопрос привычки по большому счёту, чем-то радикальным Go не является, просто очередной вариант настроек curly brackets. Мне вот Java заставляет глаз дёргаться
По поводу курле бракетов согласен, кто-то бегин-енд пишет и им норм - дело привычки, но с ГО же дело в консистенси, язык не выглядит как будто бы он продуман и решает какие-то проблемы. Просто смогли и сделали. Заебись канеш, уважуха, но смысловой нагрузки ноль.
Нашел к чему доебаться, ей-богу.
А нет, вообще нихуя не работает, не могу файл скомпилировать даже. Нихуя не происходит просто. Что за наебалово?
>вообще нихуя не работает
Добрый день.
Пожалуйста, обратитесь за помощью к вашему системному администратору.
Всего бодрого.
Я к вам из си- треда пришел. Вопрос, какого хуя у меня в терминале выдает НОЛЬ с данным говнокодом ?
// Hi project main.go
package main
import (
"fmt"
)
func main() {
fmt.Println("Enter the foots: ")
var foots float64
fmt.Scanf("%f", foots)
var metres float64 = foots * 0.3048
fmt.Println(metres)
}
блядь, в шары долблюсь, сорян
Он и не должен выдавать при штатной загрузке, лол )
Можешь попробовать go get -v github.com/myname/mypackage
для большей наглядности. Как ты вообще узнал, что оно не загрузило?
Фреймворки нужны, но пока что действительно фуллстэковых добротных нет.
Для себя вывел примерно такой набор для работы:
- https://github.com/labstack/echo
- https://github.com/volatiletech/sqlboiler (все ORM'ки на рефлексии говно ебаное, от них проблем больше, поэтому только и исключительно кодогенерация)
- https://github.com/golang-migrate/migrate
Добавлю, что echo хоть и очень схож с gin'ом, но у него пизже документация: https://echo.labstack.com/guide
Для работы с ошибками: github.com/pkg/errors
Это самое распространенное решение, я бы сказал. Хотя вот недавно еще такое выкатили github.com/joomcode/errorx но я не щупал.
Для логирования github.com/sirupsen/logrus
Для клишных команд github.com/spf13/cobra
Для конфигов самый распространенный и фичастый github.com/spf13/viper но лично я только env переменные юзаю, потому мне и github.com/kelseyhightower/envconfig норм
Хэлперы для тестов github.com/stretchr/testify
Пиздатейшое оптимизированное решение для вебсокетов: github.com/gobwas/ws
Статейка про эту либу: https://habr.com/company/mailru/blog/331784/
Еще для валидаций можно что-то взять, там зоопарк и что-то конкретное пиздатое сложно выбрать. Я вот это заюзал github.com/asaskevich/govalidator вернее типизированные функции из него дергаю.
Вот тебе, в общем-то, и фреймворк насобирался.
И еще в догонку пример "реального" приложения с использованием echo: https://github.com/xesina/golang-echo-realworld-example-app
Там богомерзкий gorm (не ведись на него, он тебя сожрет) и немного всратая организация проекта, но в целом годный пример.
https://play.golang.org/p/_8D0yA8WFUO
В чём отличие передачи по указателю и если копировать аругмент хз как это правильно в терминологии го
В твоем случае разницы никакой нет, т.к. ты просто считываешь поля структуры, не изменяя их.
Терминология:
по значению = передача методу копии объекта. Если во время выполнения метода меняешь значение какого-то поля структуры, то меняешь ты копию, и эту копию (как и все изменения) почистит сборщик мусора, когда метод завершает выполнение (если, конечно, ты никуда ничего не передаешь).
по ссылке = по указателю. В этом случае, изменяя значения полей структуры, будешь изменять именно переданный объект, а не его локальную копию.
https://play.golang.org/p/n1HcJwdeDjv
кирилицей c в имени переменной в main'е писать это типа тонкий троленг, да?
> кирилицей c в имени переменной в main'е писать это типа тонкий троленг, да?
Нет, это я проебался когда писал, а потом бугуртил хули не собирается, блять.
> В твоем случае разницы никакой нет, т.к. ты просто считываешь поля структуры, не изменяя их
Это я просто тутор читал и там про методы было и был пример с передачей по указателю.
Но там не было пояснения отличия.
Потом догадался сделать пример с копированием и увидел что там как с обычными функциями будет.
А в го нет const?
Если, например, я хочу передавать в функцию переменную и не хочу её там менять, то в Си я бы сделал аргумент константным, но тут либо указатель, либо копировать.
В таком случае придётся лишний раз нагружать GC?
Нахуй mvc фреймворки жрисоздавай бэкэнд правильно. Юзай fasthttp или gramework (github.com/gramework/gramework)
Не совсем так, очевидно, ты не будешь писать всё сам и в идеале должен писать только бизнес-логику, а весь системный слой должен быть уже доступен в виде каких-то библиотек.
Другое дело, что в го сообществе сложился подход, немного отличный от мира php (или java, как понимаю).
У php-шников обычно есть фреймворки, которые сразу содержат в себе код на все случаи жизни, rest, сокеты, модели, sql, логгинг, и прочая, и прочая. Это хорошо тем, что ты единожды ставишь какой-то фреймворк и у тебя сразу же есть всё, что нужно, заботливо раскиданное по папочкам. И плохо тем, что зачастую всё очень сильно связано и ты не можешь как-то изменить логику работы фреймворка, если это не предусмотрено авторами - и иногда приходится бороться с фреймворком вместо решения непосредственных задач.
В мире го нет фреймворков в php-шном понимании, есть множество библиотек-пакетов, которые делают только одну вещь (и иногда даже делают её хорошо). Всю обвязку вокруг них должен написать ты сам. Это не всегда удобно, но зато намного гибче.
А если кто-то будет говорить, что фреймворки не нужны, сторонние зависимости не нужны, вендор нужно хранить в гите и прочую ересь - надо ссать ему в лицо.
Это платиновый спор, аргументы обеих сторон легко гуглятся и нет смысла начинать его здесь ещё раз.
>А если кто-то будет говорить, что фреймворки не нужны, сторонние зависимости не нужны, вендор нужно хранить в гите и прочую ересь - надо ссать ему в лицо.
гочую адеквата
Вот я не слышал аргументов против вендора.
Нах надо, пытался учить плюсы, наедался с этим gcc и g++ больше чем с арчем
Да оно спасибо.
Такой вопрос. В ГО есть возможность передачи множества аргументов в функцию. К примеру (yoba ...int). А можно как- нибудь передать значение массива без использования слайса ? Ну, я тупо не хочу копировать массив слайсом. Только через цикл, что ле ?
Можем, однако тогда функция будет принимать ограниченное количество элементов.
Энивей, погуглел, разобрался. Однохуйственно, слайс - всего лишь указатель на кусок памяти, так шо поебать.
>напишите мне пожалуйста в телегу @p19ads3
Почему-то у меня ваша "телега" стала прочно ассоциироваться со студентотой или низкокачественными программистами. Это нормально?
Еще забыл мамкиных "криптоинвесторов"
Наркобарыгами ещё тоже
Есть файл, в районе 800 Мб (20кк+ строк), и есть необходимость быстро найти строку в нём, причём полное вхождение. grep делает это долго, понятное дело.
Может есть смысл загнать его в оперативку и построить какой-то индекс?
Подтолкните, что загуглить.
Если нужно много искать по одному и тому же тестовому массиву, то гугли суффиксные деревья и Ахо-Корасик.
Блять, анончики, из бошки вылетело, два дня уже мучаюсь. Закончите фразу:
Golang - не объектно-ориентированный, а ... язык
... - какой это язык? Сука, почему этого в википедии не написали, хуй нагуглишь теперь.
Я серьезно, бля.
мультипарадигменный йопта
я серьезно, епта
Тут смотря как определять объектно-ориентированность.
По сути в Го все равно оперируют объектами с полями и методами. Но при этом нет наследования( кроме наследования включением)
А ты адекват, братишка. А вот та фраза сверху -- так себе
Go - это как правило веб и микросервисы.
На базовом уровне всё как обычно, общий веб, sql, базовые структуры данных, алгоритмы ну и очевидная гошная специфика в виде бест практик, оптимизаций, многопоточности.
Дополнительно будут полезны паттерны программирования.
Ну а дальше нужно уже смотреть по вакансиям для компаний в твоём регионе.
Двачую за адекватность.
buf := make([]byte, 1024)
len, err := conn.Read(buf)
Но вот в этом куске кода кроется проблема - он работает только с заранее выделенным размером памяти. Как сделать так чтобы он принимал сообщения любой длины? Пробовал сначала передавать два байта для того чтобы сервер понимал какой размер у сообщения, но этот способ соснул.
Иншалла тебе здоровья, брат.
если получилось, то как?
заебался уже искать
Гугли worker pool golang.
Алсо, если у тебя задачи жрущие ЦПУ/Память, а не ждущие IO -- то мало смысла запускать больше работяг, чем у тебя ядер.
Алсо2, я хуй знает что у тебя за лярд элементов и откуда, но читай их оттуда последовательно, а не все сразу.
Если тебе надо получить то, что тебе выдает fmt.Println, то замени его на fmt.Sprintln
Хорошо, но как мне теперь конкатенировать полученную строку с другой?
Как и почти везде - плюсом. Более сложно:
https://golang.org/pkg/strings/#Join
https://golang.org/pkg/strings/#Builder
Зачем ты пишешь на языке для дегенератов, даже не удосужившись прочитать однодневный мануал по нему? Совсем ебобо?
Да читал я этот мануал в прошлом году. Сейчас просто возникла задача, а заново читать не хочется. И какого хера ты вообще в тред пришел?
Я вскод юзаю для интерпретируемых языков, для компилируемых вроде и работает все, но ппц неудобно, а завозить отдельную иде чисто для компилируемого языка не очень хочется.
Каргокультисты вимов/хуймаксов мимо
ну да, уже пробую эту штуку
просто у меня небольшие стереотипы после идеи, потому как та выжирала много ресурсов, а на больших проектах тормозила
Вся хуйня от JB себя так ведет.
Когда работал с руби пробовал использовать RubyMine. Охуел с этого тормозного говна и перекатился обратно в уютненький саблайм.
Сейчас под гошечку решил еще раз попробовать, но уже Goland. Работает на удивление очень шустро, брат жив. От фич в восторге.
>Алсо, если у тебя задачи жрущие ЦПУ/Память, а не ждущие IO -- то мало смысла запускать больше работяг, чем у тебя ядер
Сетевое IO.
>Алсо2, я хуй знает что у тебя за лярд элементов и откуда, но читай их оттуда последовательно, а не все сразу.
Допустим я читаю миллиард строк из файла на машине с 8 гигами рамы. Скорее всего, весь файл в память не влезет. Если я сделаю worker pool из 10к каналов, то этот пул будет висеть пока последний канал не закроется, так же?
Читай свой файл через буфер, складывай строки (предположим урлы) во входной канал.
силами 10к воркеров (если у тебя система потянет столько открытых соединений), бери строки из входящего канала - что-то там обрабатывай - отдавай результат - бери следующий.
Каждый работяга будет держать только один элемент входящих данных, ну и понятно свои личные данные.
Не, я понимаю, стильно- модно- молодежно. Но, какого хуя, после рассмотрения БАЗИСА языка, нужно написать dirtree, в котором повсеместно используется пакет io (который, конечно же, никто разбирать не собирается). Причем, мало того, сам по- себе синтаксис в практике в два раза сложнее, чем программа курса.
Почему в англоязычных курсах\книжках\документации все нормально и по- человечески, а практика дается ПО ПРОЙДЕННОМУ МАТЕРИАЛУ, зато единственный в своем роде контент в ру-зоне такой отбитый ?
Причем, это касается большинства курсов, зопиленых рашн погромиздами. Почему, блядь, нельзя сделать адекватную подачу материала, а все находится на уровне - "ну, мне похуй, загугли сам".
Припеклоу.
ну чо нормально нельзя было сделать как человеки? вот мразь же а
все равно буду snake_caseом все делать.
пидор.
Вот этот дело говорит. Подтверждаю.
посмотри на маскот го
Как проитерироваться по строке и сравнить какую- либо букву строки ? К примеру,у меня есть s := "yoba". Как мне сравнить одну букву этой строки ? к примеру s == "a" ? Причем, хочется именно проитерироваться по строке.
Заранее аригато.
охуел от 2.6.2 в k&d, ничо не понял.
https://github.com/adonovan/gopl.io/tree/master/ch2/popcount
func main() {
var i uint8 = 255
println(i, i+1, ii)
}
//255 0 1`
Не понял, почему 1, а не 255255?
А с хуя ли он должен быть ноль? Посчитай, чему равен i * i , и что у этого числа в младших восьми битах
P.S. ну или хотя бы чётность оцени
Удваиваю.
Если я хочу разбить код на разные файлы, но я не хочу создавать папки по пути /github/go/... , а хочу импортировать просто из папки в моей ветке и коммитить ее тоже, например import "utils/parsers", то как это сделать и можно ли?
ГоланД ругается и не хочет видеть мои функции, если я так импорчу.
Generics? Fucking wat?
Понимаю
просто привык к такому подходу, а тут выходит, что даже если у меня в сервисах 2-3 функции, то надо отдельный прям ПАКЕТ по этому уебищному пути.
Пиздец просто.
А в чём твоя проблема прописать полное имя пакета, тем более если ты используешь IDE?
Ни в чем, просто как-то не очень на мой взгляд выглядит.
если у меня утилита для локального проекта, которую я хочу просто вынести и пушить в репо, то не вижу смысла выносить ее вот так.
Это копия, сохраненная 31 декабря 2018 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.