Добавлен: 15.05.2023
Просмотров: 583
Скачиваний: 5
СОДЕРЖАНИЕ
1. История и проблематика развития веб-технологий
2. Выбор языка программирования, фреймворка, CMS для написания веб-приложения
2.1. Классификация веб-проектов
2.2. Обзор языков программирования для веб-разработки
2.4. Системы управления контентом (CMS)
2.7. Тренды развития веб-технологий
3. Выбор инструментов для разработки веб-приложений
3.1. Интегрированные среды разработки
Недостатком этой IDE можно считать ограничессый круг операционных систем, на которых она может работать: он ограничивается лишь Windows и MacOS.
На бесплатной основе Microsoft распространяет продукт Visual Studio 2013 Express Edition с временным свободным доступом к облачному хранилищу Azure.
3.1.3. Средства online-разработки
С широким распространением скоростного доступа к Интернет многие организации предоставляют возможность вести веб-разработку не устанавливая на свой компьютер специальное ПО. Такое программирование называется “облачным”. Рассмотрим некоторые из таких решений.
Cloud9
Эта IDE написана на JavaScript, благодаря чему, является быстрой и стабильной. Среди преимуществ - поддержка популярных языков программирования. Цена за месяц работы с “облаком” 19 долларов, но предоставляется и бесплатная версия с урезанным функционалом[40].
Koding
Эта среда разработки обладает широкими возможностями, но пока плохо оптимизирована: требовательна к объему оперативной памяти, не до конца продуман пользовательский интерфейс. Хорошо реализованы возможности совместной разработки (для программирования в паре). Доступ предоставляется на коммерческой основе, но существует бесплатная версия с урезанными возможностями. Несмотря на недостатки, Koding является перспективной IDE, недостатки которой обусловлены малым временем нахождения на рынке. Они могут быть устранены в ближайшее время по мере обновления этой программы[41].
3.2. Системы контроля версий
По мере развития отраслей экономики, связанных с разработкой программного обеспечения, всё в большей степени возникал спрос на системы управления версиями (VCS, Version Control System[42]). С их помощью можно отслеживать эволюцию кода, создавать различные варианты программного продукта, разбивать объёмы работ на независимые участки и т. п. Системы контроля версий изначально создавались, чтобы команды разработчиков могли совместно работать над проектами, избегая путаницы. В VCS ветви кода и примечания к ним созранябтся в центральный репозиторий, где удобно хранить и обновлять файлы, вносить правки и комментарии, проводить слияние ветвей, созданных разными разработчиками.
Выбор оптимальной системы контроля версий приводит к бурным спорам среди программистов. Преимущества того или иного решения часто субъективны: личные предпочтения разработчика, быстродействие, наличие плагинов IDE и т.д.
Тем не менее, при разработке веб-приложений (за исключением самых простейших) необходимо использовать системы контроля версий, чтобы была возможность вернуться к более стабильному решению после неудачного, организовать обмен кода между программистами, доставку кода на удаленные серверы и т. д. В настоящее время наиболее популярными VCS являются Subversion, Mercurial и Git. Последняя является практически доминирующей, поэтому на ней и производных от нее продуктах здесь следует остановиться подробнее.
Основополагающей концепцией VCS является ветвь — совокупность состояний файлов и каталогов, отражающих отдельный вариант программного кода (тестовый, готовый к отправке потребителям, для особых устройств и т. п.). В рамках ветвей совершаются т. н. коммиты — фиксация изменений программного кода. Ветвь с хронологической точки зрения — это история коммитов. Иногда часть кода одной ветви переносится в другую. Это называется слиянием. Можно также извлечь полезный код из прошлых коммитов, вернуться к какой-то устойчивой точке процесса разработки, отменять изменения и т. п.
Система Git разработана автором ядра Linux Лайнусом Торвальдсом. Git обладает широким спектром возможностей по управлению версиями, но, с другой стороны, - довольно высоким порогом вхождения. Он поставляется в виде консольной утилиты с интуитивно понятным интерфейсом. Команды git представляют собой слова английского языка: git clone, git add, git commit, git push и т. п. Однако возможностей у утилиты git так много, что довольно быстро появились инструменты для визуализации работы с ней, чаще всего через веб-интерфейс. Некоторые из таких программ являются глобальными веб-сервисами, как, например, GitHub или Bitbucket. Другие же позволяют организовать доступ к возможностям git из локальной сети, делая более удобной разработку частных проектов (GitLab).

