[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: ООП, серебряная ли пуля?
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11
twin
Цитата (Another Reality @ 1.02.2016 - 07:47)
Я не спорю с тем, что различные подходы имеют свои преимущества и недостатки. Однако с моей точки зрения, опираясь на свой личный опыт я предпочитаю ООП.

Это неоспоримо. Каждый делает свой выбор. И каждый выбор достоен уважения. Есть очень много и теоретиков и практиков, адептов ООП, до которых как до Луны. Прото многие (особенно из здесь присутствующих) почему то решии, что мультипарадигма ересь и говнокод. Меня давно коробит этот пафос, а на сей раз терпение лопнуло окончательно. Потому и был написан этот апофеоз холивара. Дабы поумерить пыл некоторых черезчур рьяных адептов.

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Another Reality
Цитата (twin @ 1.02.2016 - 12:10)
Прото многие (особенно из здесь присутствующих) почему то решии, что мультипарадигма ересь и говнокод.

Согласен, так нельзя. Всему свое место.
twin
Цитата (Another Reality @ 1.02.2016 - 07:47)
А что касается приведенного примера про выпечку хлеба, так это, скорее, пример на избыточность. Как раз для борьбы с этим и придуманы такие вещи как DRY, KISS.

Это тоже понятно. Я пример привел несколько в другом ключе. В том, что не всегда опрвдана чрезмерная декомпозиция на стадии проектирования. Заказчики, они такие заказчики))) Особенно если проект действительно живой. Такие чудеса творят иной раз, не только про объектность мира забудешь, а про мать родную. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Another Reality
Цитата (twin @ 1.02.2016 - 12:14)
Это тоже понятно. Я пример привел несколько в другом ключе. В том, что не всегда опрвдана чрезмерная декомпозиция на стадии проектирования. Заказчики, они такие заказчики))) Особенно если проект действительно живой. Такие чудеса твоят иной раз, не только про объектность мира забудешь, а про мать родную.  smile.gif

Из той же оперы )

user posted image
Oyeme
Цитата
Я считаю, что функциональные тесты важнее юнит-тестов. Функциональные помогают выявить влияние багов на систему, юнит помогают в разработке алгоритмов.


Вы не протестируете функции модульным тестированием когда бывает так что огромное число функций невозможно или почти не возможно покрыть.(Это в целом функции ,поведение которых зависит от состояния системы в целом.)

Цитата
Если есть функциональные, то модульные нужны не всегда. Тоько когда ручное тестирование становится нудным и сложным. Ну и как наследство еще хороши. Чтобы последователи были благодарны.  smile.gif

Но они нихрена не страхуют всю систему от багов. А знчит, при наличии функциональных, их значение тоже немного преувеличено.


Да,это было заметно при разработке Вашего ООП framework, Вы вообще этот шаг пропустили.
Конечно как Вы можете тестировать когда у Вас спецификации даже нет,и этот шаг тоже пропущен.

TDD - это не написание тестов для галочки, а написание всевозможных сценариев для проверки

Нельзя покрывать код тестами после написания (не важно, какими). wink.gif

Вы пишите о том что вообще не применяете и Ваш подход в разработке это каша-малаша.

Делай быстро - с головы накидал и патчами позакрывал,+- поменял.С таким подходом процедурный подход самый идеальный,нет же сложной архитектуры ООП которая просто сломается от Ваших хаков в будущем.
Another Reality
Кстати, twin, интереный момент:
весь холивар проходит в терминах процедурки, а стоило бы - в терминах ОО, так как мы только что пришли к выводу, что проблема именно в объекте - в разработчике, а не в подходах biggrin.gif biggrin.gif
twin
Цитата (Oyeme @ 1.02.2016 - 08:20)
Конечно как Вы можите тестировать когда у Вас спецификации даже нет,и этот шаг тоже пропущен.

Почему это нет))) Вот она. И там последним пунктом стоит тестирование. Но я писал эту поделку чуть больше месяца, по вечерам, в свободное от работы время. Причем большую часть времени расписывал принципы и технологии, так как целью был не фреймворк, а именно эта документация, на простом языке для посетителей форума. Про те самые SOLID, KISS и DRY. Это гораздо полезнее, чем сам фреймворк. И тестирование как то было не в числе приоритетных задач.

