Цитата (Arh @ 29.01.2016 - 08:27) |
Ну парадигма это и есть стиль. |
Да, не так я выразился. ООП это не парадигма и не стиль, это обособленная методология (техника) в рамках структурной парадигмы программирования. Вот так будет точнее.
Как техника пьяной обезьяны (мастера конечно же
) в кунг-фу.
Но суть посыла, думаю, ясна. Нельзя сравнивать, противопоставлять, а тем более хаять процедурку со стороны ООП, ровно как и наоборот. По сути это одно и то же. И те, кто называет процедурное программирование говнокодом, уподобляется унтер-офицерской вдове.
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.
Эли4ка
29.01.2016 - 13:27
Цитата |
Как техника пьяной обезьяны (мастера конечно же biggrin.gif ) в кунг-фу. |
twin,знаю,что оффтоп,но кунг-фу это путь,а не стиль.У-шу-если Вы хотите подразумевать под этим словом боевые искуства.
Кстати,тот же стиль можно считать классом-так как в нем есть каты,гунфа,техника ногами,удары ногами.
twin
Цитата |
И те, кто называет процедурное программирование говнокодом |
Многие думают что в процедурном программировании нету таких вещей, как те же DI и SOLID, наследование и т.д. Без которых становится сложно поддерживать/развивать проект из за гор копипаста.
Не знаю есть ли в процедурном эти подходы или нет, может и есть, но ООП на каждом углу кричит что они есть.
Получается такая история, начинающий пишет как получается, потом он узнаёт что есть MVC и подобное, начинает писать по другому, ему нравится, потом узнаёт про какие то допустим паттерны или принципы, начинает использовать, ему опять нравится, программист развивается и понимает что всё что раньше он делал, это говнокод. Так у всех, вчерашний код всегда говнокод =)
Потом программист начинает придерживаться каких то стандартов типа использовать camelCase или under_score, после чего вчерашний код уже кажется не таким говнокодом, потому что вчера он тоже придерживался выбранного стиля.
Читая всякие статьи про удобные шаблоны проектирования, стили и тд и тп очень часто в заголовке и/или в самой статье упоминается ООП, то есть ООП присваивает объединяет чужие наработки из разных областей под одним стилем.
Люди к этому стилю привыкают, про другие они и не знают, нельзя знать всё.
Может процедурка она вообще лучше всех, кто ж знает, это надо читать, вникать, диссертацию защитить. Нах надо =) Главное что раньше писал говнокод, а теперь ООП =) как обозвать свой старый стиль хз, процедурка, ну пусть будет процедурка.
_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Цитата (Arh @ 29.01.2016 - 09:46) |
Многие думают что в процедурном программировании нету таких вещей, как те же DI и SOLID, наследование и т.д. Без которых становится сложно поддерживать/развивать проект из за гор копипаста. |
Всё дело в том, что не важно, где что существует. Важнее применять инструменты к месту. А те, кто пытается придерживаться "чистого" ООП, не могут себе этого позволить. Вот chee привел пример:
Цитата (chee @ 28.01.2016 - 08:57) |
Пример fansoro от Awilum, бессмысленное использование объектов, когда можно обойтись статическими классами. |
Они себя ограничили в выборе инструментов, потому что сликом рьяно пытались соответствовать определению "всё является объектом". Не считая статический класс возможным юзать в ООП. А вот допустим Yii2, да и Symfony помоему тоже, ограничения ставят шире. И спокойно используют статику, при этом позиционируясь, как ООП-фреймворки.
Или та же русская википедия ( в английской на радость этого нет), да и не только она, до сих пор проповедуют 2-й принцип Кея.
Цитата |
Вычисления осуществляются путём взаимодействия (обмена данными) между объектами, при котором один объект требует, чтобы другой объект выполнил некоторое действие. Объекты взаимодействуют, посылая и получая сообщения. Сообщение — это запрос на выполнение действия, дополненный набором аргументов, которые могут понадобиться при выполнении действия. |
А в него никак не вписывается последний тренд - DI. Потому что теперь объект принимает не сообщение, а весь другой объект целиком, надеясь на внутренние взаимодействия.
Кстати, к вопросу о DI в процедурке - почему бы и нет. Ведь сейчас аргументом можно передавать не только объекты, но и функции. Вопрос в целесообразности.
И, развивая тему, тот же DIC часто реализуют на замыканиях. А это опять расширение "сферы влияния" ООП.
Тоесть постоянно меняются границы ООП, потому их до сих пор никто не определил. А первоначальные давно уже стерты. Ну вот разве этот постулат соблюдается?
Цитата |
Классы организованы в единую древовидную структуру с общим корнем, называемую иерархией наследования. Память и поведение, связанное с экземплярами определённого класса, автоматически доступны любому классу, расположенному ниже в иерархическом дереве. |
Наследование бандой четырех давно уже почти что предано анафеме.
Цитата (Arh @ 29.01.2016 - 09:46) |
Читая всякие статьи про удобные шаблоны проектирования, стили и тд и тп очень часто в заголовке и/или в самой статье упоминается ООП, то есть ООП присваивает объединяет чужие наработки из разных областей под одним стилем. |
Ничего оно не присваивает и не объединяет. ООП это просто возможность установить границы использования инструментов, чтобы программисты не разбежались кто куда, а ходили строем.
И границы эти устанавливаются каждым сообществом по своему. Оставаясь при этом в общем поле процедурного программирования.
А то, что находится за этими границами, принято называть говнокодом. Это уже вопросы пропоганды. Особо забавно, когда ООПэшники называют говнокодерами друг друга, потому что у них разные представления об ООП. И часто можно видеть холивары не ПП vs ООП, а чей кунг-фу лучше (
Эли4ка, я верно теперь сказал?)
_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.