Как стать автором
Обновить
  • по релевантности
  • по времени
  • по рейтингу

Архитектурные инструменты в Visual Studio 2010

Visual Studio *
Перевод


Разработка нового функционала для существующего приложения может озадачить любого, поскольку всегда есть различие между изначальным дизайном и текущей реализацией.

Новые архитектурные инструменты в Visual Studio Team System 2010 помогут вам понять имеющееся приложение, спроектировать необходимую вам новую функциональность и проверить что ваша реализация соответствует вашему дизайну.

Читать дальше →
Всего голосов 72: ↑52 и ↓20 +32
Просмотры 22K
Комментарии 20

Архитектура клиентского приложения на ExtJS. Часть 1

Библиотека ExtJS/Sencha *
ExtJS
Самое сложное в любой работе — это начать её. Итак, с чего же начать наше огромное клиентское приложение? В этой части я расскажу с чего начать и затрону три темы: Как организовать код, Что такое фасад, как его построить, что такое компоненты (и, конечно, как их начать писать).
Читать дальше →
Всего голосов 44: ↑34 и ↓10 +24
Просмотры 5.5K
Комментарии 28

Архитектура клиентского приложения на ExtJS. Часть 2

Библиотека ExtJS/Sencha *
ExtJS
В предыдущей статье мы затронули такие темы: как организовать код, что такое фасад, как его построить и что такое компоненты.
В этой мы коснёмся трёх вещей: продолжим наш разговор об архитектуре компонент, узнаем, что такое плагины и как они помогают в архитектуре, а также, как итог, я дам несколько советов.
Читать дальше →
Всего голосов 31: ↑25 и ↓6 +19
Просмотры 6.8K
Комментарии 25

Архитектура ExtJS приложений: подход со стороны Zend Framework

Библиотека ExtJS/Sencha *
В дополнение статей oddy про архитектуру RIA-приложений на основе ExtJS хочу предложить свой, альтернативный подход к данной проблеме. Он состоит в использовании ZendFramework-подобного каркаса xFrame, написанного на JavaScript. Под катом — описание ключевых элементов системы, ссылки на демо приложение и исходный код.
Читать дальше →
Всего голосов 23: ↑21 и ↓2 +19
Просмотры 3.4K
Комментарии 12

Способы передачи управления между программными объектами

Разработка веб-сайтов *
Из песочницы
Программные объекты — это обыкновенные классы из ООП. Под взаимодействием программных объектов я буду подразумевать передачу управления из одного класса в другой.
Это можно сделать двумя способами. Далее я буду называть их: объектный и событийный. Названия взяты из объектно-событийной парадигмы, подразумевающей наличие объектов, запускающих и обрабатывающих какие-то события. Но в моем случае, смысл другой. Так же, чтобы не путаться, назовем первый класс, из которого управления передается управляющим, второй класс, принимающий управление, соответственно, исполнителем.
Читать дальше →
Всего голосов 26: ↑22 и ↓4 +18
Просмотры 6.2K
Комментарии 8

Ведение периодических сведений в информационных системах

Блог компании БАРС Груп
Все разработчики информационных систем сталкиваются с периодической информацией, т.е. данными изменяющимися во времени. Например:
— Цены на товары
— Курсы валют
— Должности
и т.п. Также, одна периодическая информация меняется часто, другая — редко. К редко меняющейся информации можно отнести, например:
— Фамилия и имя
— Адрес проживания
— Статус семьи
Так вот, в большинстве случаев, нет необходимости хранить историю изменения этой редко меняющейся информации, т.к. никто и никогда не будет строить отчет задним числом, чтобы в нем отображалась эта информация, действующая на дату отчета.
В таких случаях достаточно хранить просто факт изменения информации, предыдущее значение и дату изменения — это понадобиться в самых редких случаях.

Дальше пойдет разговор о способе хранения периодической информации в реляционной базе данных для случаев, когда такие отчеты заведомо нужны в системе и они требуют получения актуальных данных на определенную дату.
Читать дальше →
Всего голосов 25: ↑20 и ↓5 +15
Просмотры 5.8K
Комментарии 27

