Ого, эта неделя прошла быстро! Такое ощущение, что дни пролетели быстрее, чем обычно. Уже прошло семь дней с первого месяца из двенадцати месяцев, которые я потрачу на работу над двенадцатью проектами. Как прошла эта первая неделя? Продолжайте читать и узнайте.
Я начал 1 января с этой задачей, чтобы преодолеть мою вечную прокрастинацию. Неспособность закончить проект была историей моей жизни с тех пор, как я попытался построить что-то для себя. Я думаю, что многие из вас могут это понять: вы получаете идею, записываете ее, прорабатываете ее в своей голове и/или даже начинаете строить, а затем она поражает вас. Неуверенность в себе, потеря интереса или другие «лучшие» идеи. Завершить начатый проект на самом деле сложнее, чем кажется.
Но я полон решимости изменить это, поэтому в Новый год я начал разрабатывать свой собственный сайт в качестве своего первого проекта. Я хотел начать с этого проекта первым, потому что я хочу использовать свой веб-сайт для оставшейся части задачи. Я хочу использовать свой веб-сайт как витрину для проектов, которые я делаю и сделал. Я также хочу использовать веб-сайт для размещения своих сообщений в блоге. Надеюсь, это будет мой последний пост на Medium.
1 день:
Итак, давайте углубимся в прогресс, которого я добился за последнюю неделю. Как я уже сказал, я начал 1 января. Мое обычное поведение состояло бы в том, чтобы сразу же начать с разработки, но, поскольку я строю все это публично, я подумал, что было бы лучше, если бы я удостоверился, что все настроено. Я стряхнул пыль со своего Твиттера, создал баннер с помощью blackmagic.so и уже разослал несколько твитов. После этого я обновил инструменты, которые мне понадобятся для проекта:
- Обновлена Visual Studio 2019 до 2022.
- Обновленный пчеловод
- Обновленный код Visual Studio
После этого время, которое я мог потратить в тот день, почти прошло, поэтому я быстро очистил все файлы из корневого каталога своего домена. На сервере хостинг-провайдера остались остатки от предыдущих попыток создать мой личный сайт.
День 2:
В воскресенье, 2 января, у меня было немного времени, пока моя маленькая дочь спала, поэтому я сел за свой стол и начал работать над планом этого первого проекта. Поскольку время ограничено всего одним месяцем, важно иметь четкий план. Четкий план также не позволит вам слишком разбрасываться всем, что вы хотите сделать. Перфекционизм — враг прогресса, но что касается моего личного веб-сайта, мне трудно блокировать эти перфекционистские мысли в моей голове. Четкий план, описание MVP очень помогли мне определить, что мне разрабатывать, а что можно отложить в бэклог на потом.
Я добавил кучу задач в Trello, пометив их ярлыком для каждого аспекта проекта. Я до сих пор не уверен, буду ли я продолжать этим заниматься, но пока это только начало. Вся эта задача будет заключаться в процессе обучения каждому аспекту создания продукта. Технологии, дизайн, управление проектами, маркетинг и продажи — думаю, я еще многому могу научиться по всем этим аспектам.
Я начал с технической стороны, создал репозиторий GitHub и создал новый проект веб-приложения. Этот готовый проект позволит мне быстро что-то собрать.
День 3:
Я получил совет использовать Notion через ответ в Твиттере, настолько мне любопытно, что я должен был это проверить. Я сам не занимался многими проектами и во время своей основной работы не работал с Notion, поэтому для меня это было совершенно новым. Что сказать, я был немного ошеломлен возможностями и не очень понимал, как все работает. И тут меня осенило: зачем я это смотрю? Мне нужно создать свой веб-сайт через месяц, у меня действительно нет времени, чтобы проверить это. По крайней мере, не в этот момент. Когда я больше погружаюсь в процесс разработки и завершения проектов, я, возможно, захочу уделить больше времени изучению других инструментов. Пока я использую только те инструменты, которые знаю. Даже если это просто файл на Google Диске и в Trello, пока все в порядке.
После моего исследования я потратил время на сборку архитектуры проекта. Я хотел использовать архитектуру, основанную на чистой архитектуре, составленной Джейсоном Тейлором. Я настроил первую пару моделей сущностей и подключил решение к базе данных MySql.
День 4:
Сегодня был первый день на моей новой постоянной работе, поэтому у меня не было много времени для работы над своим сайтом. Много информации, много новых людей, много встреч и приветствий, так что к концу дня я был изрядно измотан. Но я пытался выжать немного из работы, чтобы хотя бы добиться какого-то прогресса.
Единственная работа, которую я проделал, — это работа с сущностями базы данных. Но я наткнулся на другое. Используя чистую архитектуру, я наткнулся на MediatR, о котором слышал ранее, но никогда раньше не пользовался. Хотел посмотреть на это на следующий день, но после ночной прогулки с собакой решил, что все выброшу и на следующий день начну заново. Мне нужно было сделать это просто, никого не волнует инфраструктура продукта и, конечно, мой собственный веб-сайт.
День 5:
По средам моей жене не нужно идти на работу, поэтому единственное, что мне нужно делать по утрам, это давать бутылочку моей дочке и гулять с собакой. После этого у меня есть около 1,5 часов времени для работы над моим проектом. Как говорится, накануне я решил все бросить и начать сначала. Перенесемся на 1,5 часа вперед, и я добился большего прогресса, чем за предыдущие четыре дня. Мне пришло в голову, что мне нужно, чтобы все было просто. Никто не заботится об инфраструктуре, поэтому нет ничего плохого в том, чтобы собрать все это в один монолитный проект.
Поэтому я удалил все, что делал за последние несколько дней, и начал заново. Добавление моделей баз данных, моделей представлений, контроллеров и страниц. Создал контекст базы данных и подключил проект к базе данных MySql. Мне даже удалось немного поработать над дизайном.
Иногда лучше быть простым. Используйте то, что вы знаете, создавайте минимум, который вам нужен, не усложняйте слишком много. Я считаю, что иногда легче сказать, чем сделать, но, как и во всем остальном, это также будет процессом обучения.
День 6:
Четверг — напряженный день, мне нужно отвести ребенка в детский сад, поэтому до начала рабочего дня остается меньше времени на работу. Я еще немного поработал над моделями баз данных, убедился, что есть пользователь с правами администратора, и не дал посетителям угадать страницу регистрации. Используя стандартное веб-приложение с инфраструктурой идентификации, регистрация пользователей включена. Поскольку я единственный пользователь своего веб-сайта, я хотел, чтобы функция входа в систему была без возможности регистрации. Это был самый быстрый способ добиться этого, поэтому на данный момент лучший вариант.
Я также работал над базовой моделью для своих страниц, предназначенных для посетителей. Эта базовая модель содержит все, что может использовать каждая страница, и гарантирует, что я могу передать данные в представление макета, если это необходимо. Я выбрал Bootstrap в качестве фреймворка для разработки своего сайта, так как уже использовал Bootstrap раньше и понимаю его лучше, чем Tailwind. Я внес некоторые улучшения в базовый шаблон, изменив верхний и нижний колонтитулы страницы, чтобы отразить страницы, которые я буду добавлять на веб-сайт.
День 7:
Этот день был посвящен дизайну домашней страницы. Должен признаться, я очень горжусь тем, что выкладываю, потому что мне всегда сложно заниматься дизайном. На этот раз у меня уже были четкие мысли о том, как я хочу, чтобы это выглядело, что облегчило сборку чего-либо. Я потратил на это около 1,5 часов, из них около 20 минут на то, чтобы понять, почему ml-auto не выравнивает мои элементы навигации по правому краю. Как оказалось, это было потому, что я как бы привык к Bootstrap 4, но сейчас использую Bootstrap 5, так что это ms-auto. Иногда вы настолько сосредоточены на поиске ошибки, что наблюдаете за этими вещами. Извлеченные уроки: Google — ваш друг (и StackOverflow — ваш лучший друг).
Итак, прошла первая неделя, и я вполне доволен достигнутым прогрессом. В эти выходные я еще немного поработаю над дизайном домашней страницы и страниц блога и постараюсь выкроить немного времени для работы над страницей администратора, чтобы я мог начать добавлять сообщения блога на веб-сайт.
Присутствие в сети:
В конце каждой еженедельной записи в блоге я хочу размышлять о росте своего присутствия в Интернете. Начиная с 24 подписчиков в Твиттере, многие из которых являются друзьями, которые вообще не пользуются Твиттером, сейчас у меня 78 подписчиков, то есть число подписчиков увеличилось на 54. Я уверен, что со временем это улучшится, но пока я доволен прогрессом. Здорово найти единомышленников-инди-хакеров, работающих над похожими проектами.
Мой первый пост на IndieHackers набрал 53 голоса, 81 комментарий (примерно половина из них — мои ответы другим) и колоссальные 2500 просмотров. Не знаю, много ли это, но точно больше, чем я ожидал. Я абсолютно на седьмом небе от этого результата. В результате этого поста у меня также появилось 25 подписчиков на IndieHackers.
Пост на Medium потребовал немного больше времени, чтобы набрать обороты, но на данный момент он набрал 419 просмотров. Большинство читателей пришли с IndieHackers, а также с самого Medium, и это здорово. Статья получила 35 аплодисментов, что по соотношению читатели/аплодисменты/проголосовавшие больше, чем на IndieHackers.
В целом, я абсолютно доволен тем, как работал мой первый пост. Было нелегко проявить себя, но сегодня я уже чувствую себя более уверенно, чем всего семь дней назад.
Спасибо всем за чтение, не забудьте подписаться на меня в Twitter. Дайте мне знать в комментариях, что вы думаете обо мне, моем проекте, моем письме, любые отзывы очень ценятся!