Николай
и там вроде написано, что перевод
Aleksandr
спрашиваю мнение Мерля по статье
Alex
Если читать с разных горутин одну и туже хеш-таблицу или слайс. Можно получить ошибку? Или читать можно с разных горутин, а вот при записи блокировать любые действия с ней?
Daniel
читай сколько хочешь
Daniel
но ели ты туда попишешь - все читатели могу поломаться
Николай
А разве на одновременное чтение из мапы паника не выпадет?
Николай
Вроде даже есть какой-то мьютекс только на чтение
Anonymous
только при чтении не выпадает паника
Anonymous
RWMutex
Alex
Спасибо! Понял
Anonymous
Парни, в go get можно передать несколько путей к репам?
Anonymous
или по очереди надо делать запросы go get .... && go get ...
Yehor
Можно
ros
go get в корне приложения и по импортам соберет само
Anonymous
Спасибо, парни
engelbart
Sander
------------
в курсах от codeschool, есть вопрос, под какие задачи подходит go lang.
netwrok, websites, games вроде 3 пункта было только.
---
правильный ответ network, games, но не websites.
кто может аргументировать этот момент?
Sergey
Anonymous
Anonymous
Yehor
------------
в курсах от codeschool, есть вопрос, под какие задачи подходит go lang.
netwrok, websites, games вроде 3 пункта было только.
---
правильный ответ network, games, но не websites.
кто может аргументировать этот момент?
1) писать что-то быстро на статическом языке - боль 2) нет полноценных MVC-фреймворков (кроме Revel (но и он не активно развивается)) 3) шаблонизаторов сделано мало, стандартный очень скуден. Но это не значит что Go не применим к разработке веб-сайтов, ту же Java используют с фреймворками для сложных проектов, которые не делаются за неделю или месяц. Думаю, когда библиотек станет больше и пропаганда Го (которая сейчас активна) воздействует, то Го придёт и в разработку таких систем, которые не создают быстро. Можно привести пример Gitea, вполне себе отличное применение Го+веб.
Oleg
[Перевод] Что я изменил бы в Go
https://habrahabr.ru/post/325046/
Tags: Компиляторы, Высокая производительность, Rust, Go, Блог компании Mail.Ru Group, rust, go, haskell, никто не читает теги
Author AloneCoder on #habrahabr
"None и Some — это конструкторы: каждый из них является функцией, возвращающей значение типа Option<T>. Some берёт один аргумент, None не берёт аргументов. Учитывая значение Option<T>, вы можете прибегнуть к сопоставлению с образцом (pattern matching), чтобы определить, какой конструктор использовался для создания значения. При сопоставлении вы также считываете обратно (read back) любые аргументы конструктора. Если значение создано посредством вызова Some(x), то сопоставление с образцом позволяет обратиться к значению x."
По мне так хуйня какая-то.
Oleg
И примеров кода очень мало, местами мне просто не придумать сходу кейсов, когда "всё ломается".
Oleg
Очень много терминологии, прям академическая статья.
Slava
Oleg
Вот как можно такое читать:
fn map<A, B, F>(callback: F, xs: &[A]) -> Vec<B> where F: Fn(&A) -> B {
Oleg
И это предлагают запихнуть в Go. Почему бы тогда сразу на расте не писать?
Oleg
Короче опять нытьё про отсутствие дженериков. Добро пожаловать в статическую типизацию, ёпта.
nvkv
Sander
оставить работу пхпшникам? НЕТ )
хоть я и на нем пишу но не хочу
Мерль
Мерль
Безопасно, безо всяких уродских кастов типов
nvkv
nvkv
я чо, котаны, кто-то может рассказать про дженерики вне статической типизации?
Anonymous
😂😂😂
nvkv
меня так радует вот это вот бравирование статической типизацией у гоферов
nvkv
котаны, в го система типов так-то говно сраное, если сравнить с чем угодно почти
Anonymous
А вот про канал с датой и ошибкой в качестве опции это вещь
Sander
вот что вы думаете о том чтоб писать игры на php ?)
так как на работе, у нас сениор разработчик сказал, что на php можно очень хорошие игры написать, что зачем писать игру на каком-нибудь другом языке, ведь зависит от того как хорошо ты знаешь язык и пишешь код.
🏳️ Phil
Anonymous
Думаем, что нужно брать UE4 и не парить мозг :)
nvkv
Мерль
🏳️ Phil
Мерль
Либо писать свои кодогенеарторы
nvkv
Мерль
Но это адок в большинстве случаев, по сути делаешь работу компилятора
🏳️ Phil
Мерль
nvkv
nvkv
нечо переписывать
🏳️ Phil
Это читать потом сложно и переписывать
Читать сложно как раз дженерики и всякий ООП. Переписывать - ну да, есть некоторые особенности. Хотя вот возвращаясь к ООП - его тоже сложно переписывать. Иногда невозможно в адекватные объемы работ
nvkv
филипп блеать
nvkv
какое в жопу ООП?
Oleg
Напрашивается структура, как по мне
Oleg
И не уверен, может стандартный способ обработки ошибок через nil прокатит.
Oleg
А вообще, если ошибка отдельным типом, то отправитель в канал явно уже в курсе, что это ошибка, так что в канал её можно и не пихать.
Мерль
Это читать потом сложно и переписывать
Потому что реализация например интерфейса
Message {
Type() MessageType
}
для скажем строки, числа и двух видов структур займёт два-три экрана
С опциональными типами заняло бы шесть строк
Мерль
Мерль
Тебе придётся переписывать КАЖДЫЙ тип, который удолетворяет интерфейсу
Мерль
В случае например Бот АПИ телеграма - это с полтора десятка типов, Карл
Мерль
Это адок
Мерль
Кода на такое смотришь - хочется застрелиться
Мерль
А вы пытались разбирать AST гошечки с помощью пакета go?
Мерль
Это просто жесть
Мерль
Сплошные тайп-касты без наличия адекватной документации (потому что без документации хуй поймешь какой тип какому интерфейсу удолетворяет)
🏳️ Phil
Nikolay
Это просто жесть
Все познается в сравнении. Для меня самая жесть это разбор файлика c расширением vbs на 10к строк, в котором вначале стоит On Error Resume Next и без этой штуки просто не работает ибо ошибка каждые 50 строк какая-нибудь обнаруживается
Nikolay
Так что лучше бы я разбирал AST
Мерль
И писать его
Мерль
А потом рефакторить
🏳️ Phil
Это просто жесть
Ну не знаю. Для меня всегда было жестью разбирать все эти перезагрузки, виртуальгные методы и прочую хрень. Которую голдову сломаешь разобрать. А по трем экранам пробежаться не проблема вообще