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

Форум PHP

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

 

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

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

тема: Обойтись без классов?
 
 автор: technic611   (25.10.2008 в 14:42)   письмо автору
 
 

Возможно не изучать классы для создания сайта? В книге по практике ничего не было про них. Я так понял это только для удобства написания кода. Или.....?

  Ответить  
 
 автор: cheops   (27.10.2008 в 11:41)   письмо автору
 
   для: technic611   (25.10.2008 в 14:42)
 

Конечно, можно. Более того, к классам следует прибегать лишь там, где у них имеется приимущество пред структурным кодом. Это связано с тем, что большинство интерфейсов - структурные, а не объектно-ориентированные и взаимодействовть с ними проще из структурного кода.

  Ответить  
 
 автор: Root   (27.10.2008 в 12:28)   письмо автору
 
   для: cheops   (27.10.2008 в 11:41)
 

>Конечно, можно. Более того, к классам следует прибегать лишь там, где у них имеется приимущество пред структурным кодом. Это связано с тем, что большинство интерфейсов - структурные, а не объектно-ориентированные и взаимодействовть с ними проще из структурного кода.

Мдааа.. Вы, Хеопс, либо уже из принципа эту линию гнёте, либо Вы несколько устарели.. :-)
Я вообще с трудом себе представляю ситуацию, где можно обойтись без ООП. Без таких классов как например Db, Upload, Input(со всеми валидаторами) жить невозможно..
Каждый раз писать одно и тоже, вместо того, чтобы положить это в класс??
Не говоря уже о том насколько проще код менять..

[поправлено модератором]

  Ответить  
 
 автор: Assessor   (27.10.2008 в 13:05)   письмо автору
 
   для: Root   (27.10.2008 в 12:28)
 

>Я вообще с трудом себе представляю ситуацию где можно обойтись без ООП. Без таких классов как например Db, Upload, Input(со всеми валидаторами) жить невозможно..
>Каждый раз писать одно и тоже, вместо того, чтобы положить это в класс?? Бред полный!!

А что это за классы такие Db, Upload, Input? То что вы тут перечислили можно и на функциях реализовать и это будет не чем не хуже, чем вы напишите объектно-ориентированным подходом. Важно не обрамить свои функции в class {}, а спроектировать его понимая концепцию объектно-ориентированного подхода

  Ответить  
 
 автор: Root   (27.10.2008 в 14:31)   письмо автору
 
   для: Assessor   (27.10.2008 в 13:05)
 

>А что это за классы такие Db, Upload, Input?

Я надеялся, будет понятно, что это за классы.
Db - для работы с базой
Upload - загрузка файлов.
Input - для фильтрации входящих данных.

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

1)ну это как сказать..

Работать можно, например, с разными СУБД,
и имея простую "factory" и методы:
->select(...)
->where(...)

или для простоты примера ->getInsertId()
не беспокоиться о том какая это база... и будет это return sqlite_last_insert_rowid() или return mysql_insert_id()

2) вот я и видел, как это "реализовывается" тупым копированием одного и того же кода.

>Важно не обрамить свои функции в class {}, а спроектировать его понимая концепцию объектно-ориентированного подхода
да что Вы не говорите..

  Ответить  
 
 автор: cheops   (27.10.2008 в 14:48)   письмо автору
 
   для: Root   (27.10.2008 в 14:31)
 

>Работать можно, например, с разными СУБД,
>и имея простую "factory" и методы:
>->select(...)
>->where(...)
Можно, а можно и без -> все это реализовать, более того, в PHP имеется расширение (структурное), реализующее эту концепцию. Удобно вам реализовывать это при помощи ООП-интерфейса - ради бога. Кому-то так удобно, кому-то эдак. Другое дело, что повторый вызов методов - это повторный вызов функций - к ООП это отношения не имеет.

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

  Ответить  
 
 автор: Root   (27.10.2008 в 15:34)   письмо автору
 
   для: cheops   (27.10.2008 в 14:48)
 

