Pull to refresh

Comments 15

Интересно, спасибо за перевод.
Пожалуйста. Вам спасибо за отзыв. Для меня это новый опыт. Читаю на английском достаточно много, но для себя — это одно, можно просто уловить суть и продолжать дальше. А для других переводить — это, оказывается, очень трудно и непросто.
Вот и верь после этого всяким Робам Пайкам:
Go — язык, предназначенный для написания сервер-сайд приложений на 100-150 строк кода
Ну я как понимаю, он имел ввиду что можно написать сервер за 100-150 строк, а не то что на больше это боль.
При наличии библиотек это можно на чем угодно. А написать полноценный сервер, уложившись в 150 строк — это вряд ли.

Я помню мне как-то пытались продемонстрировать ldap сервер, кажется на Эрланге. Который реально слушал сокет, и отвечал на команды протокола — только ничего не делал. Строк в 150 такое и укладывается.
На python
>>> ''.join(map(chr, map(lambda x:x^255, list(b'\x96\x8c\x99\x8a\x9c\x94\x96\x91\x98\xdf\x9e\x92\x9e\x85\x96\x91\x98\xf5'))))
Результат
'isfucking amazing\n'
После прочтения статьи осталось ощущение, что автор рассказывает о том, что они написали большой монолитный плохо спроектированный кусок кода, и оправдывается теперь за это. Не хочу сказать, что сам проект плохо работает или еще что-то в этом роде, но с позиции программиста у меня закрадываются некоторые опасения.

Например, чего только стоит такое объяснение, где автор объясняет стабильность и качество системы, выбором языка.
Я думаю, что многое зависит от языка. Компания, в которой я работал до Canonical, имела миллион строк кода C#, и оно довольно часто падало с «null reference» исключениями и прочими необработанными исключениями.
По-моему, не самый удачный выбор, ибо практика и статистика показывает, что ошибка в 99% случаев именно в «вашем» коде.

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

Иногда приходится делать выбор. Например, между оверхэдом потоков информации между микросервисами и излишней связностью монолита. Команда, в которой работал автор, выбрала монолит. А как бы оно было, если бы команда выбрала микросервисы, никто не знает. Вряд ли кому-нибудь захочется переделать 500к строк кода на микросервисную архитектуру, чтобы посмотреть — как оно будет…
А сравнение с проектом на C# некорректное, да — там были другие люди, да и неизвестно, как он развивался. Вполне вероятно, что Juju на C# тоже бы не падало в продакшене. Автор просто восхищается тем, что Juju в продакшене не падал, а предыдущий проект вспоминается с «содроганием» :) Для «поделиться ощущениями» вполне пойдет, как аргумент в сравнении — вряд ли.
А не кажется ли вам, что 500 тыс строк как-то многовато для заявленной функциональности? И кстати, есть где-то описание способа, как они это число считали? Потому что глянул я на код-то, и выглядит это так: куча мелких файлов, в которых описан скажем один интерфейс, с соотношением комментариев к коду больше чем 1:1.

Вот сегодня опубликовали оценку для размера кодовой базы GridGain — говорится о сотнях тысяч строк. Неужели это проект того же масштаба?
Подозреваю, что считали кодом все строки, которые не являются комментарием или пустой строкой. Возможно, 500 тысяч строк — это все репозитории с github.com/juju. В оригинале нет каких-то дополнительных сведений о методике подсчета. (Информация о том, что комментарии не учитывались, есть и в переводе)

Вывод утилиты cloc, бранч master:


    3850 text files.
    3744 unique files.                                          
     178 files ignored.

github.com/AlDanial/cloc v 1.70  T=30.00 s (123.0 files/s, 23234.6 lines/s)
--------------------------------------------------------------------------------
Language                      files          blank        comment           code
--------------------------------------------------------------------------------
Go                             3592          85985          65021         540485
Markdown                         17            624              0           1673
YAML                             49              3             15            897
Python                            4            154            154            556
PowerShell                        6             53              8            356
C#                                2             39              8            269
diff                              3             17             54            151
Bourne Again Shell               10             38             29            130
RobotFramework                    1              0              0            106
make                              2             32             18            105
Bourne Shell                      3             10             12             37
C                                 1              1              0              6
XML                               1              0              0              1
--------------------------------------------------------------------------------
SUM:                           3691          86956          65319         544772
--------------------------------------------------------------------------------
Спасибо. Не знал про такую утилиту.
Sign up to leave a comment.

Articles