Вы видите копию треда, сохраненную 9 апреля 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Пщ едва не единственный язык который на уровне синтаксиса позволяет синхронизировать подпрограммы, разве только не 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
Вкатываемся в эпоху докера, микросервисов и адово кошерной сетевухи.
last >>1245569 (OP)
Да.
Го только для работы и нужен, чтобы решать бизнес задачи. Для программиста в качестве хобби он нихуя не интересен, это же императивная дрисня без нихуя.
Ну так и хочу. Сделаю свой аниме сайтик который сможет выносить хайлоад и буду там один сидеть. И хули ты мне сделаешь?
Этого заверните в тёплый, ламповый моноид да напоите чаем
Поддерживаю. Го полная хуйня
Если я выучу голанг как единственный язык для бека то норм будет?
Двачую. Постоянно слушаю как у кулера обсуждают монады и функторы, а потом иду писать фор лупы.
Сгодится, я примерно так и сделал. Но у меня немного другой случай. Правда если ты решишь идти через веб-фреймворки — то хз, лучше ИМХО Спринг выучить. Говнище то ещё, но миллионы джавамакак хвалят и это востребовано на рынке.
Пока не заржавеем!
В чем прикол микросервисов? В создании лишних зависимостей, за которыми следить намного сложнее чем за обычными модулями в приложении?
Их можно разнести на разные сервера, падение одного не влияет существенно на работоспособность других, можно учитывать нагрузку конкретно для одного сервиса, всякие оркестрации и тд
Во влажных теориях, да. По факту же это зависимости, плата за которые очень велика. И большинству тех кто делает микросервисы, они на самом деле не нужны.
Ну так-то да, кто ж спорит.
Кровавый энтерпрайз: ехал годаун на микросервисе через монгу.
Тулзы здорового человека: раст и постргес.
Ну например тем, кто осознал что писать в 2018 году код как во времена шестой жавы, это какое-то днище.
А еще тем, кто хочет получить приличный перформанс, низкий мемори футпринт и предсказуемое поведение сборки мусора.
Ну или хотя бы тем, кому нужен параметрический полиморфизм и нормальная обработка ошибок.
Судя по количеству новых и полезных проектов которые каждый день появляются, да и по шуму и соц. сетях, очень даже хотят и учат.
Конторы подтянутся как всегда с опозданием.
Да и вообще, при таком подходе надо жрать пхп и невыебываться.
Спасибо кэп!
Первый день тыкаю гошку, после свифта, жабы, котлина - на которых я работаю, гошечка выглядит как экстазик. Интересненько, интересненько.
Раст потыкай.
> после свифта,
> выглядит как экстази
После языка с охуенными ADT, дженериками, протоколами и системой типов в целом? Тебе походу на джаваскрипт вообще будет благодать перейти.
Увы, гайдлайны повелевают писать на нём максимум невыразительно и нечитаемо — это моя основная претензия. Также не хватает дженериков и удивился, что из коробки нету реализации map filter reduce, хотя понятное дело на гитхабе их десяток найти можно. Но это к вопросу о философии, мол простота first
Да полистать ту же репу докера-хуёкера или кубера.
https://github.com/docker/engine/blob/master/daemon/daemon.go
Писали ребятки умные. Наговнокожено много и порефачить есть где. Но во многих местах одновременно и написано всратое дерьмо, и на заданный сам себе вопрос "А как бы написал ты?" впадаешь в ступор. Это голанг, никак.
Reference counting. Тяжелая компиляция, тупящий lldb, отваливающаяся подсветка и intellisense.
В свифте все же в рантайме все разрешается. Каждый объект имеет счетчик ссылок на него, как только он становится 0, объект выпизживается из памяти. То есть нет проходов gc, производительность прогнозируемая, и футпринт памяти меньше, так как мусора по сути нет. Но программист вынужден вручную разрешать ситуации, когда два объекта ссылаются друг на друга, тем самым мешая каждому зарелизиться. Это делается с помощью weak ссылок, которые не инкрементят счетчик ссылок на объект (a ссылается на b через обычную ссылку, b на a через weak, тогда когда на a перестанут ссылаться все внешние объекты, оба выпидорятся из памяти). Вот единственный момент, который сложнее gc. Ну и нет бенефитов для тред сейфти, в отличие от растовского борроу чекера.
Окей, про свифт. Тогда двачну проблемы реализации. Зафигачил какую-нибудь штуку на дженериках, а оно не компилится. На радаре заведена ишшью, мейнтейнеры пишут "Да, есть такое, хех, поправим через две мажорные версии))".
Про мем с ABI знают все, кто хоть слышал название Swift
AST при компиляции большого проекта строится нереально долго (не уверен, но кажется именно этот этап столько занимает).
Инкрементальная компиляция работает, если сегодня 13е число и на небе Луна находится в Деве.
Про тулинг — приличных слов нету вообще. Об автокомплите можно забыть, о подсветке — иногда тоже. Лучше установить дефолтный плагин для ВИМа, пусть хоть как-то что-нибудь подсвечивает. И билдить через консоль. IDE кроме XCode ещё хуже.
И ах да, если переключился на N релизов назад, которые были накожены на предыдущей мажорной версии, и хочешь сбилдить — удачи, братан.
Сейчас на самом деле намного лучше с подсветкой и интеллисенсом, на Swift 3 с Xcode 8 был форменный пиздец. Инкрементная компиляция еще с Xcode 9 заработала нормально. ABI stability будет в пятой версии свифта, лучше так, чем если бы зафризили какое-то непродуманное хуевое решение.
>Отличная там работа со строками.
Нет сука, и не нужно спорить со мной. Ты вынужден писать эктейшены которые будут управляться с индексами, чтобы провайдить нормальную работу, но для 80% кейсов работы, которые Я делал в универе - никогда не встретятся. Но в жабе или в голанге это сделать легче.
Ты бы посчитал сложность работы со строкой, в которой символы переменного размера. Чтобы добраться до n-го символа, ты должен перебрать все перед ним. Свифт не скрывает этой сложности работы со строкой намеренно. Ты можешь сознательно написать себе экстеншенов/спиздить из гитхаба и тягать их из проекта в проект, зная на что идешь и зачем. У свифта же zero cost abstractions во главе. Ставить в пример джавку, которая сначала для внутреннего представления юзала ucs-2, а потом, поняв, что обосралась, utf-16 - это топ кекус. utf-16 тоже хуита, кстати http://utf8everywhere.org
Отличная штука, проверенная, надёжная!
Никак. Добро пожаловать. Снова.
Потому что лиспы, динамическая дристня.
1) сравнением значения: if err==io.EOF { обработка конца файла }
2) проверкой типа: if pqerr,ok:=err.(*pq.Error); ok { разбот типизированной ошибки postgres }
3) как диды учили: if strings.Index(err.Error(), "my substing")>=0 { ... }
Нет.
Го неплох, кроме нескольких недостатков типа отсутствия дженериков (их таки добавят) и всратая работа с ошибками (тоже поправят).
Больше ничего такого глобального менять не будут.
Останутся только мелкие уебанства типа typed nil vs untyped nil (говнище уровня джаваскриптовых мемов 1 == '1'), но это уже никогда не исправят.
Если в качестве замены джаве его можно воспринимать, то в качестве замены крестам - нет. Замена крестам с gc, лол-пук-кек.
Го неплох если сравнивать его с пхп.
>вместо пхп и питона в качестве веб языков.
Пиздос, что Пхп, что Питон нудачные косплей Перла. Хуярю все на Перле и веб тоже, мне заебись, нахуй что то выдумывать.
>Тебе зайдет инфа 100%
Не, я С/Перл господин и гуидятину на Qt клепаю, иногда в Яве ковыряюсь. От ООП стараюсь держаться подальше.
Я наоборот с рельс ушел.
>>16453
Проиграл с маняпетушка. А автоформат не учил? Постоянно ору с таких сказочных долбаебов. С самого раннего этапа кодинга ты должен был этому научиться в жидбрейнсе, когда на жабе писал. Бтв удивляюсь до сих пор что приходится корректировать автоформат, ибо непривычно на хкоде например или в вс коде.
Простейший поиск дубликатов картинок.
>жидбрейнсе
На хуй это туда->
ИДЕ для пидоров, а язык на котором без ИДЕ невозможно писать для еще больших пидоров
Удвою. Для Голанга у меня ВИМ и никаких сраных ИДЕ. Траблы могут начаться, когда файлов уже 2-3 тысячи, wildmenu для навигации подтупливать может начинать. Но это наверное можно нормально решить.
>ВИМ и никаких сраных ИДЕ.
Утрою (нет). Либо ты пиздабол, либо мазохист. Знакомые, которых я ЛИЧНО знаю говорили что при переходе с вима на иде ощущалась легкость и блаженство. У них опыт 1-2+года был.
>>16527
Я студент и мне похуй. Если ты жмот и не можешь сам себе обеспечивать, оплачивая продукт - то ты сам пидор. И я такто на вс коде сиду на голанге. Так что соси петушок.
>Если студент такскозал, то ладно, что уж тут)).
что уж тут))0))))0000))
Сори, с говнозадачами не сталкиваюсь и не столкнусь, ибо мои продукты выпускаются онли через ИДЕ.
Есть обоснованное подозрение, что "твои продукты" стекают по штанине, когда ты просыпаешься на лекции
>Есть обоснованное подозрение, что "твои продукты" стекают по штанине, когда ты просыпаешься на лекции
"Обоснованное подозрение" которое никак не подкрепляется рациональным суждениям изложенного моего текста выше. Дурачек, достойный уровня /б.
Братишка, ты слегка подвержен эффекту Даннинга — Крюгера. Тебе бы подрасти немного.
>Братишка, ты слегка подвержен эффекту Даннинга — Крюгера.
Я и так нахожусь в долине отчаяния, а ты можешь только хуйню с умным названием писать. Пиздец, что я вообще здесь забыл. Пойду гошку дрочить.
>Перекатывайтесь на раст, пока не поздно.
Cейчас бы язык под задачи ставить, а не задачи под язык.
Может быть вы, сударь, расскажете для каких таких задач го подходит лучше чем раст?
Жс нахуй. Го — ну, просто он кому-то лучше заходит, чем джава.
У меня есть sort.Sort, мне нужно поменять его на sort.Slice.
В офф. доке пример только с известными данными в анонимке. Суть в том, что у меня в говнокоде на вход подаются неизвестные МНЕ данные я могу тест посмотреть, конечно, но это не удовлетворяет условию задачи. Как это реализовать ?
Бтв, сам говнокод.
https://pastebin.com/GiMhHey3
Выложи компилирующийся код на play.golang.org А потом выкинь свою хуйню и учи раст, чтобы не заниматься еблей вприсядку.
экий говнокод. А можешь выложить условия того, что ты вообще пытаешься изобразить?
По slice, а что тебе не понятно, если ты уже написал общий интерфейс? будет как в godoc example:
sort.Slice(records , func(i, j int) bool { return records.Id < records[j].Id })
Бтв, до этого устанавливал либу с командой go get github/lalala
Как посмотреть все установленные пакеты?
>Го только для работы и нужен, чтобы решать бизнес задачи. Для программиста в качестве хобби он нихуя не интересен, это же императивная дрисня
На Go вполне можно писать в ФП стиле. Кто мешает писать на нем чистые функции? Есть функции высшего порядка. Есть замыкания. Нет лишнего, вроде классов и прочего.
>для начала, гений.
Тот же map, да и в целом стримы, появились в жабе 8. Спустя 14 лет этак.
Всегда можно сделать пекедж и все. Так что иди нахуй, маняпетушок.
Ну дык сделай, хуле ты кукарекаешь. На твоей параше, кроме как в стиле 80ых больше никак не попишешь. Модно молодежно, епт.
Что это так сложно?
https://doc.rust-lang.org/cargo/getting-started/first-steps.html
Один из лучших пакетных менеджеров. После него гомоёбля с GOPATH кажется насмешкой.
>>17981
Map/Filter/Reduce - это не ФП. ФП это в первую очередь программа как математическое выражение. Без последовательного изменения состояния, как это делают в императивном стиле. Пишешь чистые функции, передаешь результат дальше, редуцируешь короче до финала, вот и программа в ФП стиле. На Go так можно писать, и даже нужно.
Оно конечно так, но эту чушь можно сказать про любой язык. Кто тебе мешает делать то же самое в си? Или в любом языке, поддерживающим функции?
Я уже и тогда подозревал, что ты дурачек. На счет лучшего - идешь нахуй. Грейдл самый нормальный. Можешь дальше не отвечать, обоссанышь.
C каких пор уютный тредик стал таким токсичным? В твоей голове все плохо, раз такой бред пишешь каждому встречному.
>Кто тебе мешает делать то же самое в си?
>Или в любом языке, поддерживающим функции?
В Си есть функции высшего порядка? У Си страшный синтаксис, ручное управление памятью, нет такой экосистемы как в Go (библиотеки для веба, инструменты, etc), нет такой простой модели асинхронности.
Никто не мешает писать в ФП стиле в языках, которые это поддерживают. Но этого мало кто делает. Сами создают гору переменных, а потом ищут баги.
Прошелся по раст треду, такая же хуйня. Земля вам пухом.
https://github.com/yanatan16/itertools/blob/master/itertools.go
Действительно модно молодёжно.
Давай, напиши пикрелейтед на гоу. Покажи нам силу фп.
Оказывается нужно сделать go get github.com/julienschmidt/httprouter, и потом уже в импорт засунуть это говно. Только хуй знает как контрится смена версий, отложим этот вопрос на полгода.
Никак. Ты всегда получить master. Так что молить, чтобы автор не сломал все к хуям завтра. git submodule в помощь.
А лучше сразу нахуй выкатывайся с этого говна.
>>Some web-forums have a tree layout, so posts are presented as a tree. However the posts are typically stored in a database as an unsorted set of records. Thus when presenting the posts to the user the tree structure has to be reconstructed.
Your job will be to implement the tree building logic for these records. The records only contain an ID number and a parent ID number. The ID number is always between 0 (inclusive) and the length of the record list (exclusive). All records have a parent ID lower than their own ID, except for the root record, which has a parent ID that's equal to its own ID.
Мне непонятно, как реализовать анонимную функцию в случае со слайсом. Чот я не въебываю по- синтаксису.
Держи. Потом покажешь как на го вышло.
https://play.rust-lang.org/?version=stable&mode=debug&edition=2018&gist=d206417387d0364fdcdb69af932609fd
>А лучше сразу нахуй выкатывайся с этого говна.
Зачем мне блять выкатываться если я зарабатываю блять на мобильных приложениях? Я пишу код на 4 языках и я решил изучить бекенд. Вы долбоебики что ли? Язык очень неплох и мне нравится с ним тыкать бекенд.
Заебали.
Так же кстати делаю. Правда всё что нужно было написал, сейчас дорабатываю изредка. Ну и ору с убожества Go иногда, смешно же.
анонимную функцию тебе показали выше
sort.Slice(records , func(i, j int) bool { return records.Id < records[j].Id })
вот это func(i, j int) bool { return records.Id < records[j].Id } есть анонимная функция, переданная вторым параметром
Спасибо огромное, а то я сижу, туплю.
Блядь, вот это я охуел сука.
Я понимаю, что это написано в документации, но сука, мне казалось, что апи языка и инфраструктуры должно быть как максимум интуитивно понятным, а как минимум НЕ уебанским.
Какой сука смысл ограничивать названия функций апперкейсом? блядь, даже в ноде и то модульная система прозрачней, просто явно экспортишь то, что хочешь.
У меня все.
1) Когда эту вторую версию можно будет пихать в прод?
2) Будет ли она обратно совместима с первой?
>Чем больше людей откажутся от goвна, тем лучше.
Тогда будет куда вываливать свое говна изо рта на реддите или создавать посты на медиуме.
А вот консольные утилиты помоему на го самое-то писать. Вот например, есть файловый менеджер - ranger. Все в нем хорошо, кроме того, что он на питоне==долгий стартап, краши с высером на полконсоли где нихуя непонятно. Или portage гентовский. Да и вообще все те утлиты, что не на C.
Мы стали на год ближе к Го2.0
Помнится, при отладке проекта в Xcode 8 процесс SourceKitService сжирал более 40 ГБ ОЗУ из-за бага. Приходилось регулярно перезапускать IDE.
Вскод, не?
GNU Emacs
Хотелось бы ещё чтобы приложуху можно было запускать как демона с иконкой в в систрее, которая будет раз в сколько то времени мониторить стек, подсвечивать на иконке количество незаасайненых инцидентов и посылать нотификации. Вот с этим вопрос. Как это реализовывается? Куда копать?
Так запускай на go как сервис.
На QT напиши простенький трей апп который делает запросы к сервису. Примеры же есть.
Где можно почитать конкретно про блок горутин\каналов ? Когда именно блочится и почему ятупойда и не могу в гугл.
Это единственная компилируемая альтернатива для крестов\раста в бекенде?
Слишком низкоуровнево и очень много неочевидных моментов, которые по сложности приближают его к плюсам, на 1 строку в питоне нужно писать 5 строк на расте.
Ну по сравнению с го, писать на расте приходится как раз меньше.
Если ты хочешь писать как на пистоне, пиши на пистоне? Что с ним не так?
Захотел как-то увеличить свою конкурентность, да и вообще что-то новое для бека попробовать, а то питон надоедать начал, хоть и соответствует требованиям для работы и личным предпочтениям. Вот решил попробовать что-нибудь компилируемое для бека, что смогу потом в прод засунуть, когда потребуется.
Может эрланг для себя поковырять, вдруг работа даже подвернется.
Эрланг и/или хаскель, раст.
>бомбануло от обработки ошибок в говяхе после пистона, да и вообще от дизайна языка ТРЯСЕТ
Хрестоматийная реакция, брат.
>альтернатива для крестов\раста в бекенде?
Swift
>>27178
Всё правильно делаешь. Научись бест прэктисам, в том числе по юнит-тестированию, пусть будет скилл. Если воротит нестерпимо — то и хуй с ним.
Kitura (IBM)
Perfect
Vapor
Фреймворки для сраного веба. Собственно, 90% того, чем занимаются бэкендеры
Планирую пилить своими силами сайт для своего дела и подумываю для бэкенда использовать Го.
А еще хуже, ага. Почти самое дно если бы не было джавы и плюсов.
Легко + да, это лучше выбор, чем петухон. Но всё равно дерьмо. Бери сразу clojure.
Я просто ещё не достиг такого уровня. Желание переписать весь свой бэк на Кожуре — такое есть. До Хаскеля ещё не дозрел.
Я конечно понимаю что clojure дико крутая вещь и все такое. Но я всего лишь бате сайт делаю а не ракеты в космос запускаю.
Тогда сойдёт. Го в зубы, да и про тесты не забывай.
Блядб, это же как в питухоне
Вот как в шапке по Rust: область применения - на сколько язык подходит для нее и какие библиотеки есть у сообщества. Например там так и пишут, что для веба не очень-то на данный момент подходит.
Все что я до сих пор видел по Go на практике это какие-то микро-утилиты/микро-сервисы.
Демоны, сетевые приложения, CLI утилиты. Это его сильные стороны. А если очень хочется, то можно и что-то другое писать.
А теперь объясни почему это его сильные стороны.
Возьмем например cli. Почему-то большая часть новых утилит которые входят в ежедневный обиход, типа rg, fd, exa и т.п. написаны на расте. И понятно почему: быстро работает, не жрет память, супер удобная экосистема для разработки, хороший доки, даже же книжка по написанию cli есть.
>Понимания принципов работы Message Brokers
Я знаю, что там ничего особенно сложного нет, но так получилось, что я ни разу не работал с очередями. Понимаю для чего нужны (канал связи в распределенной системе), примерно знаю как работают (очереди, паблишеры, сабскрайберы), знаю какие они вообще есть (рэббит, зеро, кафка, натс). И вообще считаю, что это не бизнес-критикал опыт. Но на собеседовании на этом вопросе провалюсь. Вот что про это нужно знать, чтобы они поняли, что это не будет проблемой?
Вообще в Раст порог входа выше. Golang стабильнее, более зрелый, огромное количество библиотек. Для Раста столько нету. Простая модель конкурентного программирования. Golang создавался с прицелом на сетевое программирование.
Посмотрел exa. Что сказать, писать юниксовый ls на Раст? По идее можно. Но какие выгоды это дает?
Что за книжка по написанию CLI?
https://rust-lang-nursery.github.io/cli-wg/
Как там у го с размером бинарников?
Как там у го с пакетным менеджером?
Или мне должно хватит уебищной стандартной библиотеки?
>Как там у го с размером бинарников?
Лучше чем в Руби с Питоном. Хотя их часто используют для CLI утилит. Думаю примерно как и у Раста.
>>36165
>Как там у го с пакетным менеджером?
https://www.coursera.org/lecture/golang-webservices-2/utilita-dep-f3Bew
>>36165
>Или мне должно хватит уебищной стандартной библиотеки?
ШТА? У Go огромная стандартная библиотека. Это одна из его сильных сторон.
Если ты хочешь просто повыпендриваться, то мне с тобой не о чем говорить. Если реально что-то хочешь узнать, то спрашивай нормально.
Она конечно огромная, но при это она уебищная.
Например, я хочу чтобы мой cli-тулзу можно было юзать так:
./shit -s
# same as
./shit --spasibo-abu
И еще 5 флагов. И я хочу чтобы они сразу разворачивались в типизированную структуру. Как в го это сделать неуебищно?
https://tutorialedge.net/golang/building-a-cli-in-go/
https://github.com/urfave/cli
>>36205
>Она конечно огромная, но при это она уебищная.
Конкретней. Обоснования будут? Пока что только бросание пыли на воздух.
Я тебе говорю что стандартная библиотека уебищная, потому что в ней дохуя всего, но оно малоюзабельно. В качестве примера, в ней есть возможность парсить флаги командной строки, но и как и все в го, оно уебищное, и не позволяет сделать то, что я написал выше.
Отсюда вопрос, нахуя пихать в стандартную либо малоюзабельное кривое говно и не давать пакетного менеджера?
Субъективизм. Если чего то не хватает, ищи на гитхабе, или свое пиши. А если не нравится Go, не юзай его. Все просто.
Какие языки ты вообще видел?
Хуективизм. Я на го накатал в общей сложности за пол ляма строк кода и я тебе утверждаю - го, уебищное говно, которое, этого нельзя отрицать, быстро компилится.
Уебищное ни уебищное, а рыночек решает. Буду блять учить это ебаное говно, потому что требуют вакансии. Что мне блять остается еще?
Github в студию.
Серверное говнецо, 3к рпс нормально тянет.
Переписать на него что-то с пхп — дёшево и сердито.
Ну то есть опять микросервис в один файл умещающийся?
Я даже не знаю, что это может быть, чтобы имело смысл переписывать, потому что все равно узкое место это база.
Ну вебсокеты какие-нибудь наверное, да. Че еще-то?
раскури кафку (в основном ее сейчас везде юзают, быстро-надежно-конфигурируемо), разберись с топиками, партишинами, брокерами, консьюмер группами, вот этим вот всем.
Весь проект переписать на микросервисы. Прикрутить grpc для взаимодействия.
Канкарренси и кросс-компиляция это, имхо, то что реально удалось в го. В остальном уже подзаебался на этом писать, ей-богу. Особенно крайне больно писать много бизнес логики на го, вот уж где от объемов копипасты начинает жопа сгорать и ни одна ИДЕшка не поможет. Особенно тоби пизда если надо что-то порефачить/добавить везде.
Кстати, ебал в рот новые го модули и, в частности, формат декларирования зависимостей в go.mod. Не знаю как до такого можно было додуматься. Ни в одном блять языке у меня депенденси менеджмент не вызывал такого горения, как в го.
А еще ебал в рот тэги на полях структуры, пиздец как такое говно можно было задизайнить, сделали бы уже аннотации/декораторы какие-то. Будто наспех закостыленное решение.
Ебал в рот nil dereference error'ы в рантайме 2019 году, блять. И не надо мне тут про weak type system затирать и его прелести, это реально конченая хуйня которая откусит вам очко в больших приложениях.
>формат декларирования зависимостей в go.mod
А что с ним не так? Ты же все равно не руками пишешь его
>Особенно крайне больно писать много бизнес логики на го
Может быть дело в тебе, а не в языке? Есть функции высшего порядка, а больше ничего и не нужно, чтобы писать красиво логику. 2 главу СИКП почитай, очень полезно. Может дойдет, что это ты писать не умеешь, а не язык плохой.
Его читать надо, а он засран indirect'ами и прочей ебалой.
Вдогонку: эта хуйня записывает в один общий список зависимостей тестовые зависимости. И у тебя нет выбора, ты должен качать тестовые зависимости посторонних либ, даже если они тебе нахуй не всрались. Хочешь миграции для БД погонять и подключить для этого golang-migrate, например? На нахуй тонну говна включая ебучий докер: https://github.com/golang-migrate/migrate/blob/master/go.mod
Кстати, дизайнить говно изначально, когда можно сделать не говно это прям в крови у авторов языка. Хотите задекларировать зависимости для рабочей среды? На нахуй костылище: https://github.com/golang/go/wiki/Modules#how-can-i-track-tool-dependencies-for-a-module
>>36485
>Может быть дело в тебе, а не в языке?
Может. Но почему-то мне кажется, что тебе просто не приходилось писать овердохуя логики, ну или ты человек который может выключив мозг набивать текст часами, тогда как в более продвинутых синтаксически языках это решилось бы куда быстрее.
Приведи пример чего не хватает. Мне кажется тут дело не в синтаксисе. Для языка важна абстракция с помощью ФВП, абстракция данных, и конкурентное программирование. Синтаксис не имеет значения, если все это есть. В Go есть функции высшего порядка, есть простая в использовании конкурентность, а абстракцию данных легко можно реализовать самостоятельно, с помощью функций. Но чтобы понять как это реализовывают, нужно прочитать 1 и 2 главу СИКП.
>Приведи пример чего не хватает.
В первую очередь больно работать с коллекциями. Вся бизнес-логика помимо ифэррнатнил засрана бесконечными циклами с тупейшим переливанием данных из одного вида в другой. Возможно это пофиксится с дженериками, когда (и если) их введут.
>а абстракцию данных легко можно реализовать самостоятельно, с помощью функций.
Можно взглянуть на пример такого приложения (если возможно, не хэллоу ворлд, а что-нибудь покрупнее)?
>В первую очередь больно работать с коллекциями.
Что конкретно?
>>36560
>Можно взглянуть на пример такого приложения (если возможно, не хэллоу ворлд, а что-нибудь покрупнее)?
Это очень обширная тема. Одного примера нет и не может быть. Чтобы все это понять нужно много примеров.
Если хочешь разобраться в этом, то советую СИКП. Это первоисточник. Но его не всегда можно понять с первого раза.
Есть курсы адаптированные на основе СИКП. Этот курс должен дать прозрение https://ru.hexlet.io/courses/php-introduction-to-oop
Здесь еще больше. Начиная с курса Функции и Составные данные https://ru.hexlet.io/professions/backend#education
Только эти курсы платные. Но это единственная известная мне адаптация СИКП.
> Что конкретно?
Лол, проиграл. Ты точно свой ебучий sicp читал? Или ты только первые 2 главы осилил?
map/filter/fold, do you speak it motherfucker?
Аааа! Что этоа? Я не ошибся, там по ссылке массивы в циклах обрабатывают?
Я в последний раз видел такой трехэтажный ассемблер в универе на сях. Мне казалось, что в 21 веке у любого языка есть нормальная либа для этих задач.
мимо рубист
Более того ты должен точно знать какие у тебя там объекты лежат, иначе скопипастив этот злоебучий "слайс-трик" ты получишь утечку памяти.
Тебе нужно пройти платные курсы.
Ты нормально изъяснять умеешь? СИКП не мой, и не ебучий. С тупой школотой не общаюсь. Когда научишься с людьми разговаривать, тогда и пиши. Адьёс.
>Что конкретно?
Анон за меня ответил >>36579
>>36576
>Это очень обширная тема. Одного примера нет и не может быть. Чтобы все это понять нужно много примеров.
Подтверди свои слова каким-нибудь реальным примером. Ты взялся пояснять мне что я не понимаю как писать на го и как на самом деле надо строить абстракции в приложени. Покажи как. Иначе это просто треп теоретика.
```
func main() {
var x [5]float64
x[0] = 98
x[1] = 93
x[2] = 77
x[3] = 82
x[4] = 83
var total float64 = 0
for i := 0; i < 5; i++ {
total += x
}
fmt.Println(total / 5)
}
```
Камон, посоны, это че, вот так ищут среднее? Вы это серьзено?
Я тебе ничем не обязан. Наводку дал, дальше сам разбирайся. На понт меня не бери, доказывать ничего не собираюсь. Если бы тебе было интересно, ты бы выбрал другой тон. Так что мимо.
Илюша, тебя же пидорнули отовсюду.
Так что можешь не усираться, денег не получишь все равно даже 15 рублей
>На понт меня не бери, доказывать ничего не собираюсь.
Мужик, ты сам вступил со мной в дискуссию.
Ты либо тролль, либо пиздобол.
Думал что ты адекватный. А раз из тебя говно лезет, то до свидания. Метать бисер перед свиньями не собираюсь.
Вы все тут неадекватная школота. Вас надо забанить.
На коленях умоляй, как положено.
Не бомби. Иди перечитай первую или вторую главу SICP.
type Сock struct {
Length int
}
func yy() *Cock {
return &Cock{10}
}
func zz() Cock {
return Cock{18}
}
Только по лицу не бейте
Спасибо, анончик!
Ну в расте-то обработка ошибок куда продуманее чем в го. В го2 могли бы спиздить, но почему-то надрафтили очередной неуниверсальный костыль, охуеть просто.
О мёртвых либо хорошо, либо никак.
единственный повод зайти в го-тред
>Я в последний раз видел такой трехэтажный ассемблер в универе на сях
…но нет, го — это и вправду такое говно.
gopacket наверни - для сети лучше него разве что scapy.
Извини, не понимаю петушиного.
Удваиваю
>го - первый язык
Братишка, пощади себя, возьми что-нибудь более человеческое, иначе вообще может от программирования отвернуть.
Го хоть и инструмент очень хороший для определенного круга задач, но крайне унылый.
Меня сети интересуют,а голанг вроде хорош для них
Позже си собираюсь учить
Пробовал питон,шарп.Все заканчивается тем,что мне нечего писать и я не понимаю зачем я это учил
Тут хотя бы цель есть какая-то
Бля, вам впадлу что ли? Хули как не родные, епта?
Смотря, что под сетями понимать. Сокеты сырые и заголовки tcp/ip или 15 min blog. Разные вещи. Начни с си или лучше с rust
invalid operation: time.Second * i (mismatched types time.Duration and int)
Оу,спасибо,как раз таки первое меня и интересует
Го разве для этого не подходит?(извиняюсь за возможно глупый вопрос)
Как в крестах оно определяет что T должно быть возможно сравнивать?
Пикрилейтед раст, например.
через свойства типов
реализаций их полно, либо их новых стандартов, либо из буста, либо руками делаешь сам (читаешь в книжках как делать)
не вопрос, в общем, тема обсосана четверть века назад, лол
а вообще в данном конкретном случае на этапе компиляции при специализации шаблона и будет определено, можно ли сравнивать
Ясн. Короче, всяко лучше чем го.
БАМП
Учитывая, что прошло столько времени, а язык меняется, думаю, лучше найти книгу поновее.
Не угадал. Я перешел из говномесов в когорту белых людей, и теперь смотрю на энтерпрайз как на говно. Впрочем, все еще может поменяться, ага.
Лол.
А кроме канала?
У меня на собесе такое спросили, я про канал сказал, но не уверен, что способ единственный
можно мьютексом, впринципе те же яйца только в профиль
По сути тут только чтение файлов /proc/* и их парсинг.
На первый взгляд сложностей не будет если не прям в лоб переписывать
наверное важнейший камень:
strings.Trim вторым параметром передаётся на то, что надо обрезать, а набор символов для обрезания.
В голос чёт.
ну не говори.
Это даже плюс. Спасибо.
Если не брать в расчёт круды, моя типичная задача:
Запилить микросервис, читающий очередь RabbitMQ, проверяющий сообщения на дубли (хэш от него, к примеру, хранится в редисе или локальном хранилище). Что-то дописывается в сообщение, валидируется и передаётся на SMTP-сервер.
Спасибо за конкретику.
Может еще посоветуешь, на какие сторонние либы (которые стали стандартом де факто, типа gorilla/mux) стоит обратить внимание?
Я не он, но приведу пару примеров
valyala/fasthttp, globalsign/mgo ( хотя в последнее время развивается официальный), stretchr/testify, sirupsen/logrus
Благодарствую, боярин!
вот допустим есть массив var someArray [10]int. Грубо говоря. Тип этого массива не int а не 10[int]? Так что ли?
https://play.golang.org/p/eQB1f7RMF9c
Сначала VmRSS 1 MiB. Далее потребление памяти постепенно растет до 6 метров, и больше не растет. В чем причина такого роста и можно ли это предотвратить?
наркоман, ты там time.Second в 4 строчки вычисляешь? ) По вопросу: работа GC, особенно на малых объёмах, штука трудно предсказуемая, не специфицированная и тебя ебать не должна. Если всё-таки ебёт -- можешь потеребонькать переменную GOGC, которая влияет на агрессивность срабатывания GC
спасибо, няш
подёргал GOGC, не очень-то что-либо изменилось.
На питоне ж такой скачки нет. Как жрало 9 метров со старта, так и жрет.
Короче, нужно мне например круд запилить, беру я значит Rails или Django и фигачу сайтецкий, что в этом плане может мне предложить экосистема Go, есть что-то похожее?
web-фреймворков на Gо много.
Бля, похоже на правду. В моем случае 30 горутин работают быстрее, чем 100
А разве i*time.Second не будет работать?
Пишу небольшую игру, мультиплеерную (ну типо всякх agar.io)
Возникла загвоздка, не знаю как реализовать механизм комнат.
Т.е человек заходит на сайт - видит форму- вводит название комнаты (+ какие параметры) - далее после нажатия кнопки эти данные улетают на сервер (там создается структура комнаты и все такое) - и человек автоматически редиректится в нее
саму структуру комнаты написал
Хелп! помогите как сделать это! умоляю с псевдокодом!
забыл добавить что все на вебсокетах
Если ты не понимаешь, почему всё задизайнено максимально примитивно, то это просто не твоё.
Ты просто разработчик без зачатков менеджерства - в этом нет ничего плохого, просто факт.
Все три - это уже аналоги уже имеющегося софта, но на расте? Уходи, пожалуйста, потому что это даже не смешно.
Попробуй объяснить бизнесу, что критические по производительности сервисы следует переписать на go а лучше сразу на rust потому-что ваши рельсы вытягивают максимум 1000 rps и затраты на железо скоро будут выше затрат по миграции на гошечку
> а лучше сразу на rust
А может сразу на x86 intel asm? Типа логика такая, чем ниже уровень тем лучше для веба?
11010000 10010100 11010000 10110000
Смысл есть, чтобы не писать портянки сиквеля и иметь удобный кверибилдер, но все орм на го пока что говно. Ждём тырпрайз уровень, как в жавках и шарпах.
Ты им сразу запили в свободное время микросервис на го, где критическая для скорости работа выполняется и с бенмарками им покажи.
Руби медленный как говно, но ты хуйню несешь какую-то.
>>50604
Есть, конечно. Но анон прав, нормальных нет, все говнище ебаное.
На рефлексии норм (ну как норм, за отсутствием альтернатив) https://github.com/go-pg/pg
На кодгене есть только https://github.com/volatiletech/sqlboiler , остальные мертвы. Но это activerecord ебучий, причем все равно стремноватый.
А зачем ее вообще переписывать? Чтобы ты мог поупражняться в го за счёт работодателя, а заодно наебнуть стабильный продукт? Лол.
Бамп ебаный вас в рот
Поднимать количество, пока ты не загрузишь свой проц около 100%, либо свой винт, если ты там безо всякой логики их копируешь например. Хотя дисковые операция я в любом случае попробовал бы отдельно сериализовать.
Гофаны, когда нужно закрыть два и более файла/канала, вы делаете так:
defer close(chan1)
defer close(chan2)
Или же так:
defer func() {
close(chan1)
close(chan2)
}()
https://golang.org/pkg/fmt/
> The default format for %v is:
> struct: {field0 field1 ...}
> array, slice: [elem0 elem1 ...]
> maps: map[key1:value1 key2:value2 ...]
> pointer to above: &{}, &[], &map[]
И что это значит? Почему при переменной это адрес, а при массиве это не адрес?
Большая разница. Го-рантайму адрес брать у нечего. Если хочешь получить адрес массива, адресу первый элемент. fmt.Println выводит массив даже при &. Создай массив по человечески и получай &y[0]
Короче если тебе нужно получить адрес то выводи через &y[0] или используй println(y). Если тебе интересно почему, то причина в том, что Println не понимает, что ты от него хочешь. Точнее понимает но не так. Он думает, что ты ему указатель на массив передаешь. Он грит ок. Разыменовывает его приводит к типу и выводит. Он не понимает, что ты хочешь получить адрес. Так вот работает Println.
Нихуя не понял. Ладно, спасибо за попытку, видимо я не понимаю каких-то фундаментальных вещей. Почитаю об этом.
Почитай гайды к массивам для языка С. Принцип у них один в один, но уделяют им внимания более подробно и развернуто. Плюс расскажут устройство внутри, по памяти.
По числодробилкам говно на уровне дебажной сборки сей. На джаве получше будет, ибо JIT.
На хаскель перепиши.
Про книги в шапке треда
Но меня останавливает то, что нет дженериков. С ума сойти, ведь это столько лишней писанины будет, без дженериков-то.
Есть где-то драфты нового стандарта с генериками, что-то вроже C++0x? А то если я без генериков привыкну, то потом хуй переобучусь, я же очень медлннно обучаюсь.
Да нахуй вам эти дженерики, блядь ? Вы ебанутые ?
На данный момент они НАХУЙ не въебались в го. Что там использовать в дженериках ? Хендлерфанк ? Задавать поле в структуре БД ? Вы ебанутые ?
С отсутствием дженериков смириться можно, но вот от обработки ошибок меня АЖ ТРИСЕТ.
А вообще, мне го нравится, хотя я несколько лет плевался от синтаксиса, прежде чем начать его использовать.
Ну вот что ты за пидорас такой, а? Не нравится яп - не используешь его, а не ходишь по тредам, рассыпая говно. Растошизик, ты?
Тебе вера запрещает загуглить "go generics proposal"?
enter на конце ifа с фигурной скобкой переводит как надо на 1 таб от смещения самого ifа
enter же на конце else переводит на 2 два ДВА блять таба.
как исправить?
За все хуй знает сколько лет мною только один раз использовались побитовые операторы. Понимать нужно, там ничего сложного просто в голове дебажить эти хуевины долго.
Если ты не пишешь драйвера или прошивки для эмбеда, то это все не нужно
Реализовать удаление в корзину
Аноны, я так понимаю, что не стоит передавать в функцию какой-нибудь жирный массив, из-за того что в момент передачи создается его копия и уже она передается в функцию, поэтому для экономии памяти нужно передавать в качестве аргумента не массив, а указатель на него. Поясните, что возвращать, если массив создается внутри функции, тоже указатель на него?
Спасибо, оформили баг
Передавать слайсы. Это блять в самом начале тура написано.
Почему тернарного оператора нет? Это же супер удобно и легко было бы.
С другой стороны я вижу чудовищный хайп и кучу годного софта, написанного на голанге (rclone, godu, gdrive только из не очень популярных, что я пользовал), огромное коммюнити.
К тому же я давно ищу себе язык, на котором я бы мог писать небольшие cli утилитки для себя, голанг тут идеально подходит со своим одним бинарем.
Может это я просто тупой? Кто-нть из принявших голанг тут сталкивался с такой проблемой? Как выбросить из головы года ФП-стайл кодинга и начать жить с гошечкой?
>Как выбросить из головы года ФП-стайл кодинга и начать жить с гошечкой?
Попробуй начать заниматься горными лыжами. Есть вероятность, что ты получишь травму мозга, заработаешь амнезию, а твой айкью упадет в два раза. Вот тогда голанг тебе будет как раз.
А небольшие cli-утилитки отлично пишутся на питоне, кстати.
Почему нет? В нормальных языках if экспрешон
val x = if(theAnswer == 42) "sprudo" else "sprade"
Тоже скажешь что не нужно? Объясни хоть в чем проблема писать простые условия в одну сторчку?
>небольшие cli утилитки для себя
с женериками будет больше боли. У меня пара знакомых для утилиток таких выбирают раст.
Но я больше серверную часть на голанге пишу, так что за раст особо не скажу.
>А небольшие cli-утилитки отлично пишутся на питоне, кстати.
После появления котлина перестал видеть смысл в пиздоне, можно так же элегантно писать, но на строго типизированном языке.
Также в пиздоне дичайше бесят тонны всяких костылеподобных штук вроде __init__ __new__ __govno__. Комбинаторы на коллекциях почему то сделаны в виде функций а не методов самих коллекций, блять, а лямбы там вообще пиздос
Для cli хочу иметь просто 1 бинарник и все, как перечисленные выше примеры: rclone, micro, godu
да, я подумываю про раст, но его перспективы туманны в отличае от голанга, у которого все хорошо
пофиксил запрос
Ну бери го, хули тогда. Вообще в будущем мне кажется этот язык сравнятся по батарейкам как в питоне. Лишь бы комьюнити грамотно дела обставили.
Зачем ты сравниваешь батарейки (библиотеки я так понимаю) и синтаксис? У го отвратительный синтаксис построенный на его идеалогии "нехуй выебываться, пиши просто". Маловероятно, что он когда-нибудь станет лучше.
Меня в целом удивляет ситуация, когда столько годноты и такое большое коммюнити вокруг такого примитивного языка. Мне кажется что я чего-то не понимаю в этой жизни.
>Зачем ты сравниваешь батарейки (библиотеки я так понимаю) и синтаксис?
Потому что они взаимосвязаны.
>У го отвратительный синтаксис построенный на его идеалогии "нехуй выебываться, пиши просто".
Мне это нравится. А еще в вижаке тулинг просто шикарен.
> Маловероятно, что он когда-нибудь станет лучше.
Станет.
> когда столько годноты и такое большое коммюнити вокруг такого примитивного языка
Заебись язык.
>Мне кажется что я чего-то не понимаю в этой жизни.
Я тоже. Вон элик нормальный (относительно), но никто не хочет оценивать его возможности. Хотя, тут отдельный разговор про ерланг ВМ с плюшками акторов.
> Вон элик нормальный (относительно), но никто не хочет оценивать его возможности. Хотя, тут отдельный разговор про ерланг ВМ с плюшками акторов.
Ну я писал на ирланге года 2, даже деньги за это получал. Язык прикольный, но заебало, Си с прологовым синтаксисом и функциональщиной. Акторная модель переоцененая, супервизоры на моей практике никто нормально настраивать так и не научился, приложение один хуй падало в корчах. Тулинга ноль. Кстати тогда я на ИДЕЮ как раз из-за ирланг-плагина и подсел
>Потому что они взаимосвязаны.
Нихуя. Вот голанг в его текущем состоянии как контрпример. Язык простой как дверь прям до отвращения, но аппликух и либ на нем жопой жуй.
>Станет.
Я очень на это надеюсь, только вопрос когда, я старенький, могу и не дожить.
> когда столько годноты и такое большое коммюнити вокруг такого примитивного языка
> Заебись язык.
Да вот я о том же и говорю. Смотришь такой на коммюнити и думаешь "Вау, вот он -- язык моей мечты", потом начинаешь на нем писать и понимаешь, что блять в консерватории что-то не так.
Может вы мне скините примеры идеоматичного голанг кода, который я посмотрю, и сразу пойму, что был не прав, и язык норм? Что из опенсурца стоит посмотреть?
>Заебал уже всех своим нытьем.
Ой, ну а ты просто нахуй иди. Два поста написал -- уже нытье, уже ВСЕХ ЗАЕБАЛ.
кстатит вот от ирланга меня так не воротило как от голанга, хотя там тоже проблем полно, одно отсутсвие неймспейсов чего стоит
Да все верно, го реально уебищный и от него рвота периодически.
Просто ничего лучше из условного production-ready пока нет, увы. Джавишных бастардов не предлагайте, спасибо.
Коммьюнити гошное любит рассказывать, что та или иная часть языка это не говно, а гениальный подход, но это не более чем самовнушение. Вон на историю с gopath'ом и модулями погляди. Дальше лет эдак через 256 еще дженерики впилят в том или ином виде, будешь своими редьюсами обмазываться, гошники перестанут рассказывать что от дженериков все беды.
Другой анон, пишу на гошке год
Не знаю от чего ты воротишься. Мне все нравится.
От динамикопараши просто блевать хочется. Тогда у нас остается либо жаба либо гошка. Я конечно же выбрал второе. Ниче, живу.
Спасибо, антош. Ну что ж, это очень печально, буду смотреть тогда на раст или современные плюсы как хобби-язык. Хацкел не предлагать, я пробовал, Скалу тоже (к тому ж там злобучая JVM), слишком пиздато для меня, я программист от сохи, мне надо что-нить для рабочих и крестьян. Может случится чудо и Котлин-нейтив взлетит не случится
Братишка, ты то мне и нужен. Поясни, можно ли перекатываться в котлин, не зная жабы, и есть ли на нем работа вне мобильной разработки?
>Поясни, можно ли перекатываться в котлин, не зная жабы,
Ты совсем дурачек? Дальше даже не читал.
Любой язык основанный на жвм требует знания жабы. И что вообще такое знать? Ты должен хотя быть месяц непрерывно писать какую-нибудь хуйню, чтобы прочувствовать язык.
мимоведройд_иос_голанг_девелопер
>После появления котлина перестал видеть смысл в пиздоне
Смысл пиздона (в контексте cli-утилиток) в том, что он уже установлен на каждой машине, это же просто человеческая замена *шам.
>голанга, у которого все хорошо
>непрерывное падение последние пару лет
>при том, что появился он меньше 10 лет назад
>столько годноты и такое большое коммюнити вокруг такого примитивного языка
Вот это в точку. В го хорошо все, кроме го.
> го реально уебищный и от него рвота периодически.
Так про любой язык сказать можно.
жаба - тонна говна чтобы написать что-то.
сисярп - микрософская параша
с++ - неуправляемая семантика блять
с - старое уебищное говно
У последних двух пекедж менеджерей оф нет блять даже. Хз что у сисярпа.
питон - уебищное говно с _________ и кучей манярефлексии. Каждый второй школьник.
жс - сложение двух массивов дает строку\булевое значение. точно не помню.
руби - закрылись в своем манямирке и дрочат на скорость.
ерланг - отсутствие ошибок во время рантайма. акторы перезапускаются. Это и плюс и минус. Отсутствие UTF-8. Строк нет.
Еликсир - говно язык, даже IO.puts arr нельзя вывести массив простой. Отсутствие тулинга.
Скала - маня фп программировние. Что-то взяли лучшее с ерланга, но опять же - ебучая жвм.
свифт - ABI появляется только к 5 версии.
обжс - если привыкнуть то норм, но ток в иосе. Слишком трудночитаемо, содержит 2 маняфайла.
пхп - 20+ лет пытается стать жабой, когда жаба блять уже написана.
кокотлин - неочевидность корутин. Если пишет маня даун, невозможно это вообще прочитать. Ставят ставки на натив, но они не понимают что он только работает в ведройде.
дарт - жаба на жсе. супер уебищно. каллбек хейл, как и везде в даунских языках. приватные переменные обозначаются блять через _сука
голанг - компактно и универсально.
Есть подозрение, что ты про перечисленные (или некоторые их них) языки только в википедии читал, ну максимум хэллоу ворлд написал.
>Еликсир - говно язык, даже IO.puts arr нельзя вывести массив простой. Отсутствие тулинга.
Мне на эликсир насрать, но это смешно. Судя по первому предложению даже хэллоу ворлд не осилил, лол. А по второму - чего тебе не хватило, просто любопытно?
> что ты про перечисленные (или некоторые их них) языки только в википедии читал
Не писал только на двух.
>>54032
Про какое такое отсутствие тулинга в Erlang/Elixir вы все говорите? Простые и удобные rebar3 и mix, из коробки observer с помощью которого можно подключиться к любой ноде и получить полную информацию о всем стейте ноды, включая информацию о любом процессе, трейсер, в эликсире ExUnit и Credo, релиз менеджмент действительно так себе, но юзабелен. За почти 4 года работы с эликсиром не помню, чтобы возникали задачи, которые было невозможно или с костылями решить, при этом разработка, отладка и сопровождение очень проста, особенно если написать различного рода DSL и либы под свою область задач, что на эликсире очень легко. Единственное чего не хватало, это статической типизации, но тут частично проблему можно решить с помощью структур, метамагии, typespecs и dialyzer.
мимо-эликсир-сеньор
телега: /golang_for_beginners
>>53750
Семпай, я создал!
Ты забыл указать на то, что, если твой код говнокод и у тебя возникла ошибка - это нигде не покажется. актор просто пересоздатся и так будет до бесконечности.
Под отсутствием тулинга я подразумевал что негде писать. В вижаке нужно блять tab юзать, вместо ентера - это просто меня убило (да есть на то свои причины но это не отменяет факт что они дауны, если не могут норм сделать) Очень малое комьюнити. По сути кроме феникса он никому и не нужен. Хотя, если было бы хотя бы 50к звезд как у рельс, я бы посмотрел в его сторону.
Писал раньше в Atom, сейчас в VSCode. Подстветка, автодополнение, go-to-def, терминал, сплит экранов, все это есть и работает отлично, при этом очень легковесное, постоянно открыто около 14 проектов, попробуйте такое на IDEA какой-нибудь.
> Ты забыл указать на то, что, если твой код говнокод и у тебя возникла ошибка - это нигде не покажется. актор просто пересоздатся и так будет до бесконечности.
Как это не покажется? В большинстве случаев, если произошла ошибка в процессе, логах будет что-то вроде <pid> exit with reason ... и дальше стектрейс, в остальных случаях, если что-то тихо сдохло под супервизором, это попадет в SASL лог, либо можно повесить монитор/залогать handle_info коллбек, если надо узнать прям сразу. Да, можно написать такой код, с таким взаимодействием процессов, что черт ногу сломит, но это скорее проблема предметной области, распределенность, отказоустойчивость, параллельная обработка это сложные задачи сами по себе, и эрланг/эликсир с ними справляется отлично. Комьюнити хреновое, согласен, но есть Erlang Solutions/Central/Factory они активно способствуют развитию Erlang/OTP, сам Elixir так же не стоит на месте, релизы выходят стабильно. Phoenix+Ecto, несмотря на небольшое комьюнити, позволяет легко и производительнее решать те же задачи, что и RoR. Лично я на своей работе феникс использовал только для написания админ интерфейсов, во всех остальных случаях достаточно было OTP, Cowboy+Ranch, Plug и Ecto, какого-то неудобства от малого комьюнити не испытывал, язык и OTP платформа уже зрелая и все необходимое в ней есть и проверено десятками лет продакшена.
...и только в божественной кложе все замечательно ^_^
На самом деле удваиваю анона выше, охуенная аналитика по неосиленному хеллоуворлду и статье на википедии. Алсо, проиграл с маняпретензий типа "арря, подчеркивания, арря переменные не так обозначаются". Алсо,
>нужно блять tab юзать, вместо ентера
лолблядь, ну скажи честно: ты ведь не разработчик, максимум какой-нибудь эникейщик или тестер. Зачем тебе врать на анонимной борде?
повесил монитор - говна немеряно
лежит похоже кластер весь
эрланговый централ, в логах серверных
все акторы на трейсы поразменяны
и без сохацкого не справится нам здесь
Микросервисы/Конфиги приложений, сервисов, контейнеров/скрипты все это постоянно надо просматривать/редактировать.
Понятно, абсолютное отсутствие организованности.
Есть, я совершенно точно знаю, что на нем в ДС2 в нексайне пишут бэк со спрингом. Слышал в сбертехе его внедряют, че-то про авито тоже слышал. Ты всегда можешь пойти в ЖетБрейнз кек
Я перекатился со Скалы, на джаве писал тыщу лет назад в универе. Язык заебись, джава, от которой тебя не тошнит. Тулинг заебись. Только проблема в том, что бежит все это под ЖВМ и коммюнити из пердунов и индусов. Я рекомендую.
И таки да, я пишу на котлине бэк, где не скажу, платят заебись. Сорян, нафлудил, че-то отвлекали каждые 5 минут, на дваче блять уже не посидеть
>кокотлин - неочевидность корутин
пишу на котлине без корутин, как тебе такое Илон Маск? тредпулэкзекютор и все дела, у нас конкаренси кот наплакал, крудня к базе. хотя вон ktor на корутинах, весь асинхронный, может когда на него перелезем
1) kotlin-native
2) не ебу что ты называешь формой, но вангую, что поможет kotlin-native
3) kotlin-native
Только учти, что это дико сырая вещь, и я вообще сомневаюсь что у нее есть будущее. А если ты хочешь в графику, то хули ты забыл в треде языка с автоматическим управлением памятью и околонулевым интеропом с нативочкой? Тебе нужны плюсы.
Джавовый котлин он либо для говняканья прилаг под ведроид, либо для говняканя бекенда со спрингом/вертексом и иже с ними. Ктор для особо упоротых
>как из Котлина можно получить program.exe
второй варик тебе нужен ахед-оф-тайм компилятор, который тебе сварганит из жвм байткода твой экзекютейбл с рантаймом https://www.excelsiorjet.com/
graal
Спасибо за совет, но чем ебаться с плюсами я лучше Гошечкой обмажусь. Котлин понравился синтаксисом, но JVM вызывает тонны любви и обажания
теперь это язык уровня питона, жс с его фремворками по привлекательности для свитчеров заводобыдла и домохозяек
Остаются пока котлин, скала, хаскель, раст как последние убежища для программистов.
Они не справятся с ней
Мелкобуквенное малолетнее быдло разложило все словно по полочкам. Пойду полистаю спеку раста в сортире
Только замени котлин на свифт, к хаскелю добавь окамл и ризон, к расту добавь няшную сишечку (да, говно, а щито поделать), плюс еще эликсир и кложа - и вот тогда будет ближе к правде.
большебуквенное небыдло до краев наполненное концентрированной желчью, лол
"сортир"? как в твоем колхозе дела? в родословной наверняка сплошь профессора
пошути в ответе, кузнечик, пошути
В этом треде постоянно кто-то постит эту фразу в ответ на упомянутый вскольз раст. Признай честно: ведь растошизик - это ты и есть. Тебя, видимо, однажды сильно разворотили дупу растеры, и с тех пор ты так болезненно реагируешь на любое его упоминание. Хочешь об этом поговорить?
inb4мимо-не-пишу-на-расте
Растошизик не палится. Даже заговариваться начал.
>упомянутый вскольз раст
Приползти в тред про другой язык из своего петушатника болота и вывалить с профессорским апломбом свое никчемное мнение малолетнего хелловорлдщика (в лучшем случае) - это теперь называется "упомянуть вскользь"? Ясно
Понятно, значит моя гипотеза верна.
Как послать в канал пустую структуру без создания промежуточной переменной?
С каналом, созданным вот так results := make(chan struct{}, 666) это не прокатит без запиливания отдельного типа, чего тоже хотелось бы избежать да, я поехавший
Никак. struct{} типом не является. А вообще скажи в чем задача, я уверен, что ты делаешь что-то не так.
Не знал, что так можно. Век живи век учись.
Хероку не могу понять, то godep тупит, то 10 или 14 ошибки при деплое, может кто-то делал там? Ну или на каком-то другом хосте держать?
да что-то пока даже 5$ не хочу отдавать ради поиграться
По желанию.
Одни кладут вендор, ведь это позволяет скачать проект и сразу же запустить
Другие не кладут, потому что тогда меньше места занимает изначально, да и зависимости потом пусть сами подтягиваются.
А вообще, переходи на go mod
раст хуйня же, грин тредов нет, ио в стдлибе блокирующий, уже одного этого достаточно чтобы выкинуть его.
Ну начнем с того что async есть в виде либ и едет в стандартную либу. А продолжим тем, что нахуя тебе вообще нужен асинк?
Анон, игнорируешь ли ты кукареки IDE о необработанных ошибках в функциях наподобие fmt.Scan() или file.Close()?
У тебя есть тредпул, че тебе еще надо? Планировщик ОС вполне себе шустрый.
>Планировщик ОС вполне себе шустрый
Так и запишем, можно писать только магазины и бложики, а не что-то высоконагруженное
Если ты пишешь что-то высоконагруженное, флаг в руки. Вот только 95% это магазины и бложики. И пихать туда асинк не нужно.
Евентлупы или хитрый шедулер как у гошки, куча тредов в пуле, под каждый запрсо или асинк действие - тоже вариант отсоса, JVM это уже показала.
Бамп
Вот этого двачую. С асинхронщиной всегда столько еботни на ровном месте, что обязательно следует ее избегать, если это возможно. Надеюсь, раст в будущем хоть как-то улучшит эту ситуацию со своими линейными типами, но пи все равно блядь по определению хромое и убогое, так что это все энивей рюшечки
Я пистун-джун который мнит себя мидллом. На работе нужно было написать очередной сервис и я пропихнул чтобы мне разрешили его сделать на Пщ. На этом + просмотр напыщеной пизды Роба Пайка мое знакомство с Пщ закончилось, но не раньше чем я успел засрать свой профиль на линкедине каков я Пщ господин.
Ну, вот уже полгода пытась найти работу по профлю и закономерно насасываю.
И вот вылазит одна большая контора в которую я даже не подавался помоему на какойто помойке нашли мое старое резюме и зовут мидл позицию на Пщ.
На собеседовании помимо прочего спрашивают общие вопросы по Пщ, я на них расплывчато и напуская туману отвечаю по памяти того видео с ютьюба.
Интервьюирующие хуеют и говорят что даже тестовое давать не будут ибо я мастер Пщ. Я им сказал что давно не кодил и нихуя не помню, они же пересказом ютьба остались довольны.
Сегодня обещали прислать офер.
Это я к чему. Вкатывальщики, верьте в себя. В Пщ комьюнити достаточно ебанутых, готовых даже меня взять на работу, у вас не все так плохо.
дело происходит в сша
Многафбукафниасилил, сорян.
В Киеве, например, сейчас просто ебанутый спрос на гоферов. Готовы тебе отсосать на месте, если ты хотя бы го тур прошел и до этого туду апп на любом языке писал дольше одного вечера.
И ведь это нихуя не центр мирового айти.
сука блять, получил офер на больше чем просил так вообще бывает?
При том что в питончике пытался перекатится почти полгода, но меня закономерно ебали в 6 рыл возле маркерной доски.
Кароче, принмайте пополнение, теперь я в вашем углу. Заодно посоветуйте годный интерпритатор для Го.
Зарепортил /po/рашника
я может неправильно рассказал. Меня не видос спас, а общие низкие требования и тот факт что это уже 20+ интевью. У меня уже жена меня очень похоже кривляет с моим спичем по телефону, где какие технологии я использовал и как решал проблемы с коллегами и кем себя вижу через 5 лет. Пижжю уже сладно, кароче да унизит их аллах
Меня спросили ООР ли Пщ. Я этого конечно не знаю, помню что классов там вроде нет, но с другой стороны можно делать структуры похожие по поведению на классы. Ну и я ответил в том плане что "и да и нет". Потом спросили, понятно, про интерфесы, а я не ебу что это, сам ни разу не пользовал. Я пространно намекнул что это чтобы делать недоинхеританс для этих недоклассов.
Либо требования и правда были так низки, либо они решили что я знаю гораздо больше чем понятно из моего мычания - хз.
>>57603
ну или виртуальную машину, че ты докупался до слов.
120, удаленка
Обычно игнорирую, но если линтер не проходит, то пишу обработку
Как запилить передачу нескольких значений из командной строки в прогу под одним именем и без кавычек? Что-то типа go run xuy.go --azaza raz dva tri
Ну, у тебя же значения через пробел идут. Сплитуй по пробелу
Пилите перекат, иначе я сам это сделаю и вы все охуеете
Рано еще. Перекат запилю, когда будет около 550 постов
Есть одна тян один json файл с настройками. Что с ним будет после билда? Компилятор его вкорячит в бинарник?
ты ебанутый? какая нахуй виртуальная машина в голанге? дайт мейл своего работодателя, напишу, чтоб тебя пидорнули оттуда
Нет. Таскать файл с собой придется. А что, много настроек? Почему бы просто env не использовать?
>дайт мейл своего работодателя, напишу, чтоб тебя пидорнули оттуда
Я уже отписал Абу чтобы тебя пидарнули обратно на одноклассники.
>Как диды блокирующими тредами срать на каждый реквест?
У дидов тредпул по количеству ядер проца, на нем джобы крутятся и таскграф с зависимостями руками мутится, ты не путай.
тебе больно?
Можно ли анмаршалить в одну и ту же структуру и json и xml? Не одновременно, разумеется.
Теги, блядь, какие-то выдумали вместо человеческих аннотаций!
Отбой. Нагуглил, что таки можно
Ща будет
Вы видите копию треда, сохраненную 9 апреля 2019 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.