Я начинающий разработчик. Меня интересует какие существуют паттерны для корпоративных приложений? Фулер тяжеловат для понимания. Хотелось бы что — нибудь попроше и с примерами. Или хотя бы ссылки на работающие корпоративные приложения. Как организовать интерфейс. Разбить все на контролы, которые будут уже дергать классы предметной области?
Какие состояния есть у контрола, отображающего объект?
Как организовать переходы между состояниями?
Когда сохранять в базу значения?
Стоит ли использовать потоки для работы с БД, чтобы не тормозил интерфейс? Или только запрос возвращает много данных и длмться неск. секунд?
Здравствуйте, Flem1234, Вы писали:
F>Я начинающий разработчик. Меня интересует какие существуют паттерны для корпоративных приложений? Фулер тяжеловат для понимания. Хотелось бы что — нибудь попроше и с примерами. Или хотя бы ссылки на работающие корпоративные приложения.
Фаулер тяжеловат? Тогда, IMHO, или курить его до просветления,
или устроиться на работу в компанию, которая разрабатывает корпоративные приложения...
Вопросы, IMHO, больше относятся к разработке пользовательского интерфейса, чем к "корпоративным приложениям"..
F>Как организовать интерфейс. Разбить все на контролы, которые будут уже дергать классы предметной области?
Можно и так.
F>Какие состояния есть у контрола, отображающего объект?
Вопрос не совсем понятен...
Какие вообще "состояния" бывают у контрола..? Разрешен-запрещен, вот вроде и все...
F>Как организовать переходы между состояниями?
Ну, если был разрешен, то запретить, и наоборот...
F>Когда сохранять в базу значения?
"It depends"... (зависит от конкретного приложения)
F>Стоит ли использовать потоки для работы с БД, чтобы не тормозил интерфейс? Или только запрос возвращает много данных и длмться неск. секунд?
Неверно грамматически второе предложение, или смысла не имеет
Здравствуйте, bnk, Вы писали:
bnk>Здравствуйте, Flem1234, Вы писали:
... F>>Как организовать интерфейс. Разбить все на контролы, которые будут уже дергать классы предметной области?
bnk>Можно и так.
А как еще можно? У меня просто нет инфу про возможные пути, вот и юзаю первый пришедший в голову. Можно ссылку. А то гугл на фразы типа, эээ... ну,типа того... еще как можно? плохо отвечает.
F>>Какие состояния есть у контрола, отображающего объект?
Контрол отображает бизнес объект. Как добиться того, чтобы пользователь мог откатить изменения? Может приписать контролу состояния типа : новая запись, редактирование, что-то еще? По нормальному, чтобы не пришлось это делать в каждом контроле, отобр. новый бизнес объект. Надо какую-то иерархию наследования?
Куда кнопки лепить: добавить, удалить, редактировать. На контрол? Создать новый контрол, для кнопок управления? Тогда как их связать? Или на форму, пусть она дергает контролы?
F>>Как организовать переходы между состояниями?
Так, чтобы я написал только 1 раз переходы, а потом юзал их в наследниках.
F>>Когда сохранять в базу значения?
bnk>"It depends"... (зависит от конкретного приложения)
А какие есть варианты, их достоинства и недостатки?
Стоит ли использовать потоки для работы с БД, чтобы не тормозил интерфейс? Или только если запрос длмться неск. секунд?
А как делалось это в тех проектах, где вы участвовали. Просто расскажите, если не секрет
Здравствуйте, Flem1234, Вы писали: F>Я начинающий разработчик. Меня интересует какие существуют паттерны для корпоративных приложений? Фулер тяжеловат для понимания. Хотелось бы что — нибудь попроше и с примерами.
)) Мож тогда лучше не заниматься проектированием пока? А то как напроектируете , мало не покажется .
Здравствуйте, Flem1234, Вы писали:
F>Я начинающий разработчик. Меня интересует какие существуют паттерны для корпоративных приложений? Фулер тяжеловат для понимания.
Попробовать поделать сначала по-своему, как самому на основе имеющихся знаний покажется правильным, переписывая в общем виде те места, которые начинают повторяться. (Целью должно быть уменьшение своей ручной работы, максимальная автоматизация.) Станет вырисовываться некая система, накопится некоторая статистика, и то, о чём пишет Фаулер, станет узнаваемым.
Здравствуйте, Aviator, Вы писали:
A>)) Мож тогда лучше не заниматься проектированием пока? А то как напроектируете , мало не покажется .
А как написать программу ничего не проектируя?
Я никуда не рвусь. Все началось с утилиты, к которой потом попросили приделать сначала одно, потом другое, потом третье...
Здравствуйте, Flem1234, Вы писали:
F>А как написать программу ничего не проектируя?
А как проектировать, считая Фаулера или, к примеру, GoF "тяжеловатыми для понимания"?
Здравствуйте, Flem1234, Вы писали:
F>Я начинающий разработчик. Меня интересует какие существуют паттерны для корпоративных приложений? Фулер тяжеловат для понимания. Хотелось бы что — нибудь попроше и с примерами. Или хотя бы ссылки на работающие корпоративные приложения.
Куча умного народа уже высказалась, что если Фаулер тяжеловат, то можно идти обратно в детский сад, давай теперь не такой умный тебе попробует посоветовать Если Фаулер и GoF тяжеловаты, просто забей на них вместе с любыми паттернами. Садись и пиши свою систему, главное чтобы она просто заработала. Система заработала? Замечательно Теперь приступаем к гораздо более "веселой" фазе — внесению изменений. Подумай, какие именно требования заказчика могут измениться и как — попытайся внести изменения в систему. Если ты видишь, что небольшое изменение требований влечет перелопачивание половины проекта, значит система спроектирована неверно. Вот отсюда уже можно плясать. Садись и смотри внимательно, взаимосвязи между какими частями системы приводят к таким множественным переделкам? Анализируй, как надо было сделать, чтобы переделок было меньше, совсем мало, вообще не было. На каком-то этапа может оказаться, что опредленные требования заказчика требуют определенной взаимосвязям между классами для быстрого вненсения изменений — отметь это для себя и шагай дальше. Обнаружь, что если связи между классами эффективны для внесения одних изменений, то могут быть совсем не эффективны для других и т.п. После таких разборок иди почитай GoF еще раз, с удивлением обнаружь, что начинаешь понимать написанное или еще лучше — твои открытия в области организации связи между классами/частями системы имеют свои названия, хорошо известны и называются паттернами. Надеюсь, что помог
P.S. И конечно читай литературу! Кроме Фаулера, есть еще Мартин, МакКонелл, Ларман, которых можно(нужно) читать до Фаулера. Научись делать правильные мелкие кусочки и затем уже пытайся смотреть на систему целиком.
Здравствуйте, Svjat, Вы писали:
S> да Фулеру можно женские романы писать.
Представляю что это будет...
Фаулер, на самом деле, достаточно мутен и косноязычен, как в переводах, так и в оригинале. Да и не однозначен вообщем-то тоже, неокрепшему уму крышу рвет вполне качественно. Другое дело, что все равно надо читать и разбираться.