Разработка архитектуры вашего приложения в Ext JS 4

JavaScript *
Перевод
Масштабируемость, удобство обслуживания и гибкость приложений во многом определяются качеством архитектуры приложения. К сожалению, архитектуру приложения часто относят к второстепенным факторам. Концепты и прототипы превращаются в массовые приложения, а примеры кода копируются и вставляются «как есть» в фундамент многих приложений. Вы можете захотеть двинуться лёгким путём из-за быстрого прогресса, который вы видите в начале проекта.
Читать дальше →
Всего голосов 47: ↑41 и ↓6 +35
Просмотры 3.5K
Комментарии 30

Базовая архитектура веб-приложения на Backbone.js

JavaScript *
Разработчики часто просят рассказать о моём опыте использования Backbone.
Многие слышали об этом MVC-фреймворке, смотрели примеры и документацию, но не решаются начать с ним работать. Поэтому вчера я сделал мини-доклад на встрече MoscowJS, призванный рассказать о том, как мы построили базовую архитектуру и какие получили плюсы. И сегодня в этой статье я публикую слайды, схемы и краткое описание.


Читать дальше →
Всего голосов 88: ↑82 и ↓6 +76
Просмотры 21K
Комментарии 33

Идеальная архитектура

Проектирование и рефакторинг *
Существует много разных взглядов на разработку архитектуры и дизайна современных приложений. Некоторые архитекторы стремятся продумать все до мелочей, разрисовать use case-ы всех классов и модулей, проанализировать миллион возможных способов их использования, все их обязательно задокументировать и уже потом приступить к этапу кодирования.

Другие, наоборот, считают, что «думать уже поздно» и давным-давно пора «делать», поэтому они кидаются на баррикады с криками «Ура», выдавая на гора тонны никому не нужного кода. Как и любая крайность, такой подход не приводит ни к чему хорошему. Но, как и во многих других случаях, существует промежуточный вариант, когда проектированию и архитектуре уделяется должное внимание, когда они не ставятся во главу угла, а используются для выявления правильных абстракций и поиска компромиссов в противоречивых требованиях заказчика.

Читать дальше →
Всего голосов 61: ↑50 и ↓11 +39
Просмотры 51K
Комментарии 22

Архитектура логирования

.NET *
Из песочницы
Мой опыт разработки в основном строится вокруг разнообразных сетевых cервисов под Windows и Linux. Я обычно стремлюсь добиться максимальной кроссплатформенности вплоть до бинарной совместимости. И конечно, накопилось некоторое количество стабильных решений связанных с логированием.

Топик написан как продолжение к этой статье и будет полезен в первую очередь начинающим программистам.

Здесь я собираюсь осветить следующие вопросы:
  • Внутреннее свойство логгера и примеры софта который его использует.
  • Объемы, уровни и детализация сообщений лога.
  • Общие правила конфигурации в разработке, в бою и в расследовании.

Читать дальше →
Всего голосов 33: ↑29 и ↓4 +25
Просмотры 94K
Комментарии 18

Отказ от использования CMS при проектировании веб-приложений

Проектирование и рефакторинг *
Уже довольно давно решая задачи проектирования веб-приложений, или веб-ресурсов я использую подход при котором проектирую логику работы исходя из предметной области к которой будет относится веб-приложение. Этот подход ни разу меня не подводил, и зачастую результат работы всегда меня удовлетворял (насколько вообще результат работы может удовлетворять — ведь всегда кажется, что можно сделать еще чуть чуть лучше, и процесс улучшения может быть бесконечным). Однако иногда среди коллег мне приходится встречать мнение, что проектирование с использованием CMS гораздо эффективнее. После последней такой беседы я решил написать статью и поделится своими мыслями с хабра-сообществом.

Я постарался описать оба подхода проектирования и как можно шире раскрыть тот подход, который использую сам.

