Обновить
7
0
Игорь @ZurgInq

Программист

Отправить сообщение
MySql ведёт себя похожим образом или там это работает сильно по другому?
У вас в статье почему то фигурирует:
любой повторяющийся код содержащий более двух операторов должен быть убран в функцию

А тут у нас уже появилось несколько «если». То есть не любой код. И вот про эти «если» многие в порывах чувств забывают.

Для методов «делаем раз, делаем два» — уже то же написали несколько «если» другие комментаторы. Я могу добавить ещё. Дробление сложного метода на много коротких повышает понимание, ЧТО делает метод. Но к сожалению, часто уменьшается понимание КАК он это делает. В особенности, если итоговая вложенность методов сильно больше двух.

Моя претензия к данной статье именно про то, что вы хоть и написали правильные вещи, но отказываетесь рассматривать или забываете про случаи, когда бездумное следование данным правилам только навредит.
4 пункт — вообще лишний, в данной формулировке. Сто раз обсасывалось.
3 пункт — из крайности в крайность. Стремление сократить копипасту и переиспользовать какой-то однострочник отовсюду — вот лютое зло, ибо плодит зависимости на ровном месте.
1 и 2 пункт — тут всё верно, хотя и банально.
Как минимум для crystal на их сайте красуется «The project is in alpha stage». Что как бы намекает.
Слишком кричащий заголовок, много восклицательных предложений, транслит вместо нормального русского языка (перфоманс, хип) — текст трудно воспринимается. Не надо так.
Я не java программист и думал, что придумали что то новое, ждал технических подробностей, а в итоге вся статья укладывается в предложение — «в java теперь можно GC, но она будет падать».
Хочу поддаться рекламе и попробовать какой нибудь девайс. Вы вроде человек сведущий, поэтому вопрос к вам. На полезность я пока готов забить, а как насчёт опасности и побочных действий? Совсем не хочется поджарить и так не слишком хорошо работающий мозг.
Как мы боролись за производительность сервера и целиком его переписали c Python на Go, как мы оптимизировали клиент и добавлали туда графические эффекты. Все это мы можем рассказать в будущих наших статьях.


Действительно всё самое интересное пропустили.
А на go нет проблем со сборщиком мусора? Он вроде не особо приспособлен под настоящий реалтайм.
Многие решения в ruby намертво прибиты к рельсам, и иногда действительно трудно найти независимую от rails инфраструктуры библиотеку. Для тех же токенов — есть devise, но он тянет за собой такой фарш, что эффективнее написать свою авторизацию (аккуратно повыдёргивая критичный код из готовых решений).
Опрос:
> Поддерживете ли вы стимулирование перехода на HTTPS
Нет, шифрование это плохо

Зачем такие провокационные варианты ответа, ради очередного холивара? Уже сколько раз везде обсуждали, что https — нужен далеко не на 100% процентов сайтов.
Простите, а где можно почитать критерии контента «достойного внимания взрослого человека»? И почему этот нехороший человек, кто сочинил эти критерии, вдруг взялся решать, что достойно моего внимания, а что нет?
Просто интернет изначально «неправильно» рождён. Вот если бы он сразу развивался не как нечто над и меж государственное, а был бы услугой гарантированной государством каждому гражданину с рождения. Каждый ip адрес должен был бы регистрироваться на паспорт и вноситься в единый реестр государственной компании НэтПром. Каждый владелец «веб ресурса» в свою очередь должен был бы регистрировать свой ip адрес через НэтПром в реестре разрешённых ресурсов. Если ресурса нет в реестре, то НэтПром просто физически не может никому предоставить доступ до этого ip адреса (про данный ip ничего не знает соответствующая железка). Логирование и хранение трафика естественно «by design». Если иностранный ресурс «macro-soft» хочет предоставлять свои веб ресурс третьей стране, то он должен заплатить налог и подать заявку на регистрацию в НэтПром. Но это всё при условии если между НэтПромом и DemocraticNet заключен договор на взаимный пропуск трафика.
Вот тогда бы не было сейчас никаких проблем с VPN, файрволлами и Яровыми. Все проблемы из за неправильной архитектуры.
А в каком формате гоняются данные по именованным каналам? Если свой формат сообщений, то их ещё надо расспарсить. Если сырые данные — то всё равно надо разделять пакеты данных друг от друга, плюс накладные расходы на прочитать из канала и записать себе в процесс.
Не понимаю людей, которым нравится срать на коврик другим.
У вас будут имена вроде controller.UserController, в которых вы дублируете имя пакета в имени типа.

Можно ведь controller.Users?

Опять же, ужасные имена вроде users.User и та же проблема с круговыми зависимостями, когда наш accounts.Controller должен взаимодействовать с users.Controller и наоборот.

С чего вдруг один контроллер должен вдруг взаимодействовать с другим? Такого вообще не должно быть.
Я даже не побоюсь спросить, а кроме технической ерунды, какие еще различия?
Насчет ci вы правы, действительно я тут погорячился. go generate && go build можно положить в условный make.sh. Суть в том, что в любом случае надо постоянно запускать такие инструменты как например go fmt, go test, go vet. К ним добавляется еще go generate при условии использования генераторов.
Возможно в дальнейшем автозапуск go generate добавят например на уровне плагинов, например idea при коммите в vcs предварительно автоматически умеет запускать go fmt.
Запускать можно вручную или через go generate. Забыть запустить генератор можно, но это отчасти решается скриптом вида go generate && go build. Если есть отдельная система сборки/деплоя/ci то генерация прописывается туда наряду например с запуском тестов.
Более подробно разверну свою мысль — в указанной статье описание использование утилиты go generate и обзор возможности кодогенерации. Это хорошая статья, в которой в частности разобрана утилита stringer (именно поэтому я назвал её «эталонной»). Я же решил показать небольшой пример как достаточно просто и быстро написать свой генератор кода на основе разбора ast. В данном случае одно дополняет другое.
Это больше похоже на перевод статьи из официального блога https://blog.golang.org/generate

Информация

В рейтинге
Не участвует
Откуда
Ижевск, Удмуртия, Россия
Дата рождения
Зарегистрирован
Активность