PHP в деталях

       

Пишем свой форум?


DL
30.5.2001

В форумах регулярно появляются сообщения, в которых автор мимоходом роняет: "хочу написать форум/доску объявлений/контент-менеджер/т.п., чтобы научиться программировать на php". Тем, кто хочет делать то же самое, собирается или уже делает, советую: плюньте на эту затею. Не получится!

Вы либо почти ничему новому не научитесь, либо не сделаете свой форум. Либо вы и более-менее изучите язык и сделаете систему, потратив на это прорву времени.

Конечно же, вас не убедит аргумент, что дорожные знаки и ПДД учат до того как садятся за руль (по крайней мере в автошколах). Вы на это скажете, что берётесь за большое дело только для себя. Не, если за это обучение платят ("покопайся, напиши форум, если получится")? я молчу, флаг в руки!

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

  • Опасность утонуть в рутине

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

  • Неэффективная структура данных, структура модулей, файлов и т.д.

    Разве можно грамотно спланировать проект, не имея представление о том, как он будет работать внутри?!

  • Ворох старых ошибок и неэффективных решений

    Обязательно придётся переписывать готовые фрагменты (ой, как неохота! они ведь уже работали!). Если переделывать ничего не надо, значит вы не видите структурных ошибок.

    Ладно, пусть вы своевременно прочитали "Разработку Web-приложений" Ратшиллера и Геркена, и чего-то выяснили, на ходу поменяли структуру таблиц БД, выделили что-то в отдельный модуль, какой-то модуль упразднили. Всё равно, в приложении остаются множественные ошибки, неэффективные приёмы. Их отлавливать сложнее.

  • "Работает ? не трогай!"


    Ещё один соблазн ? забыть про изучение нового и писать, писать, писать свой проект. Новых знаний нет, поэтому мировоззрение не меняется, никаких дилемм, конфликтов подходов, и вам кажется, что всё сделано правильно.


Сам сделал похожую вещь ? большой проект, "не догоню, так согреюсь". Убил кучу времени, не дописал проекта, бросил. А затем, спустя месяц обнаружил колоссальный рывок в изучении php.

Отсюда и получаются те три "либо", которые я упомянул выше: не научился, зато доделал до конца (потому что новые знания не мешали, и проект делался, как по маслу), научился, но не написал (понял, что надо всё переписывать почти с нуля и бросил), или и научился и написал (потратив кучу времени на переделку готовых частей).

Чтоб жизнь мёдом не казалась, добавлю, что и на мелких программках вы не овладеете языком в совершенстве ? существуют эффект масштаба и взаимодействие с другими программами.

Буквально вчера в [] один человек сказал, что хочет написать гостевую книгу, потому что устанавливать готовую очень сложно. Не факт. Способность прикрутить чужую программу целиком, частично или взять оттуда нужные функции ? ценная вещь в работе программистом. Экономия большого количества времени. Зачем изобретать велосипед, когда можно взять готовый работающий модуль, который распространяется бесплатно? Для того, чтобы сделать возможным пользователям в доске сообщений выделять текст полужирным шрифтом или курсивом, или выделять цитаты, преформатированный текст (<pre>), я не стал писать свой механизм, а скачал форум [] и взял из него готовые функции (в их лицензионном соглашении такое разрешено. Кстати, смотрите в эти соглашения, чтобы не иметь проблем с копирайтами!).

Написано много . Написать такой класс самому ? несложно (правда, в опубликованных, как я писал, бывают грубые ошибки). Многие из нас пользуются собственными классами шаблонов. А что же всё-таки делать с форумом? Поставьте []. Очень удобный форум, поддерживает несколько баз данных, модерирование, отправка ответов на email (а не просто уведомления), и никаких картинок-смайликов!!!
Проект open source, поэтому ошибки быстро находятся и исправляются. Скачайте этот форум, посмотрите на объём файлов. Вам всё ещё хочется писать свой?


Содержание раздела