Информация об изменениях

Сообщение Re[8]: Как вежливо ревьювить код? от 20.04.2021 14:31

Изменено 20.04.2021 14:33 gyraboo

Re[8]: Как вежливо ревьювить код?
Здравствуйте, IT, Вы писали:

IT>>>Только не забудь сказать джунам, что если дело дошло до применения SOLID, то в коде уже проблемы, не смотря на то будут или нет применены принципы SOLID

G>>Почему? Не улавливаю мысль. Конкретный пример можешь привести, где после применения SOLID остаются проблемы?

IT>Не после применения, а до.

IT>Возьмём тот же LSP, который гласит:

IT>

объекты в программе должны быть заменяемыми на экземпляры их подтипов без изменения правильности выполнения программы


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


Ну не совсем соглашусь. LSP нарушается, и у меня на памяти свежи такие нарушения, даже там, где есть очень простая иерархия: один абстрактный класс или интерфейс и всего 2-3 реализации.
Re[8]: Как вежливо ревьювить код?
Здравствуйте, IT, Вы писали:

IT>>>Только не забудь сказать джунам, что если дело дошло до применения SOLID, то в коде уже проблемы, не смотря на то будут или нет применены принципы SOLID

G>>Почему? Не улавливаю мысль. Конкретный пример можешь привести, где после применения SOLID остаются проблемы?

IT>Не после применения, а до.

IT>Возьмём тот же LSP, который гласит:

IT>

объекты в программе должны быть заменяемыми на экземпляры их подтипов без изменения правильности выполнения программы


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


Ну не совсем соглашусь. LSP нарушается, и у меня на памяти свежи такие нарушения, даже там, где есть очень простая иерархия: один абстрактный класс или интерфейс и всего 2-3 реализации.

А насчет сложных иерархий — согласен. Ну на это уже есть и этой бочке затычка другие принципы: заменяйте наследование композицией, используйте магическое число 7 (а лучше меньше, как ограничение кратковременной памяти), KISS.