Публикации по теме 'design-principles'


Композиция важнее наследования: мощный принцип дизайна
Введение. В мире разработки приложений для Android с использованием Kotlin выбор правильного принципа проектирования имеет решающее значение для создания поддерживаемого и масштабируемого кода. Одним из таких принципов, получивших популярность, является «Композиция важнее наследования». Этот принцип побуждает разработчиков отдавать предпочтение композиции, которая включает в себя создание сложных объектов путем объединения более простых, а не наследованию, которое включает в себя..

DRY (не повторяйтесь) может пойти не так
Не повторять означает не повторять для набора текста, а повторять для размышлений. Если два одинаковых кода служат разным целям/проблемам, то можно получить WET (написать все дважды). Когда мы неправильно СУШИМ, мы начинаем чуять превенторы изменений, называемые хирургией дробовика или дивергентными изменениями . В некоторых сказках говорится, что нам нужно дождаться трех вхождений одинаковых кодов, прежде чем использовать их как одну функцию ( Правило трех ).

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

Вопросы по теме 'design-principles'

Каков пример принципа замещения Лискова?
Я слышал, что принцип замещения Лискова (LSP) является фундаментальным принципом объектно-ориентированного проектирования. Что это такое и каковы примеры его использования?
398685 просмотров

(Программирование интерфейса против работы с конкретным классом), когда есть только один конкретный класс
В объектно-ориентированном компоненте, когда у вас есть только одна реализация, доступная для класса, и этот класс не «опубликован» для других компонентов, целесообразно ли иметь интерфейс и вместо этого работать с интерфейсом? Я полностью...
416 просмотров
schedule 05.04.2024

Оборачивать аргументы функции?
Предположим, что у меня есть эта функция: void foo (struct1 &v1, struct2 &v2, ..., structn &vn){ //do something with a subset some of the arguments... foo1(v1, v2, ..., vn); } void foo1 (struct1 &v1, struct2 &v2, ...,...
286 просмотров