
Занимаясь проектами связанными с веб-разработкой я сталкивался с различными вариантами реализации подержки нескольких языков для сайтов, порталов и веб приложений. Здесь я описал базовые варианты реализации архитектуры БД, которые мне встречались чаще всего.
Думаю для новыичков в веб-разработке эта статья окажется полезной, а тех кто уже имет опыт построения мультиязычных систем приглашаю для обсуждения тех вариантов, которые вы предпочитаете.
Читать полностью »
Рубрика «архитектура приложений» - 14
Поддержка мультиязычности в веб-проектах — базовые варианты реализации
2013-09-02 в 19:08, admin, рубрики: архитектура приложений, Веб-разработка, локализация, мультиязычность, проектирование базы данных, Проектирование и рефакторинг, метки: архитектура приложений, локализация, мультиязычность, проектирование базы данныхАрхитектура высоконагруженных приложений. Масштабирование распределенных систем. Часть первая
2013-07-02 в 8:40, admin, рубрики: badoo, nginx, php, php-fpm, pinba, web-разработка, архитектура приложений, баду, Блог компании Badoo, бэкап, Веб-разработка, высокие нагрузки, Программирование, метки: badoo, nginx, PHP, php-fpm, pinba, web-разработка, архитектура приложений, баду, бэкап, высокие нагрузки
Некоторое время назад зам.главы московского офиса разработки Badoo Алексей Рыбак и ведущие IT-Компот записали выпуск подкаста «Архитектура высоконагруженных приложений. Масштабирование распределенных систем".
Сейчас мы сделали расшифровку подкаста, привели ее в удобный для чтения вид и разбили на 2 части.
О чем говорили в первой части:
- Общая информация о проекте Badoo: стек технологий, характер и объем нагрузки, посещаемость.
- Горизонтальное масштабирование проекта:
— веб-сервера, кеширование, мониторинг etc;
— подводные камни при масштабировании проекта;
— масштабирование баз данных, как правильно делать шардинг.
Создание огроооомных приложений на AngularJS
2013-06-08 в 5:06, admin, рубрики: AngularJS, javascript, архитектура приложений, Веб-разработка, фреймфоркДокументация AngularJS отлично подходит для начала работы и ковыряния в API. Однако, она не объясняет как организовать и управлять приложением, когда оно разрастется до десятков или сотен тысяч строк кода. Я собрал здесь некоторые из моих наблюдений и передового опыта по управлению расползающимися приложениями. Сначала взглянем на организацию, затем перейдем к некоторым советам по улучшению производительности и закончим краткой сводкой по инструментам, серверам и процессу сборки. Этот пост будет сосредоточен на больших приложениях, в частности, есть отличная статья по лучшим практикам AngularJS с декабрьской встречи, на которую также стоит взглянуть.Читать полностью »
Новое приложение Yii в один clone. YiiBoilerplate
2013-05-23 в 14:56, admin, рубрики: php, yii, yii framework, архитектура приложений, метки: PHP, yii framework, архитектура приложений
Я думаю, что у любой команды или самостоятельного разработчика на определенном этапе работы формируется некая базовая архитектура приложения, с которой ему или им удобно работать и которую можно перекидывать из проекта в проект. Мне в свое время на глаза попалось архитектурное решение команды CleverTech под названием YiiBoilerplate. Поскольку я не нашел публикаций на хабре по этой теме, предлагаю небольшой пост.
Вкратце особенности данного шаблона:
- админка и Frontend реализованы в качестве полноценных приложений
- общие настройки, модели и компоненты для Backend и Frontend можно хранить в одном месте
- есть возможность переключения между настройками для Dev и Prod одной строчкой в командной строке
Под катом основная соль данного решения. Текста немного. Предлагаю обсудить иные решения и поделиться собственным опытом по теме архитектуры приложений Yii в комментариях.
Читать полностью »
«А что если», Event Sourcing
2013-04-28 в 18:50, admin, рубрики: .net, event sourcing, архитектура приложений, Программирование, метки: event sourcing, архитектура приложений Наверное, про Event Sourcing слышал каждый, кто хоть раз пересекался с темой CQRS и DDD. Это подход хранения данных, при котором вместо конечного результата храниться череда записей о событиях происшедших с некоторой сущностью. На сайте Мартина Фаулера есть подробное описание, а мы же остановимся на фундаменте, основных «печенюшках», а также проблемах в его применении.
Читать полностью »
Есть ли будущее за компонентной архитектурой?
2013-02-25 в 9:51, admin, рубрики: java, архитектура приложений, компоненты, Проектирование и рефакторинг, слабое связывание, метки: архитектура приложений, компоненты, слабое связывание 
Компонентные фреймворки позволяют быстро стоить приложения, используя готовые строительные блоки — компоненты. Они позволяют быстро строить приложения малой и средней сложности, но при этом очень сложно создавать большие, гибкие и настраиваемые приложения. Также по мере развития приложения его всё труднее и труднее адаптировать под новые требования клиентов. Задача этой статьи выяснить причины этих проблем и найти подходящее решение.
Читать полностью »
Иерархия принципов проектирования, или самые важные слова для инженеров
2013-02-21 в 21:36, admin, рубрики: domain-driven design, solid, test-driven development, архитектура приложений, ооп, Проектирование и рефакторинг, разработка, шаблоны проектирования, метки: domain-driven design, solid, test-driven development, архитектура приложений, ооп, шаблоны проектирования В этой короткой заметке я хотел бы систематизировать (а именно, расположить в иерархию) многие популярные принципы проектирования программных приложений (test-driven development, ООП, SOLID и т. д.), а также рассмотреть следствия из этой иерархии. В частности, такая иерархия (я надеюсь) позволит лучше расставлять приоритеты в разработке и профессиональном росте, лучше понимать старые технологии и быстрее изучать новые. При появлении новой парадигмы разработки (a la test-driven development) вы сможете быстро включить ее в эту иерархию и, следовательно, быстрее понять, из каких принципов исходили создатели парадигмы и как правильно ее использовать. Новичкам в программировании статья может быть полезна как обзор существующих принципов. И в качестве самого базового я полагаю разумным считать принцип «управления сложностью/минимизации технической сложности» МакКоннела. А самыми важными срествами минимизации сложности являются модульность и абстракция.
Читать полностью »
Стратегия кеширования в приложении
2013-02-08 в 6:13, admin, рубрики: архитектура приложений, кеширование, разработка, метки: архитектура приложений, кешированиеКогда заходит разговор о кешировании складывается парадоксальная ситуация. С одной стороны все понимают важность и нужность кеширования в архитектуре приложений. С другой стороны мало кто может внятно объяснить что и как надо кешировать.
Обычно люди сходу начинают предлагать готовые реализации кеша, вроде memcached или HTTP-кеша, но это лишь ответ на вопрос где кешировать.
Кеширование – одна из многих тем, наряду с безопасностью и логированием, о которых знают и говорят все, но мало кто может это сделать правильно.
Читать полностью »
Архитектура приложений: взгляд ASP.NET MVC программиста
2012-10-08 в 12:07, admin, рубрики: .net, asp.net mvc 3, архитектура приложений, Веб-разработка, Песочница, метки: .net, asp.net mvc 3, архитектура приложенийВсем привет. Несколько месяцев назад меня мучил вопрос о том, как правильно спроектировать свое приложение, чтобы потом не было противно смотреть в свой код. Тогда я решил покопаться в этом вопросе и после целого дня поиска я всё осознал. Решил наконец, поделиться своими знаниями, возможно они помогут кому-то, а может и нет. В общем читайте.
Всякие аббревиатурки
• Слой доступа к данным или DAL
Получает или изменяет данные напрямую из БД или посредством ORM. Данные фильтруются, но никак не обрабатываются. Также возможно получение данных из других источников, например через парсинг страниц.
• Бизнес слой или BLL
Работает с данными посредством DAL. Данные обрабатываются и приводятся к нужному виду. Это самый интересный слой. Здесь происходит вся логика приложения.
• Слой сервисов или SL
Этот слой встречается только в крупных приложениях. По сути это API интерфейс для доступа к приложению с других приложений. Этот слой не будет описываться, из-за моей крайней неосведомленности в этой области.
• Слой представления или PL
Собственно слой представления данных. Перерабатывает данные из BLL в нужные для представления сущности.
Читать полностью »
Практическое метаметамоделирование
2012-09-06 в 7:12, admin, рубрики: Анализ и проектирование систем, архитектура приложений, информационные системы, метки: архитектура приложений, информационные системыДекларативный подход и MDA ахритектура имеют целый ряд преимуществ, позволяющих существенно сократить издержки на разработку и поддержку информационных систем (ИС: CRM, WMS, Project Management, etc). Этот подход уже используется в ряде продуктов (таких как 1С, например). Тем не менее, декларативный подход в них используется для решения слишком узкого круга задач. В этой статье мы рассмотрим преимущества декларативного подхода, покажем как можно значительно расширить область его применения в построении ИС, проверим построенную модель на реальных задачах и продемонстрируем работу прототипа.
Моя бакалаврская и магистерская были связаны с MDA, а применением этих идей к построению информационных систем мы с бывшим одногруппником занимаемся уже год. Мы не представляем никакой коммерческий продукт, все что мы сделали/придумали, разрабатывалось «на коленках» в свободное от работы время.
Наши идеи могут быть применены, как в сложных конструкторах информационных систем (таких как 1С), так и в веб-фреймворках (Django, RoR). Интересно узнать ваше мнение и замечания. Кроме того, мы ищем фирмы, которых заинтересует сотрудничество с целью использования наших наработок в своих продуктах.
Читать полностью »
