- PVSM.RU - https://www.pvsm.ru -

9 учебных проектов для бэкендера

image
источник КДПВ [1]

Ранее на хабре публиковался [2] перевод статьи с Medium'а [3] с подборкой из 8 проектов, которые можно реализовать, изучая новый язык или фреймворк. На мой взгляд, подборка очень неплохая. Проблема в том, что рассчитана она только на фронтендеров и мобильных разработчиков. А я из другого лагеря.

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

1. Движок блога

Да, свой «топ» я решил начать именно с блога. На мой взгляд, это один из простейших вариантов, чтобы изучить тонкости нового ЯП или фреймворка. Посмотрите внимательно на существующие решения и подумайте, что вы бы сделали лучше. Откройте исходники WordPress'а и перечислите, что в нём не так (всё в нем не так...).

Естественно, не стоит пытаться выкатить сразу готовый продукт с кучей фич. Опишите MVP [4], превратите его в сhecklist и вперёд! Кстати, этот совет относится и ко всем остальным пунктам.

2. IO-игра

image
картинка взята отсюда [1]

Если вы хотите вникнуть в реактивное программирование, веб-сокеты и вот это всё, а чат писать слишком скучно, можно попробовать реализовать бэкенд для: крестиков-ноликов 15x15, морского боя или, даже, гомоку. Плюс перечисленных игр в том, что клиент к ним можно создать даже с минимальными знаниями JS.

Бонусом придется подумать над алгоритмом валидации игрового поля, что тоже не так просто, как кажется.

3. Парсер формата файла

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

Как пример приведу библиотеку на PHP для работы с 3d-моделями формата STL. Описание этого формата есть в интернете. Но, еще 4 года назад в сети была только одна рабочая библиотека, которая умела возвращать габариты и объем модели. Ее продавали по 10$ за копию. И она пользовалась большим спросом.

Если же придумать что-то новое не получается, стоит попробовать сделать свою реализацию уже существующего. Например, на сколько мне известно, до сих пор нету ни одной библиотеки на PHP, которая переварила бы >1GB XML-файл, не съев всю ОЗУ. Хотя, есть мнение, что stream piping, SPL и немного упорства должны решить эту задачу.

4. Telegram, Skype, Slack любой другой-бот

image
картинка взята отсюда [5]
Вариантов тут может быть масса: прогноз погоды, напоминания, калькулятор, карточный «Пьяница» [6], генератор одноразовых паролей для сайта и т.д.

Пусть каждый из них уже кем-то создан. Но, мы ведь с вами хотим научиться чему-то новому и добавить «веса» своему резюме. Не так ли?

5. Движок форума

Плюсы тут те же, что и у первого пункта.
Если вам это кажется банальным и ненужным, почитайте статью о том, как человек написал форум на ассемблере [7]. Зачем? Просто потому что может. Зато теперь он может подтвердить свои знания ссылкой на интересную статью и репозиторий к ней. Это ли не мотивация?
image

6. Клон 10 Minute Mail

image

Наверное, всем известен прекрасный сервис 10minutemail [8]. Он позволяет не светить свою почту при регистрации на неизвестных сайтах. Просто получите уникальный email на 10 минут и вводите его везде, не опасаясь навязчивых рассылок.

Если хочется написать что-то небольшое и несложное — это отличный вариант.

7. Генератор изображений с текстом

9 учебных проектов для бэкендера - 6
Очень часто в социальных сетях объявления публикуют в виде скриншота экрана телефона с открытым приложением заметок.
Можно сделать для этих людей сервис для генерации изображений из текста. В гугле я нашел подобное решение [9], но, на мой взгляд, здесь слишком много лишнего функционала. Достаточно формы для ввода текста и кнопки: «сделать хорошо!».

Кстати, начинающим фронтендерам предлагаю эту задачу для реализации без сервера.

8. Pomodoro

9 учебных проектов для бэкендера - 7
картинка взята отсюда [10]

Метод «Помидора» — техника управления временем, предложенная Франческо Чирилло в конце 1980-х. Техника предполагает разбиение задач на 25-минутные периоды, называемые «помидоры», сопровождаемые короткими перерывами. — Википедия [11]

Если кратко, то 2 часа работы делятся на 4 отрезка («помидора») по 25 минут, с перерывами в 5 минут. Дабы не засекать все вручную, в интернете есть куча приложений «Pomodoro».

И, я знаю, что этот проект можно создать без сервера. Но я предлагаю сделать это ради фана. И вообще, статья для начинающих бэкендеров, так что, логику пишите на сервере. И прикрутите push-уведомления! И Telegram-бота не забудьте!

9. Пишите свой блог

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

Вместо заключения

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

Автор: berezuev

Источник [12]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/programmirovanie/271123

Ссылки в тексте:

[1] источник КДПВ: https://geekdad.com/2010/10/anytime-anywhere-pencil-and-paper-games-that-rock/

[2] публиковался: https://habrahabr.ru/company/edison/blog/344006/

[3] статьи с Medium'а: https://medium.freecodecamp.org/the-secret-to-being-a-top-developer-is-building-things-heres-a-list-of-fun-apps-to-build-aac61ac0736c

[4] MVP: https://ru.wikipedia.org/wiki/%D0%9C%D0%B8%D0%BD%D0%B8%D0%BC%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE_%D0%B6%D0%B8%D0%B7%D0%BD%D0%B5%D1%81%D0%BF%D0%BE%D1%81%D0%BE%D0%B1%D0%BD%D1%8B%D0%B9_%D0%BF%D1%80%D0%BE%D0%B4%D1%83%D0%BA%D1%82

[5] отсюда: https://www.slashdata.co/blog/2016/04/messenger-vs-skype-vs-slack-vs-telegram-how-to-spot-the-winners

[6] карточный «Пьяница»: https://ru.wikipedia.org/wiki/%D0%9F%D1%8C%D1%8F%D0%BD%D0%B8%D1%86%D0%B0_(%D0%BA%D0%B0%D1%80%D1%82%D0%BE%D1%87%D0%BD%D0%B0%D1%8F_%D0%B8%D0%B3%D1%80%D0%B0)

[7] написал форум на ассемблере: https://habrahabr.ru/post/318916/

[8] 10minutemail: https://10minutemail.com

[9] подобное решение: http://dconvert.net/

[10] отсюда: http://www.marcellobrivio.com/blog/discovering-the-pomodoro-technique/

[11] Википедия: https://ru.wikipedia.org/wiki/%D0%9F%D0%BE%D0%BC%D0%B8%D0%B4%D0%BE%D1%80_(%D0%BC%D0%B5%D1%82%D0%BE%D0%B4)

[12] Источник: https://habrahabr.ru/post/345092/?utm_campaign=345092