C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
분야별 포럼
C++빌더
델파이
파이어몽키
C/C++
프리파스칼
파이어버드
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

자유게시판
세상 살아가는 이야기들을 나누는 사랑방입니다.
[21439] 코드 및 파일 템플릿과 Doxygen
김상구.패패루 [peperu] 5331 읽음    2012-06-01 12:34
제가 재작년에 한국으로 돌아와서 다니게 된 회사는 자동차 전장 관련 연구를 주로 수행하는 회사입니다.
제가 회사에서 담당하고 있는 부분은 주로 임베디드 기반 영상 솔루션이죠. 사이드미러에 장착된 카메라로 사이드 미러의 사각 영역에 있는 차량을 인식해서 경고를 날려주는 BSD(Blind Spot Detection), 룸미러에 장착된 카메라로 차선을 감지해서 차선 이탈시 경고를 해 주는 LDWS(Lane Departure Warning System), 다수의 카메라로 파노라마 뷰를 만들어주는 시스템 등등...
문제는 자동차 업계이다 보니 현대자동차의 기준이 표준. 제조업 프로세스를 그대로 소프트웨어 개발에 억지로 적용하려는 경향이 강해서 소프트웨어 개발 후 제공해야 하는 문서의 양이 장난이 아닙니다. 게다가 대학 연구실에서 출발한 회사다 보니 학교 연구실 프로세스의 관습까지 남아 중간/최종 발표자료 100페이지, 보고서는 기본이 300페이지, 부록은 600페이지.. -_-;;
문서의 종류도 뭐 함수 정의서부터 줄줄줄줄... 예전에는 팀 원이 전부 매달려서 소스코드를 보면서 엑셀 문서에 함수, 전역변수 등을 모두 수작업으로 정리하는 멋진 방식을 쓰다가 -_-;;;; 작년부터 진행된 프로젝트부터 doxygen을 전면 적용했습니다. 그러나 현실적으로 역시나 프로젝트 말미에 열심히 주석을 달고 있죠.

그래서 오늘 잔머리를 좀 굴려서 파일 생성시, 함수 생성시 자동으로 Doxygen 주석을 달아주도록 해 보려고 열심히 찾아 보기 시작했습니다. 파일 서식의 경우 일단 프로젝트 자체를 C++Builder의 리파지토리에 추가하는 무식한 방법이 하나 있지만 영 폼이 안나고...
함수를 추가할 때 사용할 코드 템플릿은 일단 doxyfunc이라는 이름으로 하나 만들어 봤습니다.

<?xml version="1.0" encoding="utf-8" ?>

<codetemplate    xmlns="http://schemas.borland.com/Delphi/2005/codetemplates"
                version="1.0.0">
    <template name="doxyfunc" invoke="auto">
        <point name="rtntype">
            <hint>
                return type
            </hint>
            void
        </point>
        <point name="cllcnv">
            <hint>
                calling convention
            </hint>
            __fastcall
        </point>
        <point name="fncname">
            <hint>
                function name
            </hint>
            myfunc
        </point>
        <description>
            Function declaration
        </description>
        <author>
            Kim,Sang-Gu
        </author>
       
    </template>
</codetemplate>


이제 코딩할 때 doxyfunc이라고 치고 스페이스를 한 번 눌러주면
/**
@brief
@author ksg
@return void,
*/
void __fastcall myfunc() {

}

이렇게 만들어지죠.

Unit 생성시 기본 작성되는 코드를 어디서 바꿀 수 있는지 아직은 잘 모르겠네요.
예를 들면 C++ Builder에서 만들어 주는 기본 형식은 이와 같은데
//---------------------------------------------------------------------------


#pragma hdrstop

#include "Unit1.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

이정도로는 바꿔주고 싶거든요.

/**
@file Unit1.cpp
@brief
@author ksg
*/
//---------------------------------------------------------------------------

#if !defined(_MSC_VER)
#    pragma hdrstop
#endif

#include "Unit1.h"

//---------------------------------------------------------------------------
#if defined(__BORLANDC__)
#    pragma package(smart_init)
#endif 


아무튼... doxygen 주석 달기를 좀 더 생활화 해 보려고 노력 중입니다.
남병철.레조 [lezo]   2012-06-01 18:14 X
고급 차종의 기능이 어디서 개발되고 있나 했는데... 개발 담당자는 가까운 곳에;;;
요즘 독시즌을 안쓰고 있었는데 오랜만에 보네요. 흠.. 저도 문서화를 다시 신경 좀 써야하는데.. 쩝;

+ -

관련 글 리스트
21439 코드 및 파일 템플릿과 Doxygen 김상구.패패루 5331 2012/06/01
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.