Category: Backend

15
Май
2022

Django в чем ошибка?

Столкнулся с ошибкой, что при введении в поле поиска слова и при нажатии на найти вылетает ошибка "UnboundLocalError: local variable ‘page_object’ referenced before assignment". Что делать?

{% extends ‘food/base_main.html’ %}…

23
Апр
2022

Какие данные логировать?

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

Какие столбцы в таблице логов обязательно необходимо создать (например, user_id, user-agent и т.д…

18
Апр
2022

Как сортировать в Django созданные пользователями группы слов при выборе их из формы?

Я создал модель "Слова для изучения" и различных групп, создаваемых пользователями, файл models.py
class ForeignWord(models.Model):
from_word = models.CharField(max_length=256, verbose_name=’Исходное Слово’)
to_word = mod…

18
Апр
2022

🐍 Как сделать сайт на Python за 5 минут с помощью SSG-генератора Pelican

Нужно срочно сoздать сайт-визитку, резюме или портфолио, но не хочется использовать Wordpress и Tilda? Расскажем, как сделать сайт или блог за 5 минут с помощью SSG-генератора на Python.

Статические (а точнее – пререндеренные) сайты переживают второе рождение, и неудивительно: они мгновенно загружаются, выдерживают любой трафик, им не нужен дорогой хостинг, они не используют базы данных и потому их практически невозможно взломать. С помощью генератора можно быстро сделать сайт-визитку, резюме или портфолио на основе любого готового HTML/CSS/JS-шаблона.

Самые популярные генераторы статических сайтов (SSG) написаны на Ruby (Jekyll) и Go (Hugo), но есть и несколько интересных решений на Python: Pelican, Lektor, Nikola и Hyde. Pelican – наиболее простой и в то же время мощный Python-генератор: с его помощью можно создать собственный сайт или блог в считаные минуты.

Как устроен Pelican

Pelican работает по тому же принципу, что и другие генераторы:

  • Пользователь создает контент в виде ReST или Markdown файлов. Каждый файл состоит из невидимого блока YAML (метаданных) и видимого на странице текста. Файлы сохраняются в папке content, при этом посты блога располагаются в поддиректории articles, а страницы – в pages. Картинки для постов и страниц хранятся в общей папке images.
  • Движок обрабатывает файлы в соответствии с выбранным шаблоном. Шаблон устанавливается в конфигурационном файле проекта pelicanconf. Как и другие веб-фреймворки на основе Python, Pelican использует шаблонизатор Jinja2. Язык Jinja2 прост, понятен, и очень похож на Python (на котором и написан сам шаблонизатор).
<span>Jinja2-шаблон – это HTML файл с переменными и операторами, которые генерируют контент</span>
Jinja2-шаблон – это HTML файл с переменными и операторами, которые генерируют контент

Преимущества и недостатки Pelican

Пеликан разделяет все плюсы и минусы других SSG. Среди плюсов:

  • Простота редактирования и обновления контента.
  • Мгновенная загрузка готовых страниц и безопасность сайта.
  • Молниеносная смена дизайна.
  • Простота создания новых тем – если вы знакомы с Jinja2, то легко сможете адаптировать готовый HTML/CSS/JS-шаблон для работы с Pelican.
  • Возможность использовать бесплатный хостинг – сайт можно разместить на GitHub Pages и даже в Dropbox.
  • Предельно простая процедура переноса сайта с одного хостинга на другой.
  • Открытый исходный код.
  • Неплохой набор готовых плагинов (по сравнению с другими SGG на Python).

Есть и минусы:

  • Pelican работает медленнее Hugo. Например, генерация блога, состоящего из сотни страниц, займет не менее 10 секунд.
  • Нет панели администрирования – все команды вводятся в CMD.
  • Выбор тем и плагинов, по сравнению с популярными динамическими CMS (Wordpress), ограничен.
  • Нет WYSIWYG-редактора – для создания постов придется освоить Markdown, а для адаптации готовых шаблонов под работу с Пеликаном нужно понимание языка Jinja2 и базовые познания в HTML и CSS.
  • Для подключения комментариев, форм и поиска нужны дополнительные манипуляции. Ниже мы рассмотрим, как подключить к Pelican-сайту поиск, комментарии и контактную форму.
Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека питониста»

Установка, настройка и запуск Pelican

У большинства генераторов статических сайтов, за исключением Lektor, нет админ-панели: управлять контентом приходится через CLI. Pelican тоже управляется из командной строки, но, в отличие от других генераторов, его команды максимально просты. Для запуска Пеликана необходимо наличие в системе Python 3.6+.

Как и любой более-менее серьезный Python-проект, Pelican целесообразно устанавливать в виртуальное окружение. Сначала создадим директорию для нового проекта, а затем воспользуемся менеджером зависимостей pipenv:

        mkdir e:\myblog
cd e:\myblog
mkdir .venv
pipenv install pelican[Markdown]

    
<span>Установка Pelican и зависимостей в виртуальное окружение</span>
Установка Pelican и зависимостей в виртуальное окружение

Процесс установки займет около минуты. После завершения установки активируем виртуальное окружение:

        pipenv shell
    

Пока виртуальное окружение активно, перед именем директории проекта отображается (.venv). Запустим команду для создания файла конфигурации Пеликана, pelicanconf.py:

        pelican-quickstart
    

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

Вопросы мастера настройки Pelican
Вопросы мастера настройки Pelican

После того как мастер настройки Pelican получит ответы на все вопросы, можно приступать к созданию содержимого сайта. Пеликан автоматически создает две папки – content и output. В первой папке пользователь сохраняет посты, страницы и изображения, во вторую генератор выгружает готовые html-страницы. Посты нужно сохранять в поддиректории articles, страницы – в pages, изображения – в images. Поддиректории придется создать вручную.

Для генерации сайта нужно положить в папку content\articles хотя бы один Markdown файл. Например, такой:

        Title: Это мой новый блог на Пеликане
Date: 2022-03-15 10:20
Category: Новости
Slug: first-post
Pelican – быстрый и простой в использовании генератор статических сайтов с CLI. В стандартный дистрибутив входят две темы оформления. Эта тема называется simple.

    

После создания первого поста можно запускать генератор:

        pelican content
    

Запустить сервер можно тремя способами:

  • pelican --listen – стандартный;
  • pelican -l – сокращенный;
  • pelican -r -l – с автоматической регенерацией контента (используется в режиме разработки – для кастомизации темы, тестирования плагинов и так далее). Команду запуска можно комбинировать с командой генерации контента: pelican content -l.

Сайт будет доступен в браузере по адресу http://localhost:8000/.

<span>Тема по умолчанию</span>
Тема по умолчанию

Остановить сервер можно комбинацией Ctrl + C, а выйти из виртуального окружения – командой exit.

Темы оформления для Pelican

Хотя по количеству тем Пеликан пока что уступает Hugo, у пользователей все-таки есть неплохой выбор: подходящую тему можно подыскать на сайте Pelican Themes или в репозитории на Гитхабе. Изменить оформление сайта очень просто: архив нужно распаковать в поддиректорию .venv\Lib\site-packages\pelican\themes, а в конфигурационном файле указать название темы:

THEME = 'flex'

После этого нужно сгенерировать сайт в соответствии с новой темой – pelican content -r -l, и можно любоваться новым дизайном.

<span>Тема Flex</span>
Тема Flex

По сути, изменить оформление Pelican-сайта так же просто, как сменить тему динамической CMS наподобие Wordpress.

Если в каталоге готовых тем не нашлось шаблона по вкусу, его несложно сделать самостоятельно. В этом блоге есть подробный урок по созданию темы для Pelican-сайта на основе готового бесплатного HTML/CSS-шаблона.

Поиск, комментарии и формы

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

Поиск

Решить проблему с поиском на Pelican-сайте можно двумя способами:

  • Установить плагин pelican-search – он создает индексный файл, в котором хранится все текстовое содержимое сайта. Недостатков у этого способа два – чем больше на сайте статей, тем быстрее будет увеличиваться размер файла. Кроме того, плагин пока что адекватно работает только с английским языком.
  • Подключить пользовательский поиск от Яндекс или Google. Как показывает практика, Яндекс со статическими сайтами работает адекватнее – перенаправляет на нужный пост, в то время как Гугл упорно открывает главную страницу сайта, на которой впервые зафиксировал искомую фразу (несмотря на то, что пост уже давно перекочевал на одну из предыдущих страниц).

Формы для опросов и обратной связи

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

Подобных платформ много, набор услуг у них примерно одинаков:

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

На бесплатных тарифах, как правило, количество обработок ограничено, но в большинстве случаев для частного блога этого лимита будет вполне достаточно.

Комментарии

Самый простой способ подключить комментарии к статическому блогу – использовать Disqus. Этот способ также можно назвать самым нежелательным: сервис загружает массу трекеров и использует личные данные пользователей.

Другие решения:

  • Discourse – поддерживает и комментарии, и целые форумы. Можно использовать бесплатно, если разместить на своем хостинге.
  • StaticMan – хранит комментарии в GitHub-репозитории владельца сайта.
  • Utterances – использует систему комментариев GitHub Issues.
  • Giscus – система комментирования на основе GitHub Discussions. Документация русифицирована.

Заключение

Долгое время пользователям приходилось выбирать динамические CMS с базами данных только потому, что перспектива редактирования нескольких десятков страниц статического сайта приводила их в ужас. Добавился или изменился один пункт в меню, которое отображается на всех страницах? Надо редактировать все страницы. А уж если нужно изменить дизайн…

Генератор статических сайтов снимает проблемы редактирования и смены дизайна: эти операции Pelican выполняет так же быстро, как динамическая CMS. Гибкость и простота Pelican позволяют использовать его с любыми шаблонами. Нашли свежую Bootstrap-тему с трендовыми анимационными эффектами? Pelican наполнит броский шаблон контентом и превратит его в быстрый, функциональный, масштабируемый сайт, которому подойдет самый простой хостинг.

***

Материалы по теме

10
Апр
2022

Здравствуйте. Подскажите почему письмо из формы обратной связи не доходит до нужного email адреса? Прикрепляю форму html и скрипт php

<form action=’http://vvlsmd9t.beget.tech/%D0%9A%D0%BE%D0%BD%D1%82%D0%B0%D0%BA%D1%82%D1%8B.html?’ method=”POST” class=”quote”>
<div>
<label>Имя</label><br>
<input name=”имя” type=”text” placeho…

12
Мар
2022

Можно ли сделать в django defolt значение имя user?

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

20
Фев
2022

Какую бы вы сделали бекенд архитектуру для месенджера?

Задача чисто теоретическая, поэтому тонкости можно не уточнять. А если от тонкостей что-то зависит, то можно об этом написать.
Понятно только то что нужно сделать конкурента Viber, Telegram, Whatsapp. Похоже так обычно не делают, а сначала…

15
Фев
2022

⚔️🛡️ Вписался в онлайн-батл для программистов: рассказываю, в чем фишка таких движух и стоит ли в них участвовать

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

Всем привет! На днях узнал, что Сбер совместно с Geecko сделали онлайн-игрушку для кодеров под названием SberFight. Здесь все, называющие себя громким словом «программист», могут побороться за ценные призы и признание ИТ-сообщества.

Идея не нова, но довольно редко можно увидеть нечто подобное в рунете. Все мы в душе геймеры — независимо от возраста и рода деятельности. Однако не у всех получается пошпилить в удовольствие в CS:GO или Mortal Kombat из-за обилия однообразной рутины и горящих дедлайнов.

С помощью SberFight наконец-то можно применить накопленные за годы трудовой деятельности знания и победить в жестком спарринге с виртуальным противником. Но давайте обо всем по порядку.

Пиксель-стайл, отсылки и кодинг


Зайдя на сайт, вы сразу окунетесь в мир старых восьмибитных консолей с пикселизированными картинками. Логотип игры и дизайн всего интерфейса сделаны а-ля StreetFighter. Кто помнит этот легендарный олдскульный файтинг конца 90-х?

Лично я несколько минут поностальгировал, прежде чем приступить к регистрации. Зарегистрироваться просто: для начала необходимо создать аккаунт в Geecko ID. После этого система спросит у вас, хотите ли вы работать в Сбер. Это не праздное любопытство, но об этом я расскажу чуть позже. Определяетесь с ответом, нажимаете «продолжить» и вы попадаете на главную страницу игры.

Вот это окошко меня повеселило:


Как вы думаете, что я нажал? Все верно: скучать не хотелось! И понеслось: треки все крутые, прямо знали ребята, что мне будет по душе. Далее перед вами появятся два варианта дальнейшего развития событий:


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

Атмосфера. Локации и персонажи

Следующая страничка предложит выбрать персонажа:


Их шестеро, все со своими особенностями. У каждого — уникальная «сберталити»: своего рода ульта, кастуемая в конце эпичной битвы, чтобы уничтожить противника. Увидев первого из предложенных героев, я сразу понял, что он мне кого-то напоминает:


Один из персонажей – сам Герман Греф, глава Сбера. Если играть за него, то у вас в арсенале будет крутейшая сберталити: падающий с небес банкомат сами понимаете какого банка. И это не единственная пасхалка в игре.

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


Первый и второй – довольно легкие, над третьим уже надо немного подумать и так далее. Переиграть каждый из восьми уровней можно только один раз.

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

В конце баллы суммируются и вносятся в сводную таблицу.

Скажу еще, что все тест-кейсы нескучные и я с большим интересом их решал.

Правда, в некоторых заданиях я не сумел до конца разобраться с условиями. Например, с задачей про «сделки и картели» мне не хватило наглядных примеров (а скорее, навыков и знаний), но мои входные данные программа все же обработала корректно. Возможно, мои решения были не совсем универсальными, да и счетчик времени давил на нервы, но все равно решение задачи меня увлекло.

При удачном прохождении каждого испытания появляется ринг. Здесь персонаж проводит серию комбо-ударов в лучших традициях StreetFighter и уничтожает оппонента с помощью сберталити. Выглядит это так:



Для чего это нужно

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

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

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

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

А еще SberFight предоставил возможность кодить на нескольких языках программирования, чтобы не ограничиваться только наиболее популярными. Решать задачи можно на JavaScript, Typescript, Python, Swift, Java, Kotlin, Go,C#, C++, Ruby, PHP, Objective-C, Dart, Elixir, Rust, Scala.

Поиск потенциальных работников

Вернемся к вопросу, заданному при регистрации: о желании работать в Сбере. Действительно, компания заинтересована в притоке свежих кадров, и лучшие игроки, набравшие наибольшее количество баллов, получат возможность устроиться на работу в Сбер без собеседования. Ну круто же! Я имею в виду саму идею геймификации процесса поиска кандидатов.

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

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

Режимы игры

Помимо отборочного турнира, существует еще два режима игры: арена и PvP.

Режим PvP (player versus player) подразумевает батл один на один, против друга или случайного игрока, выбравшего тот же режим. Победитель каждого поединка определяется по суммарному количеству пройденных тест-кейсов и затраченному времени с поправкой на коэффициент языка программирования.

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

Режим Арена работает по принципу «стенка на стенку». Игрок создает или выбирает клан, к которому желает присоединиться. Вместе с товарищами по оружию он бьется насмерть с противниками из другого клана. Из оружия — только код, серые клеточки и навык работы в команде.

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

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

Обзор отборочного турнира

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

В финальном бое 25–27 февраля сразятся 256 игроков, набравших максимальное количество очков в отборочном туре. После определения победителей будет раздача призов и прочих плюшек. К слову, о призах — они зачетные.

Первые 4 места получат одно из умных устройств Сбера плююююс:

1 место: MacBook Pro, M1 PRO, 512 гб SSD, RAM 16 гб, дисплей Liquid Retina XDR 13″

2 место: Iphone 13 pro 128 гб

3 место: Playstation 5

4 место: Apple Watch Series 7

А еще сбер-порталы, рюкзаки, худи и термокружки. Всего призов будет 256 и, как вы уже поняли, никто не уйдет без награды.

Резюмируем

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

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

PS: некоторые задачи меня выбесили. За это минус балл.

13
Фев
2022

Данные не забиваются в базу данных из формы Django

После написания всех данных в формах ничего не добавляется в бд, хотя в терминале пишет, что пост запрос отправлен и не выдает ошибок. Как исправить?
forms.py
from django.forms import ModelForm, TextInput, Textarea, NumberInput, FileInput

10
Фев
2022

Разместить логику на Back-End или на Front-End?

Ребят, рассудите пожалуйста. Я написал мобильное приложение Помодоро Таймер (25 минут учишься 5 отдыхаешь), и хочу переписать его уже под веб приложение. У меня есть модель где происходит основная логика таймера на паттерне State и я не мо…

08
Фев
2022

Node js и python код

я пишу сайт параллельно изучая React. Сейчас мне нужно писать back и тут у меня проблема с выбором инструмента. Я хочу начать изучать Node.js, но у меня есть код который написан на питоне и переписать его на js невозможно из-за используемы…

31
Янв
2022

Как в приложении java взять значение из поля с фронта?

Вопрос такой – у меня есть переменная String, в нее нужно записать текст, который нужно получить с фронтенда (фронт на JavaScript).
Поле, с фронта, из которого нужно взять текст, у меня есть. (Название поля)
Не могу понять, как это сделать…

28
Янв
2022

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

Всем доброго времени суток. У меня есть задание, дано многоуровневое меню (2 уровня), данные берутся из ИБ в файле .top.menu_ext.php и передаются в шаблон, где нужно интегрировать вывод пунктов меню в виде выпадающего списка.
Так же нужно …

28
Янв
2022

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

Всем доброго времени суток. У меня есть задание, дано многоуровневое меню (2 уровня), данные берутся из ИБ в файле .top.menu_ext.php и передаются в шаблон, где нужно интегрировать вывод пунктов меню в виде выпадающего списка.
Так же нужно …

26
Янв
2022

Как законектить hibernate(и сервлеты) и android studio и возможно ли это?

Учусь создавать различные небольшие приложения в android studio. Сейчас столкнулся с ситуацией, когда нужно написать бэкенд для приложения(пишу на java). До этого использовал только SQLite(бэк писать не приходилось). Немного знаком с сервл…

26
Янв
2022

сайт на vue и нейронная сеть

у меня нейронка написанная на питоне. Я хочу создать сайт на фреймворке vue с использованием этой нейронки. Как её можно прикрепить? Это должно считаться на бекэнде или использовать какой то тронслятор кода?

25
Янв
2022

🔩 Как стать фуллстек-разработчиком в 2022 году: дорожная карта и необходимые навыки

Кто такой фуллстек-разработчик, сколько он зарабатывает и с чего начать обучение в 2022 году? Все ответы в нашей дорожной карте.

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

Чем занимается фуллстек-разработчик

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

Что включает в себя разработка фронтенда

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

Что входит в бэкенд

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

С чего начать

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

Что должен знать фуллстек-разработчик

Чтобы сократить процесс обучения, нужно следовать четкому плану. Вот перечень того, что нужно изучить, чтобы стать фуллстек-специалистом:

  • критерии выбора стека технологий;
  • процесс разработки бэкенда;
  • создание фронтенда;
  • систему контроля версий;
  • базы данных.

Рассмотрим подробнее технические навыки, которые вам нужно приобрести.

Понимание архитектуры веб-приложения

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

HTML и CSS


Эти языки – основа фронтенд-разработки. Используя HTML, разработчик определяет структуру веб-страниц. С помощью CSS создаются дизайн и стиль оформления. Для создания интерактивных веб-приложений с уникальным и интуитивно понятным интерфейсом фуллстек-разработчик должен в совершенстве владеть HTML и CSS.

JavaScript


Еще один обязательный язык для фронтенда – с его помощью создаются интерактивные приложения с адаптивным дизайном. Фуллстек-специалисты используют и чистый JavaScript, и библиотеки / фреймворки на его основе – React, Vue, jQuery, Ember, AngularJS и так далее. В дополнение к JavaScript необходимо знать, как работать с интерфейсом DOM и форматом JSON.

Git и GitHub


Git – самая популярная распределенная система контроля версий. Эта система облегчает разработку:

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

Профессиональные разработчики обычно работают с системой с помощью аккаунта на GitHub. Для работы с Git нужно выучить основные команды системы.

Языки программирования для разработки бэкенда


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

  1. PHP – скриптовый язык для разработки динамических онлайн-приложений. PHP и фреймворк на его основе Laravel лидируют по востребованности.
  2. Python – фреймворки Django и Flask на основе этого языка стремительно набирают популярность среди веб-разработчиков.
  3. Ruby – мощный динамический язык с простым и лаконичным синтаксисом.
  4. Java – оптимально подходит для создания бэкенда кроссплатформенных приложений. Имеет ряд мощных фреймворков.

HTTP, REST и SOAP

Знание REST помогает разработчикам создавать масштабируемые приложения, в которых все системы легко обмениваются данными. Сервисы REST выступают в качестве посредников между бэкендом и фронтендом и позволяют наилучшим образом использовать возможности HTTP-протокола. Протокол HTTP используется для передачи данных от сервера к клиенту, а SOAP применяют для обмена сообщениями в XML формате.

Базы данных

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

  • реляционные и нереляционные базы данных;
  • DOM-хранилище, форматы XML и JSON.

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

NPM входит в состав Node.js. Помогает управлять зависимостями и установкой пакетов, предотвращает появление конфликтов. Обладает гибкими настройками и используется на всех этапах разработки приложения.

Выбор оптимального стека технологий

Для каждой задачи нужен свой набор (стек) технологий. Профессиональный фуллстек-разработчик постоянно отслеживает и изучает новые технологии, чтобы иметь возможность выбрать оптимальную основу для реализации конкретного проекта. Среди самых популярных стеков:

  • LAMP – Linux, Apache, MySQL, PHP;
  • MERN – MongoDB, Express, React, Node;
  • MEAN – MongoDB, Express, Angular, Node;
  • Django – полный стек на основе Python.

Гибкие навыки

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

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

Часто задаваемые вопросы о карьере фуллстек-разработчика


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

Можно ли стать фуллстек-разработчиком без опыта?

Это возможно, если у вас есть достаточный объем знаний о CSS, HTML, JavaScript, базах данных, Python или PHP (Laravel). Чем больше навыков вы приобретете, тем больше получите шансов на то, что работодатель заметит ваше резюме.

Что нужно знать, чтобы стать фуллстек-разработчиком?

Нужны всесторонние навыки в создании фронтенда, бэкенда и по работе с базами данных:

  1. Глубокое знание CSS, HTML и JavaScript, понимание и опыт визуального дизайна.
  2. Навыки написания серверных приложений на PHP, Ruby, Python. Знание протоколов HTTP, SOAP и архитектурного стиля REST.
  3. Экспертные навыки работы с различными типами баз данных – Oracle, MySQL, MongoDB и так далее.

Какой стек технологий лучше?

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

Как долго надо учиться на фуллстек-разработчика?

Все зависит от стартового уровня знаний и интенсивности обучения. В среднем, при наличии должной мотивации, на получение базовой квалификации уходит 3-6 месяцев.

Пользуются ли спросом фуллстек-разработчики?

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

Сколько зарабатывает фуллстек-разработчик?

Зарплата зависит от нескольких факторов – основных и дополнительных навыков, опыта, местоположения. В США фуллстек-специалист уровня Senior может рассчитывать на $300 000 в год. Московские компании в вакансиях на портале hh.ru предлагают сеньорам от 100 000 до 510 000 рублей в месяц.

***

Материалы по теме

Больше полезных материалов вы найдете на нашем телеграм-канале «Библиотека программиста»

07
Янв
2022

Подключение к openserver с других устройств в локальной сети (wordpress)

Никак не могу настроить доступ для других других устройств в локальной сети для сайта на openserver. Делал по гайду: во вкладке "сервер" поменял ip-адресс сервера на все возможные, а во вкладке "алиасы" настроил исходны…

05
Янв
2022

Как организовать взаимодействие бэкенда с фронтендом по инициативе бэкенда

ИМЕЕТСЯ: Бэкенд написан на C/C++ и связан с библиотекой HTTP-сервера/клиента тоже на C/C++. Фронтенд написан на HTML/CSS/JavaScript. Взаимодействие фронтенда с бэкендом происходит через HTTP-запросы и ответы и всегда по инициативе фронтенд…