На чем планируете делать сайт?
От: Aquilaware  
Дата: 25.11.22 23:23
Оценка:
Коллеги! Более чем уверен что у большинства уже есть рабочие сайты, некоторые из которых даже приносят прибыль. Возник вопрос: если бы вы сейчас рефакторили / переделывали сайт, то какие бы технологии и подходы использовали?

Для себя я вот что решил. Обязательное разделение сайта на backend и frontend части, где backend представляет собой чисто REST API и является отдельным приложением, а frontend — это просто UI обвязка поверх него. На чем делать frontend при такой архитектуре — дело вкуса, склоняюсь к React. Для backend планируется продолжать использовать .NET, но уже новые его версии.

Затем, постараться минимизировать динамические части сайта. Frontend сайта по сути будет статическим, а всю нужную динамику делать с помошью React на клиентской стороне через REST API к backend'у. Для поисковых систем это не будет вызывать проблем, поскольку будет задействоваться пререндеринг, т. е. там где возможно будет генерироваться чистый HTML, который будет работать даже в браузерах с выключенным Javascript. Плюс почти все поисковики сейчас умеют Javascript.

Почему выбрана именно такая архитектура? Потому что чистый монолит, который у нас есть сейчас, оказался серьезнейшей болью. Сайт был сделан давно на .NET Framework, но попробуйте-ка его сейчас мигрировать на новый .NET. Кода там — под десять тысяч строк за десятилетие набралось и он такой сцепленный, хрупкий, что вообще страшно сейчас всё это трогать. Тестов естественно не было и нет, ведь это просто сайт, там же не может быть много важного кода, правда? Поэтому это технологически устаревшее приложение сейчас только патчится, а время идет и монстр продолжает разрастаться.

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

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

Хотелось бы услышать ваши идеи и опыт по этой теме.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.