Страница 1 из 2

FAQ по форуму Архитектура приложений

Добавлено: 15 дек 2010, 17:55
andrey.maslov

Re: FAQ по форуму Архитектура приложений

Добавлено: 15 дек 2010, 17:58
andrey.maslov
Паттерны (шаблоны) проектирования

Паттерны проектирования - это описание правильного решения задач проектирования (как правило паттерны создают для часто встречающихся задач).

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


В чем польза опубликованных паттернов:

1. Повторное использование (как и для собственных паттернов).
2. Эффективное решение задачи (признанное экспертами или сообществом).
3. Возможность общаться на языке паттернов. Хотя, ИМХО, это на любителя :)


Комментарии (из серии "без фанатизма"):

1. Повторно используя некий паттерн, иногда полезно задуматься -а стоит ли использовать здесь именно такой подход?
2. Паттерны решают абстрактные задачи. Для конкретной задачи может существовать другое, более эффективное во всех смыслах решение. Скажем так, для большинства ситуаций решение с помощью паттерна или его небольшой адаптации, как правило, эффективнее.
3. Не стоит чрезмерно увлекаться использованием паттернов при обсуждении деталей, особенно если не знаешь наверняка, что собеседник понимает, что значит каждый из них. Это может наоборот привести к непониманию (тем более что есть люди, которые по складу характера будет просто кивать и соглашаться :) ).

Re: FAQ по форуму Архитектура приложений

Добавлено: 15 дек 2010, 17:58
andrey.maslov
Вопрос

Слои, уровни, звенья...Существует ли разница между слоями и уровнями?

Ответ

Многие не делают различий между этими названиями. И оказываются не совсем правы :)

Я придерживаюсь позиции, которую озвучили несколько лет назад на конференции в Москве Стив Шварц и Клеменс Вастерс.

Слой (layer) - это организация по смыслу (или, если хотите, функционалу).

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

Таким образом, можно выделять слои доступа к данным, бизнес логики, представления. А уровни - БД, сервера приложения, клиентский.

При этом, с одной стороны,один слой может быть распределен по нескольким уровням (например, слой представления для ASP.NET приложения относится к уровням и web-сервера и клиента). С другой стороны, несколько слоев могут быть сосредоточены на одном уровне. Например, в некоторых приложениях и бизнес-логика и слой доступа к данным могут располагаться на web-сервере (более того, в рамках одного процесса).

P.S. Термин "звено" я считаю скорее отечественной выдумкой :) Лично я предпочитаю "слои" и "уровни", хотя если кому-то удобнее пользоваться "звеньями"...

Re: FAQ по форуму Архитектура приложений

Добавлено: 15 дек 2010, 18:00
andrey.maslov
Определение архитектуры ПО

Вообще говоря, понятие довольно расплывчатое и обычно каждый трактует его по-своему :)

Варианты определений есть, в частности,в wiki на английском (более подробный) и русском языках.

Re: FAQ по форуму Архитектура приложений

Добавлено: 15 дек 2010, 18:01
andrey.maslov
Мартин Фаулер: Проектирования больше нет?

Очень хорошая статья о разнице между предварительным и эволюционным проектированием, методологии XP и некторых других интересных вещах.

Есть англоязычный и русскоязычный варианты.

Re: FAQ по форуму Архитектура приложений

Добавлено: 15 дек 2010, 18:02
andrey.maslov
Алистер Коуберн: Каждому проекту своя методология

Очень, на мой взгляд, правильная статья о выборе методологии для разработки.

Есть англоязычный и русскоязычный варианты.

Re: FAQ по форуму Архитектура приложений

Добавлено: 15 дек 2010, 18:03
andrey.maslov
Ресурсы от Майкрософт

Ресурсы от Майкрософт, относящиеся к архитектуре приложений и рекомендациям по написанию приложений.

MSDN Solution Architecture Center(RSS)

Microsoft patterns & practices(RSS)

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

Re: FAQ по форуму Архитектура приложений

Добавлено: 15 дек 2010, 18:05
andrey.maslov
Мартин Фаулер

Сайт Мартина Фаулера (Bliki, RSS)

Весьма уважаемый мной автор. Мало того, что его книги и статьи кладезь полезной информации, от чтения многих из них просто получаешь удовольствие :)

Ссылки на книги есть на вышеупомянутом сайте. Здесь приведу ссылки только на те две книги, которые, IMHO, обязательно нужно прочитать всем, кто имеет отношение к разработке ПО:

Refactoring: Improving the Design of Existing Code(Рефакторинг: улучшение существующего кода)

Patterns of Enterprise Application Architecture(Архитектура корпоративных программных приложений)

Re: FAQ по форуму Архитектура приложений

Добавлено: 15 дек 2010, 18:06
andrey.maslov
Вопрос

Ресурсы по паттернам проектирования

Ответ

На ru.wikipedia.org:

Шаблоны проектирования

На dotfactory.com (posted by eisernWolf):

Design Patterns in C# and VB.NET

Re: FAQ по форуму Архитектура приложений

Добавлено: 15 дек 2010, 18:07
andrey.maslov
Рон Джеффриз

Сайт Рона Джеффриза, посвященный методологии XP.

Книга: XP в примерах на C#

Posted by eisernWolf.