Заметки о выпуске ПО — .NET, TypeScript, multi-tenant SaaS и скучные части, что держат системы живыми.
Три вещи, которые называют «сайтом», — это на самом деле три разных продукта с разной ценой и сроками. Как понять, что нужно именно вам, ещё до того, как вам назовут цену.
Реалистичные сроки для лендинга, маркетингового сайта, веб-приложения и SaaS — что на самом деле съедает недели и почему одно и то же задание делается то за дни, то за месяцы.
Оба делают отличные продукты. Честные различия — про команду, типобезопасность и форму вашей задачи, а не про голую скорость. Как выбрать без фанатизма.
Почему за один и тот же сайт цены так сильно различаются, за что вы реально платите и как отличить справедливую цену от плохой — без необходимости быть техническим.
Бросать исключение на «не найдено» или ошибку валидации — значит превратить счастливый путь в минное поле невидимых выходов. Верни ошибку как значение — и компилятор начнёт работать на тебя.
Если ваш SaaS когда-нибудь получит второго клиента, каждая таблица должна нести колонку тенанта с первой миграции. Прикрутить это потом — это не рефакторинг, а переписывание.