Подскажите пожалуйста книги, в которых можно узнать о правильной организации кода при написании большых приложений, игр, библиотек и т. п.
Прочел "Библиотеку программиста С++" Джефа Элджера, он писал про грани и кристалы, которые используються в СОМ. Хочеться больше узнать какими шаблонами и приемами пользуються опытные ребята. Спасибо.
9 ноября 2009 в 7:01
С неё начинать надо. Вообще лучше не сами паттерны изучать, а software engineering.
9 ноября 2009 в 1:00
А при изучении паттернов книга банды четырех самое то?
8 ноября 2009 в 17:02
Я себе не противоречу. То, что сейчас, по размышлении над задачей, мне известен хороший способ ее решения, не означает, что он был мне известен и ранее. Я посидел часик, подумал – и вот, теперь он мне известен.
Но в общем, видимо, мы об одном и том же и говорим.
8 ноября 2009 в 15:03
ты сам себе противоречишь: "Если какой-то из паттернов в принципе похож на мою задачу, НО МНЕ ИЗВЕСТЕН более короткий, читаемый, эффективный, корректный способ ее решить, то я не буду использовать паттерн…" Опять же ты будешь использовать что-то уже готовое. Ты наверное просто меня не правильно понял. Моя мысль не в том что паттерны – это панацея, это конечно не так, а в том что если есть готовые решения то их нужно использовать. Конечно не все задачи решены, но если есть возможность, то карты в руки. Да и понятие паттернов у тебя какое то странное, паттерны не решают какие-то специальные задачи, а всего лишь демонстрируют как можно лучше оформить структуру того или иного участка программы, причем такие структуры встречаются в большинстве программ.
8 ноября 2009 в 14:04
Артем, ты, кажется, забываешь, что паттерны решают *именно* те задачи, про которые написано в их описаниях в книге, и *именно* в объектно-ориентированных языках. Нет паттернов на все случаи жизни. Даже если бы они и были, то маловероятно, чтобы все они уместились в такой тоненькой книжке. GOF – не боги; они произвели отличную работу по систематизации многих архитектурных решений, часто встречающихся в программах на объектно-ориентированных языках, но не более того.
> ты будешь их использовать, если хочешь чтобы код был сопровождаемым
Это, очевидно, неверно.
1) Если я хочу, чтобы код был сопровождаемым, но ни один из описанных в книге паттернов не решает мою задачу, то я не буду использовать паттерны, несмотря на то, что хочу, чтобы код был сопровождаемым.
2) Если какой-то из паттернов в принципе похож на мою задачу, но мне известен более короткий, читаемый, эффективный, корректный способ ее решить, то я не буду использовать паттерн, т.к. из-за его использования код станет менее сопровождаемым.
Например, вот тебе задача: спроектировать библиотеку для анализа временнЫх рядов. Например, для поиска следов роботов в логах веб-сервера. Расскажи, какие паттерны ты тут применишь, какие тут "готовые решения"?
8 ноября 2009 в 14:03
#8 > Там же написано было "все что мы используем". Как мы можем использовать то что еще не придумано. Другое дело придумать это сейчас, или же использовать уже что-то готовое, сделанное еще до нас. Так же и с паттернами, волей неволей ты будешь их использовать, если хочешь чтобы код был сопровождаемым. Так что лучше? Изобретать эти паттерны заново или посмотреть уже готовые решения.
7 ноября 2009 в 20:05
Таки да, Макконел и Gang of Four
7 ноября 2009 в 19:01
Артем, твоё заявление о том, что всё уже придумано – абсурдно без указания, что ты подразумеваешь под словом "всё".
7 ноября 2009 в 18:04
>>Не придавай паттернам большого значения – это не >>"правильные способы проектирования", а всего лишь >>*терминология*, обозначающая некоторые *часто >>встречающиеся* способы проектирования.
Жжоте товарищ. Вообще то все что мы используем имеет свою терминологию, все уже придумано, как и паттерны. Незачем изобретать велоипед.
6 ноября 2009 в 20:02
"Совершенный код" Макконнела – эта книга серьезно поможет.
6 ноября 2009 в 20:00
+1, и очень часто что ты используешь приёмы, которые потом оказываются "паттернами"…рано или поздно в любой конторе доходят до них – иногда (как в нашем случае) сами того и не подозревая..:)
6 ноября 2009 в 20:00
но в общем-то если знать их и уметь использовать – это конечно +
6 ноября 2009 в 19:02
Не придавай паттернам большого значения – это не "правильные способы проектирования", а всего лишь *терминология*, обозначающая некоторые *часто встречающиеся* способы проектирования.
6 ноября 2009 в 19:00
Ищи книги где описываются шаблоны проектирования – так называемые паттерны и рефакторинг. Из них можно подчерпнуть много полезного. В инете куча статей, электронных книг. Также изучай грамотно написанные программы с открытым кодом.