palindromer (
palindromer) wrote2008-03-05 02:11 pm
![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Rules and Standards
У меня под рукой документация к API трех больших и весьма навороченных CAD систем. Любой подобный документ увлекательнейшее чтиво, но мануал к одному продукту выделяется особо. Да и сама система соответствует, в процессе программирования под ней есть что-то эзотерическое. Только для CATIA я не смог самостоятельно придумать, собрать и запустить демо, лишь на основе мануалов и примеров, понадобилась непосредственная помощь гуру. Доки поражают своей монументальностью и неочевидностью одновременно. Выдержки из тамошних "C++ Rules"
- Do Not Use namespace Statements (вместо этого предлагается использовать трехбуквенные префиксы для подмножеств интерфейсов, типа как у них)
- Do not use threads
- Do not use Templates
- Do Not Use Multiple Inheritance
- Do Not Use Virtual Inheritance
Последние три пункта не обусловлены какими-то ограничениями в дизайне предоставляемых библиотек, просто так не рекомедуют делать, ибо это пока плохо вообще и не совсем портабельно. Документ 2000 года и с тех пор не менялся. Хорошо что суровость рекомендаций компенсируется необязательностью их выполнения.
p.s. да, чуть не забыл: конечно использовать венгерскую нотацию, куда ж без нее!
- Do Not Use namespace Statements (вместо этого предлагается использовать трехбуквенные префиксы для подмножеств интерфейсов, типа как у них)
- Do not use threads
- Do not use Templates
- Do Not Use Multiple Inheritance
- Do Not Use Virtual Inheritance
Последние три пункта не обусловлены какими-то ограничениями в дизайне предоставляемых библиотек, просто так не рекомедуют делать, ибо это пока плохо вообще и не совсем портабельно. Документ 2000 года и с тех пор не менялся. Хорошо что суровость рекомендаций компенсируется необязательностью их выполнения.
p.s. да, чуть не забыл: конечно использовать венгерскую нотацию, куда ж без нее!