Стандарты программирования на С++. 101 правило и рекомендация
Шрифт:
[Meyers04] Meyers S. and Alexandrescu A. С++ and the Perils of Double-Checked Locking, Part 1 and …Part 2. Dr. Dobb's Journal, 29(7,8), July and August 2004.
[Milewski01] Milewski B. С++ In Action. Addison-Wesley, 2001.
[Miller56] Miller G. A. The Magical Number Seven, Plus or Minus Two: Some Limits on Our Capacity for Processing Information. The Psychological Review, 1956, vol. 63.
[MozillaCRFAQ] Frequently Asked Questions About mozilla.org's Code Review Process (Web-узел Mozilla).
[Murray93] Murray R. С++ Strategies and Tactics. Addison-Wesley, 1993.
[Musser01] Musser D. R., Derge G. J., and Saini A. STL Tutorial and Reference Guide, 2nd Edition. Addison-Wesley, 2001.
[Parnas02] Parnas D. The Secret History of Information Hiding. Software Pioneers: Contributions To Sofware Engineering, Springer-Verlag, New York, 2002.
[Peters99] Peters T. The Zen of Python. Comp.lang.python, June 1999.
[Piwowarski82] Piwowarski P. A Nesting Level Complexity Measure. ACM SIGPLAN Notices, 9/1982.
[Saks99] Saks D. Thinking Deeply, Thinking Deeper, and Thinking Even Deeper. C/C++ Users Journal, 17(4,5,6), April, May, and June 1999.
[Schmidt01] Schmidt D., Stal M., Rohnert H., Buschmann F. Pattern-Oriented Software Architecture, Volume 2: Patterns for Concurrent and Networked Objects. Wiley, 2001.
[SeamonkeyCR] Seamonkey Code Reviewer's Guide (Web-узел Mozilla).
[Sedgewick98] Sedgewick R. Algorithms in
[STLport-Debug] Fomitchev B. STLport: Debug Mode (Web-узел STLport).
[Stroustrup94] Stroustrup B. The Design and Evolution of С++. Addison-Wesley, 1994.
Перевод: Страуструп Б. Дизайн и эволюция языка С++. — М.: ДМК Пресс, 2000. [Stroustrup00] Stroustrup В. The С++ Programming Language (Special 3rd Edition). Addison-Wesley, 2000.
Перевод: Страуструп Б. Язык программирования С++. Специальное издание. — М.: Бином, 2001.
[Sutter99] Sutter H. ACID Programming. Guru of the Week #61.
[Sutter00] Sutter H. Exceptional С++. Addison-Wesley, 2000.
Перевод: Саттер Г. Решение сложных задач на С++. Серия С++ In-Depth, т.4. — М.: Издательский дом "Вильямс", 2002.
[Sutter02] Sutter H. More Exceptional С++. Addison-Wesley, 2002.
Перевод: Саттер Г. Решение сложных задач на С++. Серия С++ In-Depth, т.4. — М.: Издательский дом "Вильямс", 2002.
[Sutter03] Sutter H. Generalizing Observer. C/C++ Users Journal, 21(9), September 2003.
[Sutter04] Sutter H. Exceptional С++ Style. Addison-Wesley, 2004.
Перевод:
Саттер Г. Новые сложные задачи на С++. — М.: Издательский дом "Вильямс" (в печати).[Sutter04a] Sutter H. Function Types. C/C++ Users Journal, 22(7), July 2004.
[Sutter04b] Sutter H. When and How To Use Exceptions. C/C++ Users Journal, 22(8), August 2004.
[Sutter04c] Sutter H. Just Enough' Thread Safety. C/C++ Users Journal, 22(9), September 2004.
[Sutter04d] Sutter H. How to Provide (or Avoid) Points of Customization in Templates. C/C++ Users Journal, 22(11), November 2004.
[SuttHysl01] Sutter H. and Hyslop J. Hungarian wartHogs. C/C++ Users Journal, 19(11), November 2001.
[SuttHysl02] Sutter H. and Hyslop J. A Midsummer Night's Madness. C/C++ Users Journal, 20(8), August 2002.
[SuttHysl03] Sutter H. and Hyslop J. Sharing Causes Contention. C/C++ Users Journal, 21(4),
April 2003.
[SuttHysl04a] Sutter H. and Hyslop J. Getting Abstractions. C/C++ Users Journal, 22(6), June 2004.
[SuttHysl04b] Sutter H. and Hyslop J. Collecting Shared Objects. C/C++ Users Journal, 22(8), August 2004.
[Taligent94] Taligent's Guide to Designing Programs. Addison-Wesley, 1994.
[Tsai01] Tsai T. and Singh N. Libsafe 2.0: Detection of Format String Vulnerability Exploits. Avaya Labs, March 2001.
[Vandevoorde03] Vandevoorde D. and Josuttis N. С++ Templates. Addison-Wesley, 2003.
Перевод: Вандевурд Д., Джосаттис Н. Шаблоны С++. Справочник разработчика. — М.: Издательский дом "Вильямс", 2003.
[Webber03] Webber А. В. Modern Programming Languages: A Practical Introduction. Franklin, Beedle & Associates. 2003.
Резюме из резюме
0. Не мелочитесь, или Что не следует стандартизировать
Скажем кратко: не мелочитесь.
1. Компилируйте без замечаний при максимальном уровне предупреждений
Следует серьезно относиться к предупреждениям компилятора и использовать максимальный уровень вывода предупреждений вашим компилятором. Компиляция должна выполняться без каких-либо предупреждений. Вы должны понимать все выдаваемые предупреждения и устранять их путем изменения кода, а не снижения уровня вывода предупреждений.
2. Используйте автоматические системы сборки программ
Нажимайте на одну (единственную) кнопку: используйте полностью автоматизированные ("в одно действие") системы, которые собирают весь проект без вмешательства пользователя.