XpressEngine(제로보드) 개발 어렵다.

회사일이 있어. zeroboard 개발건이 생겼는데...

생각보다 힘들다. T-T

첫번째 DB 추상화

<query id="getBoardList" action="select">
<tables>
<table name="modules" />
</tables>
<columns>
<column name="*" />
</columns>
<conditions>
<condition operation="in" column="module" default="'board','guestbook','blog'" />
<group pipe="and">
<condition operation="like" column="mid" var="s_mid" pipe="or" />
<condition operation="like" column="title" var="s_title" pipe="or" />
<condition operation="like" column="comment" var="s_comment" pipe="or" />
<condition operation="equal" column="module" var="s_module" pipe="or" />
<condition operation="equal" column="module_category_srl" var="s_module_category_srl" pipe="or" />
</group>
</conditions>
<navigation>
<index var="sort_index" default="module_srl" order="desc" />
<list_count var="list_count" default="20" />
<page_count var="page_count" default="10" />
<page var="page" default="1" />
</navigation>
</query>

위의 코드는 db쿼리문이다. 일종의 DB쿼리 추상화문인데...

다양한 DB지원을 위해 코드 추상화를 하는 건 알겠다만. 이건 배보다 배꼽이 큰게 아닐런지?
한줄 두줄이면 나오는 쿼리를 이렇게 따로 따로 각각 쿼리문을 추상화해서 코드에 넣고, 관리한다는 건 좀 문제가 있지 않을까 싶다.

문득 Rails의 간편한 추상화 문법들이 그리웠다. T-T

두번재 OOP도 알맞게

오픈 소스라고 한다면, 어느정도 일반사람들도 구문을 이해하고, 수정/개발이 쉬워야 한다고 생각한다. 특히 OOP의 경우 상속이 2~3 level만 가도 난공불락의 요새가 되어버린다.
예전인가? python 소스 overriding 된 함수 하나 해석하는데  많은 시간을 소비했던걸 기억한다.
XpressEngine 소스를 살펴보니 예전 Visual C++, MFC, ActiveX, ATL 프로그램 하는 것 같더라. 소스의 세부사항은 모르면서 이럴때에는 이걸 써야 하고, 저럴때에는 이걸 써야 하고... 에휴...

class simplepiexeAdminView extends simplepiexe {
/**
* @brief 초기화
**/
function init() {
// module_srl이 있으면 미리 체크하여 존재하는 모듈이면 module_info 세팅
$module_srl = Context::get('module_srl');
if(!$module_srl && $this->module_srl) {
$module_srl = $this->module_srl;
Context::set('module_srl', $module_srl);
}
// module model 객체 생성
$oModuleModel = &getModel('module');

// module_srl이 넘어오면 해당 모듈의 정보를 미리 구해 놓음
if($module_srl) {
$module_info = $oModuleModel->getModuleInfoByModuleSrl($module_srl);
if(!$module_info) {
Context::set('module_srl','');
$this->act = 'dispSimplepiexeAdminIndex';
} else {
ModuleModel::syncModuleToSite($module_info);
$this->module_info = $module_info;
Context::set('module_info',$module_info);
}
}

if($module_info && $module_info->module != 'simplepie') return $this->stop("msg_invalid_request");
// 모듈 카테고리 목록을 구함
$module_category = $oModuleModel->getModuleCategories();
Context::set('module_category', $module_category);

$template_path = sprintf("%stpl/",$this->module_path);
$this->setTemplatePath($template_path);
}
}


문득 이런 XpressEngine의 코딩을 해야하는 내가 이런 잡다한 코딩 스타일로 시간을 죽이고 있는게 아닌지 회의가 든다.
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 엽기민원

2009/06/19 13:11 2009/06/19 13:11
,
Response
No Trackback , 3 Comments
RSS :
http://yupmin.com/rss/response/163

Trackback URL : http://yupmin.com/trackback/163

Comments List

  1. 고어핀드 2009/06/19 15:06 # M/D Reply Permalink

    1. Rails의 간편한 추상화 문법들이 그리웠다. ← 공감 백배.

    2. 개인적으로 "상속 레벨을 2개 이상 뒤져봐야 하는 코드는 던져버려야 한다." 는 편견을 가지고 있기 때문에... 저 같으면 걍 던져버렸을 것 같습니다. 뭐 제가 매일 만지는 Emotion Engine 같은 그래픽 엔진은 상속 레벨 같은 거 별로 신경 안쓰고 그냥 사용만 하면 되지만요.

    1. 엽기민원 2009/06/19 18:25 # M/D Permalink

      아 레일스 다시 시작하고픈...

      시간을 만들어야 겠어요. ㅋㅋ

    2. 엽기민원 2009/06/19 18:55 # M/D Permalink

      이렇게 얘기하면 까이겠지만, 왜 사람들이 제로보드에 열광하는지 모르겠어요. -_-;

      그래도 템플릿 엔진을 smarty 선택한건 좋은 선택인거 같음. metabbs에도 고려해봐야겠어요. ^^

Leave a comment
[로그인][오픈아이디란?]
« Previous : 1 : ... 8 : 9 : 10 : 11 : 12 : 13 : 14 : 15 : 16 : ... 109 : Next »

블로그 이미지

엽기민원의 옴팡진 공간

- 엽기민원

Notices

Archives

Calendar

«   2010/03   »
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

Site Stats

Total hits:
13186
Today:
44
Yesterday:
46