какие самые общие рекомендации по построению архитектуры вы можете дать?
От: developer999999  
Дата: 18.03.16 23:47
Оценка:
какие самые общие рекомендации по построению архитектуры вы можете дать?
вне зависимости от платформ, технологий и предметных областей
Re: какие самые общие рекомендации по построению архитектуры вы можете дать?
От: __SPIRIT__ Россия  
Дата: 18.03.16 23:50
Оценка: 3 (1) +1 :)
Здравствуйте, developer999999, Вы писали:

D>какие самые общие рекомендации по построению архитектуры вы можете дать?

D>вне зависимости от платформ, технологий и предметных областей

не стреляй в голову
не ешь каку
задавай правильные вопросы

Еще более общие или достаточно?
Re: какие самые общие рекомендации по построению архитектуры вы можете дать?
От: nigh  
Дата: 19.03.16 00:03
Оценка:
Здравствуйте, developer999999, Вы писали:

D>какие самые общие рекомендации по построению архитектуры вы можете дать?

D>вне зависимости от платформ, технологий и предметных областей

Вообще-то, главное-это гармония
Re: какие самые общие рекомендации по построению архитектуры вы можете дать?
От: velkin Удмуртия http://blogs.rsdn.org/effective/
Дата: 19.03.16 08:19
Оценка:
Здравствуйте, developer999999, Вы писали:

D>какие самые общие рекомендации по построению архитектуры вы можете дать?

D>вне зависимости от платформ, технологий и предметных областей

Образцы проектирования
Re: какие самые общие рекомендации по построению архитектуры вы можете дать?
От: vsb Казахстан  
Дата: 19.03.16 12:26
Оценка: +2
Здравствуйте, developer999999, Вы писали:

D>какие самые общие рекомендации по построению архитектуры вы можете дать?

D>вне зависимости от платформ, технологий и предметных областей

Имхо, все рекомендации идут как два противоположных утверждения, и выбор конкретной стороны или точки между ними зависит от конкретных обстоятельств.
Re: какие самые общие рекомендации по построению архитектуры вы можете дать?
От: Буравчик Россия  
Дата: 20.03.16 14:49
Оценка: 1 (1) +1
Здравствуйте, developer999999, Вы писали:

D>какие самые общие рекомендации по построению архитектуры вы можете дать?

D>вне зависимости от платформ, технологий и предметных областей

Что-то типа такого?
Clean Architecture
Best regards, Буравчик
Re: какие самые общие рекомендации по построению архитектуры вы можете дать?
От: LaptevVV Россия  
Дата: 20.03.16 15:41
Оценка: -2
D>какие самые общие рекомендации по построению архитектуры вы можете дать?
D>вне зависимости от платформ, технологий и предметных областей
Мухи отдельно, котлеты отдельно.
Модель — отдельно, вид — отдельно. Ну, и контроллер — тоже отдельно.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Loose coupling high cohesion
От: ylem  
Дата: 20.03.16 16:01
Оценка:
Loose coupling high cohesion
Re: какие самые общие рекомендации по построению архитектуры вы можете дать?
От: ST1 Россия  
Дата: 20.03.16 18:06
Оценка: +1 -1
Все общее выносить в абстракции, параметризовать все изменчивости, избегать дублирования
Re[2]: какие самые общие рекомендации по построению архитектуры вы можете дать?
От: serrrgi0 Украина  
Дата: 20.03.16 19:06
Оценка: +1 :)
Здравствуйте, LaptevVV, Вы писали:

LVV>Модель — отдельно, вид — отдельно. Ну, и контроллер — тоже отдельно.

И Hello World тоже в MVC?
Re: какие самые общие рекомендации по построению архитектуры
От: Vladek Россия Github
Дата: 21.03.16 01:09
Оценка: :)
Здравствуйте, developer999999, Вы писали:

D>какие самые общие рекомендации по построению архитектуры вы можете дать?

D>вне зависимости от платформ, технологий и предметных областей

Это очень просто, в одной картинке:



