Список рутинных задач web-программирования

programmistПри изучении нового фреймворка, или языка web-программирования иногда возникает непонятное чувство замешательства, вы ставите себе вопросы: Когда можно считать, что вы выучили продукт на приличном уровне? Когда можно считать, что вы его знаете, а если некоторые вещи и не знаете, то сможете налету схватить/прочитать в мануале/прогуглить? В этой заметке я попытаюсь систематизировать тривиальные или рутинные задачи web-программирования, которые так или иначе возникают при разработке более-менее серьезных проектов. Список будет постоянно пополняться, не претендует на полноту. Также порядок следования задач не определяет важность задач. Задачи будут как достаточно общие, так и более конкретные.

Речь идет, естественно, о так называемом back-end’е разработки, представленные критерии будут совершенно бесполезными для front-end’еров. Итак, вот субъективная версия списка (с некоторыми комментариями):

1. Умение возвращать Response

Естественно, если вы используете "голый язык", например, php, то это может показаться слишком банально (это просто умение вызывать echo/printf) или puts у Ruby, но при использовании фреймворков (например, Symfony framework) это зачастую отдельный класс.

2. Умение создавать представление, то есть, банальная верстка с возможностью присоединения идентификатора/селектора к любому элементу.

Так же, как и в предыдущем пункте все зависит от того, что вы изучаете. Это может быть как обычная html-верстка, так и изучение дополнительных языков разметки - twig, smarty и т.д.

3. Умение работать с БД:

  • настройка соединения;
  • выборка данных с одной таблицы;
  • выборка данных с нескольких таблиц, Join’ы
  • добавление записей в базу данных
  • обновление записей в БД.

Здесь тоже все зависит от продукта. Простые SQL-запросы учатся достаточно быстро, а вот понимание некоторых особенностей работы той же Doctrine может занять время.

4. Создание форм. + Умение создания выбора (select или куча ckekbox/radiobutton) на основе таблицы из БД.

Да, иногда этот пункт совпадает с пунктом 2, но у фремворках это, как правило, отдельная подзадача, так как часто используются конструкторы форм, на основе объектной модели таблиц, или модели формы.

5. Обработка форм и валидация данных.

Ну здесь, думаю, все понятно - вне зависимости от того, автоматизирован процесс или нет, это надо уметь делать.

6. Работа из суперглобальными переменными (SESSION, POST, GET и т.д.)

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

7. Авторизация, ограничения доступа.

Да, без этого тоже никак =)

8. Работа с файлами.