Hacker News Digest

Тег: #best-practices

Постов: 2

The Pragmatic Programmer: 20th Anniversary Edition (2023) (ahalbert.com)

Книга "The Pragmatic Programmer" в своем 20-м юбилейном издании обновлена для современных разработчиков. Треть контента - совершенно новый материал по безопасности и параллелизму, остальное переработано на основе практического опыта авторов. Хотя книга изначально предназначалась для начинающих, ее советы полезны и для опытных разработчиков, особенно при наставлении младших коллег. Авторы применяют свои принципы не только к программированию, но и к написанию книги - например, они использовали параллелизацию для ускорения сборки текста, что привело к неожиданным ошибкам.

Книга содержит краткие, запоминающиеся советы, выделенные в тексте и собранные на отдельных карточках к физическому изданию. Первая глава посвящена философии прагматичного программиста, подчеркивая ответственность за свою работу. Совет №3 гласит: "У вас есть полномочия" - вы можете быть катализатором изменений. Совет №5 призывает не мириться с "разбитыми окнами" в коде, исправляя даже мелкие проблемы. Совет №11 сравнивает английский язык с программированием, подчеркивая важность эффективной коммуникации.

by ahalbert2 • 16 ноября 2025 г. в 20:46 • 188 points

ОригиналHN

#software-development#programming#software-engineering#best-practices

Комментарии (56)

  • Классика вроде "The Pragmatic Programmer" и "Code Complete" упоминаются как фундаментальные, но чаще всего всплывает только лозунг "Don't Repeat Yourself", что подчеркивает, что книга оставила гораздо меньшее, чем ожидалось.
  • Несколько участников поделились, что книга помогла им в начале карьеры, но большинство отметили, что большинство советов они выучили "трудным путем" до того, как прочитали книгу.
  • Некоторые спорят, что книга устарела, но другие утверждают, что фундаментальные советы в ней вечны.
  • Обсуждение также затронуло, что книга может быть слишком общей и не предлагает конкретных инструментов, что делает ее менее полезной в практическом плане.
  • В конце концов, большинство согласятся, что книга оставляет читателям "глубокое впечатление" и что-то вроде "философии", но не так много конкретных инструментов.

What is “good taste” in software engineering? (seangoedecke.com) 🔥 Горячее 💬 Длинная дискуссия

Хороший вкус в разработке — это не техническое умение, а способность выбирать набор инженерных ценностей, подходящих конкретному проекту. В отличие от навыков, которые можно развить учёбой и практикой, вкус формируется через личный опыт и предпочтения. Например, одни разработчики ценят читаемость кода с map и filter, другие — производительность for-циклов, и это различие отражает их приоритеты, а не уровень компетенции.

Ключевой признак зрелости — понимание, что почти каждое решение в разработке связано с компромиссами: между скоростью, гибкостью, устойчивостью или читаемостью. Незрелые инженеры часто жёстко придерживаются одного подхода, тогда как опытные оценивают контекст и выбирают оптимальное решение для конкретной задачи. Ваш вкус определяется тем, какие ценности — например, корректность, масштабируемость или скорость разработки — вы ставите выше остальных в данной ситуации.

by olayiwoladekoya • 29 сентября 2025 г. в 06:41 • 302 points

ОригиналHN

#software-engineering#software-development#best-practices#code-readability#performance#scalability

Комментарии (208)

  • Обсуждение определяет "хороший вкус" в разработке как способность выбирать оптимальные решения, основанные на контексте и требованиях проекта, а не на личных предпочтениях.
  • Участники подчеркивают, что хороший вкус тесно связан с опытом, гибкостью, умением аргументировать выбор и предвидеть последствия решений для поддержки и масштабирования.
  • Многие отмечают, что хороший вкус — это баланс между читаемостью, производительностью, простотой и соответствием бизнес-целям, а не слепое следование догмам или модным тенденциям.
  • Спорным остается вопрос, является ли "вкус" субъективным эстетическим понятием или его можно формализовать через принципы инженерии (например, поддерживаемость, ясность, минимальная сложность).
  • Некоторые видят корень проблемы в смешении объективно плохих решений (например, неэффективные алгоритмы) и субъективных предпочтений (стиль кода, выбор парадигм).