项目的大小衡量标准,项目架构的方法(填空架子,持续集成,边开发边测试效果)(装贴)

java项目的大小衡量标准:

  • 微型:只是一个人,甚至是半日工作在几天内完成的软件;
  • 小型:一个人半年内完成的 2000 行以内的程序;
  • 中型: 5 个人在 1 年多的时间内完成的 5000-50000 行的程序;
  • 大型: 5-10 人在两年内完成的 50000-100000 行的程序;
  • 甚大型: 100-1000 人参加用 4-5 年完成的具有 100 , 0000 行的软件项目;
  • 极大型: 2000-5000 人参加, 10 年内完成的 1000 万行以内的程序;

以上摘自:《软件工程概论》   郑人杰、殷人民编

这样的观点是以代码行作为计量标准的,认为代码行多的自然项目也就大了。

参考:http://zhidao.baidu.com/question/303914133298509404.html

---------------------------------------------------------------------------------

那就是重复的代码,一定要被合并成函数,或者是类的方法。这样首先是节约代码,但是更重要是,结构开始展现,从彻底的面条代码变成有条理,有结构的代码。人的认知能力是有限的,记忆能力是有限的,屏幕尺寸也是有限的。当你把几百行面条代码变成,几个函数以后,首先,你用来理解代码的单元变化了,从大逻辑上,你可以把每个函数当作黑盒子,总体结构就变成,调用几个函数了。然后当发现系统有问题,且你怀疑出在某个函数内的时候,你可以只分析这个函数的输入输出,就可以定位问题是否是在这个函数内。确定后,你修改和去理解的难度也大大降低。

以前有一个原则,叫做重复两次的代码块,必须函数化。一个函数尽量在几十行内。不见得非要100%的严格执行,但是建议认真体会,时刻反思。

写代码的过程应该是,先写厚,然后再写薄。写一段时间就反思一下,实现的结构是否合理,是不是太过冗余。当你的代码总是能保持一定的结构和复用程度以后,代码行数就会是项目规模的良好评估参数了。多一行,就说明逻辑确实复杂了一层。如果形成这样的习惯以后,随着代码量的增长,你的功力自然会加深。

其实写程序,就是一连串逻辑,你可以抽象他们,也可以具象他们,在看全局的时候抽象,可以帮你思考问题,看清big picture,可以理清头绪。当做具体实现的时候,你可以回到具体的细节上,但是,有了全局的抽象结构,你可以只关心一个局部的细节。

刚才我和我们公司主程在商量新产品的开发步骤,我跟他回忆我们之前开发这个2万多行交互排版系统。我说,如果我们一开始,一个模块一个模块的从头做起,一步一步做精,那么也许我们做几年才能做完。但是实际上我们是先把每个模块都定义好,实现了一个空架子,然后一点一点完善。这样有几个好处,第一,这东西是可以持续集成,边开发可以边测试整体效果,可以不断的改进,不需要瞎子摸象。然而,我们实际上,从始至终可以掌握进度,可以看清轻重缓急。这样,这个项目才可为,否则就完全不可控。

当你能顺畅的切换你的抽象层次,你其实就明白了什么是架构。

时间: 2024-11-06 03:50:03

项目的大小衡量标准,项目架构的方法(填空架子,持续集成,边开发边测试效果)(装贴)的相关文章

项目的大小衡量标准,以及项目演进的方法(填空架子,持续集成,边开发边测试效果)

java项目的大小衡量标准: 微型:只是一个人,甚至是半日工作在几天内完成的软件: 小型:一个人半年内完成的 2000 行以内的程序: 中型: 5 个人在 1 年多的时间内完成的 5000-50000 行的程序: 大型: 5-10 人在两年内完成的 50000-100000 行的程序: 甚大型: 100-1000 人参加用 4-5 年完成的具有 100 , 0000 行的软件项目: 极大型: 2000-5000 人参加, 10 年内完成的 1000 万行以内的程序: 以上摘自:<软件工程概论>

项目管理发展的新阶段——PRINCE2项目管理方法

