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水木清华站∶精华区