senjun-courses icon indicating copy to clipboard operation
senjun-courses copied to clipboard

Комментарии к главе 3, курс по go

Open Microvenator opened this issue 1 year ago • 0 comments

В языке Go существует один единственный вид циклов — это цикл for.

И это очень и очень в парадигме го: код, написанный разными разработчиками, выглядит одинаково. Было бы полезно такие вещи подчеркивать, чтобы у читателя складывалось понимание, откуда ноги растут у тех или иных архитектурных решений при проектировании языка.

Важно! Символ { в Go обязательно должен стоять в конце данной строчки кода

Об этом сказать чем раньше, тем лучше. В идеале - в самой первой главе в особенностях языка. Это иллюстрация к тому, что "код, написанный разными разработчиками, выглядит одинаково". И в первую же главу добавить, что го очень жестко подходит не только к форматированию, но и к "недописанному коду". Неиспользуемая переменная, неиспользуемый импорт - это ошибка компиляции!

https://stackoverflow.com/questions/21743841/how-to-avoid-annoying-error-declared-and-not-used

Почему так сделано? Разве нужно синьорного синьора бить по рукам за не используемую переменную? Это укладывается в парадигму го: мы берем new grad'ов и джунов, даем им вот такой язык, и он сам бьет их по рукам за любой шаг в сторону от стайл гайдов. Как написано в ответе на стэк оверфлоу (ссылка выше), "That error is here to force you to write better code".

Например, следующее выражение ошибочно:

Цикл в го не является выражением! В отличие от раста или хаскеля. Нужно переформулировать.

и вы получите ошибку следующего содержания

Были бы уместны более краткие формулироки (здесь и в похожих местах). " следующего содержания" - излишне, можно сократить.

Microvenator avatar Jun 08 '24 10:06 Microvenator