Давненько я не читал статьи о программировании с постоянной улыбкой на лице.

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

Гругне такой уж умный, но это может быть его суперспособностью. В тексте много мудрости.

Мне потребовалось несколько минут, чтобы погрузиться в манеру самовыражения Груга, но оно того стоило!

Читать полную статью на grugbrain.dev

Вот несколько золотых самородков от Grug:

Сложность

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

Сказать нет

лучшее оружие против сложного духовного демона — волшебное слово: «нет».

нет, grug не создаст эту функцию
нет, grug не создаст эту абстракцию

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

Грустно, но факт: выучите «да», а затем научитесь обвинять других в неудачах, идеальный совет по карьере

Факторинг вашего кода

не учитывайте ваше приложение слишком рано!

разработчики с большим мозгом часто этого не любят и придумывают много абстракций начало проекта

ворчливый соблазн потянуться к клубу и завопить: «Большой мозг, не поддерживать код! большие мозги переходят к следующему комитету по архитектуре, оставь код для грубой работы!»

вместо этого grug постарайтесь ограничить ущерб разработчика с большими мозгами в начале проекта, дав им что-то вроде диаграммы UML (не повредите код, возможно, все равно выбросите) или потребовав рабочую демонстрацию завтра

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

Забор Честертона

Груг понимаю, все программисты-платоники на каком-то уровне желают совершенства музыки сфер в коде. но здесь есть опасность, мир много раз уродлив и безобразен, и поэтому код также должен быть

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

Инструменты

инструмент любви

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

grug всегда рекомендует новым программистам очень глубоко изучить доступный отладчик, такие функции, как условные точки останова, оценка выражений, навигация по стеку и т. д., часто учат новых grug больше о компьютере, чем на университетских курсах!

Тип Системы

grug, очень похожие на системы типов, облегчают программирование. для grug введите system most value, когда grug нажмет точку на клавиатуре, и появится список вещей, которые grug может сделать. это 90% значения системы типов или больше, чтобы ворчать

всегда приходит система наиболее ценного типа: нажмите точку, посмотрите, что может сделать grug, никогда не забывайте!

Разделение ответственности

Разделение ответственности (SoC) — еще одна мощная идея, которая пришлась по душе многим разработчикам.

здесь ворчание гораздо более кислое, чем DRY, и на самом деле написать большое мозговое эссе об альтернативном принципе локальности поведения (LoB) проектирования против SoC

grug предпочитает кодировать то, что делает. теперь, когда груг смотрит на эту штуку, груг знает, что делает эта штука, всегда хорошее облегчение!

Ведение журнала

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

Советы grug по ведению журнала:

  • регистрировать все основные логические ветки в коде (если/для)
  • если «запрос» охватывает несколько компьютеров в облачной инфраструктуре, включите идентификатор запроса во все, чтобы журналы можно было сгруппировать.
  • если возможно, сделайте уровень журнала динамически управляемым, чтобы grug мог включаться / выключаться, когда требуется отладка (многие!)
  • если возможно, сделайте уровень журнала для каждого пользователя, чтобы можно было отлаживать конкретную проблему пользователя.

Оптимизация

самый большой разработчик мозга однажды сказал:

преждевременная оптимизация — корень всех зол

grug рекомендует всегда иметь конкретный, реальный профиль производительности, показывающий конкретную проблему производительности, прежде чем начинать оптимизацию.

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

API

Создатели API мыслят слишком абстрактно и с большими мозгами

обычно grug не слишком заботятся о деталях API: хотите записать файл или список сортировки или что-то еще, просто хотите вызвать write() или sort() или что-то еще

но разработчики API с большими мозгами говорят:

не так быстро, груг! этот файл открыт для записи? Вы определили Comparator для этого вида?

grug находит сдержанную руку, снова тянущуюся за дубиной

не заботьтесь об этом прямо сейчас, просто хочу отсортировать и записать файл, мистер большой мозг!

Фронтенд-разработка

некоторые недовольные, столкнувшись с веб-разработкой, говорят:

Я знаю, что я разделю кодовую базу внешнего и внутреннего интерфейса и буду использовать новую популярную библиотеку SPA, взаимодействующую с серверной частью GraphQL JSON API через HTTP (что забавно, потому что я не передаю гипертекст).

теперь у вас есть два сложных логова духа демона

grug не похож на большие сложные интерфейсные библиотеки, которые все используют

grug сделайте htmx и hyperscript, чтобы избежать

держите сложность низкой, простой HTML, избегайте большого количества javascript, естественного эфира демона сложности духа

возможно, они работают на вас, но нет вакансий, извините

лучше реагируйте на работу, а также на какое-то приложение типа, но также вы становитесь помощником демона сложности, хотите вы этого или нет, извините, это жизнь перед интерфейсом

Страх выглядеть глупо

примечание! очень хорошо, если старший груг готов публично сказать: «Хммм, это слишком сложно для груг»!

многие разработчики боятся выглядеть тупыми (FOLD), ворчание также когда-то СКРЫВАЕТСЯ, но ворчание учится преодолевать: очень важный старший вор говорит: «это слишком сложно и сбивает меня с толку»

это позволяет младшим грубиянам признать, что они слишком сложны и не понимают, а это часто бывает! СКЛАДЫВАЙТЕ основной источник сложности: власть демона над разработчиком, особенно над молодыми ворчунами!

Синдром самозванца

grug обратите внимание, что многие такие самозванцы чувствуют себя в разработке

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

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

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