打算建立一个小团队,收集点民意

qiezi 2007-04-05
通过这几天的讨论我感觉有必要组织一个小团队,合作一个项目,通过它来学习D语言。

这个帖子用来收集大家的想法,看看都想做哪些方面的项目,持续讨论一周时间吧。
jinheking 2007-04-05
做一个DDoc项目吧!像JavaDoc
我认为java的javadoc是很方便的功能
程序开发完成,文档自然也就生成(当然,注释你要写的标准呀!)
qiezi 2007-04-05
我个人提议做一个小型在线游戏,因为我看到群里有兄弟正在用D做游戏呢。

我以前的C++经验主要是服务器端,3年前做过一个境外赌场视频游戏系统,后来是一个人把所有子系统重写了,不过没多少代码。。

游戏部分包含多个房间,每个房间5个赌客,你可以从大厅进入某个房间。每个房间有一个视频,客户端只接收来自发牌员的视频,大家都不相信电脑发牌,所以网上赌场都是真人发牌。

视频部分比较简单,玩家通过发UDP打通防火墙并发送验证代码给视频服务器,视频服务器会验证游戏服务器发给它的用户数据,比对成功就把视频数据UDP发给客户端就行了。当然由于服务器和客户端可能不在同一个国家,视频数据传统比较慢,另写了一组转发服务器,把视频从视频源通过赌场购买的专线中转到客户所在区域的视频服务器上。

发牌系统用户比较少,处理一下发牌员的IC卡验证,把发牌员输入的牌面数据发到发牌服务器,再转到游戏服务器就可以了。有时输入错了,发牌员请求经理进行退牌操作,这时有个权限问题,根据IC卡数据来处理。这部分我后来重写是用的python,开发比较快。。。

那个游戏客户端比较简单,当时人手也不足,所以我用flash搞了个界面,嵌到VC里面,把flash容器窗口挖个洞,下面放的是VLC播放器,VC和flash通讯传递解析过的消息,在action script里面处理就可以了。本来应该不用挖洞,不过flash一刷新就把视频给盖住了。不过这个客户端不稳定,VC调用脚本有时会出现脚本提示“脚本运行了较长时间,是否停止?”,这时一般就要杀掉了,后来不知道有没有解决掉。。。。

后来做了一些Web项目,搞了些安全评估,去年有半年时间用ror做了个,大概一年多时间花在Web上。


目前我所做的工作是Cache系统,采用BerkeleyDB来缓解Web前端对数据库的压力,并通过自己实现的HA来保证前端的正常运转,数据库挂了也不怕。也可以用在游戏系统上的,一般在线游戏数据量比较大,不会直接写到数据库,保存在内存也不能持久,游戏服务器崩溃数据就没了。我了解到很多游戏系统是有一台自己做的DB服务器,游戏服务器的数据是更新到这一台上。
qiezi 2007-04-05
jinheking 写道
做一个DDoc项目吧!像JavaDoc
我认为java的javadoc是很方便的功能
程序开发完成,文档自然也就生成(当然,注释你要写的标准呀!)

DMD内置就有这个亚,http://www.digitalmars.com/d/ddoc.html

也可以用Doxygen,http://www.stack.nl/~dimitri/doxygen/
引用

Doxygen is a documentation system for C++, C, Java, Objective-C, Python, IDL (Corba and Microsoft flavors) and to some extent PHP, C#, and D.
wzjin 2007-04-05
严重支持qiezi兄弟的想法,不过惭愧的是我现在D语言的水平还真的很烂,估计帮不上忙,那就这样吧!我抽时间到火星社区跑几趟,多促成库开发的统一调度,免得重复开发,浪费开发者和使用者的时间,不管能不能做到,先从这方面努力先。
oldrev 2007-04-05
搞个标准库和tango,phobos竞争如何,呵呵
tomqyp 2007-04-05
我感觉应该做一些对D发展有帮助的东西,能吸引更多的人来关注D,或者给对D有兴趣的朋友带来方便。不过像开发环境、库、调试工具,这些都已经有人在做了。

同时应该从团队的实力角度来考虑,现在圈子里大部分人都是刚入门,且每个人都一些自己的生活、工作,所以项目不能太大难度不能太高,要不然大部分任务落在少数的高少身上,增加了高手们的负担,这对这个目前这个唯一的D中文圈子的发展也有影响。

不如做封装一个sdl吧。这两天下了几个D的游戏代码,发现用的都是C的接口,我网上找了一下,好像还没有对sdl的高度封装。

不过自己也是有私心的:D 因为这两天正在学SDL。
tomqyp 2007-04-05
oldrev 写道
搞个标准库和tango,phobos竞争如何,呵呵

也是,D的许多特性,简直就是为了库开发定做的。
jinheking 2007-04-05
tomqyp 写道
oldrev 写道
搞个标准库和tango,phobos竞争如何,呵呵

也是,D的许多特性,简直就是为了库开发定做的。


支持
把对数据库的支持加上是最好的
qiezi 2007-04-05
做项目就会形成库的。。。先做点库也可以。

前面看jinheking兄做了个String类,我建议利用D的“数组操作”特性(不知咋翻译这个才好),不要另写类。比如:
T[] sub(T)(T[] arr, int start, int end)
{
  // ...
}



这一个方法就可以用在字符中、其它类型数组中,而且使用很方便:

int[] ia = [1,2,3];
int[] ib = a.sub(1,2);

char[] sa = "abc";
char[] sb = sa.sub(1,2);

wchar[] wsa = "abc"w;
wchar[] wsb = wsa.sub(1,2);

dchar[] dsa = "abc"d;
dchar[] dsb = dsa.sub(1,2);


这部分除了接口严谨点以外,工作量可能不会太大,而且容易分配到多个人,可以先试试。