BBS水木清华站∶精华区

发信人: woju.bbs@sob.m7.ntu (Sound), 信区: InstallBBS 
标  题: Re: 请问BBS程式... 
发信站: 阳光沙滩 (Fri Nov 22 17:40:58 1996) 
转信站: Maxwell!netnews.ntu!sob 
 
※ 引述《Am.bbs@cis.nctu.edu.tw (上杉达也爱上浅仓南了)》之铭言: 
 请问大家.. 
   是否有人知道一个BBS程式的Flow Chart是怎样的?? 
   不用太详细....也不用有太多的功能.. 
   只需要主体的架构就可以了... 
   请知道的人说一下好吗?? 
   或是请告诉我去哪可以找到相关的资讯.. 
   谢谢!!... 
bbs.cs.nthu.edu.tw 的 plan 版是个 BBS Programming 的宝库,□头有 
不少相关话题的讨论,特别是opus兄很热心的分享技术与经验,且文件说 
明清楚详尽,使得初次接触 Maple 的 (expirenced) C programmer 能迅 
速进入状况。 
 
引用一篇 opus 兄以前贴过的文章: 
---------------------------------------------------------------- 
发信人: opus.bbs@bbs.cs.nthu.edu.tw (山抹微云), 看板: Plan 
标  题: Re: 请问站长... 
发信站: 清华资讯系学会(枫桥驿站) (Fri Jul 26 09:19:41 1996) 
转信站: sob!news.cs.nthu!maple 
 
※ 引述《Kaede.bbs@sob.m7.ntu.edu.tw (感动)》之铭言: 
 ※ 引述《ahua.bbs@bbs.cs.nthu.edu.tw (情趣用品专卖店工读生)》之铭言: 
 :   我想请问maplebbs有没有类似flow chart的一个流程架构图, 就是bbs中各个.c档 
 : 在mapplebbs所扮演的角色, 及和其他程式的对应呼叫关系??  我想由巨观著手, 先 
 : 了解整个mapplebbs运作的方式大要, 知道每个角色(.c file)的地位, 再循序各个 
 : 作研究了解. 
 :   还有我想请问maplebbs 或其他bbs有无做到scalable的考量?? 或有无考虑去做做 
 : 看?? 
 最完整的资讯就是程式码本身了, 
        这是不二的铁律 :) 
 
                □ 
 
        通常我刚拿到一套程式时,第一步就用 indent 将程式重新排版, 
        变成自己熟悉的格式。 
 
        第二步用 cflow,将所有的 subroutines 之间,彼此呼叫的关系 
        脉络整理出来。cflow 可以整理 caller -> callee 与 callee -> 
        caller 两种流程,相当於你所需要的 flow chart。 
 
        最後,如果有兴趣改程式,可以进一步利用 grep, vi, ctags 
        这些工具。 
 
        上面这些指令,都有很多 options,看 man page,熟练一下用法。 
        其中,尤其是 cflow,即使是 xfig 那麽大的程式,三五天就可以 
        掌握其梗概。 
 
 您如果有心经营您的 BBS 站, 我想从基本的显示讯息改起, 再渐渐加入新功能, 
 不出一个月就可以对整个程式了若指掌了! 
        资料结构方面,从 struct.h 切入, 
        程式流程方面,从 main.c + menu.c 切入, 
        很快就可以进入状况了。 
 
※ Origin: 枫桥驿站(bbs.cs.nthu.edu.tw) ◆ From: cs20 
----------------------------------------------------------------------- 
woju 也说一下自己的经验好了 :) 
 
indent、cflow、ctags 这类进阶的 development tool, woju 不会用(有些甚至 
连听都没听过:p),woju 只会 grep、vi... 等基本工具,但对 bbs 这种小程式? 
觉得已够用 :) 
 
对 Programmer 来说,选个好用的 editor 是很重要的,woju 用自己改版的editor 
-- ve,顺便广告一下其特色: 
1. 可看成是 Maple BBS editor standalone 版 (方便的 ANSI color editor) 
2. 括号对称的功能比 vi 准 (有考虑注解或引号) 
3. Search 功能 -- 
   1) 可指定是否分大、小写 
   2) 可指定是否在行首 (寻找 function definition) 
   3) 顺向/反向再次寻找 (依前次寻找所设定的条件) 
4. 区块处理 
   1) 区块可以是数行或一行□的几个字 
   2) 可跨档拷贝与剪贴 (因为使用暂存档) 
   3) 区块可以左右微调 
5. goto line 
以上这些功能是 C programming 时常用到的,其它功能可随自己需要陆续加上, 
因为有 source,一切都好说 :) 
ftp://sob.m7.ntu.edu.tw/sob-version/sobve.tgz 
 
本来 woju 以 emacs 为主 editor,过了一阵子觉得 emacs 太肥,就改以 vi 
当主 editor,後来发现 Maple editor,就把它改成自己想用的样子,并以ve 
为主力 editor。 
 
若遇上难解的bug时,就会搬出 emacs 来用,emacs 可有力的单步追踪程式,像 
bbs or ve 这类 terminal type的程式,可以将 tty 设到另一个窗;也可用 
attach 来 debug daemon (forked) process。 
 
用了emacs + gdb,UNIX 上的 C debug 将变得容易许多,不再是大海捞针,当 
还不知使用 emacs 时,woju 常为了解决 Segmentation fault 的问题煎熬好 
几天,用了 emacs-gdb 後,UNIX 上的 debug 就和 BorlandC debug 差不多了:) 
 
 
-- 
                                              woju@freebsd.ee.ntu.edu.tw 
                                                  台大电机  吴 庆 鸿 

BBS水木清华站∶精华区