Этой статьей я не пытаюсь доказать что использование CMS не эффективно. Оно эффективно, но по моему мнению только тогда, когда в будущий ресурс новый функционал вносить не предполагается. И когда изначальный функционал не выходит за пределы «сайта-визитки» (хотя и «визитка» порой может быть достаточно технологичной и требовать для реализации того, чего с ограниченными возможностями CMS добиться достаточно трудоемко).

Читать дальше →
Всего голосов 80: ↑60 и ↓20 +40
Просмотры 16K
Комментарии 168

Архитектура Android-приложений. Часть I — истоки

Разработка под Android *
Перевод
В этой статье мы рассмотрим архитектуру Android-приложений.

Откровенно говоря, официальную статью Google по этой теме я считаю не очень полезной. Детально отвечая на вопрос «как», она совсем не объясняет «что» и «почему». Итак, вот моя версия, и, я надеюсь, она внесёт некоторую ясность. Да, кстати, я полностью одобряю чтение статей Google, поскольку они содержат полезную информацию, повторять которую я не собираюсь.
Читать дальше →
Всего голосов 86: ↑80 и ↓6 +74
Просмотры 105K
Комментарии 53

Архитектура Android-приложений. Часть II — архитектурные стили и шаблоны

Разработка под Android *
Перевод
В этой статье мы поговорим об архитектурных шаблонах, используемых в Android-приложениях.

Почему важно понимание шаблонов, реализованных в рамках некой архитектуры? Потому что таким образом изучаемая нами новая архитектура укладывается в контекст нашего предыдущего опыта и позволяет нам более эффективно использовать накопленные знания и навыки.

Возможно, я плохо искал, но в документации Android нет упоминания о каких-либо шаблонах. Не смотря на это, в Android реализованы некоторые шаблоны и архитектурные стили, о которых мы сейчас и поговорим.
Читать дальше →
Всего голосов 68: ↑58 и ↓10 +48
Просмотры 41K
Комментарии 12

Архитектура Android-приложений. Часть III — основные части приложения

Разработка под Android *
Перевод
Итак, мы уже говорили о происхождении архитектуры ОС Android и о шаблонах, реализованных в этой архитектуре. Теперь настала пора поговорить о том, из чего состоит Android-приложение.

В этой статье будут представлены основные «персонажи» архитектуры Android-приложения.
Читать дальше →
Всего голосов 58: ↑54 и ↓4 +50
Просмотры 62K
Комментарии 7

Архитектура Android-приложений. Часть IV — интеграционный уровень

Разработка под Android *
Перевод
В этой статье мы поговорим о различных механизмах, посредством которых взаимодействуют части Android-приложений. Условимся называть все эти механизмы «уровнем взаимодействия» (насколько мне известно, в документации Android нет специального термина для этого).
Читать дальше →
Всего голосов 43: ↑39 и ↓4 +35
Просмотры 32K
Комментарии 5

Android UI thread

Разработка под Android *
Большая часть кода Android приложения работает в контексте компонент, таких как Activity, Service, ContentProvider или BroadcastReceiver. Рассмотрим, как в системе Android организованно взаимодействие этих компонент с потоками.
Читать дальше →
Всего голосов 36: ↑30 и ↓6 +24
Просмотры 64K
Комментарии 16

Автоматический контроль архитектуры в Visual Studio

Анализ и проектирование систем *Visual Studio *
Tutorial

