|
|
|
| Возможно не изучать классы для создания сайта? В книге по практике ничего не было про них. Я так понял это только для удобства написания кода. Или.....? | |
|
|
|
|
|
|
|
для: technic611
(25.10.2008 в 14:42)
| | Конечно, можно. Более того, к классам следует прибегать лишь там, где у них имеется приимущество пред структурным кодом. Это связано с тем, что большинство интерфейсов - структурные, а не объектно-ориентированные и взаимодействовть с ними проще из структурного кода. | |
|
|
|
|
|
|
|
для: cheops
(27.10.2008 в 11:41)
| | >Конечно, можно. Более того, к классам следует прибегать лишь там, где у них имеется приимущество пред структурным кодом. Это связано с тем, что большинство интерфейсов - структурные, а не объектно-ориентированные и взаимодействовть с ними проще из структурного кода.
Мдааа.. Вы, Хеопс, либо уже из принципа эту линию гнёте, либо Вы несколько устарели.. :-)
Я вообще с трудом себе представляю ситуацию, где можно обойтись без ООП. Без таких классов как например Db, Upload, Input(со всеми валидаторами) жить невозможно..
Каждый раз писать одно и тоже, вместо того, чтобы положить это в класс??
Не говоря уже о том насколько проще код менять..
[поправлено модератором] | |
|
|
|
|
|
|
|
для: Root
(27.10.2008 в 12:28)
| | >Я вообще с трудом себе представляю ситуацию где можно обойтись без ООП. Без таких классов как например Db, Upload, Input(со всеми валидаторами) жить невозможно..
>Каждый раз писать одно и тоже, вместо того, чтобы положить это в класс?? Бред полный!!
А что это за классы такие Db, Upload, Input? То что вы тут перечислили можно и на функциях реализовать и это будет не чем не хуже, чем вы напишите объектно-ориентированным подходом. Важно не обрамить свои функции в class {}, а спроектировать его понимая концепцию объектно-ориентированного подхода | |
|
|
|
|
|
|
|
для: 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 {}, а спроектировать его понимая концепцию объектно-ориентированного подхода
да что Вы не говорите.. | |
|
|
|
|
|
|
|
для: Root
(27.10.2008 в 14:31)
| | >Работать можно, например, с разными СУБД,
>и имея простую "factory" и методы:
>->select(...)
>->where(...)
Можно, а можно и без -> все это реализовать, более того, в PHP имеется расширение (структурное), реализующее эту концепцию. Удобно вам реализовывать это при помощи ООП-интерфейса - ради бога. Кому-то так удобно, кому-то эдак. Другое дело, что повторый вызов методов - это повторный вызов функций - к ООП это отношения не имеет.
Вот если постоянно необходимо модифицировать блоки, при этом, чтобы старые верссии классов оставлись со старой функциональностью - это да, лучше ООП сложно что-то придумать. Если нужен свой "язык программирования" - оперирующий предметной областью и позволяющей более эффективно создавать код - это только ООП. А вот если для компьютерных понятий - придумываются классы (обозначения своими понятиями) - это один лишь вред - в таком коде никто разбираться не будет и он будет просто выкинут. | |
|
|
|
|
|
|
|
для: cheops
(27.10.2008 в 14:48)
| | да, это радует, что в php стали появляться такие вещи как PDO, которые в других языках давно уже реализованы. | |
|
|
|
|
|
|
|
для: Root
(27.10.2008 в 12:28)
| | Мне как автору книги "Объектно-ориентированное программирование на PHP", немного странно слышать в свой адрес какие-то обвинения в устаревании или торможении... Возможности объектно-ориентированного подхода я неплохо представляю и пользовался им ещё до того, как PHP стал популярным. В PHP его использую также очень интенсивно - другое дело, что наблюдать как из мухи делают слона не всегда приятно. Зачастую увлекаясь ООП, разработчики раздувают код в 2-3 раза, совершенно не отдавая себе отчет, что повторно использовать этот код не будут, а для разового использования структурный подход был бы эффективнее и быстрее создан.
>Я вообще с трудом себе представляю ситуацию, где можно обойтись без ООП.
Таких ситуаций предостаточно, если вы не можете без чего-то обойтись - это не значит, что без этого бойтись нельзя и не существует более эффективных решений.
>Без таких классов как например Db, Upload, Input(со всеми валидаторами) жить невозможно..
>Каждый раз писать одно и тоже, вместо того, чтобы положить это в класс??
Вам никто не мешает использовать библиотеку, в конце концов набор функций в PHP - это тоже готовы код, который не переписывается каждый раз по новой - ООП подход тут ничего нового не вносит - у него другие преимущества. Не следует путать повторное использование кода и объектно-ориентированный подход - это не одно и тоже.
>Не говоря уже о том насколько проще код менять..
Вот это уже ближе к тому, что называется "Объектно-ориентированный подход". | |
|
|
|
|
|
|
|
для: cheops
(27.10.2008 в 14:35)
| | >Зачастую увлекаясь ООП, разработчики раздувают код в 2-3 раза, совершенно не отдавая себе отчет, что повторно использовать этот код не будут, а для разового использования структурный подход был бы эффективнее и быстрее создан.
На счет скорости.. Имея свой набор классов или используя какой-нибудь "framework", на мой взгляд, любая аппликация будет написана быстрее.
>Я вообще с трудом себе представляю ситуацию, где можно обойтись без ООП.
Таких ситуаций предостаточно, если вы не можете без чего-то обойтись - это не значит, что без этого бойтись нельзя и не существует более эффективных решений.
Безусловно, всё можно написать и без ООП. Речь не об этом.. Речь как раз о скорости создания аппликации и о возможном "рефакторинге".
Не у Вас ли в книге написано: "Сейчас ценится не время выполнения скрипта, а время программиста" ? | |
|
|
|
|
|
|
|
для: Root
(27.10.2008 в 12:28)
| |
Без таких классов как например Db, Upload, Input(со всеми валидаторами) жить невозможно..
|
А мне почти что невозможно программироваь не на PHP EXPERT EDITOR, но он же не необходим :)
Да, есть классы которые помогают при программировании, но ведь и без них можно обойтись...
ИМХО, если вам удобно работать с ООП, тогда работайте с ним, если нет - не работайте, но говорить, что без этих классов некуда нельзя :) | |
|
|
|
|
|
|
|
для: DEM
(27.10.2008 в 14:58)
| | >но ведь и без них можно обойтись...
рад за Вас, если обходитесь :-) | |
|
|
|
|
|
|
|
для: technic611
(25.10.2008 в 14:42)
| | Не только возможно, но и вполне реально :) Лично я ООП очень плохо знаю, но написать сайт смогу (и даже писал, и даже пишу, и даже буду дальше писать :) ) | |
|
|
|
|
|
|
|
для: technic611
(25.10.2008 в 14:42)
| | Пока ты пишешь небольшие приложения сам для себя, оно не нужно. Но как только начинается работа в команде то без ооп обойтись уже сложнее - тут и возможность не волноваться за пространство имен и отсутствие путаницы в названиях функций и упрощение поддержки кода. Кроме того периодически приходится разбирать чужой код - что тогда делать, не зная ооп? | |
|
|
|
|
|
|
|
для: technic611
(25.10.2008 в 14:42)
| | Автору топика изучать классы сейчас не нужно - пиши обычный стрктурный код. А потом уже поймёшь, нужны тебе классы или нет.
Я в своё время немного прокололся, сразу начав писать сайты на классах ибо это Ъ. И почуствовал громадное облегчение, после перехода ("деградации") на чистые функции.
Избыточное структурирование (ооп) очень плохо, когда нет опыта и объём кода котнаплакал. | |
|
|
|