Комментарии 35
Как-то странно поставлен вопрос. Как будто веб-программирование и вовсе не есть программирование, будто принципы обучения и там, и там как-то принципиально отличаются.
0
Веб-программирование и, в частности, программирование на php — безусловно относятся к программированию вообще (притом, хочется верить, не в последнюю очередь), но спросил именно о потребном: как наставить на путь истинный начинающего php-программиста. Странно ведь будет ему давать примеры кода, скажем, на Си, не так ли?
0
По-моему, сначала нужно дать ему почитать общие книжки о программировании. Например, Кнута или Кормена. Нужно же понимать, как вообще действуют алгоритмы, к чему все сводится. А то ведь никакого развития не будет.
Например, когда я два года назад поступал в университет, свято верил в то, что написание программ похоже на написание книг (типа, развиваем мысль, пишем последовательность, "сюжет"), а математики там почти нет. Сейчас все с точностью до наоборот.
Например, когда я два года назад поступал в университет, свято верил в то, что написание программ похоже на написание книг (типа, развиваем мысль, пишем последовательность, "сюжет"), а математики там почти нет. Сейчас все с точностью до наоборот.
0
Когда я закончил университет, я как-то смирился с тем, что для осознанного чтения Кнута, как и другой фундаментальной литературы, нужна хорошая мотивация. Вот у Вас она, похоже есть и, как говорится, дай Бог. А когда человек начал копаться в php насмотревшись на существующие веб-сервисы и в своих стремлениях нацелен на реализацию "что-то вроде этого или того-то" ему, имхо, нужны конкретные примеры того, как какие-то здравые методы могут помочь "здесь и сейчас".
0
Если уж на то пошло, то не Кнут и Кормен, а Макконнелл, Фаулер и GoF. Они имеют отношение к сабжу, а Кнут исключительно алгоритмам, ооп, если не ошибаюсь, там вообще не прослеживается нигде.
UPD: Неможко промахнулся, это ответ на коммент выше
UPD: Неможко промахнулся, это ответ на коммент выше
0
Не стоит так жестоко. Он же начинающий, а вы его сразу в Кнута с Корменом. Совсем просто надо!
+1
Как чтение Кнута и Кормена может помочь пониманию ООП, а?
0
Лично я для себя выяснил следующее: ООП нужно использовать при написании библиотек. Больше его использовать ни где ненадо.
Библиотеки используются обычно в крупных проектах, а новичек крупный проект не станет. А как только у него накопится опыт программирования и накопятся знания, тогда он уже сможет асилить ООП и написание крупного проекта.
Я вообще сам никогда не писал ООП. И я уже давно не новичок, просто меня приучили не использовать то, чего можно обойтись.
Библиотеки используются обычно в крупных проектах, а новичек крупный проект не станет. А как только у него накопится опыт программирования и накопятся знания, тогда он уже сможет асилить ООП и написание крупного проекта.
Я вообще сам никогда не писал ООП. И я уже давно не новичок, просто меня приучили не использовать то, чего можно обойтись.
-3
ООП в PHP на самом деле не совсем уместно. Его используют как основу в Java, C, C++, но в PHP практически (это не значит нигде) нигде нет обходимости использовать, в следствие его (классов) не полной реализации наследования и полиморфизма. По сути использование ООП в PHP подобно использованию молотка для убития мухи.
Лично я конечно использую ООП в PHP в некоторых случаях, но больше придерживаюсь процедурного программирования.
Лично я конечно использую ООП в PHP в некоторых случаях, но больше придерживаюсь процедурного программирования.
+3
А можно Вас попросить дать какие-то конретные примеры, если не на уровне кода, то на уровне концепции? В духе: ООП в PHP уместен там-то и совсем не пригоден для всего остального. Коли ООПу в php делать нечего, то и этому, наверняка, есть весомые аргументы, знакомые профессионалам :)
0
ООП в PHP уместен там, где оно уместно в любом другом императивном языке программирования. Уместность ООП для решения какой-то задачи обычно мало зависит от ЯП.
0
В моем движке например всего один класс для работы с БД (чтобы ее можно было менять), однако ООП больше нигде мне не понадобилось и все пишу процедурное, в том числе и парсер шаблонов.
0
Если для вас веб-программирование — муха, то, видимо, вы не ушли много дальше гостевой книги.
0
Я, кажется не упоминал, что программирование для меня муха, это задача может быть решена на ура без использования ООП.
А о моем уровне судите сами http://www.school530.com.ru, только прошу не особо минусовать (увидев, поймете за что) :)
А о моем уровне судите сами http://www.school530.com.ru, только прошу не особо минусовать (увидев, поймете за что) :)
0
Вам наверное просто после Явы и прочего сложно использовать пхпшное ООП. А тем, кто с него начинает - нормально.
+1
…практически (это не значит нигде) нигде…
0
Начинайте обучать с Java-ы (CPP, C#, Delphi - нужное подчеркнуть), я уверен он проникнется ООП. Php не самый лучший вариант доказывать полезности и прелести ООП.
0
В своё время, когда я раздумывал, учить ли мне ООП, у меня были следующие мысли:
"против"
1) лениво =)
2) с первого взгляда - сложно
3) зачем, если я и так могу всё написать процедурно
"за"
1) интересно, а что это такое, и стрелочки выглядят красиво =)
2) большинство (по крайней мере, из моих знакомых и тогдашних ко-воркеров пишут на ООП)
3) эти же знакомые и ко-воркеры в голос утверждали, что ООП-шный проект гораздо легче поддерживать и модифицировать, а для меня тогда это было актуально
4) большинство пользуемых чужих библиотек написаны на ООП, соответственно, было бы неплохо разбираться, чтобы можно было что-то где-нибудь переписать под себя
В итоге я решил учить, и не пожалел. Сейчас пишу, совмещая ООП и функциональный подход (в основном, в функции выделаю самые часто используемые конструкции, которые содержат в себе работу с >1 классом или содержат "мусорный", но необходимый код (как-то global и иже с ним)).
По-моему, сложные проекты с разветвлённой структурой, да ещё и разрабатываемые не одним человеком, следует писать на ООП, кое-где, по надобности, совмещая с функциональным методом.
"против"
1) лениво =)
2) с первого взгляда - сложно
3) зачем, если я и так могу всё написать процедурно
"за"
1) интересно, а что это такое, и стрелочки выглядят красиво =)
2) большинство (по крайней мере, из моих знакомых и тогдашних ко-воркеров пишут на ООП)
3) эти же знакомые и ко-воркеры в голос утверждали, что ООП-шный проект гораздо легче поддерживать и модифицировать, а для меня тогда это было актуально
4) большинство пользуемых чужих библиотек написаны на ООП, соответственно, было бы неплохо разбираться, чтобы можно было что-то где-нибудь переписать под себя
В итоге я решил учить, и не пожалел. Сейчас пишу, совмещая ООП и функциональный подход (в основном, в функции выделаю самые часто используемые конструкции, которые содержат в себе работу с >1 классом или содержат "мусорный", но необходимый код (как-то global и иже с ним)).
По-моему, сложные проекты с разветвлённой структурой, да ещё и разрабатываемые не одним человеком, следует писать на ООП, кое-где, по надобности, совмещая с функциональным методом.
0
Не надо объяснять, надо показать.
0
Вот что показать посоветуете? Может пример какой конкретный или целую серию примеров? Или ссылкой на статью поделитесь, где грамотно ответили до Вас? Это, собственно, и разыскивается.
0
ООП в PHP часто выливается в большую нагрузку на сервер. Стоит всё таки учитывать, что PHP это парсер. Но взамен разработчик получает очень удобный набор инструментов и поддержку сообщества в виде книг, статей и т.д. Ведь сейчас развивается ООП. Я например в интернете каждый день встречаю советы и посты в блогах по поводу ООП. Например тот же MVC сейчас делает много шума. С другой стороны, освоив шаблоны дизайна и всякие методики (как например TDD) разработчику будет намного проще перейти на другой язык, остаётся только выучить синтаксис и понять некоторые особенности. Вдруг ему понадобится работать на ASP.NET или Ruby On Rails который сейчас очень активано развивается. А там без ООП никак.
Стоит также сразу выбрать Framework и учиться работать с ним - очень ценный опыт. Я бы порекомендовал Zend Framework так-как он написан на очень хорошем ООП, да и скоро станет очень популярным, если не единственным.
Стоит также сразу выбрать Framework и учиться работать с ним - очень ценный опыт. Я бы порекомендовал Zend Framework так-как он написан на очень хорошем ООП, да и скоро станет очень популярным, если не единственным.
0
Я на Delphi до сих пор не разобрался с ООП, как-то все и так получается. Поэтому и в ПХП хочу все сделать так, без него.
Однако, когда-то придется разобраться, правда, мотивация не помешает. %)
Но если дело дойдет до объяснения, с удовольствием почитаю! :)
Однако, когда-то придется разобраться, правда, мотивация не помешает. %)
Но если дело дойдет до объяснения, с удовольствием почитаю! :)
0
IMHO ООП лучше начинать изучать на типизированном языке: C++, Java, C#
0
Решил с этой своей темой переехать сюда. Она тут уместнее.
0
Не надо объяснять начинающему программисту принципы ООП. ИМХО, ничего хорошего из этого не получится. По мере усложнения и увеличения кода проектов, он сам придет к этому.
А если и рассказывать идеи ООП, то делать это стоит, как мне кажется, на примере разработки с использованием фреймворков. Только так человек может понять, что это действительно удобно, а дальше он уже сам заинтересуется теоретической частью всего этого.
А если и рассказывать идеи ООП, то делать это стоит, как мне кажется, на примере разработки с использованием фреймворков. Только так человек может понять, что это действительно удобно, а дальше он уже сам заинтересуется теоретической частью всего этого.
0
Ну не топтаться же программистам на одном месте и каждый раз при написании нового проекта писать новые библиотеки. Я думаю именно ООП поможет объединить труды всех программистов в большой фреймворк для развития более сложных проектов. Вы не представляете как мог бы выглядеть интернет, если бы программисты работали слаженно и использовали бы единые стандарты (!развивающиеся стандарты). К примеру использование библиотек классов, которые в свою очередь сами по себе развивались бы. На самом деле в какой то степени это и происходит, но к сожалению большинство пользователей пытаются изобретать велосипед..
А новичкам посоветую учиться, учиться и ещё раз учиться, что бы ни в коем случае не остаться в новичках на долго, потому как в серьёзных проектах и ответственность большая за то, что напишешь..
А новичкам посоветую учиться, учиться и ещё раз учиться, что бы ни в коем случае не остаться в новичках на долго, потому как в серьёзных проектах и ответственность большая за то, что напишешь..
0
НЛО прилетело и опубликовало эту надпись здесь
Нужно просто максимально доходчиво на примерах показать, что такое абстракция, инкапсуляция, наследование и полиморфизм. Сделать так, чтобы новичек в их пользе ничуть не сомневался.
0
P.S. Новички бывают разные. При тех, которые только осваивают мега-конструкцию echo такие слова, как ООП, ООА, инкапсуляция, полиморфизм, наследование, абстракция, интерфейсы и т.д. лучше не произносить!!! =)))
0
Мне было важно понять, что класс — это всего лишь новый тип, который может иметь переменная (объект). =)
0
Зарегистрируйтесь на Хабре , чтобы оставить комментарий
Как правильно объяснить начинающему php-программисту зачем, как и когда использовать ООП?