Ошибки начинающего программиста (часть 2)

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

4) Выбор первого решения

Решить задачу быстро это хорошо, но не всегда эффективно, т.к. первое и очевидное решение не всегда является самым простым и удобным, а в последствии могут проявится проблемы с читаемостью кода и его поддержкой. Например, может проявится проблема скорости выполнения кода при обработке выросшего объема данных в БД и код станет медленным, начнет создавать проблеммы в работе всей системы. Как профессиональный программист вы должны понимать, что необходимо не просто найти решение, а решение должно быть как можно проще, максимально эффективным, понятным и легко масштабируемым.

Чарльз Энтони Ричард Хоар (разработчик алгоритма «быстрой сортировки», который сегодня наиболее популярен) когда-то сказал:

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

5) Привыкание к коду

Когда вы долго работаете над решением той или иной задачи может возникнуть чувство, что вы нашли идеальное решение с которым не хочется расставаться ни при каких обстоятельствах. Буду программистом вам часто придется принимать тот факт, что когда-то, казалось бы, правильное решение уже не является таковым и от него необходимо избавиться, заменить на что-то более совершенное и необходимое. Не бойтесь искать новое решение и переосмыслить проблему. Не думайте о том, сколько времени потратили ранее на её решение. Ищите и экспериментируйте с новыми решениями, а такие инструменты как git вам в этом только помогут.

6) Не искать решение в Google

Часто может возникать ситуация, что вам кажется, что решение очевидно и вы быстро решите задачу без предварительного исследования. Вспомните первый пункт прошлой части “Ошибок начинающего программиста“, где говорилось

Думай — Исследуй — Планируй — Пиши — Валидируй — Вноси правки

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

7) Не использование инкапсуляции

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

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

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

8) Не пишите лишнего

По мере кодинга в голове могут возникать разные вопросы “что-если-если”, которые будут подталкивать к написанию вещей, которые реально не нужны на текущем этапе. Не пишите код, в котором нет необходимости сейчас и не пытайтесь реализовать функцию, которой пока нет, но она может появиться в будущем (а может и не появится!).

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

На этом буду заканчивать вторую часть серии ошибок начинающего программиста и пока не последнюю. В следующей части поговорим о структурах данных, исправлениях в существующем коде и его комментировании. Оставайтесь на линии и всего доброго!

devOSA

Добавить комментарий

Ваш адрес email не будет опубликован.

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