Важность дизайна и почему вы должны его пересмотреть

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

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

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

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

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

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

Несколько причин, по которым ваш дизайн может быть рассмотрен:

Дизайн - это решение

«Во-первых, решите проблему. Затем напишите код »

- Джон Джонсон

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

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

Отзыв вызывает вопросы

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

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

Помогает выбрать лучший путь из множества подходов

Один из наиболее важных аспектов процесса проектирования - найти лучший способ решения проблемы. Как правило, вы оцениваете эти различные пути на основе своевременности, эффективности, масштабируемости, стоимости и т. Д.

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

Проверяет, покрывает ли ваш дизайн достаточное количество вариантов использования

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

Обзор дизайна может привлечь ваше внимание к этим тонким, но важным вариантам использования. Это поможет вам на раннем этапе внести изменения в дизайн, чтобы приспособиться к этим вариантам использования.

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

Аспект масштабируемости

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

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

Изменить код проще, чем изменить дизайн

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

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

Простота

«Функция хорошего программного обеспечения - сделать сложное простым».

- Грейди Буч

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

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

Простой дизайн не дается разработчикам и людям в целом. Это требует множества вопросов от рецензента и команды.

Заключительные слова

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

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

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