Как вы не знаю, но я себя на этой картинке узнал. Ведь, согласитесь, когда проектируется архитектура приложения, все красиво, логично и соответствует лучшим мировым практикам. Но в процессе работы, сталкиваясь с ограничениями предъявляемыми архитектурой, мы зачастую думаем: «Вот здесь немножко нарушу, это ведь сэкономит мне час времени разработки. Ну а потом, как будет время, поправлю». Но, почему-то, это время так никогда и не наступает. На мой взгляд, единственным способом заставить себя, как программиста, следовать разработанной архитектуре, это научить среду разработки все отклонения и костыли показывать как ошибки компиляции. В этом случае, если код плох, он сразу будет исправлен, ну а если архитектура устарела, то будет исправлена она. Т.е. в хранилище кода всегда будет код соответствующей запланированной архитектуре.
Пара слов, о том, что будет подкатом:
1. Небольшая преамбула.
2. Восстановление архитектуры по имеющемуся проекту.
3. Настройка Visual Studio и TFS для автоматического контроля архитектуры.
Под катом много картинок и желание все описанное попробовать.
Читать дальше →
Всего голосов 48: ↑37 и ↓11 +26
Просмотры 8.4K
Комментарии 9

Практическое метаметамоделирование

Анализ и проектирование систем *
Декларативный подход и MDA ахритектура имеют целый ряд преимуществ, позволяющих существенно сократить издержки на разработку и поддержку информационных систем (ИС: CRM, WMS, Project Management, etc). Этот подход уже используется в ряде продуктов (таких как 1С, например). Тем не менее, декларативный подход в них используется для решения слишком узкого круга задач. В этой статье мы рассмотрим преимущества декларативного подхода, покажем как можно значительно расширить область его применения в построении ИС, проверим построенную модель на реальных задачах и продемонстрируем работу прототипа.

Моя бакалаврская и магистерская были связаны с MDA, а применением этих идей  к построению информационных систем мы с бывшим одногруппником занимаемся уже год. Мы не представляем никакой коммерческий продукт, все что мы сделали/придумали, разрабатывалось «на коленках» в свободное от работы время.

Наши идеи могут быть применены, как в сложных конструкторах информационных систем (таких как 1С), так и в веб-фреймворках (Django, RoR). Интересно узнать ваше мнение и замечания. Кроме того, мы ищем фирмы, которых заинтересует сотрудничество с целью использования наших наработок в своих продуктах.
Читать дальше →
Всего голосов 5: ↑4 и ↓1 +3
Просмотры 4.3K
Комментарии 13

Несколько советов по архитектуре мобильного приложения, активно использующего сеть. Часть 1

Разработка под iOS *Разработка под Android *
Из песочницы
Добрый день, хаброжители!
Сейчас все мобильные приложения(за очень редким исключением) используют сеть: для авторизации, получения/отправки данных и т.д.
Свой опыт на эту тему я решил собрать в статье.
Работа с сетью в стандартном приложении сводится к решению нескольких задач:
  • авторизация
  • запрос и отправка данных
  • хранение данных
  • работа с картинками

Читать дальше →
Всего голосов 19: ↑12 и ↓7 +5
Просмотры 3.9K
Комментарии 11

Архитектура приложений: взгляд ASP.NET MVC программиста

Разработка веб-сайтов *.NET *
Из песочницы
Всем привет. Несколько месяцев назад меня мучил вопрос о том, как правильно спроектировать свое приложение, чтобы потом не было противно смотреть в свой код. Тогда я решил покопаться в этом вопросе и после целого дня поиска я всё осознал. Решил наконец, поделиться своими знаниями, возможно они помогут кому-то, а может и нет. В общем читайте.

Всякие аббревиатурки

• Слой доступа к данным или DAL
Получает или изменяет данные напрямую из БД или посредством ORM. Данные фильтруются, но никак не обрабатываются. Также возможно получение данных из других источников, например через парсинг страниц.
• Бизнес слой или BLL
Работает с данными посредством DAL. Данные обрабатываются и приводятся к нужному виду. Это самый интересный слой. Здесь происходит вся логика приложения.
• Слой сервисов или SL
Этот слой встречается только в крупных приложениях. По сути это API интерфейс для доступа к приложению с других приложений. Этот слой не будет описываться, из-за моей крайней неосведомленности в этой области.
• Слой представления или PL
Собственно слой представления данных. Перерабатывает данные из BLL в нужные для представления сущности.
Читать дальше →
Всего голосов 16: ↑5 и ↓11 -6
Просмотры 6.4K
Комментарии 30