|
|
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
Во мне идёт борьба, поэтому не могу не поделиться. Я не люблю ООП. Помимо субъективных причин (мне противно слово "класс", особенно, когда на самом деле имеется ввиду "объект"; мне противно писать в структурах, которых нет в машине, только не надо про асм), есть, мне кажется, и объективные. Всё это относится к сопровождению, именно этим мне приходится сейчас заниматься. То есть требуется в основном читать код, и только чуток писать: 1. Согласны ли вы, что разбираться в большом проекте, написанным на ООП без наличия отрисовки его структуры гораздо сложнее чем в аналогичном процедурном? 2. Согласны ли вы, что менять структуру классов в работающей большой программе опаснее, чем менять функции в аналогичной процедурно написанной? 3. Правда ли то, что ОО-код работает медленнее процедурного? Я конечно понимаю, что ООП меня согнёт рано или поздно. Но хочется как-то по-мирному, без ломки. Так что я, можно сказать, за поддержкой и консультацией. Теплится надежда когда-нибудь заняться системным программированием, всякими низкоуровневыми алгоритмами, кодированием, но похоже, что время упущено (( Радует, что хоть веб я оставил позади! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 11:14 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
Несколько мыслей НЕ новичка (я первый раз столкнулся с ООП в Turbo Pascal 5.5 году так в 1991) 1. в свое время ООП был задуман как подход, упрощающий повторное использование кода. При этом сразу признавалось его усложненное (по сравнению с обычным программированием) написание и сопровождение 2. некоторые люди пытаются его применить везде, где надо и не надо. Например, регулярно в форуме по Oracle задаются вопросы о том, как там его присобачить, причем совершенно на пустом месте 3. Я конечно понимаю, что ООП меня согнёт рано или поздно Вот это со-о-овершенно необязательно. Есть масса программ, которые написаны, да и сейчас пишутся совсем без применения или с минимальным применением ООП. Многое зависит и от области программирования (в тех же базах данных - клиентская или серверная части ну и т.д.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 11:28 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
Спасибо за мнение! tru55 Многое зависит и от области программирования (в тех же базах данных - клиентская или серверная части ну и т.д.) Ага! Работать на стороне SQL-сервера мне гораздо приятнее, чем разбираться в клиентском приложении. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 11:33 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
Frankie[quot tru55] Многое зависит и от области программирования (в тех же базах данных - клиентская или серверная части ну и т.д.) Да. В ООП класс - коллекция, но в обработке данных коллекции хранятся в БД и обрабатываются соответствующими средствами. Отсюда следует простая ненужность ОПП в обработке данных. Что однако не мешает писать клиента на яве, используя методы процедурного программирования. зы. Нужно еще сильно подумать, чтобы придумать адекватную область применения для ООП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 12:17 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
Frankie 1) Нет. 2) Нет. 3) Нет. Еще вопросы будут? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 12:28 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
модзы. Нужно еще сильно подумать, чтобы придумать адекватную область применения для ООП. Единственный раз, когда я прибегал к ооп по собственному желанию был диплом. Там мне нужно было работать с к-значными функциями. То есть нужен был именно свой тип данных. Это помогло и мне даже понравилось. Но в бд-приложениях всё сводится к тому, чтобы гонять string, integer, float, datetime туда-сюда... Так? И тем не менее я отовсюду слышу как полезно интерпретировать таблицы классами... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 12:30 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
(меня всё-равно забанят) Frankie 1) Нет. 2) Нет. 3) Нет. Еще вопросы будут? К Вам нет,но хотелось бы комментариев. Особенно насчёт п.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 12:31 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
мод Frankie Господа, расскажите мне, пожалуйста, системы какой сложности вы писали? Т.е. строк кода, сколько эти системы стоили, за сколько времени были написаны, что умели делать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 12:32 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
Frankie К Вам нет,но хотелось бы комментариев. Особенно насчёт п.1 Это хорошо. в большом проекте - разбираться в ООП структуре несравнимо проще, чем в процедурной. Достаточно лишь осознать, на какие функциональные группы разбиты объекты (чем они занимаются), по каким правилам наследуются и как взаимодействуют. Как правило, все принципы эти несложные. И отрисовка структуры тут не нужна. Нужен лишь вменяемый IDE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 12:35 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
(меня всё-равно забанят) мод Frankie Господа, расскажите мне, пожалуйста, системы какой сложности вы писали? Т.е. строк кода, сколько эти системы стоили, за сколько времени были написаны, что умели делать? Система учёта заказов, платежей, материалов для небольшой типографии. Я сопровождал, а впоследствие переписал там 80%. PHP+MySQL. Для собственного использования, поэтому стоимость не знаю (да и дело это ооооочень относительное). Тысяч 8 строк кода. Ни одного класса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 12:46 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
(меня всё-равно забанят) Frankie К Вам нет,но хотелось бы комментариев. Особенно насчёт п.1 Это хорошо. в большом проекте - разбираться в ООП структуре несравнимо проще, чем в процедурной. В процедурной системе я вижу вход и выход функции, а по поиску по всему проекту могу узнать откуда она вызывается. А если ещё и вменяемое название, то всё в шоколаде. Достаточно лишь осознать, на какие функциональные группы разбиты объекты (чем они занимаются), по каким правилам наследуются и как взаимодействуют. Как правило, все принципы эти несложные. ну видать я дуб совсем и мой руководитель заодно. Понимаете, когда все формы (среда Visual Basic 6) генерятся в динамике, по шаблонам (абстрактным классам), статика тащится из XML и всё это надо держать в голове. Дунуть нельзя - страшно. 300 человек ведь юзают, а ты и месяца не работаешь. Поиск по вызову методов уже не пройдёт, ибо они одинаково называются! И отрисовка структуры тут не нужна. Нужен лишь вменяемый IDE. Возможно в Делфи это воспринималось бы легче, но кардинально ситуация та же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 12:51 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
ООП рулит! сипп форева! аффтопитезь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 13:17 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
Frankie...1. Согласны ли вы, что разбираться в большом проекте, написанным на ООП без наличия отрисовки его структуры гораздо сложнее чем в аналогичном процедурном? 2. Согласны ли вы, что менять структуру классов в работающей большой программе опаснее, чем менять функции в аналогичной процедурно написанной? 3. Правда ли то, что ОО-код работает медленнее процедурного? ... 1) нет 2) нет 3) нет полностью поддерживаю того, которого забанят... ООА и ООП - это методология. Задачи её - упрощать. Если Вы считаете, что это сложно или что то не понимаете - рекомендую обратиться к первоисточникам...К Гради Бучу например... И ышо... Процедурный язык...Или использование си плас плас (подразумевая что это ОО подход) - есть БОЛЕЕ ГРОМОЗДКИЕ конструкции (по коду) и более связанные между собой (!) чем проработка задачи с позиций ОО. Это - факт. Как один из примеров порой привожу следующие цифры... Проект на плюсах... Классов штук около 2500 (студия так внизу пишет когда долго открывает солюшен).. После проработки было выявленно из бизнес слоя около 15 сущностей... Предположим ышо пару-тройку слоёв... 50..пускай ошиблись - предопложим 100...ну хорошо - 200... А теперь взгляните на порядки цифр - в 10 (!!!) раз !!! Я думаю глупо спорить с тем фактом, что чем больше кода тем менее устойчива программа и прочие минусы... с уважением (круглый) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 13:33 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
AklinООП рулит! сипп форева! аффтопитезь ну да, еще: автор...1. Согласны ли вы, что разбираться в большом проекте, написанным на ООП без наличия отрисовки его структуры гораздо сложнее чем в аналогичном процедурном? 2. Согласны ли вы, что менять структуру классов в работающей большой программе опаснее, чем менять функции в аналогичной процедурно написанной? 3. Правда ли то, что ОО-код работает медленнее процедурного? ... 1) категорически нет 2) если руки на месте, одно удовольствие, т.е. нет 3) не медленнее. хотя опять же вопрос кривых рук (это аналогия на сисег) не раскрыт. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 13:37 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
FrankieВо мне идёт борьба, поэтому не могу не поделиться. Я не люблю ООП. Помимо субъективных причин (мне противно слово "класс", особенно, когда на самом деле имеется ввиду "объект"; мне противно писать в структурах, которых нет в машине, только не надо про асм), есть, мне кажется, и объективные. Всё это относится к сопровождению, именно этим мне приходится сейчас заниматься. То есть требуется в основном читать код, и только чуток писать: 1. Согласны ли вы, что разбираться в большом проекте, написанным на ООП без наличия отрисовки его структуры гораздо сложнее чем в аналогичном процедурном? 2. Согласны ли вы, что менять структуру классов в работающей большой программе опаснее, чем менять функции в аналогичной процедурно написанной? 3. Правда ли то, что ОО-код работает медленнее процедурного? Я конечно понимаю, что ООП меня согнёт рано или поздно. Но хочется как-то по-мирному, без ломки. Так что я, можно сказать, за поддержкой и консультацией. Теплится надежда когда-нибудь заняться системным программированием, всякими низкоуровневыми алгоритмами, кодированием, но похоже, что время упущено (( Радует, что хоть веб я оставил позади! 1. Нет. Разбирался я как-то в исходниках Putty (OpenSource FTP-клиент, процедурный подход) - надо было модифицировать для своих целей... Ужас... Хорошо, что функции назывались типа sftp_send(...) и были под рукой исходники+отладчик+IP-адрес тестового сервера+логин+пароль... 2. Нет. Зачем резать "по живому" (менять что-то в РАБОТАЮЩЕЙ ПРОГРАММЕ)? Это плохой тон! Должна быть тестовая копия, где программу можно исковеркать по "самое нехочу" и должен быть релиз, с которым уже работают конечные пользователи... 3. Зависит от... Чаще всего современные оптимизирующие компиляторы создают не менее эффективный код для ООП-стиля, чем для процедурного стиля... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 13:39 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
kolobok0Если Вы считаете, что это сложно или что то не понимаете - рекомендую обратиться к первоисточникам...К Гради Бучу например... Я не считаю, что это сложно, я считаю - не естественно. Конечно, мне придётся смириться. Сейчас я просто пытаюсь понять, почему ООП в прикладном программировании становится стандартом, а те, кто его не применяют либо мечтают о нём, либо, по мнению остальных, ладеко не пойдут. Первоисточники сыпят красивыми фразами типа "работа с моделью реального мира", "более высокая абстракция". Я воспринимаю это как уход от реальности. Вместо того, чтобы сосредоточиться на взаимодействии человек<->компьютер и больше ни на чём, пытаются интерпретировать какую-то бизнес логику... UML это вообще чума для меня. И ышо... Процедурный язык...Или использование си плас плас (подразумевая что это ОО подход) - есть БОЛЕЕ ГРОМОЗДКИЕ конструкции (по коду) и более связанные между собой (!) чем проработка задачи с позиций ОО. Это - факт. Иероглифы тоже короче букв, но это не значит что они легче и понятнее. Как один из примеров порой привожу следующие цифры... Это к чему? Я разве отрицаю, что оптимизация программ приводит к впечатляющим результатам? Я думаю глупо спорить с тем фактом, что чем больше кода тем менее устойчива программа и прочие минусы... Бывает устойчивый код и не очень. Дело не в количестве. Плохо написанное ОО-приложение фиксить гораздо сложнее процедурного. Сам проходил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 13:47 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
Станислав С2. Нет. Зачем резать "по живому" (менять что-то в РАБОТАЮЩЕЙ ПРОГРАММЕ)? Это плохой тон! Должна быть тестовая копия, где программу можно исковеркать по "самое нехочу" и должен быть релиз, с которым уже работают конечные пользователи... Так и делается. Просто от меня требовалось дописать свойство и метод в калсс и при соответствующих событиях вызвать этот метод. Сделать можно за полчаса, но ведь задача не нарушить концепцию! 2 дня ушло на вникание в логику работы интерфейса (и это только часть!), в итоге сделал, и то не уверен, что это лучшее. Я к тому, что фанаты ООП говорят, что такие проекты проще сопровождать. Я готов согласиться, но только если к коду прилагается схема классов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 13:56 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
Frankie kolobok0Если Вы считаете, что это сложно или что то не понимаете - рекомендую обратиться к первоисточникам...К Гради Бучу например... Я не считаю, что это сложно, я считаю - не естественно. лично я не представляю программирование более 10 тыщ строк без ООП. Frankie Конечно, мне придётся смириться. Сейчас я просто пытаюсь понять, почему ООП в прикладном программировании становится стандартом, почему становится? сипп, давно вышел, и стал стандартом давно, вы просто только что о нем узнали я так понимаю. Frankie а те, кто его не применяют либо мечтают о нём, либо, по мнению остальных, ладеко не пойдут. Первоисточники сыпят красивыми фразами типа "работа с моделью реального мира", "более высокая абстракция". Я воспринимаю это как уход от реальности. Вместо того, чтобы сосредоточиться на взаимодействии человек<->компьютер и больше ни на чём, пытаются интерпретировать какую-то бизнес логику... UML это вообще чума для меня. распознование программы, базирующейся на ООП в разы проще, одлеяются объекты при работе с конкретным кусочком кода. вы как бы проводите операцию на человеке на очень маленькой области зная при этом, что остальное не постарадает. Frankie И ышо... Процедурный язык...Или использование си плас плас (подразумевая что это ОО подход) - есть БОЛЕЕ ГРОМОЗДКИЕ конструкции (по коду) и более связанные между собой (!) чем проработка задачи с позиций ОО. Это - факт. Иероглифы тоже короче букв, но это не значит что они легче и понятнее. про громозкость: выскажите ваше мнение, как через 20 символов обозначить более 20000 функций, так, чтобы они естесственно не пересекались, и были элементарно понятны программисту??? также оссобенность языка си в его компакности, а дополнение классов гораздо увеличивает восприятие программ и свободу. Frankie Как один из примеров порой привожу следующие цифры... Это к чему? Я разве отрицаю, что оптимизация программ приводит к впечатляющим результатам? Я думаю глупо спорить с тем фактом, что чем больше кода тем менее устойчива программа и прочие минусы... Бывает устойчивый код и не очень. если каждая область устойчива и связки устойчивы, то программа устойчива. при увеличении количества функций количество связок увеличивается в разы, а значит возможно падение устойчивости Frankie Дело не в количестве. Плохо написанное ОО-приложение фиксить гораздо сложнее процедурного. Сам проходил. опять же. зависит от рук. можно написать отличный код, а можно поиздеваться и выстроить код квадратиками. вообще тогда код нечитаемым делается. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 13:59 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
Frankie Станислав С2. Нет. Зачем резать "по живому" (менять что-то в РАБОТАЮЩЕЙ ПРОГРАММЕ)? Это плохой тон! Должна быть тестовая копия, где программу можно исковеркать по "самое нехочу" и должен быть релиз, с которым уже работают конечные пользователи... Так и делается. Просто от меня требовалось дописать свойство и метод в калсс и при соответствующих событиях вызвать этот метод. Сделать можно за полчаса, но ведь задача не нарушить концепцию! 2 дня ушло на вникание в логику работы интерфейса (и это только часть!), в итоге сделал, и то не уверен, что это лучшее. Я к тому, что фанаты ООП говорят, что такие проекты проще сопровождать. Я готов согласиться, но только если к коду прилагается схема классов. у меня возник вопрос: вы копались во всем коде из, скажем, 20000 функций, или только в его части? если в части, даже меньшей тыщи строк то сразу видна ощутимое упрощение работы с проектом. а иначе поднимается вопрос о качестве рограммиста, написавшего данную программу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 14:00 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
FrankieТо есть нужен был именно свой тип данных. Свои типы данных есть даже в С, а теперь есть в оракле - к ООП это не имеет никакого отношения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 14:09 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
Frankie Система учёта заказов, платежей, материалов для небольшой типографии. Я сопровождал, а впоследствие переписал там 80%. PHP+MySQL. Для собственного использования, поэтому стоимость не знаю (да и дело это ооооочень относительное). Тысяч 8 строк кода. Ни одного класса. Начнем с того, что PHP - изначально процедурный язык, с лево прикрученными классами. Далее - система учета заказов (а точнее - управление складом, по сути), была лишь одним из десятка больших функциональных модулей (тесно связанных друг с другом) биллинга, в разработке которого мне приходилось участвовать. Система развивалась с 98-года. Изначально - на ООП. Потом всё ООП свелось просто к накидыванию объектов на форму и прописывании экшенов (а вся логика была по сути структурной). Я помню, какой ужас меня охватывал при попытках разобраться в этом бесконечном нагромождении кода, в котором не объектов, кроме GUI-контролов. Система обслуживания заказов - суть базис, который программисту-автоматизаторщику следует знать. Я, кстати, пишу на Java. Может поэтому мне ООП близок и понятен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 14:09 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
(меня всё-равно забанят)Господа, расскажите мне, пожалуйста, системы какой сложности вы писали? no comments ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 14:13 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
мод (меня всё-равно забанят)Господа, расскажите мне, пожалуйста, системы какой сложности вы писали? no comments Или это была такая ирония? Я что-то не уловил, простите. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 14:14 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
kolobok0Классов штук около 2500После проработки было выявленно из бизнес слоя около 15 сущностей... На 15 сущностей 2500 классов ? В топку такой проект. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 14:17 |
|
||
|
Впечатления новичка от ООП
|
|||
|---|---|---|---|
|
#18+
Frankie Так и делается. Просто от меня требовалось дописать свойство и метод в калсс и при соответствующих событиях вызвать этот метод. Сделать можно за полчаса, но ведь задача не нарушить концепцию! 2 дня ушло на вникание в логику работы интерфейса (и это только часть!), в итоге сделал, и то не уверен, что это лучшее. Я к тому, что фанаты ООП говорят, что такие проекты проще сопровождать. Я готов согласиться, но только если к коду прилагается схема классов. Так у вас была проблема в том, что не было понятно, при каких событиях вызывать метод? Или вы два дня медитировали в раздумьях, не сломается ли что-нибудь, когда вы добавите произвольный метод (который кроме вас никому не нужен) к какому-то классу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.12.2006, 14:18 |
|
||
|
|

start [/forum/topic.php?fid=16&msg=34230141&tid=1342973]: |
0ms |
get settings: |
9ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
366ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 681ms |

| 0 / 0 |
