я давно (6 месяцов) назад купил книгу (PHP5 для профи) от "Эд Леки, Хьяо Айде-Гудман,..."
когда я её дома открыл то понял что ето не мой уровень и выкинул на полку.
и всё таки стоит мне учить ету книжку? чем ООП лучше?
Спустя 13 минут, 35 секунд (28.02.2009 - 00:28) sergeiss написал(а):
Скорее не ПХП в ООП, а наоборот, ООП в ПХП
ООП дает возможность более качественно (более удобно) работать со сложными данными. Ты можешь объединить в одном объекте и данные, и функции для обработки.
Один раз разрабатываешь класс, и потом можешь его использовать в разных проектах. И даже его использование в разных частях одного проекта уже упрощает работу. Потому что ты только один раз проделываешь какую-то часть работы.
Из объектов можно построить деревья, со взаимными ссылками. Если попытаться проделать это на базе простых массивов... То просто не получится, и крыша уедет куда-нибудь
ООП дает возможность более качественно (более удобно) работать со сложными данными. Ты можешь объединить в одном объекте и данные, и функции для обработки.
Один раз разрабатываешь класс, и потом можешь его использовать в разных проектах. И даже его использование в разных частях одного проекта уже упрощает работу. Потому что ты только один раз проделываешь какую-то часть работы.
Из объектов можно построить деревья, со взаимными ссылками. Если попытаться проделать это на базе простых массивов... То просто не получится, и крыша уедет куда-нибудь
Спустя 1 минута, 47 секунд (28.02.2009 - 00:30) lawbreaker написал(а):
sergeiss
так мне стоит ето учить? или попозже?
а может уже сразу учить ООП ?
так мне стоит ето учить? или попозже?
а может уже сразу учить ООП ?
Спустя 4 минуты, 28 секунд (28.02.2009 - 00:34) sergeiss написал(а):
Естественно, стОит учить! Вопрос твой звучит примерно так: "надо мне учить массивы или простыми переменными обойдусь?" Где-то и простых переменных достаточно... Но если умеешь работать с массивами, то тут же найдешь им применение. И без массивов нельзя обойтись.
И если ты научишься разбираться с классами (т.е. с ООП), то точно также тут же найдешь им применение. Это неотъемлемая часть языка ПХП, без которой он был бы намного беднее.
Так что изучай, для своей же пользы. Это настолько просто, на самом деле...
И если ты научишься разбираться с классами (т.е. с ООП), то точно также тут же найдешь им применение. Это неотъемлемая часть языка ПХП, без которой он был бы намного беднее.
Так что изучай, для своей же пользы. Это настолько просто, на самом деле...
Спустя 8 часов, 11 минут, 53 секунды (28.02.2009 - 08:46) Viking написал(а):
ну для того, чтобы ООП в ПХП использовать само ПХП надо достаточно хорошо знать, и для простых задач применять ООП смысла нет, так что я бы посоветовал пока отложить и сфокусироваться на остальном ПХП
когда твои проекты станут слишком сложными и управлять ими будет неудобно, вот тогда самое время заняться ООП
когда твои проекты станут слишком сложными и управлять ими будет неудобно, вот тогда самое время заняться ООП
Спустя 38 минут, 27 секунд (28.02.2009 - 09:24) lawbreaker написал(а):
ясно. а для форума нужно ООП
я буду почуть чуть писать форум. вот только проблема со страницами.
нужно узнатть сколькко их и дать ссылку на них
я буду почуть чуть писать форум. вот только проблема со страницами.
нужно узнатть сколькко их и дать ссылку на них
Спустя 2 часа, 35 минут, 32 секунды (28.02.2009 - 12:00) sergeiss написал(а):
Цитата (Viking @ 28.02.2009 - 08:46) |
когда твои проекты станут слишком сложными и управлять ими будет неудобно, вот тогда самое время заняться ООП |
Вот с этим - не согласен!
Лучше не доводить до того, что управлять уже неудобно. Потому что переделывать всегда сложнее, чем делать изначально правильно. Да и желания как-то обычно не возникает переделывать сотни и тысячи строк кода
Именно поэтому я и сказал чуть ранее, что надо изучать ООП. Потому что когда знаешь, то заранее поймешь, что в определенных местах надо применить объекты. И структура проекта будет более оптимальной.
Я бы все-таки предложил lawbreader поупражняться с ООП.
Вот смотри, например. Делаешь ты форум. Можно сделать так, чтобы каждый ответ был одним объектом. В нем будут содержаться как собственно ответ, так и информация о пользователе, и дата-время, и всё, что ты захочешь. Для страницы ты набираешь массив этих объектов, и далее ты можешь ими распоряжаться как хочешь. И располагать в любом порядке, и много чего другого делать более удобно, так, как ты хочешь. И будет это легко и просто.
Если это делать как набор массивов, то ты с самого начала будешь пытаться ими управлять (в частности, чтобы данные менять-добавлять синхронно), но периодически у тебя будут возникать проблемы.
Спустя 22 минуты (28.02.2009 - 12:22) twin написал(а):
Цитата |
Лучше не доводить до того, что управлять уже неудобно. Потому что переделывать всегда сложнее, чем делать изначально правильно. |
Ну это совсем не факт, что правильно. Писать класс, когда метод будет вызван единожды никакого смысла нет. К тому же код при ООП особой прозрачностью не отличается. Вполне достаточно простых функций. Viking же написал:
Цитата |
когда твои проектЫ станут слишком сложными |
То есть переделка не подразумевалась. А писать все подряд с ООП тож самое, что стрелять из пушки по воробъям.
Спустя 18 минут, 52 секунды (28.02.2009 - 12:41) sergeiss написал(а):
Цитата (twin @ 28.02.2009 - 12:22) |
. Писать класс, когда метод будет вызван единожды никакого смысла нет. К тому же код при ООП особой прозрачностью не отличается. Вполне достаточно простых функций. |
Не согласен с каждым из процитированных предложений
Начнем с последнего.
Что значит "достаточно простых функций"? ООП - это не только функции, но структурированные данные. Которые собрали в одном месте, и мы можем, например, передавать их куда-то достаточно легко - это же один объект, одна переменная!
Далее. Насколько "прозрачный" будет код при ООП, зависит от программера, а не от понятия "ООП".
И теперь что касается "единожды вызвать метод - нету смысла". Это с какого боку посмотреть... Вот, живой пример. Есть у меня класс для работы с CSV-файлами. Там данные грузятся в ассоциативные массивы, где ключи берутся из первой строки файла (есть и отдельное описание этих ключей). То есть, класс содержит и данные, и функцию загрузки. Которая вызывается сколько раз? Правильно, один раз! Но смысл в таком классе очень большой. Он описан в отдельном файле, который просто инклудится к тем скриптам, где он нужен. И я работаю с CSV всегда однотипно, и причем так, как мне удобно.
И таких примеров можно привести немало.
Цитата (twin @ 28.02.2009 - 12:22) | ||
Viking же написал:
То есть переделка не подразумевалась. А писать все подряд с ООП тож самое, что стрелять из пушки по воробъям. |
Про "всё подряд" я не говорил Но изначально вопрос был в том, что стОит ли вообще изучать ООП. Я и отвечаю (с примерами и пояснениями), что стОит.
Про переделку я говорил потому, что ежели привыкнешь НЕ использовать ООП, то и в сложном проекте просто не подумаешь о том, что "надо бы".
Спустя 45 минут, 16 секунд (28.02.2009 - 13:26) twin написал(а):
Цитата |
То есть, класс содержит и данные, и функцию загрузки. Которая вызывается сколько раз? Правильно, один раз! Но смысл в таком классе очень большой. Он описан в отдельном файле, который просто инклудится к тем скриптам, где он нужен. |
Ну это уже в контексте этого высказывания:
Цитата |
Про переделку я говорил потому, что ежели привыкнешь НЕ использовать ООП, то и в сложном проекте просто не подумаешь о том, что "надо бы" |
только с точностью до наоборот. Если привыкнешь, и будешь их лепить везде, где нужно или нет. Если класс в отдельном файле, и вызывается один раз, то какой в нем смысл? Просто привычный синтаксис. Кто мешает данные, если они все равно статичны, прописать не первой строкой класса, а просто внутри функции? И точно так же подключать в нужном месте... Изучать конечно стоит, но сначала надо изучить PHP процедурно, иначе даже мысли не возникнет, что можно гораздо проще все сделать.
Спустя 38 минут, 54 секунды (28.02.2009 - 14:05) sergeiss написал(а):
И еще использование классов улучшает повторное использование кодов. То, что сделал в одном проекте, можешь без переделок использовать в другом
Так что по-любому знание ООП необходимо, ежели человек хочет делать хорошие проекты.
Так что по-любому знание ООП необходимо, ежели человек хочет делать хорошие проекты.
Спустя 47 минут, 49 секунд (28.02.2009 - 14:53) twin написал(а):
Цитата |
То, что сделал в одном проекте, можешь без переделок использовать в другом |
Вот за что я ООП и недолюбливаю. За однотипность мышления.
Спустя 35 минут, 17 секунд (28.02.2009 - 15:28) Viking написал(а):
Цитата |
Лучше не доводить до того, что управлять уже неудобно. Потому что переделывать всегда сложнее, чем делать изначально правильно. Да и желания как-то обычно не возникает переделывать сотни и тысячи строк кода |
ну разумеется так запускать не нужно, просто если чувствуешь, что обычных средств уже начинает нехватать, то пора применять новые, т.е. в данном случае ООП
на счет изучить это оно конечно никогда не помешает, но если человек еще не очень хорошо в стандартных средствах ориентируется, использование новрй технологии ясности тут не добавит
Спустя 2 часа, 10 минут, 2 секунды (28.02.2009 - 17:38) Sylex написал(а):
Пусть сам решает, надо ему это или нет
Вот я когда-то привык к процедурному подходу, писал достаточно сложные вещи, и вроде все клево... но потом видел постоянно class, class, class... и задумался о том, что это такое, и будет ли от него польза, и потихоньку начал изучать...
Если в этой сфере идти - всегда будет рост, и однажды чел прийдет к ООП А не прийдет - ну и мне пофик
Вот я когда-то привык к процедурному подходу, писал достаточно сложные вещи, и вроде все клево... но потом видел постоянно class, class, class... и задумался о том, что это такое, и будет ли от него польза, и потихоньку начал изучать...
Если в этой сфере идти - всегда будет рост, и однажды чел прийдет к ООП А не прийдет - ну и мне пофик
Спустя 1 час, 13 минут, 33 секунды (28.02.2009 - 18:52) twin написал(а):
Я вот сильно в механизм не вникал, чисто интуитивно стараюсь избегать по возможности ООП, (хотя иногда никуда не денешься). А вот щас чёт задумался. Интересно, если к скрипту подключена библиотека классов (зачастую так и делается), они ведь будут все записаны в оперативную память, буде вызваны их методы скриптом или нет... Ведь это не есть гут, это тормозит процесс и ресурсы потребляет. А разносить классы по файлам и подключать по мере надобности - где ж тут выгода и удобство?
Я так понимаю. Если скрипты сайта используют одни и те же процедуры в разных местах, то конечно есть смысл сооружать класс. А если везде все по разному, какой толк от них? Писать все с применением ООП имхо неразумно. Нужно совмещать полезное с приятным, как говорится, выбирать золотую середину. А то иногда заглянешь в код, а там сплошные this->, хотя гораздо проще написать все это прям не отходя от кассы.
Може я не прав...
Я так понимаю. Если скрипты сайта используют одни и те же процедуры в разных местах, то конечно есть смысл сооружать класс. А если везде все по разному, какой толк от них? Писать все с применением ООП имхо неразумно. Нужно совмещать полезное с приятным, как говорится, выбирать золотую середину. А то иногда заглянешь в код, а там сплошные this->, хотя гораздо проще написать все это прям не отходя от кассы.
Може я не прав...
Спустя 2 часа, 51 минута, 3 секунды (28.02.2009 - 21:43) sergeiss написал(а):
Цитата (twin @ 28.02.2009 - 18:52) |
Я вот сильно в механизм не вникал, чисто интуитивно стараюсь избегать по возможности ООП, (хотя иногда никуда не денешься). |
Тогда становится понятно твоё отношение к ООП А я в Си привык к тому, что ООП - это гуд, и использую в ПХП, когда надо. В частности, например, чтобы не создавать наборы массивов для сложных данных.
Насчет "золотой середины" согласен , собственно, я об этом в этой же теме ранее уже говорил.
А насчет скорости работы... Я думаю, что не стоит даже и мгновение об этом думать. Потому что будет скрипт обрабатывать интерпретатором 0,0001 сек или даже в 10 раз дольше... Разница есть для конечного пользователя?????
Спустя 24 минуты, 40 секунд (28.02.2009 - 22:07) twin написал(а):
Для конечного нет конечно Но мне как то не по себе становится, когда я представляю, как бедный сервер все это пережевывает, что бы достать пару нужных строк. Но не это даже главное. Все таки труднее ориентироваться, когда приходится бегать по классам и искать, что же там вызвано и с чем это едят. Вот даже на форумах на вопросы, связанные с ООП очень трудно отвечать, потому что напишут:
PHP |
<? |
почему не работает? А кто его знает... ищи свищи этот метод, если не известно даже где класс находится. А когда найдешь, там окажется что нибудь типа
PHP |
<? |
Когда сам пишешь, терпимо. А в чужом разбираться бррррр... Так что по прозрачности тут спорить не стоит.
Все хорошо на своем месте.
Спустя 38 минут, 6 секунд (28.02.2009 - 22:46) lawbreaker написал(а):
www.allday.ho.ua/forum/
www.allday.ho.ua
СПАМЕРЫ must die
www.allday.ho.ua
СПАМЕРЫ must die
Спустя 18 минут, 12 секунд (28.02.2009 - 23:04) twin написал(а):
Пиши тогда уж по русски - маздай.
Спустя 8 дней, 22 часа, 44 минуты, 38 секунд (7.03.2009 - 21:48) Гость_Юрий написал(а):
Извините вопрос конечно туповаты может ктонить расписать подробно что такое классы ну и обекты тока очень подробно много чего прочитал вроди всё понятно но вот классы недоганяю что это!)) а где разжевывают для начинающих обычно про классы и обекты в php даж не упоменаю ! обьясните а если не трудно как мжно использовать для чего и тд плисс!
_____________
Я Андрей и мне 14 лет :)
И ни как не дождусь когда HardWoman меня удалит