Sunday, May 23, 2010

Принципы проектирования

Если пользуетесь каким-либо инструментом, применяйте его правильно. Очень важно знать его особенности (достоинства и недостатки), знать ситуации и причины когда его стоит применять и понимать последствия его применения. Можно, конечно, и шурупы молотком забивать, но лучше все-таки оставить молоток для гвоздей. Это правило работает для любой сферы деятельности. Прежде чем приступить к любой задаче, вы должны уметь пользоваться инструментами для ее решения. И чем лучше вы овладеете ими, тем быстрее, проще и эффективнее вы сможете решить задачу.

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

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

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

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

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

Ссылки:
1. Principles of OOD
2. Введение в принципы проектирования
3. Принципы проектирования классов (S.O.L.I.D.)

No comments:

Post a Comment