А он так и не закончен, будет время и настроение, продолжу. Дойдут руки и до этого пункта, напишу функциональные тесты. Юнит не обещаю, это важно для живого проекта, а сей фреймворк нафиг никому не нужен. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Another Reality
Цитата (twin @ 1.02.2016 - 12:34)
Вот она.

Там ошибочка: "- - - Многофункциональное, инуитивно понятное API "
Oyeme
Цитата
Почему это нет))) Вот она. И там последним пунктом стоит тестирование. Го я писал эту поделку чуть больше месяца, по вечерам, в свободное от рабты время. Причем большую часть времени расписывал принципы и технологии, так как целбю был не фреймворк, а именно эта документация, на простом языке для посетителей форума. Про те самые SOLID, KISS и DRY. Это гораздо полезнее, чем сам фреймворк. А он так и не закончен, будет время и настроение, продолжу. Дойдут руки и до этого пункта, напишу функциональные тесты. Юнит не обещаю, это важно для живого проекта, а сей фреймворк нафиг никому не нужен.  smile.gif



Конечо Вы будете заниматься тестированием потом, Вы же не знаете детальный алгоритм , потому-что Вы пишите-меняте все сразу. laugh.gif

Цитата
Причем большую часть времени расписывал принципы и технологии, так как целбю был не фреймворк, а именно эта документация, на простом языке для посетителей форума


Все верно,но Вы не описывали методы и классы в документации и после чего применяли к ним тестирования.(Что впринице диаграммы классов бы помогла бы Вам)

Выглядит это вот так вот.

Вы построили дом все вроде по всем стандартам и по Вашему методу Вы начали тестировать функциональными тестами на "землятрисения,сильные ветра, жару и холод" и оказывается что у Вас все валиться и дом вообще не может быть сдан в эксплуатацию, а тестирование на первых же этапах могло бы выяить что земля например и климат не подходит под эти строения и структуры".


Все потому-что

Цитата
Дойдут руки и до этого пункта, напишу функциональные тесты.
bestxp
Да прочитал я тот апофеоз ненависти к ООП и всему что с ним связано

1 оператор new не является процедурным это обычный оператор присваивания наравне с =
который грубо говоря присваивает ячейке памяти указатель на объект и его возвращает ) который после мы можем присвоить переменной, а можем и не присвоить =)



(new Employee)->setSalary(new Salary(1000));


Далее все является объектами окей, но операторы языка никто не отменял, и это уже так сказать издержки эволюции как instanceof typeof и тд, и думаю с текущим путем развития и это решиться так же

Но опять же каждый проходит эволюцию

процедурка и отрицание ООП, желание узнать почему ооп и что с ним делать и как готовить, ооп круто и почему я ранье так не писал и последнее , так а это что у нас ? Функциональное, пойдем попробуем) и еще что-то попробуем и тд


язык PHP дает возможности разных парадигм, но смешение стилей не будет идти на пользу читабельности кода и его поддержке, какая бы голова не была, смесь из разных стилей вызывет только негатив, и честно когда меня просят пофиксить кашу на фрилансе я просто отказываюсь тратить на это время, так как те люди которые не понимают даже простейший принцип SPOT (единая точка правды ) и предпочтут ему копипаст то мне искренне жаль этих людей как программистов, копипаст экономит время до определенного момента, потом точка невозврата и переписывание с 0 так как говна тьма, унификация и стандартизация это двигатели прогресса, давайте посмотрим на те же мобильные зарядки лет так 10 назад, Nokia Siemens SonyEricson у каждой из них по зоопарку зарядок было, несовместимых, сейчас microusb дефакто, потом имея один стандарт и зная его недостатки пилят далее уже Usb type-c и тд, всей кучей а не придумывая каждый свой крутой и заставляя за это мучаться пользователей


есть куча стандартов , но новые стандарты рождаются когда идет понимание ошибочности предыдушего, либо его допиливают либо делают уже новый, но почему-то ООП у нас и не думается заменяться чем либо, есть рядом идущее функциональное, часть идей которых прочно приживаеться в ООП, где часть идей ООП накладывается и на функциональное, но они настолько разные что вместе быть им практически не возможно, но вот часть их вполне себе живут в ООП ( замыкания, каррирование, отложенные вычисления и тд )
twin
Цитата (Oyeme @ 1.02.2016 - 08:52)
Вы же не знаете детальный алгоритм , потому-что Вы пишите-меняте все сразу.