1.PRINCE2的产生与发展 项目管理向来就是一个充满挑战的管理,管理人员必须在事先确定好的人力.物力.财力.时间基础上产出预期质量的项目结果.项目管理中的失控一直就是官.产.学界关心的问题. 早在20世纪70年代,英国政府就要求所有政府的信息系统项目必须采用统一的标准进行管理.1979年CCTA采纳Simpact Systems公司开发的PROMPT项目管理方法作为政府信息系统项目的项目管理方法.在PROMPT项目管理方法的基础上,20世纪80年代年英国政府计算机和电信中心(CCTA)(后来

Android 项目重构之路:架构篇

去年10月底换到了新公司,做移动研发组的负责人,刚开始接手android项目时,发现该项目真的是一团糟. 首先是其架构,是按功能模块进行划分的,本来按模块划分也挺好的,可是他却分得太细,总共分为了17个模块,而好几个模块也就只有两三个类而已.但应用本身其实比较简单,要按功能模块来分的话,最多五个模块就够了. 另外,有好多模块划分也很模糊,也有很多类按其功能其实可以属于多个模块的,也有些类定义不明确,做了不该做的事.有时候,我要找一个界面的Activity,按照其功能应该属于A模块的,可是在A模块

Android项目:proguard混淆之常见问题及解决方法汇总

1.使用proguardgui混淆器对jar包进行混淆,出现EXCEPTION FROM SIMULATION错误: [2014-07-08 14:29:55 - Test024_HouseBox_v02_jar] Dx  EXCEPTION FROM SIMULATION: [2014-07-08 14:29:55 - Test024_HouseBox_v02_jar] Dx local variable type mismatch: attempt to set or access a va

将项目部署到tomcat的三种方法

2014年8月初8    星期五 又到星期五了,可以轻松的敲点东西,不担心睡太晚起不来,或者起来后上班打瞌睡. 由于近期学习了solr相关的知识,部署solr项目到tomcat上的方式很多,包括官方的等.我自己也找了中非官方的方法,感觉很好.而且以前用MyEclipse开发,出错很少,现在用Eclipse所以部署项目后在后台调用user.dir的时候出错,试了一下午也没事出来,而且越试越想试,但是带我的人不让我弄了,他帮我弄,让我干其他任务,我都怀疑是不是他也和我一样就喜欢干这种事情,所以自己去

WCF项目中出现常见错误的解决方法:基础连接已经关闭: 连接被意外关闭

原文:WCF项目中出现常见错误的解决方法:基础连接已经关闭: 连接被意外关闭 在我们开发WCF项目的时候,常常会碰到一些莫名其妙的错误,有时候如果根据它的错误提示信息,一般很难定位到具体的问题所在,而由于WCF服务的特殊性,调试起来也不是那么方便,因此往往会花费不少时间来进行跟踪处理.本文介绍我在我在我的框架里面使用WCF服务的时候,出现的一个常见错误的处理方法,它的提示信息是:基础连接已经关闭: 连接被意外关闭.这种情况我碰到的有两种,一种是返回DataTable的时候出现的,一种是返回实体类

eclipse项目中丢失的R包找回方法

当我们项目中的R文件丢失的时候会令我们痛苦不已,怎样找回呢?总不能删了吧,那样心血会毁于一旦的,我们肯定不会那样做,那要怎么办呢?我这里提供三种方法: ?一,一般情况下这样: ?    ?方法一:选中项目clean一下: ?    ?方法二:选中项目然后右击找到Android Tool再Fix一下: ?二,第二种情况下: ?    ?1,找到你的xxx.xml文件,首先找到报错的,把错误改正过来,这样应该就可以了. ?    ?2,如果第一种方法不行,就把自己的xxx.xml文件都改动改动,然后

NET MVC1项目升级到MVC2最简单的方法

NET MVC1项目升级到MVC2最简单的方法 把MVC1项目升级到MVC2,最简单的做法如下: 新建MVC2项目 新建一个MVC2项目,把原来MVC1的项目文件全部拷贝到新建MVC2项目目录里,依照MVC1项目的引用在MVC2项目中作同样引用. 修改web.config 用"System.Web.Mvc, Version=2.0.0.0"替换web.config中的"System.Web.Mvc, Version=1.0.0.0",注意根目录的中web.confi

将Eclipse项目转换成AndroidStudio项目过程中遇到的问题以及解决方法

将Eclipse项目转换成AndroidStudio项目也不是第一次了,昨天转的时候遇到几个问题: 首先将项目导入androidstudio,导完后报错: 问题一: Error:java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Error:Execution failed for task ':app:mergeDebugResources'.> Error: jav