Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (12) « Первая ... 2 3 [4] 5 6 ... Последняя » ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> ООП, серебряная ли пуля?
sergeiss  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Сидел он, дум великих полон - и вдаль глядел
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 14973
Пользователь №: 4190
На форуме: 8 лет, 10 месяцев
Карма: 443




Цитата (xlebosol @ 31.01.2016 - 17:22)
Для этого и есть тестировщики.

Кстати про тестировщиков (и не только про них): http://pikabu.ru/story/testirovshchik_v_bare_3046939 wink.gif

С этой же ссылки, как раз в тему разговора smile.gif Хотя и не про тестировщиков
Цитата

Маркетолог спрашивает программиста: в чём сложность поддержки большого проекта? Программист: ну представь, что ты писатель и поддерживаешь проект "Война и мир". У тебя ТЗ — написать главу как Наташа Ростова гуляла под дождём по парку. Ты пишешь "шёл дождь", сохраняешь, вылетает сообщение об ошибке "Наташа Ростова умерла, продолжение невозможно". Почему умерла? Начинаешь разбираться. Выясняется, что у Пьера Безухова скользкие туфли, он упал, его пистолет ударился о землю и выстрелил в столб, а пуля от столба срикошетила в Наташу. Что делать? Зарядить пистолет холостыми? Поменять туфли? Решили убрать столб. Получаем сообщение "Поручик ржевский умер." Выясняется, что он в следующей главе облокачивается о столб, которого уже нет...


--------------------
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
PMICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 3 дня
Карма: 299

Трезвый :
5 лет, 11 месяцев, 12 дней


Холивар рискует переползти на тему тестов. Сразу свое мнение обозначу, дабы не кидались в меня какашками.

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

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


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

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

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Another Reality  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 124
Пользователь №: 41606
На форуме: 1 год, 4 месяца, 19 дней
Карма: 5




Цитата (sergeiss @ 31.01.2016 - 20:25)
Маркетолог спрашивает программиста: в чём сложность поддержки большого проекта? Программист: ну представь, что ты писатель и поддерживаешь проект "Война и мир". У тебя ТЗ — написать главу как Наташа Ростова гуляла под дождём по парку. Ты пишешь "шёл дождь", сохраняешь, вылетает сообщение об ошибке "Наташа Ростова умерла, продолжение невозможно". Почему умерла? Начинаешь разбираться. Выясняется, что у Пьера Безухова скользкие туфли, он упал, его пистолет ударился о землю и выстрелил в столб, а пуля от столба срикошетила в Наташу. Что делать? Зарядить пистолет холостыми? Поменять туфли? Решили убрать столб. Получаем сообщение "Поручик ржевский умер." Выясняется, что он в следующей главе облокачивается о столб, которого уже нет...

Ахаха 100% )
Сам на днях перепаивал кое-что - 5 часов жаркого, незабываемого секса с отладчиком. Сутки отходил от этого, не мог к компу прикоснуться biggrin.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
casper - gg  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Пользователь
Сообщений: 216
Пользователь №: 42190
На форуме: 1 год, 2 дня
Карма: 10




Цитата (FatCat @ 31.01.2016 - 16:37)
То, что в программировании называется "ООП", в медицине называется "EBM" - эвиденцет-базед медицин - "научно-обоснованная" медицина.
Принцип тот же: если лечащий врач умер во время снятия ЭКГ больному, пришедший на замену врач продолжает снимать ЭКГ, зная, что пульс, АД и температура уже померяны и записаны в историю болезни.
То есть, жесткая неизменяемая последовательность действия.


Испанский фильм - "Идеальный день". Одна из линий сюжета фильма - конфликт между "действовать по-протоколу ООН" и "не по-протоколу" и, собственно, чем оказалось "подогрето" действия "по-протоколу", - в общем все это в фильме. Если, образно обозначить, что "по-протоколу" это "ООП",... то фильм прямо таки видеохоливар на эту тему.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Ron  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1044
Пользователь №: 41686
На форуме: 1 год, 3 месяца, 27 дней
Карма: 13




FatCat, ООП не накладывает творческих ограничений. Аналогия с медициной непонятна. Существуют паттерны, они в своей массе подразумевают эту парадигму, но не рамки а бест практис имплементации решения.



--------------------
Жду 5.11.2017
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Another Reality  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Старик
***

Профиль
Группа: Пользователь
Сообщений: 124
Пользователь №: 41606
На форуме: 1 год, 4 месяца, 19 дней
Карма: 5




Вставлю и я свои 5 копеек.
ИМХО.

Тут высказывались разные мнения в отношении того, что же такое ООП, - парадигма, методология...
Скажу, что это, в первую очередь - образ мышления разработчика/архитектора.

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

С другой стороны, писать классы тогда, когда нужна функция в 50 строк - тоже бред.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Ron  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 1044
Пользователь №: 41686
На форуме: 1 год, 3 месяца, 27 дней
Карма: 13




Цитата (Kusss @ 31.01.2016 - 14:50)
а если так ?

Сама по себе ситуация, когда блок if содержит дофига строк печальная. Тут нужно экстрактить метод или функцию. wink.gif


--------------------
Жду 5.11.2017
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
FatCat  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Чеширский кот
******