Цитата (Oyeme @ 1.02.2016 - 08:52)
Что впринице диаграммы классов бы помогла бы Вам
Я пытался и даже просил помочь. Вобщем то он сейчас по ней и работает, только методы я не расписывал. Но всем некогда, все заняты охаиванием процедурки. smile.gif Ну и фиг с ним, не особо оно надо мне было. А написать доку по тому, чего я не знаю (проектирование ООП систем) я не смог. Потому что это на работе мне это вообще не нужно, и глубоко изучать самостоятельно - куча времени, потраченного впустую. Так что без коллегиального обсуждения эта тема прото протухла. Да и ладно, можно прожить и без.
Цитата (Oyeme @ 1.02.2016 - 08:52)
Вы построили дом все вроде по всем стандартам и по Вашему методу Вы начали тестировать функциональными тестами на "землятрисения,сильные ветра, жару и холод" и оказывается что у Вас все валиться и дом вообще не может быть сдан в эксплуатацию, а тестирование на первых же этапах могло бы выяить что земля например и климат не подходит под эти строения и структуры"

Для тестирования не обязательны ни юнит-тесты, ни функцилнальные. Руками тестировать в процессе разработки никто не отменял. Да, не камильфо, но я написал, почему не тратил на крутые тесты время.

Цитата (bestxp @ 1.02.2016 - 08:59)
Да прочитал я тот апофеоз ненависти к ООП и всему что с ним связано
Где там ненависть ты нашел... Не нужно транспонировать свои чувства к мультипарадигме на меня. Там просто констатация фактов, и мнений. Ну обернуто в игровую форму для доступности, но покажи, где ненависть? Может быть тут:
Цитата
Я вовсе не противник ООП методологии, как могло показаться. И тоже не-нет, да и скушаю гамбургер с колой. Любая ложка хороша к своему обеду). Но загонять себя в искуственные рамки, которые при этом приходится самому для себя устанавливать - увольте.


Цитата (bestxp @ 1.02.2016 - 08:59)
1 оператор new не является процедурным это обычный оператор присваивания наравне с =
Обычный, это и есть процедурный. Посмотри, как в Смолтолке это сделано. В PHP (да и не только) ООП реализовано от процедурки, а не как основная идея. И потому без неё никуда не деться.

Всё остальное - твое частное мнение. Сто раз повторял. Нравится тебе так, считаешь, что это верно и правильно - молодец. Ни кто не против. Просто знай, что есть куча других мнений. Высказаных людьми, которые ничуть тебе не уступают. Я не себя имею ввиду, а тех, на чьё мнение опирался.

И называть это мнение говнокодингом (что ты не раз делал) - это как минимум пустой пафос, как максимум - простая безграмотность.

Цитата (Santehnick @ 1.02.2016 - 09:10)
А где там солид? Полиморфный O ? I ? может D ? Там хоть что-нибудь можно задекорировать? Или реализацию подменить? Не одного же интерфейса нет. Там весь код зависит от реализаций, а не от абстракций. С юнит-тестированием там всё сложно будет, потому что высокий уровень технического долга.
Ты идеи не понял просто. Как прошлый раз с контроллерами. Всё там можно сделать. Подменить вообще легче лёгкого.
И задекорировать там где нужно. А вообще, для чего это фреймворку?

И тут не тема обсуждения моей свистоперделки. Нужно было раньше критиковать. На trigger_error помнится все напали. А по делу толком никто не высказался. Один троллинг.

Но это в прошлом, я своего все равно добился, поставленные цели достигнуты. Основные принципы и концепции расписаны. А сам фреймворк, если руки дойдут, я в строгом ООП продолжать не буду. Так что представление окончено. smile.gif

_____________
Если вам недостаточно собственных заблуждений, можно расширить их мнениями экспертов.

Нужно уважать мнение оппонета. Ведь заблуждаться - его святое право.

Настаивал, настаиваю и буду настаивать на своем. На кедровых орешках.

user posted image
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.