Краткое введение в web-разработку, эпизод второй

Jazz

Опубликован:  2023-07-01T07:07:42.158444Z
Отредактирован:  2023-07-01T07:07:42.158444Z
Статус:  публичный
6
0
0

Web-разработка.., именно её мы увлеченно исследуем в этом блоге, и очередной эпизод посвящен стеку инструментов, с помощью которых web разрабатывают. Мы выяснили, что у web есть бэкэнд и фронтэнд, пришло время опеределиться с конкретными инструментами для того и другого. Кроме этого, web-разработка растёт не в чистом поле, а опирается на некоторые очень полезные навыки и умения соискателя. Дабы подготовиться к изучению web, давайте оценим начальную необходимую подготовку, которую хорошо бы иметь ещё до начала изучения выбранного стека.

Особенности процесса разработки web-приложения

Уже на стадии проектирования web-приложения, разработчик обязан задуматься и представить себе отчётливо процесс развёртывания дела рук своих на сервер сети. Сервер сети - это компьютер, и на этом компьютере должна быть установлена операционная система, соответствующая операционная система. А это значит, что все компоненты web-приложения, которые при разработке мы устанавливали и запускали на десктопе, должны быть совместимы с операционной системой сервера.

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

Удобно, когда все компоненты web-приложения хранятся в одном каталоге, во вложенных в него файалах и каталогах. В этом случае к этому корневому каталогу приложения можно подключить систему контроля версий, и с её помощью впоследствии управлять обновлениями и переносом обновлений на сервер.

Делаю первый вывод: все компоненты web-приложения должны быть совместимы с операционной системой сервера, а в процессе разработки необходимо использовать систему контроля версий, а значит, разработчик должен уметь работать с этими инструментами.

Из чего состоит web-приложение

Поскольку web-приложение - это компьютерная программа, как и всякая другая компьютерная программа, оно состоит из файлов и каталогов. Файлы в современной компьютерной науке делятся на два типа: бинарные файлы и текстовые файлы.

Текстовый файл - это частный случай бинарного файла, то есть определённым образом упорядоченный набор байт, который можно декодировать с использованием заданной кодовой страницы, в повседневном сленге программистов - кодировкой, и получить простой текст. Подавляющее большинство файлов web-приложения являются текстовыми файлами, а основная часть работы программиста, и в том числе web-разработчика, заключается в написании текста - исходного кода программы - с помощью текстового редактора.

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

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

Писать и редактировать текст в текстовом редакторе вам придётся большую часть времени разработки, и делать это можно двумя разными способами:

  1. Хаотичный набор текста двумя пальцами;

  2. Слепой десятипальцевый набор текста.

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

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

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

  • Vim и его клоны;

  • Emacs и его клоны.

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

Делаю третий вывод: крайне желательно приступать к web-разработке уже владея слепым десятипальцевым методом набора текстов, в идеале желательно владеть двумя раскладками, английской латиницей и раскладкой для родного языка, а работать десятипальцевым методом удобнее всего в Vim или Emacs, любой из них лучше бы тоже освоить или предварительно, или в процессе изучения web.

Web-разработка как хобби

В этом блоге мы говорим о web-разработке с точки зрения хобби, обычного увлечения, и в этой связи следует обратить внимание на пару узких мест, в которые необходимо будет протиснуться в процессе обучения.

Поскольку хобби предполагает самостоятельное изучение и самостоятельную разработку, увлекающемуся изначально придётся нацелиться на полный процесс - full-stack разработку. Понятно же, что на начальной стадии изучения команды у вас нет, всё приходится делать самому. Сам разрабатываешь серверную часть, сам выбираешь архитектуру, сам определяешь и разрабатываешь дизайн страниц, сам эти страницы верстаешь - всё сам, никто не поможет, сопельки не утрёт.

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

Сегодня в сети Интернет большинство сайтов работает на языке программирования PHP, в том числе и сервисы для монетизации сайтов, такие как биржи статей и биржи ссылок. И уже на начальном этапе выбора серверного языка программирования для своего web-приложения необходимо определиться, будем ли мы пользоваться этими сервисами или нет, и если будем, то как эти сервисы совмещаются с выбранным языком программирования, как вы их будете встраивать в свой код.

Делаю ещё один вывод: от выбранных инструментов для разработки динамического сайта сети Интернет во многом зависит его последующее существование и затраченные на содержание сайта усилия, web нельзя разрабатывать в стол, даже если это просто хобби, а на начальном этапе изучения web придётся в той или иной мере заниматься всеми аспектами web-разработки.

Ещё пара слов о полезных навыках

Выше в этом тексте замечено, что большую часть времени web-разработчик пишет и редактирует текст в текстовом редакторе. Но кроме этого, есть ещё две задачи, которые нужно научиться решать.

Код, который написан в текстовом редакторе, может содержать опечатки, неточности, просчёты и явные ошибки разнообразного характера, синтаксические, семантические и т.п. Всё это великолепие, если оно имеется в коде, необходимо устранить и исправить. Процесс выявляения ошибок и всего выше перечисленного называют тестированием, а процесс устранения - отладкой.

Последнее время работодатели требуют от web-разработчиков умения подтвердить правильную работу кода автоматизированными тестами. В свою очередь умение писать автоматизированные тесты во многом основывается на умении тестировать код вручную. Ручное тестирование происходит следующим образом: мы запускаем web-приложение, и пробуем подтвердить конкретными действиями в браузере его работоспособность. Выбор этих самых конкретных действий - это во многом искусство, этому приходится учиться на практике, это приходит с опытом после анализа многочисленных ошибок и просчётов. Автоматизированные тесты всего лишь описывают кодом эти конкретные действия.

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

Делаю ещё один вывод: web-разработка сочетает в себе три ключевых процесса:

1. Написание и редактирование текста - кода программы;

2. Тестирование кода;

3. Отладка кода.

При тестировании и отладке кода разработчику необходимо внимание, способность предвидеть некоторые ситуации, умение сравнивать, как было до, как стало после, и способность накапливать опыт. Опыт - сын ошибок трудных!

Основная проблема, которая стоит перед web-разработчиком, заключается в том, что код, который он пишет, располагается в большом количестве отдельных файлов и пишется на разных диалектах. Всеми используемыми диалектами в той или иной мере необходимо владеть, отсюда можно сделать ещё пару-тройку вполне очевидных выводов, но в рамках этой статьи я от них воздержусь, поговорим об этом чуть позже...

Продолжение следует

В этом блоге я поделюсь своим опытом и покажу некоторые приёмы web-разработки на базе языка программирования Python, которые отчасти почерпнул из англоязычной литературы, отчасти придумал и культивировал самостоятельно, собственными размышлениями и практическими опытами. Здесь мы говорим о web-разработке только и исключительно как о хобби, профессии не учим, и оценок не ставим, за этим милости просим в сферу образования и профессионального обучения. А здесь говорим исключительно о хобби и увлечении.

Метки:  web, vim, python, emacs, english, selfish