Ключевые аспекты веб-разработки на PHP
Теория: Коллекции
Вероятно, тема текущего урока — самая простая и самая базовая из всего, что описывалось и будет описываться в курсе. Но одновременно она наиболее «мозговзрывная».
Обработка коллекций — крайне частая операция в коде. Так или иначе, почти все, с чем мы имеем дело, представлено набором данных. Список пользователей, список страниц, список дат, список строк, список серверов и так далее. Львиная доля информации представлена в виде списков или появляется в результате обработки списков.
На текущий момент, вероятно, вам известен только один подход к их обработке — циклы. И хотя циклы действительно решают любую задачу, есть более удобные механизмы, позволяющие писать код, который проще читать и легче поддерживать. Например, в JavaScript канонический способ работы с коллекциями — функции высшего порядка. Посмотрите внимательно:
Возможность так писать доступна в js из коробки, но php — другое дело. Для эффективной работы вам придется «обмазаться» дополнительными библиотеками, такими как эта. Тогда код на php для той же задачи станет таким:
Кода, конечно, значительно больше (таков уж php), и используются аж две новых библиотеки, но появляется высокая выразительность. Когда вы начнете понимать соответствующий синтаксис, то полюбите подобные конструкции.
Коллекциям на Хекслете посвящено аж целых два с половиной курса (один из курсов готовит необходимую почву для них). Здесь тот самый случай, когда лучше значит больше. Обработка коллекций, во многом, — алгоритмическая история, и она просто так сама в голове не сформируется. Нужно время и задачки, чтобы появились необходимые связи в мозгу. И даже этого времени не хватит. Во всех оставшихся курсах так или иначе будут появляться коллекции, и вы сможете отточить свои навыки по работе с ними. А так как эта тема базовая и мало зависит от других аспектов, мы начнем затрагивать ее в самом начале, буквально со следующих курсов.
Важно, что кроме самих коллекций, навыки решения даже простейших алгоритмов хорошо развивают и структурируют рассудочное мышление. То есть эти курсы преследуют две цели:
- Научиться алгоритмически мыслить.
- Научиться быстро решать типичные задачи по работе с коллекциями.
.png)