да, это радует, что в php стали появляться такие вещи как PDO, которые в других языках давно уже реализованы.

  Ответить  
 
 автор: cheops   (27.10.2008 в 14:35)   письмо автору
 
   для: Root   (27.10.2008 в 12:28)
 

Мне как автору книги "Объектно-ориентированное программирование на PHP", немного странно слышать в свой адрес какие-то обвинения в устаревании или торможении... Возможности объектно-ориентированного подхода я неплохо представляю и пользовался им ещё до того, как PHP стал популярным. В PHP его использую также очень интенсивно - другое дело, что наблюдать как из мухи делают слона не всегда приятно. Зачастую увлекаясь ООП, разработчики раздувают код в 2-3 раза, совершенно не отдавая себе отчет, что повторно использовать этот код не будут, а для разового использования структурный подход был бы эффективнее и быстрее создан.

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

>Без таких классов как например Db, Upload, Input(со всеми валидаторами) жить невозможно..
>Каждый раз писать одно и тоже, вместо того, чтобы положить это в класс??
Вам никто не мешает использовать библиотеку, в конце концов набор функций в PHP - это тоже готовы код, который не переписывается каждый раз по новой - ООП подход тут ничего нового не вносит - у него другие преимущества. Не следует путать повторное использование кода и объектно-ориентированный подход - это не одно и тоже.

>Не говоря уже о том насколько проще код менять..
Вот это уже ближе к тому, что называется "Объектно-ориентированный подход".

  Ответить  
 
 автор: Root   (27.10.2008 в 15:33)   письмо автору
 
   для: cheops   (27.10.2008 в 14:35)
 

>Зачастую увлекаясь ООП, разработчики раздувают код в 2-3 раза, совершенно не отдавая себе отчет, что повторно использовать этот код не будут, а для разового использования структурный подход был бы эффективнее и быстрее создан.

На счет скорости.. Имея свой набор классов или используя какой-нибудь "framework", на мой взгляд, любая аппликация будет написана быстрее.

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

Безусловно, всё можно написать и без ООП. Речь не об этом.. Речь как раз о скорости создания аппликации и о возможном "рефакторинге".
Не у Вас ли в книге написано: "Сейчас ценится не время выполнения скрипта, а время программиста" ?

  Ответить  
 
 автор: DEM   (27.10.2008 в 14:58)   письмо автору
 
   для: Root   (27.10.2008 в 12:28)
 

Без таких классов как например Db, Upload, Input(со всеми валидаторами) жить невозможно..


А мне почти что невозможно программироваь не на PHP EXPERT EDITOR, но он же не необходим :)
Да, есть классы которые помогают при программировании, но ведь и без них можно обойтись...

ИМХО, если вам удобно работать с ООП, тогда работайте с ним, если нет - не работайте, но говорить, что без этих классов некуда нельзя :)

  Ответить  
 
 автор: Root   (27.10.2008 в 15:41)   письмо автору
 
   для: DEM   (27.10.2008 в 14:58)
 

>но ведь и без них можно обойтись...

рад за Вас, если обходитесь :-)

  Ответить  
 
 автор: DEM   (27.10.2008 в 11:44)   письмо автору
 
   для: technic611   (25.10.2008 в 14:42)
 

Не только возможно, но и вполне реально :) Лично я ООП очень плохо знаю, но написать сайт смогу (и даже писал, и даже пишу, и даже буду дальше писать :) )

  Ответить  
 
 автор: Гость   (27.10.2008 в 17:24)   письмо автору
 
   для: technic611   (25.10.2008 в 14:42)
 

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

  Ответить  
 
 автор: Qiao   (27.10.2008 в 18:08)   письмо автору
 
   для: technic611   (25.10.2008 в 14:42)
 

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

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

Избыточное структурирование (ооп) очень плохо, когда нет опыта и объём кода котнаплакал.

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

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