Тема: Хороші і погані сторони OOP
Все почалось ось тут: http://replace.org.ua/post/35222/#p35222
Декілька запитань:
1. Хто як пише код, використовуєте всюди ООР чи ні?
2. Які для вас плюси об'єктно орієнтованого підходу в програмуванні?
Ви не увійшли. Будь ласка, увійдіть або зареєструйтесь.
Ласкаво просимо вас на україномовний форум з програмування, веб-дизайну, SEO та всього пов'язаного з інтернетом та комп'ютерами.
Будемо вдячні, якщо ви поділитись посиланням на Replace.org.ua на інших ресурсах.
Для того щоб створювати теми та надсилати повідомлення вам потрібно Зареєструватись.
Український форум програмістів → PHP → Хороші і погані сторони OOP
Для відправлення відповіді ви повинні увійти або зареєструватися
Все почалось ось тут: http://replace.org.ua/post/35222/#p35222
Декілька запитань:
1. Хто як пише код, використовуєте всюди ООР чи ні?
2. Які для вас плюси об'єктно орієнтованого підходу в програмуванні?
використовую всюди.
з переваг як на мене - краща структурованість і набагато менший шанс заплутатись
1. Залежить від мети. Маленькі програми на 1-2 файли - переважно без ООП (хоча залежить від предметної області). Великі проекти без ООП - це, переважно, ЖАХ.
2. Основне це читаність коду - ООП реалізує кілька майже самоочевидних для людини концепцій, які інакше треба формулювати зовсім іншим чином. Економніший ООП-код - це наслідок покращення читаності, стає легше дописувати різні фішки. Ну і можна на рівні компілятора вказати іншим програмістам, куди лізти не варто, що теж непогано.
Ну і можна на рівні компілятора вказати іншим програмістам, куди лізти не варто, що теж непогано.
можна про це детальніше? бо щось на думку, окрім препроцесорів, нічого не спадає
Ну і можна на рівні компілятора вказати іншим програмістам, куди лізти не варто, що теж непогано.
можна про це детальніше? бо щось на думку, окрім препроцесорів, нічого не спадає
private ж
Ну і по темі.
1. Тут більше від інструмента залежить. На джаві простіше написати з ООП навіть простеньку програму, ніж городити static-методи. А на джаваскрипті чи луа простіше без них, як мінімум поки проект не дуже великий.
muhasjo написав:Ну і можна на рівні компілятора вказати іншим програмістам, куди лізти не варто, що теж непогано.
можна про це детальніше? бо щось на думку, окрім препроцесорів, нічого не спадає
private ж
в приватні методи програміст тоже може залізти. Чи тут вся суть у варнінгу-ерорі, як вказівка програмісту?
На Java неможливо написати не-ООП програму; інша справа, що можна написати погану ООП програму...
І так, суть тут в повідомленні, що щось не те відбувається. Найпростіший приклад - кожного разу, коли змінюється якесь значення в структурі, треба смикати певну функцію (хоча б логи писати). Спробуйте імітувати це за допомогою препроцесорів і static-змінних в файлах...
+ це те,що можна "все розкласти по поличкам" (це можна зробити і в процедурці),але тут простіше відділити різні за призначенням шматки програми.
- коли цим (на мою думку) зловживають і пхають ооп скрізь,да так,що процес розбору програми стає головоломкою. Особливо,коли програміст хоче створити особливий,цікавий код . aka Class::ThisMethod(Class::ThisMethod(Class->ThisMethod(new Class::ThisMethod('ARG',ARG2)))) і тому подібне
-: Так функціональщину теж так можна:
functionOne( functionTwo( functionThree, functionFour() + varOne ), functionFive('ARG' )->member ) )...
quez написав:muhasjo написав:можна про це детальніше? бо щось на думку, окрім препроцесорів, нічого не спадає
private ж
в приватні методи програміст тоже може залізти. Чи тут вся суть у варнінгу-ерорі, як вказівка програмісту?
Дивлячись, що ви маєте на увазі під "залізти". Просто його не викликати. Звичайно, в Java є рефлексія, яка дозволяє отримати доступ до приватних полів і методів, якщо дуже хочеться. Але програмісту має бути зрозуміло, що то внутрішня реалізація, і одного дня "карбюратор може бути замінений на інжектор, і машина перестане їхати", якщо хочете. Навіть в Lua, де немає приватних методів (в реалізації luabind), програмісти позначають приватні і публічні методи в коментарях. Але помилково викликати приватний метод все одно можна. Тому - так: суть еррорі-підказці.
Все почалось ось тут: http://replace.org.ua/post/35222/#p35222
Декілька запитань:
1. Хто як пише код, використовуєте всюди ООР чи ні?
2. Які для вас плюси об'єктно орієнтованого підходу в програмуванні?
1. Зазвичай ООП там де це необхідно, тобто, наприклад де юзається MVC-патерн, то там інакше не получить, інакше це вийде незвязний код, велосипед, і т.д.
Не використовую ООП наприклад у всяких утилітах типу:
\Utils::ConvertToCamel($str, $delimiter);
2. Плюс в тому що код пишеться для людей + легко розширювати. Це вже було сказано паном Koala
-: Так функціональщину теж так можна:
functionOne( functionTwo( functionThree, functionFour() + varOne ), functionFive('ARG' )->member ) )...
Зазвичай щоб такого гк не використовувати і використовують класи,де створив обєкт з конструктором,передав в нього параметри та викликав головний метод (який і виведе,все що потрібно) і все.
тема мільйон разів обсмоктувалася в інеті.
Я зауважу лише одне - ООП це не тільки парадигма програмування - це спосіб мислення.
Не вмієте мислити об'єктами - обговорення плюсів і мінусів не має ніякого сенсу.
тема мільйон разів обсмоктувалася в інеті.
те що мусолилась в інеті це ми знаємо. Мені хотілось почути думку користувачів форуму
Десь я вже порівнював ці два стилі програмування...
На мій погляд, в певній мірі, процедурний стиль програмування можна порівняти з автомобільним транспортом, а ООП з підземним метро.
Якщо розглядати машину в контексті "зручно - сів та й поїхав куди треба" то все чудово й логічно, особливо в сільській місцевості, де у вас майже відсутні конкуренти.
АЛЕ
Якщо ви коли небудь жили у великому місті, чи хоча б гостювали там, то вам мабуть відомі проблеми з перевантаженістю автомобільних доріг, тобто з пробками.
Метро - інша справа. Хоча там все значно обмеженіше в плані маневрування, але за рахунок підпорядкуванню глобальній схемі руху, ви можете в рази швидше довезти пасажирів з одного кінця міста в інший, особливо в умовах інтенсивного потоку транспорту.
Це відвертий тролізм. Не більше.
VTrim написав:Це відвертий тролізм. Не більше.
Але в багатьох випадках ООП таким чином і використовують.
ktretyak написав:VTrim написав:Це відвертий тролізм. Не більше.
Але в багатьох випадках ООП таким чином і використовують.
Якщо є багато випадків, то мабуть ви зможете навести хоча б один із них, так?
VTrim написав:ktretyak написав:Це відвертий тролізм. Не більше.
Але в багатьох випадках ООП таким чином і використовують.
Якщо є багато випадків, то мабуть ви зможете навести хоча б один із них, так?
Чим тобі то не приклад був
Для відправлення відповіді ви повинні увійти або зареєструватися