Оформление и сопровождение кода
Я так смотрю на форуме иногда возникают такие вопросы, почему бы все ссылки на связанные с этими вопросами не закрепить.
//============== Оформление кода =========================
Вот несколько ссылочек по оформлению кода.
GNU coding стандарт - здесь
C++ Standard Library Style Guidelines DRAFT 2001-01-15 - здесь
C++ Programming Style Guidelines - здесь
Замечательная статья Алена Голуба "Веревка достаточной длины..." - здесь
Оформление кода команды RSDN, неплохо, да и еще на русском языке.
Оформление кода (PHP от PHP Extension and Application Repository) здесь. (ссылка от КороваМу)
Google C++ Style Guide.
Замечательная статья Спольски о истории Венгерсокй нотации, о распространенной ошибке при ее использовании - здесь.
// ===================== Документация ==================
Был недавно топик про Технические задания.
Ссылки из него про ТЗ здесь и здесь. Ссылки по Руководствам здесь, здесь и вот здесь.
Для введения в тему ТЕХНОЛОГИЯ РАЗРАБОТКИ ПРОГРАММНОГО ОБЕСПЕЧЕНИЯ
Конспект лекций
(Ссылка работает до 05 января 2008 от КороваМу)
// ===================== Анализ и проектирование ==================
Хороший сайт по объектно ориентированному анализу, патернам и стандартам проектирования - http://ooad.asf.ru.
[COLOR="Red"]SATC - Центр NASA, документация по процессу разработки ПО[/COLOR]
//================== Тестирование ===========
Набор программ осуществляющих юнит-тестирование. Здесь не только С и С++, но есть Ruby,Perl, Java и т.д. (за ссылку спасибо SquirL)
Профилирование программ под Linux. Free, OpenSource. Valgrind
Миниатюрный заголовочный файл. В помощь студенту, постигающему азы unit тестирования QuickTest (там же и подробное описание с примерами).
Он-лайн [COLOR="Red"]эталонный компилятор[/COLOR] с/с++ Comeau. Компилирует код в с соответсвии со стандартами C99 mode (4.2.45.1 and above only) и C89/C90 mode. Для меня последняя инстанция =). Есть множестов платформ.
//================= Memory Leak ============
Утечка памяти... с ростом размера кода порой превращается в действительно очень серьезную проблему.
Статья рассматривающая различные приспособы для поиска утечки памяти (linux!) - Memory Leak Detection in C++.
Три утилиты для поиска утечки для встраиваемых систем - Memory Leak Detection in Embedded Systems.
И естественно Эккель "Философия C++. Практическое программирование".
Ну что же, дело благое. :) Думаю тема подобного рода на форуме не помешает.
У меня есть вопрос по сопровождению кода.
Введение...
Программируя на php я оформляю комментарии в стиле тэгов phpDocumentor. И потом соответственно генерирую с помощью скрипта phpDocumentor документацию, которая может быть представлена в виде pdf,html с различной глубиной документирования. Т.е. можно генерироавть документацию на исходники php, которая будет содержать только описания классов (полей, методов, свойств. класса )глобальных переленных, без включения самого исходного кода, а также есть возможность выбирать какие из полей всьавлять в документацию на исходный код (@abstract @access @author @category @copyright @deprecated @example @final @filesource @global @ignore @internal @license @link @name @package @param @return @see @since @static @staticvar @subpackage @todo @tutorial @uses @var @version).
Я уже давно ищу что нибудь подобное для C++, но не смог ничего подобного найти. Пока прихлдится обходиться обычными комментариями в стиле С, по сравнению с php это очень не удобно. Еще могу посоветовать утилиту для анализа кода sourcenavigator от redhat.
Вопрос...
Какие средства генерации документации существуют для использования в C++, по возможностям сравнимые с phpDocumentor?
//=============== Автоматическое документирование кода =======
Сообственно анализ следующих лицензий
GNU General Public License (GPL)
GNU Lesser General Public License (LGPL)
Лицензия BSD
Лицензия Mozilla Public License (MPL)
на предмет их применимости в условиях российской правовой системы
- очень интересная дока.
Статья "Проблема лицензии BSD" - здесь.
пишу новым постом потому что тема интересна. если у кого нибудь есть подобный материал, поделитесь
/========= Работа с UML диаграммами ============
Ну вопервых тот же DOXYGEN, все прекрасно умеет.
Далее...
Dia. по сути задумывалась как аналог Visio. В Visio вообщем тоже можнго строить UML, но Dia бесплатна. Можно прикрутить еще Dia2code для перевода диаграмм в код. И доставляем Medoosa для поддержки реинжиринга.
Далее..
Umbrello. Поддерживает реинжиринг. Ну сипатичный интерфейс Qt. Под KDE!
kUML. Тот же OpenSource, тот же KDE.
Что б не обижать GTK - Dachshund.
Еще статья рассматривающая некоторые из перечисленных редакторов и базовую теорию.
Joint Strike Fighter C++ coding standards
Среди прочих стандартов написания кода данный выделяется тем, что:
1. Он является стандартом написания кода в компании Lockheed Martin Corporation, являющейся одной из крупнейших авиакосмических компаний в мире.
2. Он является единственным стандартом написания кода, созданным при непосредственном участии Бьерна Страуструпа.
3. Сам Бьерн Страуструп его и придерживается (правда, не на 100%), обратите внимание: приведенная выше ссылка ведет на личную страницу Страуструпа.
Работает под Win32.