Ошибки в проектировании, или как это делают люди.

virakochi

Устал
Ошибки в проектировании, или как это делают люди.

Подскажите пожалуйста, как обычно/нормально решается такая ситуация.

Есть набор сущностей, причем зависимости в них зачастую циклические. Например :
Пользователь может являться владельцем нескольких групп ползователей, кроме того входить в другие группы, владельцами которых есть другие пользователи. Так же он может быть связан с группой через другие сущности, например заказ.

Типовые операции: взять все заказы пользователя в группе, взять все заказы группы и тд. То есть доступ к сущностям может быть разных типов.

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

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

Заранее спасибо.
 

vladax

Новичок
поищи на форуме. кто-то давал ссылку на хорошую статью.
 

virakochi

Устал
Полазил, кое-что нашел.. Но проблема все же открыта.

Кстати, может посоветуете еще книги какие по проектированию?
 

untied

Сдвинутый новичок
Автор, если ты освоил такие cool-термины, как "сущность", "связность" и "коллекции", то осталось тебе совсем немного для решения проблемы! Всего-то освоить "инкапсуляцию", "полиморфизм" и "инхеританс". ;)

А если серьезно, то практически любая серьезная книга по объектно-ориентированному программированию тебе поможет разобраться в проектировании. Хотя бы на примере C++. И даже лучше на примере C++ разбираться с этими терминами, потому что там есть множественное наследование и много чего еще, отсутствующее в том же Java.
 

virakochi

Устал
Спасибо.
ПС. А какие бывают серьезные книги? Не хотелось бы покупать первую попавшуюся..
 

untied

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

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

virakochi

Устал
Я имел ввиду хорошие книги по содержимому. Которые имеет смысл купить. Которые люди уже покупали и остались ими довольны.
 

syfisher

TDD infected!!
Прочитай Patterns of Enterprise Application Architecture М. Фаулера (не знаю как она правильно на русском называется, что-то типа "шаблоны проектирования приложений масштаба предприятий"). Если практикуешься много - то большинство вещей будет понятным.

Также могу посоветовать Быстрая разработка программ (Agile Software Development) Р. Мартина. Очень дельная вещь. Но нужно очень хорошо разбираться хотя бы в базовых шаблонах и там упор сделан на TDD.

Если ты разрабытываешь не просто CRUD-приложения, в с элементами бизнес-логики, то есть смысл прочитать Domain-driven desing: Cracking Complexity In the Heart of Software (не знаю, если ли перевод) E. Evans. Она достаточно сложна для понимания, однако одна из самых полезных книг, которых мне удалось прочитать про проектирование за последнее время.

Думаю, что этого хватит на долго... :)
 
Сверху