Но это не имело задокументированности нигде, вот эту проблему мы и решали.
согласен, когда-то давным-давно, когда я еще был зеленым, тоже столкнулся с такой же проблемой, когда ничего и нигде не было описано и все писали код "как знали, как умели, как чувствовали", и по итогу наш фронт превратилось в такую мусорку и свалку, похлеще всяких там замусоренных shared/
по итогу мы тож в какой-то момент пришли к схеме "Docs as Code", т.е. стараться документировать используемые библиотеки, документировать подходы в написании тестов, как работать с ветками / коммитами и т.п., в долгую этот подход очень хорошо играет (естественно при наличии ко всему этому код-ревью), прямо как и тесты
благо в век ИИ-агентов все это дело стало чуть попроще поддерживать
Вот сколько ни спрашиваю "зачем вы вообще пишете непереиспользуемый код?" - никто не может ничего вразуметельного ответить.
в каждом из модулей мы используем FSD 2.1, с page-first подходом, т.е. внутри модуля мы выносим на нижележащие слои только действительно то, что переиспользуется
а так, полностью согласен, нет никакого смысла дробить код на множество частей ради выдуманной "переиспользуемости", всегда нужно искать баланс, но и писать систему с кучей дублирования - тоже не вариант
мы же делим кодовую базу по предметным областям из-за очень толстого домена и к "переиспользуемости" это прямого отношения не имеет
большое спасибо, очень интересный подход, к тому же наконец-то узнал что такое "фрактальная архитектура"
было бы интересно поподробнее узнать о вашем подходе и механизмах работы с межмодульной / субмодульной коммуникацией, интересно узнать как вы вообще изолируете модули от "внешней среды"
---
мы на довольно большом проекте, в свое время, тоже пришли к чему-то подобному, просто добавив несколько архитектурных приемов поверх FSD, не переизобретая архитектуру с самого нуля
наши приложения имеет три глобальных слоя, с однонаправленными зависимостями, которые придерживаются принципа Relaxed Layered System - app/ (Инфраструктурный слой) - modules/ (Бизнес слой) - shared/ (Переиспользуемый код)
направление зависимостей глобальных слоев
каждая директория в modules/ разделена по принципу "изолированных предметных областей" + (привет DDD и его Strategic DDD), в каждом из которых живет FSD (из которого был исключен слой app/)
каждый модуль содержит в себе FSD (без слоя app/)
еще увидел, что вы остались на File-based Routing, что имеет ряд своих преимущество, но т.к. мы пошли по пути изолированных предметных областей и страницы у нас живут прямо в модулях, мы целиком и полностью перешли на ручное управление роутингом через router.options.ts
механизм работы роутинга
крч у нас получились аля микрофронтенды, запихнутые в модульный монолит, +- тож самое что и у вас
"возьми почитал" мобильный Сафари 17.2. Интересно, на какие страны вы делаете приложения - в Америке валом старых айфонов, в России - тем более, в Азии 17 еще не видели.
вряд ли сейчас, кто-либо, для больших продакшенов пишет на нативном css без использования транспиляторов
в тг канале NLP Core Team, с челами которые непосредственно занимаются разработкой / обучением моделек в Сбере, в посте от 31 августа говорится о переведенном ими датасете HumanEval
с нетерпением жду(ем), Денис, еще раз спс за труды :0
согласен, когда-то давным-давно, когда я еще был зеленым, тоже столкнулся с такой же проблемой, когда ничего и нигде не было описано и все писали код "как знали, как умели, как чувствовали", и по итогу наш фронт превратилось в такую мусорку и свалку, похлеще всяких там замусоренных
shared/по итогу мы тож в какой-то момент пришли к схеме "Docs as Code", т.е. стараться документировать используемые библиотеки, документировать подходы в написании тестов, как работать с ветками / коммитами и т.п., в долгую этот подход очень хорошо играет (естественно при наличии ко всему этому код-ревью), прямо как и тесты
благо в век ИИ-агентов все это дело стало чуть попроще поддерживать
тут должна была быть реклама $mol
в каждом из модулей мы используем FSD 2.1, с page-first подходом, т.е. внутри модуля мы выносим на нижележащие слои только действительно то, что переиспользуется
а так, полностью согласен, нет никакого смысла дробить код на множество частей ради выдуманной "переиспользуемости", всегда нужно искать баланс, но и писать систему с кучей дублирования - тоже не вариант
мы же делим кодовую базу по предметным областям из-за очень толстого домена и к "переиспользуемости" это прямого отношения не имеет
большое спасибо, очень интересный подход, к тому же наконец-то узнал что такое "фрактальная архитектура"
было бы интересно поподробнее узнать о вашем подходе и механизмах работы с межмодульной / субмодульной коммуникацией, интересно узнать как вы вообще изолируете модули от "внешней среды"
---
мы на довольно большом проекте, в свое время, тоже пришли к чему-то подобному, просто добавив несколько архитектурных приемов поверх FSD, не переизобретая архитектуру с самого нуля
наши приложения имеет три глобальных слоя, с однонаправленными зависимостями, которые придерживаются принципа Relaxed Layered System
-
app/(Инфраструктурный слой)-
modules/(Бизнес слой)-
shared/(Переиспользуемый код)каждая директория в
modules/разделена по принципу "изолированных предметных областей" + (привет DDD и его Strategic DDD), в каждом из которых живет FSD (из которого был исключен слойapp/)app/)еще увидел, что вы остались на File-based Routing, что имеет ряд своих преимущество, но т.к. мы пошли по пути изолированных предметных областей и страницы у нас живут прямо в модулях, мы целиком и полностью перешли на ручное управление роутингом через
router.options.tsкрч у нас получились аля микрофронтенды, запихнутые в модульный монолит, +- тож самое что и у вас
вряд ли сейчас, кто-либо, для больших продакшенов пишет на нативном css без использования транспиляторов
lightningcss
в тг канале NLP Core Team, с челами которые непосредственно занимаются разработкой / обучением моделек в Сбере, в посте от 31 августа говорится о переведенном ими датасете HumanEval
https://t.me/nlpcoreteam/53
на Земле хакал крупнейшие компании мира, на небесах будет хакать самого Господа Бога
F