如何提升项目代码质量?

1.    23种设计模式

2.    代码规范(OC与禅)

3.   标准

1. 正确性(Correctness) 系统满足规格说明和用户目标的程度,即在预定环境下能正确地完成预期功能的程度。 如软件有没有按照需求规格来完成,计算出的结果是否正确,计算结果是否精确。

2.健壮性/鲁棒性(Robustness)    健壮性是指在异常情况下如硬件发生故障、输入的数据无效或操作错误等软件能够正常运行的能 力。 健壮性有两层含义:一是容错能力,二是恢复能力。 容错是指发生异常情况时系统不出错误的能力,对于应用于航空航天、武器、金融等领域的这类高风险 系统,容错设计非常重要。 而恢复则是指软件发生错误后(不论死活)重新运行时,能否恢复到没有发生错误前的状态的能力。 例如:因输入数据不正确,引起系统异常,这是容错能力不高引起的健壮性问题;操作系统死机了,重 启后能够正常使用,说明具有一定恢复能力,具有一定的健壮性;数据库发生故障后,再次启动时一般能 够恢复到正常的状态,恢复能力比较好。

3. 可靠性(Reliability) 软件系统在一定的时间内无故障运行的能力。 可靠性是一个与时间相关的属性,指的是在一定环境下,在一定的时间段内,程序不出现故障的概率, 因此是一个统计量,通常用平均无故障时间(MTTF, mean-time to fault)来衡量。 可靠性不同于正确性和健壮性,软件可靠性问题通常是由于设计中没有料到的异常和测试中没有暴露的 代码缺陷引起的。 例:由于某个地方数据库连接没有释放,在长时间运行的时候,出现活动的数据库连接数过多,造成系 健壮性/鲁棒性(Robustness) 健壮性是指在异常情况下(如硬件发生故障、输入的数据无效或操作错误等),软件能够正常运行的能统越来越慢,甚至系统停止服务。 

4. 性能(Performance) 性能是指软件及时提供相应服务的能力。 具体而言, 性能包括速度、 吞吐量和持续高速性三方面的要求: 速度往往通过平均响应时间来度量; 吞吐量通过单位时间处理的交易数来度量; 持续高速性是指保持高度处理速度的能力。 效率(Efficiency)指软件对CPU 处理能力和存储能力这两大类计算机资源的使用效率。效率和性能反 映了同一问题的“表”、“里”,性能为“表”,效率为“里”。 如系统运算一个报表,需要很长时间,这就是性能问题。

 5.安全性(Security) 指软件同时兼顾向合法用户提供服务,以及阻止非授权使用软件及资源的能力。 安全性既属于技术问题又属于管理问题。一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、 风险等多种因素)高于得到的好处,那么这样的系统就可以认为是安全的。 例:有人可以访问非授权的资源,这就是安全性问题。

 6.易用性(Usability) 易用性是指用户使用软件的容易程度。 软件的易用性要让用户来评价。 例:对于一般用户而言,Windows 的易用性比Linux 的高。

7. 可用性(Availability) 指的是产品对用户来说有效、易学、高效、好记、少错和令人满意的程度,即用户能否用软件完成他的 任务,效率如何,主观感受怎样。ISO 9241-11 国际标准对可用性作了如下定义:产品在特定使用环境下为特定用户用于特定用途时所具 有的有效性(effectiveness)、效率(efficiency)和用户主观满意度(satisfaction)。其中: 有效性:用户完成特定任务和达到特定目标时所具有的正确和完整程度; 效率:用户完成任务的正确和完整程度与所使用资源(如时间)之间的比率; 满意度:用户在使用产品过程中所感受到的主观满意和接受程度。

 8.互操作性(Interoperability) 指本软件与其他系统交换数据和相互调用服务用以协同运作的难易程度。 例:利用 Web

Service 增加软件的互操作性。 

9. 易理解性(Understandability) 理解和使用系统的难易程度。

 10.可扩展性(Extensibility)/灵活性(Flexibility)/适应性(Adaptability)/可伸缩性(Scalability) 反映软件适应“变化”的能力。调整、修改或改进正在运行的软件系统以适应新需求、变化了的需求 的难易程度。 例:如报销系统原来不需要总经理审批,现在要改为总经理审批,可扩展性强的系统不需要作太多 调整;如用户和数据量增加时,通过增加服务器来提高系统性能,这样可伸缩性比较强。

 11.可重用性(Resuability) 重用软件或其中一部分的难易程度。

 12.可测试性(Testability) 对软件测试以证明其满足需求规约的难易程度。 

13. 可维护性(Maintainability) 为修改 Bug、增加功能、提高质量而诊断并修改软件的难易程度。

 14.可移植性(Portability) 软件不经修改或稍加修改就可以运行于不同软硬件环境的难易程度,主要体现为代码的可移植性。


   4.原则(六大原则)

单一职责原则:实现类要职责单一;

里氏替换原则:不要破坏继承体系;

依赖倒置原则:面向接口编程;

接口隔离原则:设计接口的时候要精简单一;

迪米特法则:降低耦合;

 5.具体实施

    前期以代码抽查为主,后期加入机器检测(搭建基于Sonar的iOS代码质量检测系统)。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,324评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,303评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,192评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,555评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,569评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,566评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,927评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,583评论 0 257
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,827评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,590评论 2 320
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,669评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,365评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,941评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,928评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,159评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,880评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,399评论 2 342

推荐阅读更多精彩内容

  • 高级钳工应知鉴定题库(858题) ***单选题*** 1. 000003难易程度:较难知识范围:相关4 01答案:...
    开源时代阅读 5,679评论 1 9
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 171,391评论 25 707
  • 说的很多,做的很少;想的很多,写的太少…… 一直以来,都有想过把写作当成一种习惯,却由于这样或者那样的原因,写写停...
    freshtime阅读 160评论 0 0
  • 这本书的世界观有点模糊,案件全部发生在人类社会中,案件比较诡异,但罪魁祸首无一例外仍旧是人。 所以,这个小说有点文...
    梅刃苏阅读 10,189评论 0 1
  • 自己来贴手机膜会是怎样的心情?我猜是这样的 ▼ 本来自信满满的想贴膜这件事得多难啊!于是便开始自己去贴,紧接着整个...
    生活技艺坊阅读 1,153评论 6 19