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

Продолжаю серию публикаций про ошибки начинающих программистов.

17) Не ориентироваться на конечного пользователя

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

18) Выбор неправильных инструментов разработки

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

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

19) Непонимание того, что проблемы с кодом могут привести к проблемам с данными

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

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

Чтобы избежать таких проблем важно использовать несколько слоев проверки данных на соотвествие заданным параметрам. Первый слой – это валидация на уровне интерфейса пользователя. Вторым слоем будет проверка данных на уровне базы данных. Для это необходимо использовать возможности БД, задавать ограничения:

  • Используйте NOT NULL для проверки на наличие данных как таковых, т.е. поле должно быть заполненно данными в любом случае.
  • UNIQUE проверяет значения на уникальность в отношении уже существующих в таблице записей. Например, это важно для таких данных как пользовательский идентификатор, который должен быть уникальным, т.к. по нему идет привязка других данных к конкретному пользователю.
  • PRIMARY KEY ограничивает одновременно значение ненулевым и уникальным. Каждая таблица в базе данных должна иметь такое поле для идентификации записей.
  • используйте FOREIGN KEY для привязки данных одной таблицы к значениям в другой таблице базы данных. Обычно это же поле является и PRIMARY KEY.
  • CHECK задает пользовательское выражение, которое должно быть true, чтобы данные были приняты. Например, если у вас есть обычный процентный столбец, значения которого должны быть в диапазоне от 0 до 100, то вы можете использовать проверку и принимать значения только из данного интервала.

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

20) Изобретение “колеса”

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

21) Непонимание значения Code Review

Новички часто смотрять на это момент как на критику и не любят его, не ценят и даже порой боятся. Стоит изменить свое отношение к этому. Воспринимайте ревью кода как возможности обучения чему-то новому, получения дополнительного опыта. Могут быть ситуации когда ваш рецензент ошибается и в таком случае у вас появляется возможность отстоять свою точку зрения и научить кого-то чему-то новому.

22) Не используя систему контроля версий

Многие новички недооценивают использование систем контроля версий, таких как Git. И это часто становится преградой на пути их дальнейшего развития.

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

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

Так же актуальным является использование staging changes, patching selectively, resetting, stashing, amending, applying, diffing, reversing, которые добавляют широкие возможности в ваш рабочий поток. Изучайте и понимайте их, используйте их. Чем больше возможностей Git вы знаете, тем меньше в вас остается от новичка.

23) Неверное отношение к ошибкам

Новички не любят ошибки. Их часто раздражают эту мелкие красные надписи в консоли, что что-то пошло не так. Меняйте отношение к ошибкам. Ошибки – это не есть плохо. Расценивайте их как новые возможности чему-то научиться. Без ошибок нет прогресса. Появление ошибок учит вас обходить их, учитывать их, обрабатывать их, планировать их на уровне кода.

24) Не делать перерывов

Наверное главная ошибка новичков. Вы человек, которому свойственно уставать. Ваш мозг требует перерывов. Часто работая над проблемой можно забыть сделать перерыв, но он просто необходим. Интегрируйте небольшие перерывы в ваш рабочий процесс. Разомните тело, пройдитесь, подумайте над вашими дальнейшими действиями не перед экраном, а любуясь видом из окна. Это так же полезно для ваших глаз.

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

На этом все. До всречи в новых публикациях.

devOSA

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

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

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