Слева — та часть системы, с которой взаимодействует пользователь (веб, телефон, терминал, десктоп, служба), пользовательский интерфейс (UI). Справа — ядро системы, "бизнес-логика". UI общается с ядром через сообщения (RequestModel, ResponseModel), этим и обеспечивается их независимость друг от друга — можно нарисовать UI без ядра и написать ядро без UI. Общение UI и ядра координирует Interactor, умеющий получать запросы от UI и отправлять ответы от ядра — механизмом доставки сообщений заведует Boundary. Так же Interactor умеет пробуждать ядро к жизни с помощью Entity Gateway.

Запросы и ответы всегда двигаются в одну сторону:
Запрос: UI->(Request)->Boundary->Interactor->Entities
Ответ: UI<-Boundary<-(Response)<-Interactor<-Entities

Это всё подробно объясняет Роберт Мартин на Ютубе.
Отредактировано 21.03.2016 1:11 Vladek . Предыдущая версия . Еще …
Отредактировано 21.03.2016 1:10 Vladek . Предыдущая версия .
Re[2]: какие самые общие рекомендации по построению архитектуры вы можете дать?
От: Vladek Россия Github
Дата: 21.03.16 01:15
Оценка: +1 :)
Здравствуйте, LaptevVV, Вы писали:

LVV>Мухи отдельно, котлеты отдельно.

LVV>Модель — отдельно, вид — отдельно. Ну, и контроллер — тоже отдельно.

Молодец! Можешь взять на кассе гамбургер.
Re: какие самые общие рекомендации по построению архитектуры вы можете дать?
От: Cyberax Марс  
Дата: 21.03.16 06:47
Оценка: 8 (3)
Здравствуйте, developer999999, Вы писали:

D>какие самые общие рекомендации по построению архитектуры вы можете дать?

D>вне зависимости от платформ, технологий и предметных областей
1) Single Responsibility Principle везде.
2) Single Responsibility Principle везде.
3) Single Responsibility Principle везде.
4) Стараться НЕ ДЕЛАТЬ абстрактных обобщённых решений. Даже на интерфейсы смотреть аккуратно — почему нужен именно интерфейс, а не класс? Если же возникает необходимость в особых фабриках или стратегиях — внимательно посмотреть на код, не решается ли вся проблема двумя if'ами вместо 5 классов.
Sapienti sat!
Re: какие самые общие рекомендации по построению архитектуры вы можете дать?
От: __kot2  
Дата: 21.03.16 16:29
Оценка: +1 :)
Здравствуйте, developer999999, Вы писали:
D>какие самые общие рекомендации по построению архитектуры вы можете дать?
D>вне зависимости от платформ, технологий и предметных областей
самое главное в архитектуре проекта — это люди, которые ее проектируют
я, например, заметил, что девелоперы, имеющие длинные странные ники из нескольких слов или странных цифр, не могут заниматься проектированием и их нельзя допускать до этого
Re[2]: какие самые общие рекомендации по построению архитектуры вы можете дать?
От: nigh  
Дата: 21.03.16 16:58
Оценка:
Здравствуйте, __kot2, Вы писали:

__>самое главное в архитектуре проекта — это люди, которые ее проектируют

__>я, например, заметил, что девелоперы, имеющие длинные странные ники из нескольких слов или странных цифр, не могут заниматься проектированием и их нельзя допускать до этого

А "2"-это странная цифра?
Автор: nigh
Дата: 21.03.16
Вопрос: __kot2:

"я, например, заметил, что девелоперы, имеющие длинные странные ники из нескольких слов или странных цифр, не могут заниматься проектированием и их нельзя допускать до этого"
?
Re[2]: какие самые общие рекомендации по построению архитектуры
От: Cyberax Марс  
Дата: 21.03.16 17:06
Оценка: +3
Здравствуйте, Vladek, Вы писали:

V>Это очень просто, в одной картинке:

V>Image: arch.png
V>Слева — та часть системы, с которой взаимодействует пользователь (веб, телефон, терминал, десктоп, служба), пользовательский интерфейс (UI). Справа — ядро системы, "бизнес-логика". UI общается с ядром через сообщения (RequestModel, ResponseModel), этим и обеспечивается их независимость друг от друга — можно нарисовать UI без ядра и написать ядро без UI.
Ага, а потом ещё туда добавить абстрактную фабрику архитектур, параметризованную стратегией создания visitor'а для полного полиморфизмуса головного моска.

