[{"data":1,"prerenderedAt":150},["ShallowReactive",2],{"$fgd75q5c6I23sLkkvXDmxDmr6peTuSc_ZQfNg6jIrS14":3},{"article":4,"similarArticles":16,"tagCounts":147},{"slug":5,"content":6,"notes":7,"groupedNotes":8,"title":9,"date":10,"description":11,"tags":12,"author":15},"stemmler-khalil-client-side-architecture-basics-i","\u003Cp>Данная статья представляет собой введение в основы архитектуры на стороне клиента, в которой автор рассматривает проблемы существующих подходов и предлагает пути их решения.\u003C\u002Fp>\n\u003Ch4 id=\"проблема-современных-стандартов-mvc-и-mvp\">Проблема современных стандартов (MVC и MVP)\u003C\u002Fh4>\n\u003Cp>Большинство разработчиков знакомы с паттерном \u003Cstrong>Model-View-Controller (MVC)\u003C\u002Fstrong>, который разделяет приложение на данные\u002Fлогику (модель), представление (вид) и обработку событий (контроллер). Для клиентских приложений часто используется его производная — \u003Cstrong>Model-View-Presenter (MVP)\u003C\u002Fstrong>, где вид создает события, которые обновляют модель, а модель, в свою очередь, обновляет вид.\u003C\u002Fp>\n\u003Cp>Основная проблема этих паттернов заключается в том, что они \u003Cstrong>слишком универсальны\u003C\u002Fstrong>. В них \u003Cstrong>компонент «Модель» (M) перегружен обязанностями\u003C\u002Fstrong>, что создает неопределенность: разработчики часто не знают, какой инструмент за какую задачу отвечает.\u003C\u002Fp>\n\u003Ch4 id=\"задачи-модели-в-клиентских-приложениях\">Задачи «Модели» в клиентских приложениях\u003C\u002Fh4>\n\u003Cp>В современных веб-приложениях «модель» выполняет множество функций:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Управление состоянием:\u003C\u002Fstrong> получение, обновление и реактивность данных.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Сетевое взаимодействие:\u003C\u002Fstrong> запросы к API, обработка ответов, индикация загрузки и ошибок, а также оптимистичные обновления.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Поведение модели (логика):\u003C\u002Fstrong>\n\u003Cul>\n\u003Cli>\u003Cstrong>Логика взаимодействия (прикладная):\u003C\u002Fstrong> реакция на действия пользователя (например, валидация перед отправкой API-вызова).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Доменная логика:\u003C\u002Fstrong> правила, не зависящие от самого приложения, а проистекающие из предметной области (например, правила хода шахматных фигур).\u003C\u002Fli>\n\u003C\u002Ful>\n\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Аутентификация и авторизация:\u003C\u002Fstrong> проверка прав доступа как в представлении, так и на уровне логики взаимодействия.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4 id=\"необходимость-общего-языка\">Необходимость общего языка\u003C\u002Fh4>\n\u003Cp>Несмотря на обилие инструментов (React hooks, Redux, Apollo Client и др.), разработчикам не хватает \u003Cstrong>общего языка\u003C\u002Fstrong> для описания архитектурных концепций. Наличие такого понимания позволило бы лучше проектировать приложения, четко распределять задачи между инструментами и избегать глубокого проникновения одной проблемы в другую.\u003C\u002Fp>\n\u003Ch4 id=\"решение-уроки-бэкенд-разработки\">Решение: уроки бэкенд-разработки\u003C\u002Fh4>\n\u003Cp>Автор отмечает, что проблемы «размытой модели» уже решались в бэкенд-разработке на протяжении последних 30 лет. Когда стандартного MVC стало недостаточно, разработчики перешли к более продвинутым архитектурам, таким как \u003Cstrong>Чистая архитектура (Clean Architecture)\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>Ключевой принцип здесь — \u003Cstrong>разделение модели на слои\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Cstrong>Доменный слой (Domain):\u003C\u002Fstrong> чистая бизнес-логика.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Прикладной слой (Application):\u003C\u002Fstrong> логика конкретного приложения.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Инфраструктурный слой (Infrastructure) \u002F Адаптеры:\u003C\u002Fstrong> интеграция внешних зависимостей (API, базы данных, кеши), которые должны быть отделены от ядра приложения.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4 id=\"цели-клиентской-архитектуры\">Цели клиентской архитектуры\u003C\u002Fh4>\n\u003Cp>Архитектура — это не просто организация файлов, а способ написания \u003Cstrong>тестируемого, гибкого и поддерживаемого кода\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Тестируемость:\u003C\u002Fstrong> Четкое разделение ответственности позволяет писать \u003Cstrong>юнит-тесты\u003C\u002Fstrong> для сложной логики (например, шахматных правил), в то время как простые CRUD-приложения могут ограничиваться интеграционными тестами.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Гибкость:\u003C\u002Fstrong> Возможность легко заменять компоненты представления или изменять поведение модели (например, подменять реальный API на мок-объекты для тестов).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Поддерживаемость:\u003C\u002Fstrong> Баланс между строгой структурой и удобством разработки (Developer Experience). Слишком жесткие правила могут снизить скорость работы, но отсутствие структуры мешает развитию приложения в долгосрочной перспективе.\u003C\u002Fli>\n\u003C\u002Ful>",[],{},"Client-Side Architecture Basics: I. Architecture (2020)","2026-07-22","Проблемы MVC и MVP во фронтенде и путь к клиентской архитектуре — разделение домена, приложения и инфраструктуры.",[13,14],"Frontend","Программирование","Stemmler, Khalil",[17,23,30,35,43,49,55,62,68,78,83,88,94,99,107,113,120,127,133,141],{"slug":18,"title":19,"date":10,"author":20,"tags":21,"searchText":22},"mdn-contributors-css-performance-optimization-2025","CSS performance optimization (2025)","MDN Contributors",[13,14],"css performance optimization (2025) оптимизация css для быстрого рендера — блокировка отрисовки, reflow, анимации на gpu, шрифты и css containment. mdn contributors frontend программирование",{"slug":24,"title":25,"date":10,"author":26,"tags":27,"searchText":29},"simpson-kyle-you-don-t-know-js-async-performance-2015","You Don't Know JS: Async &#x26; Performance (2015)","Simpson, Kyle",[28,13,14],"Javascript","you don't know js: async & performance (2015) асинхронность и производительность в javascript — событийный цикл, промисы, генераторы, web workers и практики бенчмаркинга. simpson, kyle javascript frontend программирование",{"slug":31,"title":32,"date":10,"author":15,"tags":33,"searchText":34},"stemmler-khalil-client-side-architecture-basics-ii","Client-Side Architecture Basics: II. Principles (2020)",[13,14],"client-side architecture basics: ii. principles (2020) принципы cqs и разделения ответственности для фронтенда — чтение и запись, вертикальные срезы и выбор инструментов. stemmler, khalil frontend программирование",{"slug":36,"title":37,"date":38,"author":39,"tags":40,"searchText":42},"notashelf-taste-is-all-that-s-left-2026","Taste Is All That's Left (2026)","2026-08-10","notashelf",[41,14],"AI","taste is all that's left (2026) когда генеративный ии обнуляет стоимость воплощения, вкус остаётся единственным дефицитом — трение ученичества, кураторство и отказ от «slop». notashelf ai программирование",{"slug":44,"title":45,"date":10,"author":46,"tags":47,"searchText":48},"brooks-frederick-p-jr-the-mythical-man-month-essays-on","The Mythical Man-Month: Essays on Software Engineering (1995)","Brooks, Frederick P., Jr.",[14],"the mythical man-month: essays on software engineering (1995) классика управления разработкой — мифический человеко-месяц, хирургические бригады, концептуальная целостность и отсутствие серебряной пули. brooks, frederick p., jr. программирование",{"slug":50,"title":51,"date":10,"author":52,"tags":53,"searchText":54},"spolsky-joel-the-law-of-leaky-abstractions-2002","The Law of Leaky Abstractions (2002)","Spolsky, Joel",[14],"the law of leaky abstractions (2002) закон дырявых абстракций — почему любое упрощение в программировании рано или поздно просачивается и не освобождает от изучения основ. spolsky, joel программирование",{"slug":56,"title":57,"date":58,"author":59,"tags":60,"searchText":61},"kholmatova-alla-design-systems-a-practical-guide-to","Design Systems: A practical guide to creating design languages for digital products","2026-07-16","Kholmatova, Alla",[14],"design systems: a practical guide to creating design languages for digital products практическое руководство по созданию и поддержке дизайн-систем для цифровых продуктов — от теоретических основ к процессам. kholmatova, alla программирование",{"slug":63,"title":64,"date":58,"author":65,"tags":66,"searchText":67},"martin-robert-c-clean-code-a-handbook-of-agile-software","Clean Code: A Handbook of Agile Software Craftsmanship (2025)","Martin, Robert C.",[14],"clean code: a handbook of agile software craftsmanship (2025) практическое руководство по ремеслу разработки: читаемый код, рефакторинг и дисциплины тестирования в agile-среде. martin, robert c. программирование",{"slug":69,"title":70,"date":71,"author":72,"tags":73,"searchText":77},"frothingham-a-l-kniga-ierofeya-stefana-bar-sudaili-i","Оригенизм и «Книга Иерофея» Стефана бар Судаили и оригенизм (из Frothingham, 1886)","2026-09-27","Frothingham, A. L.",[74,75,76],"Ориген","Сирия","Ареопагит","оригенизм и «книга иерофея» стефана бар судаили и оригенизм (из frothingham, 1886) связь «книги иерофея» с оригенистским возрождением vi века: параллели в доктрине апокатастасиса и сирийском мистическом пантеизме. frothingham, a. l. ориген сирия ареопагит",{"slug":79,"title":80,"date":71,"author":72,"tags":81,"searchText":82},"frothingham-a-l-kniga-svyatogo-ierofeya-o-sokrovennykh","Книга святого Иерофея о сокровенных тайнах Божества (конспект из Frothingham, 1886)",[75,74,76],"книга святого иерофея о сокровенных тайнах божества (конспект из frothingham, 1886) конспект сирийского трактата стефана бар судаили: происхождение мира, восхождение ума, отождествление со христом и апокатастический финал. frothingham, a. l. сирия ориген ареопагит",{"slug":84,"title":85,"date":71,"author":72,"tags":86,"searchText":87},"frothingham-a-l-stephen-bar-sudaili-the-syrian-mystic-and","Stephen bar Sudaili the Syrian Mystic, and the Book of Hierotheos (1886)",[75,76,74],"stephen bar sudaili the syrian mystic, and the book of hierotheos (1886) филологическое и богословское исследование «книги иерофея» как псевдоэпиграфа стефана бар судаили и проблемы корпуса псевдо-дионисия. frothingham, a. l. сирия ареопагит ориген",{"slug":89,"title":90,"date":71,"author":91,"tags":92,"searchText":93},"guillaumont-antoine-bogoslovsko-kosmologicheskaya-sistema","Богословско-космологическая система «Képhalaia gnostica» в контексте оригенизма IV века (из Guillaumont, 1962)","Guillaumont, Antoine",[74,75],"богословско-космологическая система «képhalaia gnostica» в контексте оригенизма iv века (из guillaumont, 1962) протология и космология «гностических глав» евагрия: хенада разумных духов, «первое движение» и место трактата в оригенизме iv века. guillaumont, antoine ориген сирия",{"slug":95,"title":96,"date":71,"author":91,"tags":97,"searchText":98},"guillaumont-antoine-les-kephalaia-gnostica-d-evagre-le","Les «Képhalaia gnostica» d’Évagre le Pontique et l’histoire de l’origénisme chez les Grecs et chez les Syriens (1962)",[74,75],"les «képhalaia gnostica» d’évagre le pontique et l’histoire de l’origénisme chez les grecs et chez les syriens (1962) монография о «гностических главах» евагрия и оригенистских спорах iv–vi веков; открытие нецензурированной сирийской версии s2. guillaumont, antoine ориген сирия",{"slug":100,"title":101,"date":71,"author":102,"tags":103,"searchText":106},"levy-oscar-prefatory-letter-to-the-world-significance-of","Prefatory Letter to The World Significance of the Russian Revolution (1920)","Levy, Oscar",[104,105],"Политика","История","prefatory letter to the world significance of the russian revolution (1920) философско-исторический разбор победы большевизма: еврейский идеализм, либеральная демократия и мессианские ожидания в контексте революции 1917 года. levy, oscar политика история",{"slug":108,"title":109,"date":71,"author":102,"tags":110,"searchText":112},"levy-oscar-the-idiocy-of-idealism-1940","The Idiocy of Idealism (1940)",[111,104],"Ницше","the idiocy of idealism (1940) памфлет леви о кризисе европы: ницшеанская критика идеализма и попытка объяснить нацизм и большевизм через моральные и религиозные идеи. levy, oscar ницше политика",{"slug":114,"title":115,"date":71,"author":116,"tags":117,"searchText":119},"limonov-eduard-distsiplinarnyi-sanatorii-1993","«Дисциплинарный санаторий» (1993)","Лимonov, Эдуард",[118],"Литература","«дисциплинарный санаторий» (1993) социально-философское эссе о «санатории» постиндустриального общества: смена прямого насилия мягким контролем, медиакратия и инфантилизация масс. лимonov, эдуард литература",{"slug":121,"title":122,"date":71,"author":123,"tags":124,"searchText":126},"louth-andrew-the-reception-of-dionysius-up-to-maximus-the","The Reception of Dionysius up to Maximus the Confessor (2008)","Louth, Andrew",[76,125],"Христианство","the reception of dionysius up to maximus the confessor (2008) ранний приём псевдо-дионисиевского корпуса в византийской традиции до максима исповедника: переводы, комментарии и богословские адаптации. louth, andrew ареопагит христианство",{"slug":128,"title":129,"date":71,"author":130,"tags":131,"searchText":132},"malone-alice-elisabeth-s-nietzsche-2024","Elisabeth’s Nietzsche (2024)","Malone, Alice",[111],"elisabeth’s nietzsche (2024) критика мифа «заговора элизабет»: сравнение её правок с прижизненными текстами и переоценка ответственности самого ницше за расистскую рецепцию. malone, alice ницше",{"slug":134,"title":135,"date":71,"author":136,"tags":137,"searchText":140},"obraz-boga-v-gimne-kleanfa","Образ Бога в гимне Клеанфа","Claude",[138,139],"Теология","Стоицизм","образ бога в гимне клеанфа богословский разбор гимна клеанфа: зевс как κοινὸς λόγος, имманентная царственность, провидение и этика участия в общем νόμος. claude теология стоицизм",{"slug":142,"title":143,"date":71,"author":144,"tags":145,"searchText":146},"ramelli-ilaria-the-christian-doctrine-of-apokatastasis-a","The Christian Doctrine of Apokatastasis. A Critical Assessment from the New Testament to Eriugena (2013)","Ramelli, Ilaria",[74,125,76],"the christian doctrine of apokatastasis. a critical assessment from the new testament to eriugena (2013) систематическая реконструкция христианского учения об апокатастасисе от новозаветных текстов до иоанна скота эриугены. ramelli, ilaria ориген христианство ареопагит",{"Frontend":148,"Программирование":149},4,9,1790540349730]