Лучшие практики разработки программного обеспечения или Best practices | SPBDEV

Лучшие практики разработки программного обеспечения или "Best practices"

Введение

Разработка программного обеспечения, баз данных и веб-разработки имеют задо-кументиронные «best practices», а также отраслевые стандарты и соглашения, но ими легко пренебречь в пользу быстрого решения. Но что именно мы подразумеваем под «Best Practice Design»? Следующая статья объясняет эти методы и что они значат для вас, как клиентов.

Важность «Best Practices»

Если Ваше приложение разработано с использованием «Best Practice», то оно должно быть:

  • Более надежным – то есть, должно менее подвергаться повреждению данных, по-ломкам и ошибкам.
  • Более точным - информация, содержащаяся в базе данных, должна содержать меньше неверных данных, несоответствий и дубликатов.
  • Легче поддерживаемым - любые проблемы, которые возникают, должны быть вы-явлены и решены как можно быстрее.
  • Легче обслуживаемым - любые незначительные изменения и обновления должны быть более быстрыми и более дешевыми в реализации.
  • Менее зависимым от разработчика - по всем вышеупомянутым причинам, Вы бу-дете более независимыми и менее зависимыми от разработчика.
  • Более дешевым для модернизации или преобразования - если Вы решите внести существенные изменения в свое приложение, к примеру переход от Access к SQL сервер, тогда это будет достигнуто в более короткие сроки и с меньшими затрата-ми.

Некоторые из наиболее важных «best practices» приведены в следующих пунктах:

Нормализация базы данных

Что это такое? - Организация таблиц данных базы данных, для устранения не-которых общих проблем и ошибок базы данных, а также для защиты целостности данных. Почему это важно? - Реляционная база данных, которая не нормализована, мо-жет привести к дублированию данных.

Ссылочная целостность

Что это? - Средство защиты целостности данных в базе данных. По сути это означает, что запись не может быть создана или удалена, пока любые связанные записи не были уже созданы или удалены. Например, заказ не может быть удален из базы данных, по-ка остаются детали данного заказа. Почему это важно? – Ссылочная целостность означает, что сама система забо-тится о целостности данных, а не полагается на пользователя.

Перехват ошибок

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

Проверка достоверности данных

Что это такое? – Обеспечивает то, что данные, введенные в систему отвечает определенным правилам (например дата окончания должна быть позже даты начала) Почему это важно? - GIGO, что означает Garbage In equals Garbage Out (Входя-щий мусор равен Исходящему). База данных только тогда хороша, когда способна как можно больше отфильтровать ввод некорректных данных.

Контроль версий

Что это такое? - Проверка, что версия приложения, которую вы используете — актуальна. Это имеет особое значение с клиент-серверными приложениями, где приложение «разделено» на две части. Почему это так важно? - Если существует расхождение между версиями (например пользователь войдет в версию 2.1 базы данных с 1.1-интерфейса), то система мо-жет остановится или привести к ошибкам в данных.

Контроль изменений

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

Табличный дизайн

Что это? - Использование обновляемых таблиц для управления дизайном при-ложения. Почему это важно? - Гарантирует, что конструктивные изменения осуществля-ются последовательно. Табличный дизайн также позволяет чтобы некоторые задачи были выполнены пользователем, а не разработчиком, тем самым ускоряет процесс обновления дизайна.

Соглашение об именах

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

Лучшие методы кодирования

Что это? - Написание кода процедур должно быть последовательным, логиче-ским и читабельным. Это включает разметеку, комментарии, описание и другие «best practices». Почему это важно? - Лучшие методы кодирования помогают любому разработ-чику, глядя на приложения понять внутренние детали приложения намного быстрее. Это также означает, что код более надежен и отказоустойчив.

Документация

Что это? - Технические документы, описывающие в общих чертах структуру ба-зы данных (схема), исходный код для процедур и другое. Почему это так важно? - Документация играет важную роль в будущих обнов-лениях в системе, помогая любому разработчику понять, какие объекты необходимо изме-нить, и что еще более важно - влияние этих изменений на остальные части системы.

Резюме

Best Practice не является строго определенным сводом правил; это комбинация понимания базовых технических понятий, понимания того, что приложение будет продол-жать развиваться в ближайшие годы и решимостью сделать хорошую работу и предоставить качественный продукт. Приложению, разработанному с использованием «Best Practice» потребуется больше времени, чтобы его написать, чем тому, которая его не использует и поэтому может стоить немного больше. Тем не менее, в течение всего срока программного обеспечения, и, как правило в течение первого года реализации проекта, общие расходы должны быть суще-ственно ниже, надежность данных будет лучше и надежность базы данных будет больше. Если бы Вы были циничны, то Вы могли бы сказать, что, не следующий за «Best Practice» разработчик будет получать доходы от несущественных поправок и улучшений, которые будут требоваться. Однако, убедившись, что Ваше приложение построено с помо-щью «Best Practice», будет более дешевле в долгосрочной перспективе.