172 похожих чатов

Ясно. Вот мне правда интересно какой реальный продукт которым вы

добровольно пользуетесь написан по SOLID? То что там кто-то где то на него молится может говорить много о чем.

12 ответов

18 просмотров

ну например практически любой язык программирования на сегодняшний день? https://en.wikipedia.org/wiki/Liskov_substitution_principle

а какими практиками пользуетесь вы?

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

Vladimir-Zaytsev Автор вопроса
Mister Tomato
ну например практически любой язык программировани...

По отдельности у них есть применение, но следовать SOLID как религии и верить что это ключ к хорошему коду - такого уже давно не видел.

Vladimir-Zaytsev Автор вопроса
Mister Tomato
а какими практиками пользуетесь вы?

Хороший ответ потянет на статью, потому что это критически зависит от задачи. Обычно полезная практика это отлично понимать задачу и вычислительную платформу - от железа, до ос и библиотек.

Vladimir Zaytsev
По отдельности у них есть применение, но следовать...

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

Vladimir-Zaytsev Автор вопроса
Mister Tomato
я ж говорю, если вы собрались понтоваться, то для ...

Ну я вам говорю что не встречал это уже очень давно, хейтить или не хейтить это вы сами решайте. Мне просто интересно где его еще используют и зачем.

Mister Tomato
я ж говорю, если вы собрались понтоваться, то для ...

Вы знаете, если в вашем утверждении поменять местами солид и дизайн-паттерны, то изменится примерно ничего. SOLID это набор «принципов», притянутых за уши из разных аспектов проектирования, чтобы красиво смотрелась аббревиатура. Всетаки дядя боб был неплохо популяризатор. В solid есть два формальных принципа, касающихся проектирования классов - LSP и OCP. Как две стороны одной медали. За пределами ОО-проектирования их тоже можно пробовать применять, но они теряют формальность и превращаются просто в мантру. ISP и DIP изначально мантра, и, как показывает практика современных фреймворков, вовсе необязательно этой мантре следовать. Кроме того виртуальные вызовы везде бьют по перформансу. SRP вообще вопрос веры. Нет формальных критериев соответствует код SRP или нет.

Стас Выщепан
Вы знаете, если в вашем утверждении поменять места...

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

Стас Выщепан
Вы знаете, если в вашем утверждении поменять места...

Вообще LSP можно формально определить и вне ООП. По сути, это критерий для (sound) сабтайпинга. Соответственно он применим везде, где есть сабтайпинг. К примеру, в расте лайфтаймы порождают сабтайпинг ссылок.

Владислав Катасонов
Вообще LSP можно формально определить и вне ООП. ...

Можно, только не за чем. Без наследования LSP это совсем неинтересный принцип

Владислав Катасонов
Вообще LSP можно формально определить и вне ООП. ...

осталось понть что есть ООП и модно ли это или модно высказываться что ООП отстой (в придачу к солиду). Сложно нынче в мире с конформизмом)

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
Вот еще странный косяк, подскажите как бороться. Я git clone сделал себе всего embassy и примеры там запускаю. Всё хорошо. Но вот решил в cargo.toml зависимости не как в приме...
Lukutin R2AJP
2
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта