首页 | 博客群 | 公社 | 专栏 | 论坛 | 图片 | 资讯 | 注册 | 帮助 | 博客联播 | 随机访问
UnscalableSolutions- -| 回首页 | 2007年索引 | - -AssertionImplication

ArchitecturalBugs

关键词architecture                                          

最近做的两个项目,看到一些bug,其实都是架构上面的问题:

1,日期输入框没有对日期格式进行验证,分析:为什么要用一个一般输入框呢?就不能有一个日期输入控件吗?

2,数据库字段可以为空,但是代码的Domain层没有考虑那个字段为空的情况,分析:这个为什么不能通过类似Haskell的Maybe类型系统来解决呢?为什么我们要把Nullable的这个知识分布在数据库,ORM,Domain层呢?我们应该可以通过某些方法把它们集中到一个权威的地方。

3,很多bug很难重现,分析:为什么数据库不设计成只能加记录不能删记录呢?(一种funtional的数据库设计?)就好像财务记账一样,不用橡皮擦,这样我们就能够回到任何一个系统状态。那么重现bug就是小菜一碟了。

4,为什么输入的地方总是缺乏格式验证?分析:为什么就不能把验证集中表现到domain对象哪里,然后用到表现层?就像RoR一样。

从上面的例子可以看出,很多bug都不仅仅能归咎于疏忽或者流程,而是我们现在的应用架构的缺陷导致的。你修复bug的时候不能只见树木不见森林。

【作者: RonaldMatt】【访问统计:】【2007年11月2日 星期五 10:26】【注册】【打印

搜索

Google

Trackback

你可以使用这个链接引用该篇文章 http://publishblog.blogchina.com/blog/tb.b?diaryID=6516038

回复

验证码:   
评论内容: