Стать профессиональным программистом PHP. Как?
Я работаю над своим первым профессиональным проектом. Дело в том, что я не знаю, какие из лучших инструментов для создания чего-то серьезного (я говорю о веб-разработке через PHP):
- Является ли шаблонный движок наподобие Smarty обязательным? Какой из них "лучший" (наиболее используемый, полный, документированный).
- В настоящий момент я разрабатываю Notepad ++ (в основном потому, что считаю его полезным и полным) есть ли лучший инструмент для разработки? Или это просто вопрос личного вкуса?
- На данный момент я изучаю JQuery и углубляю свои знания в отношении CSS, какие другие "обязательные" темы вы можете мне предложить?
Это то, о чем я могу думать в данный момент, есть ли у вас какие-то другие предложения?
Спасибо.
EDIT: Как-то я заметил, что вопрос немного неоднозначен. Я знаю основы (HTTP-протокол, Java Script, CSS, HTML, ООП-теория и практика и т.д.). Я изучаю компьютерную науку в университете (и проект, о котором я говорю, является моим тезисом). Мне нужно посоветовать, как работает "реальный мир" (вне моего подвала).
Ответы
Ответ 1
В частности, для PHP я бы рекомендовал:
Изучите хорошие рамки. В зависимости от размера проекта вы можете использовать Zend/Symfony или CodeIgniter/others для небольших. Есть тонн. Я буду придерживаться Zend/Zymfony для чего-то среднего и/или "реального мира".
В целом эти рамки поставляются с базовым движком шаблонов, или вы можете подключить другие, такие как Smarty или Twig. Я бы сказал, что это улучшает код. Итак, да к вашему первому вопросу.
Кроме того, notepad ++ поражает, но я рекомендую использовать IDE, если вы работаете над проектом, а не просто 2,3 файл script. Я настоятельно рекомендую Netbeans. У этого есть много teatures и это действительно активно. Проверьте это: http://netbeans.org/features/php/
Поскольку вы программируете на PHP, я бы сказал, что вы знаете SPL (стандартная библиотека PHP): http://php.net/manual/en/book.spl.php
Подводя итог:
Настоятельно рекомендуется сохранить код чистым и поддерживаемым.
Yes.Netbeans.
Да. SPL, и многое другое, о котором я не могу сейчас думать.
Ответ 2
Не сосредотачивайтесь на том, чтобы стать профессиональным программистом PHP. Сосредоточьтесь на том, чтобы стать профессиональным веб-разработчиком и проверить Что должен знать разработчик перед тем, как создать общедоступный веб-сайт?.
Говоря "Я хочу стать профессиональным программистом PHP", это похоже на высказывание "Я хочу быть профессиональным художником "когда вы на самом деле имеете в виду" Я хочу быть профессиональным художником". Конечно, в конце дня оба могут рисовать и получать за это деньги, но то, что их клиенты ожидают от них, очень разные;)
Ответ 3
Система шаблонов, такая как Smarty, не является обязательной, поскольку PHP является технически системой шаблонов. Однако это не очень хорошо. Это неуклюже, очень легко совершить ошибки, и вы часто оказываетесь в непостижимом беспорядке.
Есть лучшие альтернативы, чем Smarty. Я как бы частично отношусь к Твигу.
Использование рамки в наши дни является довольно обязательным. Разработка с помощью фреймворка, как правило, намного проще и быстрее, чем использование необработанного PHP, как только вы узнаете, как это работает. Code Igniter неплохо, хотя и минимальный. CakePHP неплохо, хотя время от времени кажется очень тяжеловесным. Kohana, Symfony и Zend Framework тоже очень уважают.
Ответ 4
1 - механизм Smarty очень полезен и, вероятно, самый популярный в разработке PHP-приложений.
2 - Я использую студию Aptana для разработки PHP. Он довольно полный и имеет хорошие инструменты вместе с ним. Он основан на Eclipse IDE, поэтому он довольно настраиваемый. Главный недостаток заключается в том, что он использует много ресурсов.
3 - Я рекомендую изучить шаблоны разработки, такие как MVC (Model-View-Controller), чтобы получить хорошую базу того, как должны быть организованы данные.
Кроме того, найдите Code Igniter, это потрясающая среда для работы (она использует шаблон MVC). Построение чего-то с ним действительно легко и легко управляемо. Если вам нужны простые учебные пособия, вы можете проверить NetTuts для серии обучающих программ.
Ответ 5
Согласитесь с тем, что подразумевает Pekka, а именно, что важно выбрать еще один язык в дополнение к PHP. Пожалуйста. Кроме того, я не вижу обучения PHP без знания таких вещей, как Smarty. Notepad ++, который заботится о нем, каждый по своему усмотрению. jQuery хорош, хотя я могу выбрать простой ванильный Javascript перед тем, как попасть в библиотеку. Несмотря на то, что jQuery упрощает работу, он абстрагирует много вещей, а то, что вы действительно хотите, это те Механика Javascript.
Я бы также добавил твердое знание протокола HTTP как обязательное, которое, по-видимому, некоторые веб-разработчики, по-видимому, не являются обязательными. Вы должны знать, что такое жесткий 404, и какие кодировки содержимого, а также различные варианты настройки кэширования и т.д. И т.д. И т.д.
Прежде всего, получайте удовольствие!
Ответ 6
Большинство веб-разработок включает некоторую степень взаимодействия с базой данных, поэтому хорошие навыки работы с БД всегда полезны.
- Базовая нормализация таблиц.
- Понимание транзакций
- Зная, как избежать ваших ценностей
перед вставкой/обновлением/etc
- write выбирает с объединениями, как избежать
вложенная база данных выбирается внутри кода
петли
- различия между базой данных
и даты PHP (и как работать с
их)
и т.д.
Ответ 7
Моя стандартная рекомендация в вопросах, подобных этому, в дополнение к отличным предложениям, приведенным в других ответах, заключается в том, чтобы по крайней мере оперировать строго типизированным языком, таким как Java, С++, Delphi или С#, с беспощадной компиляцией, обеспечивающей соблюдение дисциплины - правильное объявление переменных, определение полных интерфейсов классов и т.д. и т.д. Я люблю PHP, но он очень разрешительный и иногда все еще показывает свои шаблонные языковые корни и, как правило, соблазняет новичков в плохие практики. (Тем не менее, PHP в настоящее время - прекрасный язык, и в нем можно писать очень качественное программное обеспечение.)
Однако, вы говорите в своем обновлении, что у вас есть компьютерная наука в университете, поэтому, я думаю, вы уже получаете свою помощь, по крайней мере, на одном другом языке и теории CS, и ваш фокус действительно является основой для использования и т.д.