v1 этого блога делается и слита. До я начну на v2 я хотел написать вниз план маршрута что получила меня здесь, и это где шутка начинается: там не было одного.
Когда я начал, план в моей голове был примерно «блог, написан в Go, что я сам размещаю». Это была вся спецификация. Никакого списка особенностей, никакого порядка, никакой идеи как большой это получится. Я просто начал с auth сервиса потому что логин чувствовалась как тяжелая часть, и покарался остальное последует.
Остальное действительно последовало, но не в каком-либо порядке разумный человек имел бы выбранный. Вот примерно что реально произошло, восстановленное из git лога:

Сначала auth сервис, с его собственной базой данных, JWT ключами и ролями. Потом blog сервис с постами и markdown. Потом комментарии, потому что блог без комментариев чувствовалась мертвой. Потом лайки на комментарии, потом модерация потому что я теперь имела вещи для модерирования, потом загрузки медиа через MinIO, потом админ панель держать всё это. Потом я потратила дни на переоформление, остров, птицы, ночное небо, и написала больше постов про пиксели чем про код. Потом расписание, поэтому посты могли публиковать сами себя пока я сплю. И в самом конце, в то что я назвала v1.1, взрослые особенности пришли: GDPR права данных, аналитика посетителей, и журнал ошибок я реально могу читать.
Заметьте что пропущено из того списка пока самый конец: всё скучное и важное. Резервные копии всё ещё не существуют. Электронная почта не существует, поэтому сброс пароля не существует. Если я имела написать план маршрута в день один, «резервные копии» было бы рядом верхом и «анимированные тупики» рядом дном, и честно говоря тупики могли бы проиграть. Я рад что они не, но это удача, не планирование.
Стек закончился выглядеть так, что я действительно счастлива с:
services:
caddy: # передняя дверь, TLS, пределы тела
frontend: # SvelteKit
auth: # Go, его собственное Postgres
blog: # Go, его собственное Postgres
minio: # хранилище медиаДва маленьких Go сервиса с их собственными базами данных разговор по внутренней сети, SvelteKit фронтенд, и Caddy впереди решающий кто получается. Каждый кусок это что я могу прочитать сверху донизу. Это было одно правило я случайно следовала весь путь: нет куска я не понимаю.
Что я скажу мне от несколько недель назад: написать карту сначала. Не детальную спецификацию, просто порядок вещей, поэтому скучные грузоподъёмные особенности не всё штабелируется в конце. Этот урок это почему v2 получает реальный план маршрута на этот блог, написанный до кода этот раз. Рост, вероятно.