Козуля рассказывал про фронтэнд Финама.
Стек
Очень core-части пишутся на Java, гоняются в GWT и closure compiler. Потому что кроссплатформенность. Protobuf, TypeScript.
Архитектура
Разбито по модулям: ПАПКА (господи, я же просил) со всем, что относится к модулю (иконки, хелперы, etc).
Сначала пытались класть по src/{components, reducers, actions}, но решили группировать по модулям src/{module}/{reducers components actions helpers}.
Логично — так намного удобнее работать, сам в какой-то момент пришёл к этому.
Нейминг
Сначала было Form, потом SuperFormOfSubmitUserData, но затем из-за модульной архитектуры (см. выше) откатились к Form — когда импортишь форму из какого-то модуля, всё и так семантично становится.
Про архитектуру, pt. 2
В проекте есть куча мапперов, куча форматтеров, коннекторов. Всё в модулях.
Маппер: функция преобразующая одну структуру в другую
Форматтер: форматирует значение по правилам
Коннекторы: HoC, в который пробрасываются данные с сервера. Абстрагирует работу с сервером от рендера
Датафлоу
Источник данных → коннектор → маппер → форматтер → интерфейс. Из интерфейса данные отправляются в источник данных через редакс.
Способы оптимизации рендера
Самые тупые: sCU, PureComponent
Поумнее: recompose, reselect
Если не помогло: выпилить Редакс
Если и это не помогло: выпилить Реакт
Переходите на ХТМЛ! Мораль: Редакс или Реакт не всегда нужны для каких-то вещей, иногда можно тултип сделать через атрибут title.
В Редаксе хранят данные, которые отправят в локалсторейдж, чисто данные. Интерфейсные вещи хранятся в локальном стейте (открыто/закрыто меню, показан тултип, etc).
Лайфсайкл вывода продукта
Выходят много спецпроектов, много релизов, поэтому есть четкий флоу.
1. прототип — create-react-app, все компоненты в одной куче, плюс material-ui
2. релиз — вставляют редакс потому что нужно систематизировать (минутка рекламы: редакс )
3. рефакторинг — бьют на модули, разбивают на подкомпоненты, етц
4. оптимизация — кладут по пакетам бизнес-логику, помогает jFrog Artifactory, самое сложное — ридми и ченджлог
В итоге когда всё в пакетах, то разработка продукта превращается в конфигурацию и шаблон.
Другие посты по теме...
LIFEHACK VIDEO 💡 @LifeHackVideo
Любишь поиграть в казино, но собственные деньги нет желания тратить?💰
Любишь халяву, но не знаешь где её искать?🤔
Подписывайся на канал "BonusHunt" https://t.me/gambling_bonus !
На нём - ежедневная сводка всех...
|
|
Магазин онлайн - скидки, акции @shopru
Квадрат Пифагора: узнай характер по дате рождения.
Эти нехитрые вычисления помогут вам раскрыть характер человека. Для этого нужно узнать дату рождения.
И прочитать продолжение
|
|
Uzbek-MDK @uzmdk
Постановление о свадьбах в Узбекистане с 1 июля: что в нем будет
В Узбекистане с 1 июля может вступить в силу обсуждаемый сейчас проект Постановления, касающийся проведения торжеств. По сообщению членов Сената Олий...
|
|
Mash @breakingmash
Сколько стоит номер в Волгограде на два дня во время ЧМ 2018?
anonymous poll
15000 – 5K
👍👍👍👍👍👍👍 43%
30000 – 5K
👍👍👍👍👍👍👍 41%
5000 – 2K
👍👍👍 16%
👥 12481 people voted so far.
|
|
MDK @mudak
МДКач, у меня важный вопрос: Вы когда-нибудь ебали бабу без сознания?
anonymous poll
Нет – 952
👍👍👍👍👍👍👍 88%
Да – 133
👍 12%
👥 1085 people voted so far.
|