Рисунок 8: Популярность сетевых сервисов для управления версиями ПО.
Одно из основных отличий между системами контроля версий состоит в том, какие они: клиент-серверные или децентрализованные (p2p). Есть ли у них центральный репозиторий, откуда код ПО берется и затем, после внесения изменений, возвращается. Некоторые VCS представляют собой обновляемые копии в локальном хранилище.
При выборе VCS следует учитывать быстродействие, функциональность, порог вхождения системы контроля версий[43].
3.3. Системы управления проектами
Жизненный цикл веб-приложения не заканчивается с окончанием его разработкой. Более того, сама разработка может быть разбита на ряд этапов.
В целом жизненный цикл приложения может включать в себя такие этапы, как:
- проектирование;
- написание кода;
- тестирование;
- альфа-релиз;
- написание обновлений;
- исправление ошибок;
- рефакторинг;
- утилизация[44].
Для управления проектами по созданию веб-приложений применяются особые программные средства. Как правило, они тесно сопряжены с системами контроля версий, поскольку каждый этап жизненного цикла ПО сопровождается внесением изменений в программный код, фиксируемых в репозитории.
Система управления проектами предполагает создание механизмов отслеживания ошибок (баг-трекеров), распределение функциональных ролей между персоналом, занятым в проекте (менеджер, разработчик, тестировшик и т. п.). Упомянутые в предыдущем разделе веб-сервисы, предоставляющие услуги VCS (GitHub, GitLab, Bitbucket) обладают возможностями по формированию, наряду с репозиториями кода, систем управления проектами.
Одной из наиболее популярных систем такого рода является JIRA, разрабатываемая компанией Atlassian (последней принадлежит сайт bitbucket.com)[45].
JIRA помогает участникам проектов устанавливать приоритеты в разработке, управлять процессом создания приложений, гарантируя, что ничего не будет потеряно, от проектирования до релиза. Она обладает простым, интуитивно понятным интерфейсом, что позволяет сотрудничать с коллегами и эффективно выполнять задания.
JIRA используется в более чем 51 000 компаниях, включая такие, как eBay, Spotify, Cisco, LinkedIn. Эту систему можно использовать для планирования, отслеживания, выпуска программного продукта, есть возможность создавать истории проблем, назначать задания персоналу. Есть механизмы расстановки приоритетов и обсуждения задач, инструменты анализа, отчеты в реальном времени, визуализация данных[46].
* * *
Таким образом, разработка веб-приложения в современных условиях требует не только выбора языка программирования и сопутствующих фреймворков, но и владения программными средствами, связанными с организацией процесса разработки: IDE, VCS, систем управления проектами и т.д.
ЗАКЛЮЧЕНИЕ
Рассмотрение вариантов выбора средств разработки современных веб-приложений приводит к следующим выводам:
- Выбор средств разработки существенно зависит от масштаба и сложности проекта, его бюджета, а также времени, отведенного на разработку. Очевидно, что для небольших проектов следует выбирать программные платформы с возможностью легкой установки и быстрой разработки. К таким на сегодняшний день можно отнести JavaScript и Python. Языки Java, С# предназначены для масштабных проектов со сложной структурой, в которые вовлечено множество программистов. Что касается PHP и Ruby, то их перспективы, несмотря на былую популярность, остаются не такими очевидными. Несомненно, что они будут продолжать использоваться в давно существующих стабильных проектах, но количество новых проектов, начатых на этих языках, будет, по-видимому, снижаться. Это связано как со сравнительно большим количеством уязвимостей (PHP), так и с тем, что фреймворки, написанные на JavaScript и Python развиваются гораздо динамичнее.
- Несомненными лидерами среди нынешних фреймворков для написания клиентской части веб-приложений являются Angular, React и Vue. Такое положение, видимо, сохранится в ближайшие годы, причем Vue, по-видимому, будет отвоевывать всё большую долю рынка, поскольку он появился на рынке последним и в нем учтены недостатки конкурирующих продуктов. То обстоятельство, что эти фреймворки написаны на JavaScript усиливает позиции этого языка и его серверной реализации Node.js. Плюсом здесь является то, что для написания как клиентской, так и серверной частей используется один и тот же синтаксис. Что касается фреймворков для других языков программирования, то они вынуждены учитывать особенности Angular, React и Vue и подстраиваться под них, как минимум, в своей клиентской части.
- При разработке веб-приложений не следует игнорировать возможности, предоставляемые современными IDE, системами контроля версий, системами управления проектами и другими организационными инструментами. Их отсутствие в проекте неизбежно приводит к плохой управляемости кода, задержкам в исправлении ошибок и выпуске обновлений.
- Необходимо учитывать высокую динамику развития всего диапазона средств разработки. Этот процесс далек от стабильности, поэтому программисты должны быть готовы постоянно повышать свою квалификацию, осваивать новые инструменты, переучиваться. Это возможно только при наличии взаимодействия, обмена мнениями в коллективе разработчиков, участия специалистов в жизни профессиональных сообществ, доступности информации, благоприятности условий, создаваемых для работы IT-специалистов.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
Монографии, учебники
- Васильев А.В. Программирование на Java для начинающих. М., «Эксмо», 2017.
- Дронов В.А. - HTML 5, CSS 3 и Web 2.0. Разработка современных Web-сайтов. СПб, «Бином», 2011.
- Кузнецов М.В., Симдянов И.А. Самоучитель PHP 7. СПб, «Бином», 2018.
- Любанович Билл. Простой Python. Современный стиль программирования. СПб, «Питер», 2018.
- Резиг Джон, Фергюсон Расс, Пакстон Джон. JavaScript для профессионалов. М., «Эксмо», 2017.
- Ханссон Дэвид Хейнмейер. Гибкая разработка веб-приложений в среде Rails. СПб, «Бином», 2012.
- Шилдт Герберт. C# 4.0. Полное руководство. М., , «Эксмо», 2015.
Обзоры и статьи из Интернета
- 10 языков программирования для изучения в 2018 году // https://icanchoose.ru/blog/10-yazykov-programmirovaniya-dlya-izucheniya-v-2018-godu/
- Блинков И. Архитектура Instagramm // https://www.insight-it.ru/highload/2012/arkhitektura-instagram/
- Консорциум W3C. Общие сведения // http://janto.ru/repository/003/06.html
- Новости, тенденции и тренды веб разработки в 2018 году // https://www.motocms.com/blog/ru/trendy-web-razrabotki/
- Обзор площадки TemplateMonster для продажи шаблонов сайтов // https://weblayner.com/obzor-ploshhadki-templatemonster-dlya-prodazhi-shablonov-sajtov-i-ne-tolko.html
- Обзор популярных CMS // https://tproger.ru/digest/cms-review/.
- Почему стоит выбрать JIRA // https://itfb.com.ua/zhira-podrobnyj-obzor-pochemu-stoit-vybrat-jira/.
- Разница между CMS и CMF // https://lionmm.livejournal.com/6942.html
- Редактор или IDE? Очередная попытка анализа. // https://habr.com/post/265197/
- Руденко А. Как мы делаем проекты: разработка мобильных приложений // https://livetyping.com/ru/blog/kak-my-delaem-proekty-razrabotka-mobilnyh-prilozhenij.
- Семенов Н. Как выбрать технологию для большого и не очень большого веб-проекта // https://tproger.ru/articles/which-technology-to-choose/.
- Система контроля версий (cvs) — Сравниваем: Git, SVN, Mercurial // https://biz30.timedoctor.com/ru/c%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8F-%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D0%B9/
- Улитовский А. Сравнение фреймворков Vue, React и Angular (2018) // https://mkdev.me/posts/sravnenie-freymvorkov-vue-react-i-angular-2018
Статьи из Википедии
- Apache Tomcat // https://ru.wikipedia.org/wiki/Apache_Tomcat.
- CGI // https://ru.wikipedia.org/wiki/CGI.
- Cloud9 // https://ru.wikipedia.org/wiki/Cloud9.
- CSS // https://ru.wikipedia.org/wiki/CSS.
- Django // https://ru.wikipedia.org/wiki/Django.
- Eclipse (среда разработки) // https://ru.wikipedia.org/wiki/Eclipse_(%D1%81%D1%80%D0%B5%D0%B4%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8)
- HTML5 // https://ru.wikipedia.org/wiki/HTML5.
- Internet_Information_Services // https://ru.wikipedia.org/wiki/Internet_Information_Services.
- JavaScript // https://ru.wikipedia.org/wiki/
- Jira // https://ru.wikipedia.org/wiki/Jira
- Koding // https://en.wikipedia.org/wiki/.
- Microsoft Visual Studio // https://ru.wikipedia.org/wiki/Microsoft_Visual_Studio
- NCSA Mosaic // https://ru.wikipedia.org/wiki/NCSA_Mosaic.
- NetBeans // https://ru.wikipedia.org/wiki/NetBeans
- Netscape Navigator // https://ru.wikipedia.org/wiki/Netscape_Navigator.
- Node.js // https://ru.wikipedia.org/wiki/Node.js.
- PHP // https://ru.wikipedia.org/wiki/PHP.
- Война браузеров // https://ru.wikipedia.org/wiki/%D0%92%D0%BE%D0%B9%D0%BD%D0%B0_%D0%B1%D1%80%D0%B0%D1%83%D0%B7%D0%B5%D1%80%D0%BE%D0%B2
- Всемирная паутина // https://ru.wikipedia.org/wiki/%D0%92%D1%81%D0%B5%D0%BC%D0%B8%D1%80%D0%BD%D0%B0%D1%8F_%D0%BF%D0%B0%D1%83%D1%82%D0%B8%D0%BD%D0%B0.
- Интегрированная среда разработки // https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D1%82%D0%B5%D0%B3%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D1%80%D0%B5%D0%B4%D0%B0_%D1%80%D0%B0%D0%B7%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8.
- Система контроля версий // https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D0%B2%D0%B5%D1%80%D1%81%D0%B8%D1%8F%D0%BC%D0%B8
- Система управления содержимым // https://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D1%8F_%D1%81%D0%BE%D0%B4%D0%B5%D1%80%D0%B6%D0%B8%D0%BC%D1%8B%D0%BC
- Тим Бернерс Ли // https://ru.wikipedia.org/wiki/%D0%91%D0%B5%D1%80%D0%BD%D0%B5%D1%80%D1%81-%D0%9B%D0%B8,_%D0%A2%D0%B8%D0%BC