3 недели + 15 часов в день + достаточно кофеина, чтобы убить буйвола. Это в основном подводит итог всему моему графику.

В общем… да, я работал на износ. Но этого и следовало ожидать от человека, знающего только HTML и CSS, верно? Есть две части веб-разработки. Фронтенд и бэкенд. Передняя часть — это место, где живет весь пользовательский интерфейс.

«Сделайте внешний вид красивым, а задний — сходите с ума».

Это был мой первоначальный мыслительный процесс. Ну, это работало по большей части. Но… не так хорош в производстве и обслуживании. Мы вернемся к этому позже.

Как, черт возьми, этот парень создал веб-сайт, зная только, как центрировать div?

Можно сказать, у меня был туз в рукаве. Нет, у меня не было злого брата-близнеца, который знал темную магию серверного программирования. На самом деле, можно сказать, что я неплохо учусь на работе. Этот сайт тоже был моим первым проектом. Как вам обучение на работе? (Я сделал этот веб-сайт, чтобы помочь своим однокурсникам здесь, в Шри-Ланке, в учебе. Вы можете пойти проверить его. Хотя у меня еще много проблем, которые нужно сгладить)

Честно говоря, у меня был опыт работы с Python, так что это тоже очень помогло.

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

Делаем шаг вперед и изучаем Django

Я сначала исследовал, какие первые шаги были необходимы, чтобы получить некоторую поддержку. Я нашел приличное руководство, которое собрал какой-то пользователь Medium (извините, не помню саму статью) и использовал его в качестве руководства. Я узнал, что создание всего с нуля означало бы, что мне придется бросить школу (это не происходит), и самый простой способ — использовать веб-фреймворк. Веб-фреймворк, как я вскоре узнал, будет иметь готовые пакеты, которые будут обрабатывать все это. Поэтому я решил связать свою судьбу с Django, фреймворком, удобно основанным на Python.

Django — это веб-фреймворк, предназначенный для быстрой разработки и развертывания. Это кривая обучения, по сути, это вовсе не кривая. Это довольно линейно, учитывая все обстоятельства. Если вы знаете, что у вас есть справедливая доля ООП, вы в значительной степени готовы к работе. У него есть оченьобширная документация здесь. Я также следил за этой полезной статьей от хороших ребят из Mozilla.

Как оказалось, программировать серверную часть было не так уж и сложно. Ха! Попался там. Неа. Это было изнурительно.

Что вы получаете, когда смешиваете фронтенд-разработку с бэкенд-фреймворками и пытаетесь получить полезный продукт?

Простой ответ: Кошмар разработки

HTTP-запросы. Хм? Аутентификация пользователя. Что теперь? ОТПРАВИТЬ и ПОЛУЧИТЬ. Вы имеете в виду почтовое отделение?

Это означает, что три клетки моего мозга работают в гармонии, чтобы понять, во что, черт возьми, я ввязался. Множество протоколов, множество способов, которыми Django обрабатывает каждый из них. Странные слова, такие как запросы ORM и SQL.

Если бы это была одна большая проблема, я был бы в порядке. Но это была смерть от порезов. Диспетчер URL продолжал направлять людей по неправильным ссылкам. Недоработанный язык шаблонов django постоянно сводил меня с ума. И в середине тестирования моя база данных решила, что с нее достаточно моей чепухи, и вышла из строя. Что, естественно, заставило меня перестроить все это.

Так что да. Не смешно. Я работал до поздней ночи и проснулся рано на следующий день только для того, чтобы запустить свой ноутбук, стучать по клавиатуре и в отчаянии биться головой о монитор.

Собираюсь вместе

Примерно через две недели смешивания кода stackoverflow, некоторого другого кода, который я в основном получил из руководств, а также кода, который я на самом деле создал сам, я получил первое приложение django. Это было далеко от того, что вы видите сегодня, но прогресс был прогрессом. Я углубился в документацию (в кои-то веки в жизни) и даже проверил часть исходного кода. Это дало мне действительно хорошее понимание основ всего фреймворка. Это также заставило меня оценить красоту и элегантную философию дизайна проекта django.

Это придало мне больше уверенности в использовании огромных возможностей фреймворка и добавлении дополнительных функций и функций.

Что вы подразумеваете под «развертыванием»?

Итак, я закончил строить чертову штуковину. Что теперь?

Когда вы разрабатываете веб-сайт, он не доступен никому в Интернете (если вы не сетевой гуру, который действительно знает, как разместить веб-сайт на личном сервере. Но это неустойчиво и в наши дни глупо, если у вас нет очень особые требования). Есть много много услуг хостинга, доступных в Интернете. Проблема в том, чтобы выбрать правильный.

Я только что разработал приложение для Python. Поэтому мне нужно было что-то, что было бы не слишком сложно настроить, а также поддерживало бы Python «из коробки» и, вполне возможно, бесплатно. У меня было два варианта.

  1. ПитонГде угодно
  2. Хероку

У PythonAnywhere было действительно странное ограничение процессорного времени для бесплатных клиентов. У вас может быть только 100 секунд процессорного времени. НА МЕСЯЦ. Я хотел бы встретиться с гением, который это придумал. Просто настройка среды заняла 10 секунд процессорного времени. Не говоря уже о том, что для такого новичка, как я, получение моих файлов на моем сервере само по себе оказалось настоящей проблемой.

Для сравнения, Heroku был намного проще. Их серверы могут автоматически развертываться из git. Это означает, что вы просто отправляете файлы в репозиторий git, а heroku волшебным образом позаботится обо всем остальном. Их пошаговые инструкции по их настройке очень полезны. И их функции для бесплатного уровня действительно хороши. Вы получаете 650 dyno часов. (Говоря по-хорошему, «ваш сервер будет работать 650 часов») плюс дополнительные 350 часов, если вы добавите кредитную карту. В месяц. Это выгодная сделка. Честно.

С того времени…

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

И помните, что я сказал о своем подходе: «Сделайте интерфейс красивым, а сервер — сходите с ума»? Да, это не очень удалось. Это ДЕЙСТВИТЕЛЬНО выполнило свою работу, но теперь я выделил целых два дня, чтобы должным образом преобразовать мою кодовую базу и сделать ее менее «франкенштейновской». Несмотря на это, я все еще время от времени вижу фрагменты избыточного кода.

Что ж… вот и подведен итог моего путешествия в полнофункциональную веб-разработку. Я никогда не думал, что смогу запустить полноценный веб-сайт. (Левое полушарие моего мозга спрашивает «Сколько это стоило» у правого полушария. Правое полушарие: «Всего»). Я думаю, это полноценная веб-разработка для вас, ребята. Дело в том, что с полным стеком вы должны быть армией из одного человека. Дизайн, тестирование, внедрение, развертывание, обслуживание — всем управляет один человек-бегемот. Вдобавок к этому добавьте домашнее задание и уроки, и у вас получится неприятная смесь (я учусь на дневном отделении).

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