Посылать надо таких проектантов сразу на три буквы. Лучше ещё и пинка под зад дать, чтобы не задерживались.

Нафиг никому не нужно рисовать UI без ядра, и наоборот. Потому backend должен делаться с учётом frontend'ов (которых можно планировать несколько штук). Ну и на backend'е на йух могут быть не нужны эти Interactor'ы, gateway'и, boundary и прочие request model. Вполне может иметь смысл его сделать в виде тонкой прослойки для формирования запросов к БД или другим сервисам.
Sapienti sat!
Re[3]: какие самые общие рекомендации по построению архитектуры
От: Vladek Россия Github
Дата: 22.03.16 07:49
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Нафиг никому не нужно рисовать UI без ядра, и наоборот. Потому backend должен делаться с учётом frontend'ов (которых можно планировать несколько штук). Ну и на backend'е на йух могут быть не нужны эти Interactor'ы, gateway'и, boundary и прочие request model. Вполне может иметь смысл его сделать в виде тонкой прослойки для формирования запросов к БД или другим сервисам.


Ща докурю и пойдём сдавать.


Interactor'ы, gateway'и, boundary — это посредники в общении частей системы между собой. Нужны они или нет — можно выяснить для себя по этой картинке:



Она из самого начала книги "Мифический человеко-месяц", где выясняются различия между программой и программным продуктом.
Re[4]: какие самые общие рекомендации по построению архитектуры
От: Cyberax Марс  
Дата: 22.03.16 08:29
Оценка: +3 :)))
Здравствуйте, Vladek, Вы писали:

V>Interactor'ы, gateway'и, boundary — это посредники в общении частей системы между собой.

Я это прекрасно знаю. И ещё раз повторяю — не нужны, кроме как в подавляющем меньшинстве случаев.

V>Нужны они или нет — можно выяснить для себя по этой картинке:

Не нужны.

V>Image: slide_48.jpg

V>Она из самого начала книги "Мифический человеко-месяц", где выясняются различия между программой и программным продуктом.
А это вообще бред. Принципы проектирования абсолютно одинаковы для всего софта. Хоть для КОКОРЕШа, который ещё круче простого ламерского "программного продукта".

Моя команда недавно закончила рефакторинг такой рвотной массы предыдущего орхитектора на проекте (сейчас он в Facebook, кстати). Минус 40 тысяч строк без потери функциональности просто за счёт выбрасывания обобщённых частей и замены их простыми специфичными обработчиками. После чего мы легко добавили туда ещё немного специфичных случаев для новой функциональности.

Я называю такой процесс "debridement" ("санация") — жаль, что про него в учебниках не пишут.
Sapienti sat!
Re[5]: какие самые общие рекомендации по построению архитектуры
От: __kot2  
Дата: 22.03.16 15:01
Оценка: +4
Здравствуйте, Cyberax, Вы писали:
C>Моя команда недавно закончила рефакторинг такой рвотной массы предыдущего орхитектора на проекте (сейчас он в Facebook, кстати). Минус 40 тысяч строк без потери функциональности просто за счёт выбрасывания обобщённых частей и замены их простыми специфичными обработчиками. После чего мы легко добавили туда ещё немного специфичных случаев для новой функциональности.
C>Я называю такой процесс "debridement" ("санация") — жаль, что про него в учебниках не пишут.
да, кстати, это типичная ошибка начинающих — они думают, что чем больше кода в проекте, тем лучше. ведь кто-то его писал, старался его можно там переиспользовать наоборот, чем меньше, тем лучше, любой говнопроект можно взять и просто выкидывать оттуда чуть ли не модулями какахеры от аффтаров без потери функциональности
Re[5]: какие самые общие рекомендации по построению архитектуры
От: Vladek Россия Github
Дата: 22.03.16 18:33
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Я называю такой процесс "debridement" ("санация") — жаль, что про него в учебниках не пишут.


Писали, вроде: http://www.amazon.com/gp/product/0131177052.

Опишите свой подход к проектированию с нуля. Мантру про SRP ниже прочитал, но там нет никакой конкретики.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.