Базы документов? Довольно мило. График? Временные ряды? Все хорошо. Датомный? Журнал данных? Цепочки блоков?! Здорово!

Тем не менее, есть большая вероятность, что для вашего веб-приложения подойдет старая добрая реляционная база данных. Откуда я знаю? Я не! Я просто сказал, что есть хороший шанс. Идея о том, что модель CRUD больше не подходит для большинства веб-приложений, является плохой. Я не знаю, откуда это взялось, но я знаю, что из-за этого в этом десятилетии было допущено много ошибок при создании программного обеспечения и компаний. Я думаю, что мы коллективно преодолели себя, но я также думаю, что это происходит недостаточно быстро, поэтому я здесь, чтобы поторопить нас, разработчиков программного обеспечения, на пути к просветлению архитектуры для небольших команд и разработчиков-одиночек.

Держите вещи скучными

Я люблю неизменность, я использую Clojure для всех своих личных проектов веб-приложений. Это упрощает так много вещей и позволяет мне очень быстро продвигать идеи, потому что для меня это самое главное — получить что-то и посмотреть, хочет ли это кто-то, кроме меня. Однако когда дело доходит до хранения данных, мне становится скучно.

Я пишу SQL вручную! 😱 Я не использую ORM, это просто ввод данных -> sql -> вывод данных. Звучит безумно, и это так, но на самом деле это помогает упростить мой код и мою жизнь. Больше не нужно искать в документах этот бит синтаксиса активной записи или эту штуку с инфраструктурой сущностей. Я изучил sql и как его параметризовать, вот и все.

Азбука CRUD

Я знаю, что глобально изменяемые вещи — это плохо, не поймите меня неправильно, но когда они были проверены в бою с миллионами приложений всех форм и размеров, может быть, это нормально — иметь возможность удалять и обновлять вещи на месте. Это определенно намного проще на жестком диске вашего сервера, чем пытаться сохранить каждый бит истории или какой-то неизменный журнал событий и разобраться в этом. ТРУД. Изучайте это, знайте это, извлекайте из этого пользу 🤑.

Хорошо быть архитектурным космонавтом

Астронавты-архитекторы имеют хорошие намерения, они усвоили догму, которой их научили, и хорошо ее применяют. Я имею в виду 3-ю нормальную форму? Можете поспорить на свою сладкую задницу, мы должны это сделать. Высокая доступность? ✅ Распределенные транзакции?! ✅✅ Одна вещь, которой они вас не учат, это то, что когда вы хотите вырваться самостоятельно и создать свои собственные продукты, вероятно, лучше просто оставить это за дверью вашей команды и вместо этого принять потребности клиентов. Конечно, если вы строите что-то в области здравоохранения или что-то, что требует такого уровня избыточности, то не стесняйтесь игнорировать меня, надеюсь, вы уже это сделали. Но для инди-хакеров такие вещи — ужасный бизнес. Цель состоит в том, чтобы вести бизнес, работая в течение дня, с очень небольшим количеством клиентов (т.е. максимум несколько тысяч в большинстве случаев). Это действительно не требует большого масштабирования или какого-либо масштабирования. Один VPS среднего размера может обрабатывать весь трафик, и это потрясающе.