Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Возвращаюсь к ООП
 
 автор: Ильдар   (16.07.2011 в 21:06)   письмо автору
 
 

Почему многие разработкичи, типа разработчики известных скриптов или движков пишут на классах, а не простым способом. Почему они выбирают именно этот метод?

  Ответить  
 
 автор: cheops   (16.07.2011 в 21:27)   письмо автору
 
   для: Ильдар   (16.07.2011 в 21:06)
 

По большому счету причины две:
1) Повторное использование, вы можете унаследовать свою систему классов не только от конечных классов, но и тех, что находятся в середине иерархии. Т.е. не с нуля разрабатывать, не таскать коди и отлаживать в новом проекте. А взять и свернуть на новую ветку разработки с середины уже существующего проекта ничего не меняя в старом проекте и не разрабатывая половину нового.
2) Свой язык программирования - ООП создавался для того, чтобы вводить свои понятия на более абстрактном уровне, языке задач. Предметный язык - это великая сила, но разрабатывать полноценный язык - это сложная задача.

  Ответить  
 
 автор: Ильдар   (16.07.2011 в 21:52)   письмо автору
 
   для: cheops   (16.07.2011 в 21:27)
 

пункт 1) - не очень понял

почему так подробно спрашиваю - потому что не могу вникнуть и понять полноценно все прелести использования ООП

  Ответить  
 
 автор: cheops   (17.07.2011 в 10:01)   письмо автору
 
   для: Ильдар   (16.07.2011 в 21:52)
 

>почему так подробно спрашиваю - потому что не могу вникнуть и понять полноценно все
>прелести использования ООП
Большой проект нужен и опыт... на небольшом проекте ООП просто не удастся в полную силу использовать.

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

  Ответить  
 
 автор: Ильдар   (17.07.2011 в 14:33)   письмо автору
 
   для: cheops   (17.07.2011 в 10:01)
 

спасибо. Теперь же становится яснее на твоем примере.

  Ответить  
 
 автор: Саня   (17.07.2011 в 13:18)   письмо автору
 
   для: Ильдар   (16.07.2011 в 21:52)
 

"Классы — это контейнеры для функций и переменных, аналог пространства имён" — когда-то я думал так. Долго не мог понять смысла ООП. Все прелести ООП раскрываются на другом уровне абстракции. А это приходит с опытом. Кодируйте в ООП, изучайте чужие проекты, заставляйте себя заниматься этим и понимание прийдёт само. Мне помог именно такой подход, а не тот, который был описан в самоучителе Симдянова и Кузнецова. Так же попробуйте изучить какой-нибудь чисто объектный язык, например java или c#.

  Ответить  
 
 автор: cheops   (17.07.2011 в 23:28)   письмо автору
 
   для: Саня   (17.07.2011 в 13:18)
 

В рамках самоучителя, да и не самоучителя тоже, передать опыт разработки сложно, а ООП без 3-4 проектов за спиной - плохо идет.

  Ответить  
 
 автор: Саня   (18.07.2011 в 10:16)   письмо автору
 
   для: cheops   (17.07.2011 в 23:28)
 

Это верно. Но сравнение ООП со столами и метизами не только не вносит ясности, но ещё более запутывает. Только после познания ООП становится очевидной эта аллегория.

  Ответить  
 
 автор: cheops   (18.07.2011 в 12:41)   письмо автору
 
   для: Саня   (18.07.2011 в 10:16)
 

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

  Ответить  
 
 автор: Ильдар   (18.07.2011 в 12:59)   письмо автору
 
   для: cheops   (18.07.2011 в 12:41)
 

мда... после последних двух сообщений аж страшно браться за ООП )

  Ответить  
 
 автор: Саня   (18.07.2011 в 13:22)   письмо автору
 
   для: Ильдар   (18.07.2011 в 12:59)
 

Не бойтесь, мы вам поможем :)

  Ответить  
 
 автор: cheops   (18.07.2011 в 13:58)   письмо автору
 
   для: Ильдар   (18.07.2011 в 12:59)
 

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

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

Поэтому не бойтесь создавать плохие ООП-проекты, иначе как вы научитесь делать хорошие?

  Ответить  
 
 автор: psychomc   (17.07.2011 в 00:01)   письмо автору
 
   для: Ильдар   (16.07.2011 в 21:06)
 

инкапсуляция-наследование-полиморфизм

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования