Соло разработка

Соло разработка

duverse

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

Но не все так гладко. Конечно же разрабатывая сложный проект самостоятельно, не избежать потребности в тестировании проекта, отладке и исправлении ошибок. Обычно, подобного рода деятельностью занимаются Q&A. В моём же случае, я и директор, и архитектор, и разработчик, и аналитик, и тестировщик и все кто нужны для запуска проекта.

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

Как я проектировал

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

С 2013 по 2017 года свободное от работы время я посвящал разработке различных никому ненужных библиотек, помощников, утилит и просто безделушек вроде модели Солнечной системы с соблюдением всех физических законов на JS + CSS + HTML не используя никаких сторонних библиотек. Вот просто нравилось мне по-хардкору, так сказать. У нас в офисе даже соревнования были кто быстрее и точнее все это сделает. Эээх... были времена.

Конечно же были разработаны такие известные на весь мир продукты как "Несуществующий Продукт 1", "Несуществующий Продукт 2" и CMS на PHP в виде рабочего стола с полным набором веб-инструментов для разработки сайта прямо с админки.

Так прошли года, я набрался опыта и научился делать разные вещи как на back-end, так и на front-end. Но проектирование ПО - не самая моя сильная сторона, скажу честно. Потому для реализации детской мечты (написание собственно соц. сети), было решено сначала написать тестовую просто и без подготовки.

Продукт получил название "HashORG". Я его даже прорекламировал в Google Adwords и VK. Получил отзыв публики, опыт и... НЕПРЕОДОЛИМУЮ ПРОБЛЕМУ!

Проблема заключалась в построении WebSocket-коммуникации между пользователями и сайтом. Я писал собственную низкоуровневую реализацию, использовал django-websocket (или как-то так), думал уже юзнуть socket.io на php... Но решил что оно того не стоит. Просто понял, что знаний пока недостаточно. А все попытки сделать "это" продакшн рэди - увенчались поражением.

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

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

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

Разрабатываем

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

Тестируем и фиксим

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

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

Откровенно говоря, я вспомнил о нем сегодня, когда задумался над тем что мне нужно все это дело отлаживать. И он является поводом для написания этой статьи. Что бы вы не думали что это реклама, предлагаю взглянуть на скриншот внизу (где 100 человек - накрученные кем-то зачем-то боты):

Sentry - поддерживает практически все языки программирования, множество фреймворков и работает в real-time, красиво отображает ваши трейсбэки и вообще я пошел регаться.

Продакшн

Думаю эту секцию, я опишу уже на самом не UserHUD, когда запущу.