вторник, 6 сентября 2016 г.

Golang дотянулся и до меня

Закончив второй проект на golang за который мне заплатили, можно наверно уже с уверенностью сказать что golang я попробовал.

Конечно же, я всё ещё новичок с очень поверхностным взглядом, и с частичным пониманием.

Но разве ж это мне помешает поделиться кое какими впечалениями.

1. Порой компиляция это прекрасно.

Я тут довольно долго просидел на скриптовых динамически типизированных языках, и даже привык к боли, когда ловишь ошибки уже на продакшене.

В этом смысле очень оценил компилятор который хоть немножко для тебя старается.

2. Скорость, тысяча чертей.

И вправду прекрасна. Причем любая. И компиляции и исполнения.

Был у меня тут разухабистый скриптик на перле который по ресту всякие данные снаружи тащит и хитро их в базу mysql записывает.
Он такой был, не быстрый, но хватало. Я размышлял, ну чего его ускорять если в любой момент внешний рест сервис может мне любую задержку дать, ну и забивал.

А тут переписал на golang, в рамках другого проекта, и черт возьми,  как же прекрасно стал он работать.

3. Вечные стоны про отладчик

Я что то не заметил этой проблемы,  наверно из за того что я и свои скрипты привык логами отлаживать, и тут тоже самое плюс минус.

4. Зависимости и вендоринг.

Тут боль. Надеюсь поправят однажды.
Меня спасает что я малюсенькие проекты пишу, а потом бинарник-артефакт ношу уже на сервера, и мне хватает.
Но как в большом проекте в реальной жизни жить - не ясно.

5. Обработка ошибок.

Я понимаю идею, заставить нас их обрабатывать, и даже поддерживаю её.
Но мой код быстро превращается в лестницу из if-ов

if err ! ... {
  ...
  bla, err : = my...
  if err ! ... {
Наверняка как то это решено в мире go, но я не дошел до понимания, киньте статьей чтоль.

6. vim-go

vim-go как тулинг меня вполне устроил, форматирования, подсказки, окно ошибок, всё ок.
Очень приятное впечатление, и особенно приятно что можно начать немедленно, на фоне последней мой неудачи со Scala.

7. Freebsd

Фрях у меня ещё полно в хозяйстве, а кросс-компиляцию в фряху я чего то не освоил сходу. Это меня довольно сильно ограничивает в возможностях внедрять новые скрипты.
Есть советы?


Вот, пока совсем немножко. Но зато я теперь более чем уверен, что всякие мелкие штуки которые раньше на перле и питоне писал, буду время от времени на golang писать.