Программист мысли

Чего я научился избегать за 15 лет работы инженером-программистом

Хороший программист против плохого программиста

Написать программное обеспечение сложно, но написать хорошее программное обеспечение очень сложно. Есть много существующих терминов, связанных с методами программирования, такими как чистый код, принцип STUPID, принцип SOLID и так далее. Они помогают нам стать хорошими программистами и избегать того, что делали плохие программисты.

Сегодня позвольте мне помочь вам внимательно их рассмотреть.

1. Не учитесь только программировать

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

Не изучайте сначала синтаксис программирования, давайте изучим концепции. Синтаксис отличается для каждого языка программирования.

Вам действительно следует изучить такие концепции, как ООП (объектно-ориентированное программирование), FOP (функционально-ориентированное программирование), POP (процедурно-ориентированное программирование). ; ветвление (if-else, while-do), итерация (for) или шаблоны проектирования.

Если вы можете писать блоки if-else, но не знаете, как их использовать, это означает, что вы изучаете синтаксис, но не понимаете основополагающих концепций.

2. Избегайте устаревшей информации.

Следите за техническими новостями (блог, информационный бюллетень и т. Д.) с новыми обновлениями, появляющимися почти каждый день, как моя страница.

Но имейте в виду, что каждый из этих типов источников имеет свои преимущества и недостатки.

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

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

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

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

3. Но не забывайте старые книги.

Давай читать старые книги.

Некоторой информации больше 10 лет, но она все еще очень полезна.

Люди существуют уже давно.

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

4. Прекратите использовать ключевое слово else в своей программе.

В некоторых простых случаях вам разрешено использовать ключевое слово else.

if (codition) {
    if statements
} else {
    else statements
}

Как хороший программист, вы используете операторы switch-case.

Но в сложных случаях хорошие программисты не используют ключевое слово else (или операторы switch-case).

Вместо ключевого слова else они используют конечные автоматы.

Если вы ничего не знаете о машинах состояний, значит, вы плохой программист.

Подробнее: https://javascript.plainenglish.io/stop-using-the-else-keyword-in-your-code-907e82b3054a

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

Ниже показаны два способа переписать логические выражения.

!(a || b || c) == (!a && !b && !c)
!(a && b && c) == (!a || !b || !c)

5. Не пишите плохих комментариев.

На мой взгляд, комментарии излишни.

Плохие комментарии действительно хуже, чем их отсутствие.

Комментарий не имеет значения, если он неправильный.

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

/* set the value of the age integer to 32 */
int age = 32;

Комментарии часто пытаются объяснить, что или как имеет тенденцию просто повторять код.

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

Также не добавляйте комментарии, объясняющие плохие имена (переменные, методы и классы). Уделим время и исправим имена!

6. Не будьте ТУПЫМ программистом.

Это 6 запахов ООП-кода, которых следует избегать при написании программ.

Шаблон Singleton

Это один из простейших шаблонов проектирования.

Это гарантирует, что когда-либо может быть только один экземпляр данного класса.

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

Программы, которые полагаются на глобальное состояние, скрывают свои зависимости.

Старайтесь избегать тесной связи

Плотно связанные модули трудно использовать повторно.

А еще сложно проверить.

Непроверяемость

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

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

Опасности преждевременной оптимизации

Есть известная цитата Дональда Кнута, автора легендарной книги Искусство компьютерного программирования.

Это тоже старая книга.

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

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

Не делай этого.

Или пока не делай этого.

Непонятное именование

Вы пишете код для людей, а не для компьютеров.

Компьютеры просто понимают 0 и 1. Языки программирования предназначены для людей.

Дублирование - пустая трата.

Дублированный код - это плохо.

Когда вы дублируете код, вы скрываете повторяющуюся структуру и копируете все существующие ошибки.

Так что, пожалуйста, не повторяйся, а также будь простым, глупым.

7. Не создавайте все с нуля.

Не изобретайте велосипед.

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

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

Попытайтесь понять, какие решения существуют в мире, прежде чем начинать создавать что-то с нуля.

8. Не зацикливайтесь на найме лучших людей.

Если вы не потратили время на подготовку к встрече.

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

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

Не сосредотачивайтесь на найме лучших людей.

Лучшие люди могут быть, а могут и не быть правильными членами вашей команды.

Когда ты найдешь отличного лидера, остальные последуют за парнем.

Давайте наймем нужных людей и сделаем их счастливыми.

9. Избегайте предвзятости при приеме на работу.

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

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

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

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

10. Перестаньте бояться просить о помощи.

Иногда вы застреваете в проблеме.

Вы не можете знать все.

Каждый всегда готов поделиться.

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

Даже если у вас есть сумасшедшие вопросы.

Если я могу быть полезен, пожалуйста, не стесняйтесь обращаться ко мне.

Легко, правда?

Спасибо, что прочитали, и не забывайте мои советы. Если вам нравится мой контент, подпишитесь на мою страницу Anh Dang.

использованная литература

  1. Как спроектировать систему для масштабирования до ваших первых 100 миллионов пользователей
  2. Знаменитые цитаты о программисте, которые должен знать каждый
  3. Прекратите использовать ключевое слово else в своем коде
  4. Как я классифицировал 50 типов диаграмм по назначению?
  5. Не будь ГЛУПОЧКИМ программистом
  6. Архитектура программного обеспечения: наиболее важные архитектурные шаблоны, которые вам необходимо знать
  7. Переосмысление принципов SOLID в JavaScript
  8. Эти узкие места убивают ваш код
  9. 20+ репозиториев на Github, которые должен знать каждый разработчик