Профиль
Журнал
Группа: Администратор
Почтальон группы
Сообщений: 5909
Пользователь №: 1
На форуме: 10 лет, 9 месяцев, 27 дней
Карма: 125

Не пью :
22 года, 2 месяца, 29 дней


Цитата (Ron @ 31.01.2016 - 21:28)
Аналогия с медициной непонятна.

Аналогия очень простая. И там и там новый сотрудник должен быстро включиться в работу.


--------------------
Бесплатному сыру в дырки не заглядывают...
PMПисьмо на e-mail пользователюICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 3 дня
Карма: 299

Трезвый :
5 лет, 11 месяцев, 12 дней


Цитата (Another Reality @ 31.01.2016 - 18:44)
Я думаю, что все стороны согласятся с тем, что строить архитектуру большой и сложной программы намного проще размышляя сущностями (велосипед - колесо, цепь, руль), нежели действиями (велосипед - вращение колеса, движение цепи, управление ), все таки не зря абстрагирование первый принцип ООП.

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

Но если этих условий нет, программа обречена на рефакторинг сразу же, как только ты нарисовал первый квадратик в UML. И часто, после этого рефакторинга, от первоначальной архитектуры остается шишь да маленько. И никакое DDD тут не поможет. Потому что у заказчиков часто семь пятниц на неделе. Вот пример. Да, согласен. Если посмотреть исходники, а не диаграмы, то может у Маркуса там полный кавардак и отсутствие декомпозиции. Но скажите, чем помог Борису его ООП образ мышления?

Его первоначальный проект был легко расширяем? Отнюдь. На втором же этапе ему пришлось полностью переписать базовый класс. Легче рефакторится? Тоже нет - стоит посмтреть на итог. У Маркуса в итоге все работает, а Борис заблудился в собственном коде. Облегчило поддержку? Сравним первые релизы с последними и подсчитаем количество изменений и потраченное время.

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

Если проектируется конкретный (допустим трековый) велосипед, то да. Колеса, цепь, руль. Но если в процессе разрабоки, когда уже все спроектировано, вдруг выясняется, что велосипед должен быть водным, придется выкинуть колеса и добавить пантоны и винт. И скорее всего на 90% изменить компановку.

Присоединённое изображение
Присоединённое изображение


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

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

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 3 дня
Карма: 299

Трезвый :
5 лет, 11 месяцев, 12 дней


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

Когда работаешь на результат - может это и подспорье. Сделал-отдал-забыл. А когда тебе каждый день приходится вносить кучу изменений, зачастую глобальных, то метод Бориса отдыхает, отравляя свой организм никотином.

Я это знаю не понаслышке, так как работаю на обслуживании проекта, а не на штамповке "пирожков".


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

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

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
redreem  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4258
Пользователь №: 29002
На форуме: 5 лет, 4 месяца, 6 дней
Карма: 147




обычно те, кому мало что приходилось реализовывать, но интересующиеся темой, начинают теоретизировать до неистребимой паранойи.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
twin  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Глухой нуб
******

Профиль
Группа: Администратор
Почтальон группы
Сообщений: 15562
Пользователь №: 6543
На форуме: 8 лет, 2 месяца, 3 дня
Карма: 299

Трезвый :
5 лет, 11 месяцев, 12 дней


Цитата (redreem @ 1.02.2016 - 02:40)
обычно те, кому мало что приходилось реализовывать, но интересующиеся темой, начинают теоретизировать до неистребимой паранойи.
Анекдот еще с детства помню
Кто не скаче, той не программист! biggrin.gif


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

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

Зачем ворошить старое, когда можно наворотить новое?

user posted image
PMСайт пользователяICQ
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
redreem  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 4258
Пользователь №: 29002
На форуме: 5 лет, 4 месяца, 6 дней
Карма: 147




да-да, типа уместный анекдот. сугубо для самоубеждения smile.gif
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Медведь  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2482
Пользователь №: 37963
На форуме: 3 года, 3 месяца, 26 дней
Карма: 27




Мужики для таких обсуждений уже давно пора сделать новый раздел.


--------------------

Заходил 29.09.2016
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Santehnick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Абориген
*****

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 231
Пользователь №: 26735
На форуме: 5 лет, 8 месяцев, 28 дней
Карма: 15




Цитата (twin @ 31.01.2016 - 02:27)
Цитата (Santehnick @ 30.01.2016 - 19:27)
Вы ответьте честно себе на вопрос, почему вы на языке высокого уровня программируете?
Так сложилось. smile.gif И высокоуровневые языки поголовно мультипарадигмальны. Закономернее задать встречный вопрос: Почему вы программируете не на Смолтолке?

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

Цитата

Так чем помогают тут юнит-тесты? Выявлять баги? Это вполне решаемо функциональными тестами.

Решаемо, пока у вас 4 функциональных теста. Когда их 4000 и они выполняются несколько часов, может и суток, то вы их перестанете запускать.

Тесты должны быть быстрыми. Юнит, которые не общаются с внешним миром и проверяют только логику тестируемого юнита (т.е. НЕ взаимодействуют с бд, другими методами, апи, файлами и т.д.) отлично подходят.
PM
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (12) « Первая ... 2 3 [4] 5 6 ... Последняя » Ответ в темуСоздание новой темыСоздание опроса