реализацию языка?
Это же набор принципов.
Да, их в свое время описали, и привели пример реализации на конкретных языках.
Но это не значит что SOLID должен в точь точь повторять реализацию этих принципов только определённого языка в любом другом.
Тот же DIP.
A. Модули верхних уровней не должны зависеть от модулей нижних уровней. Оба типа модулей должны зависеть от абстракций.
B. Абстракции не должны зависеть от деталей. Детали должны зависеть от абстракций.
Иии?? Где тут тут интерфейсы? Где проверка типов?
Вот шарпе они нужны при реализации DIP, потому что язык такой, и не более того. Повторюсь, то что реализация данного принципа в шарпе выглядит так, ДЫК потому что шапр такой, а не сам принцип.
Принципы универсальны, программист должен уметь их грамотно применять, учитывая особенности языка на котором реализует тот или иной принцип, а не тянуть все под копирку из "самогоМейнстрёмЯзыка"
Ну некоторые принципы действительно мало применимы к языкам с динамической или утиной типизацией. Тот же L в утиной типизации
Ну... вот, я вообще слабый программист-самоучка. И когда искал вдохновение в принципах программирования для проектировании бизнес-процессов будучи экономистом, то в руки попала как раз заметка про SOLID. Об ООП я тогда и духом еще не знал. L я изучал именно в трактовки Барбары. Абстракция должна быть чистой, четко определенной. Это достигается либо самим языком, если он строгий, или архитектурным принципом построения кода в случая утиной типизации.
Обсуждают сегодня