Причины «простого и глупого» проектирования программного обеспечения - PullRequest
0 голосов
/ 04 мая 2019

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

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

1 Ответ

1 голос
/ 05 мая 2019

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

сцепления это свойство, которое говорит, что связанные идеи принадлежат друг другу.Если у вас есть точка, состоящая из декартовых координат X, Y и Z, желательно поместить все три значения в один и тот же набор или объект.Если у вас есть точки, определенные полярными координатами, они также принадлежат друг другу - но, возможно, не в том же объекте, что и декартовы координаты.

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

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

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

Скорее всего, вы получите код более высокого качества, если будете следовать этим принципам.Читаемость (как вы упомянули выше) - это только один аспект качества (но важный);правильное функционирование - это другое;как проверяемость.

...