Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объектно-ориентированный анализ и проектирование 
:(
    Опции темы
 
Используете ли вы объектно-ориентированный анализ и проектирование в своих проектах?
А что это такое? [ 49 ]  [18.01%]
Слышал об этом, но толком не знаю [ 56 ]  [20.59%]
Знаю основы, но не использую [ 42 ]  [15.44%]
Использую иногда [ 65 ]  [23.90%]
Использую в каждом проекте [ 60 ]  [22.06%]
Всего проголосовавших: 272
В этом опросе возможен один вариант ответа
Гости не могут голосовать 
Stolzen
Дата 26.5.2010, 23:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: нет
Всего: 48



Иногда использую. 

Вообще, нас в вузе не так давно научили Rational Rose, но я сразу же ощутил всю прелесть - когда зараннее разрабатываешь класс на бумажке (ну там - в проекте), а потом генерируешь код. Так намного удобнее, можно сразу продумать логику взаимосвязи классов, как они между собой взаимодействуют. Особенно полезно, когда классов очень много - просто куче кода, без визуализации, очень легко запутаться. 

Поэтому еще иногда полезно использовать обрантый инженеринг - когда из кучи классов программка рисует красивую схемку. Кто программирует на Java в среде NetBeans, могут знать, что к среде есть достаточно неплохой модуль поддержки UML. Я им пользуюсь, полезная штука. http://netbeans.org/features/uml/


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
Wilko
Дата 27.5.2011, 01:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 42
Регистрация: 4.5.2008

Репутация: нет
Всего: нет



Использование методологий объектного моделирования и графического описания != использование паттернов.
Знаю основы, использовал пару раз за 5 лет самообучения, т.к. считаю что паттерны должны использоваться только если программист на 100% понимает что он делает, а для этого, по большому счету, до всех паттернов нужно дойти самому.
То что паттерн можно применить не значит, что он должен быть применен.

"Есть мнение, что слепое применение шаблонов из справочника, без осмысления причин и предпосылок выделения каждого отдельного шаблона, замедляет профессиональный рост программиста, так как подменяет творческую работу механической подстановкой шаблонов. Люди, придерживающиеся данного мнения, считают, что знакомиться со списками шаблонов необходимо тогда, когда программист «дорос» до них в профессиональном плане — и не раньше. Хороший критерий нужной степени профессионализма — выделение шаблонов самостоятельно, на основании собственного опыта. При этом, разумеется, знакомство с теорией, связанной с шаблонами, полезно на любом уровне профессионализма и направляет развитие программиста в правильную сторону. Сомнению подвергается только использование шаблонов «по справочнику»." ©Wikipedia.org

PM MAIL   Вверх
YankovskyAndrey
Дата 27.8.2011, 03:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 107
Регистрация: 23.10.2008
Где: СПБ

Репутация: нет
Всего: нет



Что там учить в Uml? Достаточно беглого прочтения информации с википедии по любому типу диаграмм.
Считаю реально полезной и ходовой диаграмму классов, остальные только по праздникам(хотя Use-case человечки и доставляют)
Все тулзы по рисованию Uml, с которыми я работал, откровенно кривые(и я в поиске до сих пор). По времени на рисование соизмеримо с работой в пейнте.
Старая добрая бумага куда лучше.
PM MAIL   Вверх
jsharp36
Дата 8.10.2011, 23:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 4
Регистрация: 8.10.2011

Репутация: нет
Всего: 1



Я диаграммы использую, но наоборот. Т.е. стараюсь динамично с использованием TDD разрабатывать. Скорость разработки в разы выше, чем у колег, которые вроде и опытные, а не пользуются такими вещами. Я противник предварительного создания архитектуры. Приходят требования, архитектура сама рождается. Когда набъете руку, то всего лишь пара интуитивных правил помогает создавать архитектуру на ходу. Я бы назвал эти правила:
1. Нахождение общего. Вынос в базовый класс. Или вынос в отдельный метод
2. Нахождение различий. Вынос в потомков.
3. Избегать любым способом дублирование данных. Для этого минимизировать как только возможно состояние объектов. Желательно, чтобы они вообще почти не имели состояния, а всё перевычислялось. Избегаем сайд-эффектов. Приближаемся к функциональному программированию. Если же потом не устраивает производительность, то просто в такую архитектуру добавляется кеширование.

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

На счет сложности проектов и предварительной архитектуры. Что-то не было на моей памяти мегасложных проектов на шарпе. Все архитектурные решения для бизнес-проектов - уже настолько давно всем известны, что набили оскомину. Поэтому каркас просто берется готовый, а далее TDD. Юнит-тестирование и рефакторинг - рулят. При этом UML и диаграммы не рисую, потому как считаю потерянным временем. Нарисовать диаграмму - это почти уже задать логику. Тогда зачем два раза это делать? Потом, если диаграммы рисуются до начала кодирования, сто процентов, будут еще куча изменений в требованиях и куча всего, что "не учли". Опять перерисовывать. А не дай бог еще кто-то увидит эту диаграмму. Тогда перерисовка ее сразу же обязывает согласовывать с другими, кто уже видел и запомнил, как оно собиралось быть внедрено.
Короче - куча лишних бессмысленных телодвижений. Когда как с опытом понимаешь, что для любой задачи уже есть архитектура и нормальная архитектура только одна. Нечего здесь креативить. Креативят новички.

Но диаграммы все таки рисую, но в конце. Т.е. когда уже сформировался проект и уже есть решение, нужно в конце документировать. Чтобы была документация и можно было передавать другим людям код.
PM MAIL   Вверх
qpile
Дата 13.7.2012, 07:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Подскажите, пожалуйста, хорошую книгу по Паттернам проектирования. В программировании уже 3 года. Хотелось бы развиться дальше
PM MAIL   Вверх
k0rvin
Дата 13.7.2012, 11:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 442
Регистрация: 24.1.2010

Репутация: нет
Всего: 5





--------------------
“Object-oriented design is the roman numerals of computing.” — Rob Pike
All software sucks
PM MAIL   Вверх
qpile
Дата 13.7.2012, 18:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 12.8.2009

Репутация: нет
Всего: нет



Книгу  94 года? Нет, спасибо
PM MAIL   Вверх
Stolzen
Дата 13.7.2012, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: нет
Всего: 48



Цитата(qpile @  13.7.2012,  19:24 Найти цитируемый пост)
Книгу  94 года? Нет, спасибо 

А что не так? Принципы, лежащие в основе паттернов, с тех пор не изменились.
 Вообще, для изучения я бы рекомендовал эту http://www.ozon.ru/context/detail/id/6108824/ Но в ней точно такие же паттерны, как и в GOF. 


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1401 ]   [ Использовано запросов: 24 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.