/forums/comment/227377-quote-name-no1imits-post-227353-ja-ne-znaju-smogu-li
06.01.2016 13:27
<quote name=no1imits post="227353">
Я не знаю, смогу ли помочь, ибо с вебом еще не совокуплялся</quote>
Не, забей на вэб. Это вопрос не вэба, а, похоже, это вопрос именно моделирования, т.е по сути - грамотного юзания ООП.



"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/227381-quote-name-no1imits-post-227353-gramotnoe-juzanie-oop
06.01.2016 13:56
<quote name=no1imits post="227353">
Грамотное юзание ООП - что бы не было копипаста кода. Для этого и используются указанные тобой инструменты.</quote>
Я смотрю, что по данному приближению модели к рассмотрению, недочеты выявить не получается. За исключением наличия объектов и связей - ничего не просматривается.
С "елкой" - та же ситуация.

Если же взять большее приближение (пример на скриншоте),
то видно, видно, что с инкапсуляцией - хреново. Да, не у всех методов неободимость быть пабликами, но в приват они не занесены - плохо.
Полиморфизм - хз как его на схеме увидеть. Встречал упоминание, что если в коде присутствуют "swith... case" - значит полиморфизм не задействован.
Применительно к моему коду - у меня кейсы на ID элементов в обработчике задействуются сплошь и рядом. Значит с полиморфизмом тоже не гуд.
Наследование. Хм. Что по схеме видно - стрелочки одного типа. Ну и еще кружочки с крестиками - этого мало.
Что-то типа такого (картинка под спойлером) -
проектирование по схеме А задействовано, а B и C - таких связей не наблюдается. Это не есть гуд. Это свидетельствует о том, что extends и implement abstract iterface не применяется.
Может этого в данном фрагменте (проекте) и не нужно, но так ли это ???

Такой вот ход рассуждений.


"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/227382-mozhet-ochevidny-eshhe-kakie-to-ogrehi-mozhno-uvidet
06.01.2016 13:57
Может очевидны еще какие-то огрехи ? Можно увидеть на архитектурной схеме реализацию паттернов ?
Я паттернами не особо заморачивался. Могу сказать что interface, state, singletone в проекте есть. Может в показательной архитектуре еще какие-то паттерны должны быть задействованы (вернее, может отсутствие каких-то паттернов напрямую свидетельствует о дилетантском подходе к подходу ООП)???


"Принимай критику только от тех, кто добился больше тебя"(c)
/forums/comment/227395-quote-name-vago-post-227382-mozhet-ochevidny-eshhe
06.01.2016 15:36
<quote name=vago post="227382">
Может очевидны еще какие-то огрехи ?</quote>
Я сомневаюсь, что может быть что то очевидно по столь малому масштабу UML. Да и по самой UML можно не многое сказать, ибо только по коду удастся понять, например, нужен данному полю модификатор public или нет, не говоря уж о том, что где то надо вынести целый блок кода иди метод в отдельный класс.

Не знаю, может у меня просто опыта в командном программировании нет, но без комментариев, я не по UML, ни по коду сразу нихрена не понимаю, мне нужно знать что и зачем, и какая идея у каждой переменной, тогда имеет смысл пытаться оптимизировать. Но это ИМХО, ибо я всегда пишу только в одну харю... хотя мой код выправляется старожилами с cyberforum'а.
Hard choose - easy life
/forums/comment/227409-quote-name-vago-post-227372-quote-name-zml-post
06.01.2016 17:12
<quote name=vago post="227372">
<quote name=Zml post="227336">
Надо же, что б работало, а не для учебника</quote>
Встречал устрерждение, что первая версия программы - просто работает, вторая версия - исправляются баги, допиливается архитектура для улучшения... и как правило, вторая версия хуже, чем первая. А вот третья версия - допиливается все что можно, и она уже лучше первой версии.
Также встречал, что для того чтобы написать вторую версию программы, приходится не просто править, а зачастую чуть ли не все переписывать заново, потому что изначально модель не продумана. Вторая версия базируется на переписывании архитектуры, а третья - уже строится на оптимизации второй версии.
Как-то так.</quote>
Во-во, мой случай! В своей жизни писал лишь один довольно серьезный код по своей научной работе. Прога была для обработки данных атомно-силовой микроскопии (3D рельеф поверхности с нанометровым разрешением). Писал на с++. Никто не подгонял. Хотел, что бы было красиво, без опп не обойтись, так как что только я с этими данными не делал😃 Разлюбил первую и вторую версии, так как новые идеи не умещались в первоначальную парадигму роли классов. Переписывал с нуля (кстати и ошибок при этом наисправлял и код элегантнее стал). Третья версия живет и иногда развивается до сих пор. Хотя тут была особенность: задачи с годами появлялись новые, за ранее всего было предусмотреть сложно и подобную схему я не смог бы нарисовать. Я просто мыслил категориями объектов и из взаимодействия, примерно как разавал обязанности нанимаемым и обучаемым сотрудникам. Я, конечно, любитель, но не уверен, что так уж необходимы эти картиночки. Мне кажется, что должно быть красиво, самому нравиться. Если функции классов тебе хорошо понятны, то вообще почти не встает вопросов кому дать ту или иную функцию или какую переменную в паблик дать (лучше никакую, так надежнее). И, конечно, мысли о встраивании проверок и писании комментариев тоже очень важны😃
Скучно жить одинаково!