Обзор типовых решений в области веб-разработки

· Операционная система Ubuntu 16.04 (рис. 1)

Является одной из самых популярных операционных систем семейства Linux. Выпускается в редакции Server и Desktop. Обладает предустановленным сервером Apache2, PHP7.0, mysql и ещё целым рядом программ, предназначенных для веб-разработки. Все популярные инструменты и технологии как правило создаются конкретно для пользователей данной операционной системы.

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

Для максимально удобного использования Ubuntu необходимы знания консольных команд, в которой происходит большинство взаимодействий с системой. Нет необходимости постоянного использования браузера и поиска нужных программ, скачивания их, настройки и т.д. Все эти действия заменят ввод пары команд в консоли.

Система является защищенной к вирусным атакам, обладает встроенными инструментами шифрования, распространяется бесплатно, обладает большим сообществом, регулярно обновляется [4].

Обзор типовых решений в области веб-разработки - student2.ru

Рис. 1. Рабочий стол Ubuntu 16.04

· Язык программирования PHP 7

Является намного быстрее по сравнению со своим предшественником PHP5.6 согласно источнику html5.by (рис. 2)

Обзор типовых решений в области веб-разработки - student2.ru

Рис. 2. Тест производительности PHP7 при работе различных фреймворков

В PHP7 были убраны многие устаревшие функции, введена поддержка строгой типизации, добавлены новые методы, операторы, синтаксис кодирования Unicode, групповая декларация use, множество новых возможностей синтаксиса, улучшенная обработка исключений, анонимные функции.

· Язык программирования ECMAScript 6

Одним из самых важных нововведений в последних версиях ECMAScript является полноценная поддержка использования классов, несмотря на то, что они, по сути, являются синтаксическим сахаром (конструкцией языка для упрощения реализации программного кода) прототипами [5].

Из остальных значительных нововведений можно выделить поддержку импорта и экспорта модулей, строковые шаблоны, введение нового способа объявления переменных через let и const, а также появление стрелочных функций.

· Менеджер пакетов Composer

Composer – это пакетный менеджер для языка PHP. Он упрощает установку каких-либо сторонних библиотек, используемых в проекте, перенос проекта от одного разработчику к другому.

Работа с composer осуществляется через командную строку. При установке какого-либо пакета, располагающегося в репозитории, имеется возможность указания версии. Composer обладает встроенным автозагрузчиком классов, прост в установке и конфигурации [6].

· Менеджер пакетов NPM

NPM представляет собой менеджер пакетов, входящий в состав NodeJS. Имеет огромную базу приложений в репозитории, упрощают установку и интеграцию различных js, css и прочих библиотек [7]. Так же, как и с Composer, взаимодействие осуществляется через командную строку, но имеется и возможность использования графических оболочек. Содержимое конфигурационного файл представляет собой json-массив, аналогично таковому в Composer.

· Шаблонизатор Twig

Twig является шаблонизатором, написанным на языке PHP. Позволяет жёстко разграничить понятия Controller и Viewer, так как при написании шаблона страницы используется только характерные для Viewer функции и синтаксис, который в свою очередь является более удобным и сокращённым по сравнению с PHP [8].

Twig обладает встроенной системой кеширования страниц, позволяет расширять свой функционал в зависимости от подробностей при разработке проекта путём написания дополнительных классов и методов, является шаблонизатором по умолчанию в Symfony.

У Twig открытый исходный код, имеется русскоязычная документация.

· ORM Doctrine

Doctrine создаёт слой абстракций над БД и позволяет связать их с концепциями объектно-ориентированного программирования. Работа с базой данных представляет собой исключительно взаимодействие с объектами. Каждая таблица – объект [9].

Doctrine избавляет программиста от написания дублирующегося кода в виде однотипных SQL-запросов, а синтаксис взаимодействия с объектами абсолютно не зависит от выбранной СУБД, обладает системой защиты от SQL-инъекций, обеспечивает сохранение целостности данных, имеет обширную документацию. При необходимости изменения СУБД код переписывать не нужно.

· Система контроля версий Git

Git является системой контроля версий, обладает как и возможностью консольного управления, так и графической оболочкой, интегрирован во множество IDE, имеет высокую производительность [10].

· IDE PhpStorm

PhpStorm идеально подходит для работы с Symfony, Drupal, WordPress, Zend Framework, Laravel, Magento, Joomla!, CakePHP, Yii, и другими фреймворками. Он индексирует весь код проекта, поддерживает множество языков, автодополнение, рефакторинг кода, подсветку ошибок, встроенные инструменты для работы с SFTP, консолью, базами данных и т. д. [11].

Для студентов PhpStorm распространяется бесплатно.

· Инструмент для сборки фронтенда Webpack

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

· CSS-фреймворк Material Design Lite

Позволяет использовать элементы Material Design на сайте. Данный фреймворк не связан ни с каким js-фреймворком и является универсальным. Страницы, разработанные с помощью MDL будет придерживаться современных принципов веб-дизайна, поддерживать мобильные браузеры, будут адаптивны и минималистичны.

MDL включает в себя новые версии управления пользовательским интерфейсом, такие как кнопки, флажки и текстовые поля. Библиотека также включает в себя расширенные и специализированные функции, такие как карты, макеты колонок, ползунки, счетчики, вкладки и многое другое [13].

· Язык стилей LESS

Язык существенно расширяет стандартные возможности CSS, добавляет возможность использования переменных, вложенности, примесей, функций, операций. Любой валидный CSS код является валидным и в LESS [14].

· PHP-фреймворк Symfony3 (рис. 3)

Один из самых популярных и современных PHP-фреймворков на данный момент. Он использует модель MVC, поддерживает множество различных баз данных, в составе фреймворка поставляется Doctrine, Twig, Composer, а также ряд других библиотек. Весь исходный код фреймворка соответствует стандартам PSR, имеет поддержку PHP7. Symfony имеет собственный хост разработки, подробную документацию по функционалу с подробными примерами. Обновления появляются регулярно с периодичностью в несколько недель [15].

Обзор типовых решений в области веб-разработки - student2.ru

Рис. 3. Панель статистики в Symfony3

· БД PostgreSQL

Является объектно-реляционной базой данных, то есть содержит технологии, реализующие объектно-ориентированный подход [16]. Некоторые преимущества PostgreSQL по сравнению с MySQL:

o Подзапросы можно писать отдельно, давая им имена.

o Большое количество различных типов данных, в том числе возможность добавления пользовательских типов.

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

o Тип json и полноценная работа с ним.

o Хранимые процедуры на любых языках.

o Репликация работает быстро и консистентно.

o При правильной настройке запросы выполняются в разы быстрее.

o Строгий режим. В отличии от MySQL, PostrgreSQL не позволит сделать двусмысленный запрос и получить обрезанную строку, случайное число и т. д.

o Полнотекстовый поиск.

o Последовательности. В MySQL есть только AUTO_INCREMENT на поле таблицы, с итерацией по одному. В PostgreSQL этот механизм живет отдельно от таблицы, что можно использовать для самых разных потребностей, кроме того можно их создавать зацикленными.

Наши рекомендации