软件工程
bmqnctrue
我在研究计算机游戏,游戏引擎和图形学
展开
-
开源软件多得让我无从选择
我感觉现在开源软件很多,多得有时候自己都不知道要选那款开源软件是最好的。 就是说,很多开源软件确实做的很不错,但是这些开源软件都不能完完全全的应用到我的项目中,这很尴尬,因为我需要对他进行改造,有时,我发现这些开源软件某些地方做的不好,或者说不符合我的这个领域,或者说在我的这个领域,这个开源软件的工作方式换一种的话,可能会工作的更好,所以我需要了解开源软件的原理,包括他的源代码,工作原理,并...原创 2011-04-29 17:46:59 · 210 阅读 · 0 评论 -
哨兵的作用
很多时候哨兵能简化问题的处理方式,今天做了一个字符串处理的函数,发现原来想的很复杂,要考虑很多种情况,后来发现在原来的字符串后面加上哨兵字符后,能够简化很多处理的问题,不用分成多种情况考虑字符串的边界情况。这个很无敌。。。。 我总结了一些,应该是字符串处理的时候很多边界情况最难处理,如果我们能在处理上做一些简化(需要一些技巧性的东西),代码就能清楚和整洁一些。 这样带来的好处是代码不会...原创 2010-11-03 17:01:58 · 363 阅读 · 0 评论 -
关于模型一致性与代码质量的思考
我感觉代码质量很重要,现在很多出来的程序员非常不重视代码质量,很多时候大家以为只要做出来功能就够了,但实际上是远远不够的。我感觉这样写出来的代码根本不是产品级的,而是toy program。 大家好像都不太重视防御性编程,很多时候都是想当然,在某一步,想当然的认为某一种情况不会出现,某一种数据不会出现。我觉得这种思想非常错误。 令人惊讶的是有时候做出了某一个功能,然后我发现了bug,我...原创 2010-10-15 16:45:10 · 192 阅读 · 0 评论 -
关于Test Case与Bugzilla的一点思考
对于开发人员来说,我觉得自己先做单元测试是必要的,当然,其实不管做什么测试,Test case我觉得有必要进行一个管理,可以将操作流程,测试中用的数据,发生了什么问题,出在哪个模块中,怎么修正的,我觉得都可以记下来,以方便进行管理。 这样做的好处是:保存Test Case,方便后来的程序员进行测试,因为他可以知道什么地方workflow没走过(代码覆盖率。。。。。),以及什么测试做过了,自己...原创 2010-10-14 11:16:00 · 96 阅读 · 0 评论 -
关于软件可扩展性与代码防御性编程的一点思考
软件可扩展性我从程序员的角度来理解,应该是这样的: 代码应该是可扩展的,便于他人阅读的,代码是非暴力的(非暴力的意思是说我修改了一个地方,其它与之类似的地方时页同时修改或者说只需修改很小的一部分,典型的例子是字符串的国际化问题,我见过n多人写的代码都不太好,而且经常都振振有词) 我感觉国人做软件的最大一个问题是:很多时候以为做出功能就很牛B了,都没有考虑软件的健壮性,易用性,和...原创 2010-09-30 17:22:45 · 128 阅读 · 0 评论 -
我对代码膨胀的理解
代码膨胀不是一件好事,我看云风的blog上说网易那款经典游戏的核心代码只有10w行。合理的组织代码结构(运用设计模式等)是可以控制住代码的。 代码量的多少我觉得不能单一的作为程序员优秀与否的唯一标志,我觉得更重要的是代码的质量,程序员写出来代码质量(代码结构,清晰性,可读性,对于性能要求高的软件,还包括算法的复杂性等)我觉得更是评判程序员优秀与否的更重要的衡量标准。 真搞不懂为什么现在...原创 2010-09-30 12:45:20 · 264 阅读 · 0 评论 -
杂谈UI编程
UI上我感觉要做好蛮难的,细节很多,以前记得看过一本书,说如果一个人细节做的很好,那么他做UI做合适。我个人认为UI也能衡量一个程序员思维的缜密和逻辑考虑的是否完全。 我觉得其实做软件是这样的:既然做出了软件就要有人用,做好是傻瓜软件,这里的傻瓜软件不单指软件功能要完善,用户的合理需求满足(不合理的我们可以试图说服用户)同时整个软件的界面要清晰和易于操作,同时要多替用户着想,即用户想到的我们...原创 2010-09-30 12:34:19 · 146 阅读 · 0 评论 -
关于数据模型的组织问题
有时候看bad code也是一件好事,至少能刺激自己多想一些问题,这几天最大的收获就是对工程中的数据有了比较深入的体会,其实组织数据模型还是需要很强的功力的。 数据模型的组织我觉得有以下几点比较重要: 1.模型的架构(这个很难,包括数据结构etc) 2.数据的缓存与备份。我感觉如果不是做分布式计算那种,或者cache那种为了提高性能,保存多份数据不是一个明智的做法,因为你得解决数据的同步...原创 2011-01-25 09:56:49 · 210 阅读 · 0 评论 -
关于git与cvs的几点看法
首先我觉得GIT确实好用,二者之间有些概念是相似的, GIT相比CVS来说,确实有很多优势。 不过GIT很多地方确实比CVS要快,首先体现在分支的快速建立上,确实快速很多。因为GIT建立的分支代价是相当的小。 代码的提交上GIT确实也快很多(抛开网速,服务器性能的原因),因为它是直接比较快照的,代码差异比较更快更容易,唯一疑惑的地方是它是基于SHA算法做摘要的,但是目前据说SHA...原创 2011-01-21 12:25:18 · 190 阅读 · 0 评论 -
最近要读的书-2011-1-21
mar一下,给自己定格目标,很多书目前都没读,应该趁这段时间赶紧将其读完,然后徐图发展。 应该要读的有以下几种类型: 1.计算机基础书籍:算法,设计模式,计算机底层os,编译器的知识。 2.专攻某个方向的知识:如分布式系统,信息搜索这块的。我最近发现自己对信息搜索这块有一些天赋,O(∩_∩)O哈哈~、 3.工具的熟悉,现在的程序员不可能不用工具来做开发,既然有工具可以让事情变得...原创 2011-01-21 11:04:47 · 95 阅读 · 0 评论 -
关于软件工具的看法
之前和dirty同学聊过这个话题:开源世界的工具有时候多的我们无法选择,无从下手选择哪个工具好,有时候工具多了并不是件好事,并且每个公司的情况不同,有时候每个工具不是拿来就能用的,我们需要对他进行改造。 最近发现公司的测试用例库没有创建,积累太少了。想选一个测试用例管理工具,可是有些工具不是太复杂(需要增加学习成本,还有些可能是收费的),就是比较不适合公司本身的情景,自己想写一个,不过简单够...原创 2011-01-21 10:32:21 · 94 阅读 · 0 评论 -
关于软件测试用例库的一点看法
关于测试用例库我有几点想法: 1.首先我们代码库的代码经常是非常丑的(所以我才需要不断的重构)。 2.每次测试时如果我们能够保存一个测试用例将是非常好的一个习惯。首先从代码上看,应该说每个测试用例对应了代码的一处地方。 因此实际上就将代码与测试用例关联起来了。 3.如果我们坚持构建测试用例库,好处如下: a.测试用例库对所有的组内成员开放,所以,不单是测试人员能够做测试。...原创 2011-01-19 17:18:43 · 446 阅读 · 0 评论 -
关于软件安装的可用性的一点想法
好几次安装了公司的软件,但是还是感觉不好用,关键的地方在于很多时候操作失败了,比如安装过程的初始化数据库的时候,如果数据库初始化失败,但是在数据库中依然存留了之前脚本创建的表,这样很容易在数据库留下了垃圾数据。 另外一个感觉不好用的地方是软件的安装程序,windows based的安装软件做的好的,都有一个功能,比如之前已经安装了某个软件,但是这次你想添加某个软件的功能或重新做一遍初始化的操...原创 2011-02-17 17:10:57 · 121 阅读 · 0 评论