好软件需要好代码

好代码的特征:正确,高效,简洁,易读,可维护性

 

软件企业为什么需要好代码?任何一个软件,他的可维护性、性能、安全、架构都是从代码中体现。它是好软件最后一步,是基础。软件开发其他工作其实都是为他准备的

 

 

好代码的特征

描述

实现方法

正确性

代码应当正确处理所有预期输入(expected input)和非法输入(unexpected input)

通过使用单元测试(Unit Test)和契约编程的方式来验证。

高效

代码要尽可能的高效运转。

了解算法的渐进时间(O技法)。优化往往是最后一步,前提你必须对基本的数据结构和算法有一定的料及。

简洁

可以用10行表示就不要用100行表示

合理Extract Method,熟练的利用重构里面的原理,改造自己的代码。

第一次编写完成之后,建议自己review一下代码。可以让代码更简洁。

易读

代码是不同开发人员交流的工具,编写易读的代码是非常重要的。

遵守共同的开发规范。

变量命名要能体现意义。

思考如何用最少的注释,就可以表达清楚代码中的概念。

可维护性

在产品生命周期中,代码经过恰当的修改就能应对需求的变化

满足之前四个条件,关键业务代码逻辑清晰,架构合理。就可以满足可维护性要求。

 

 

数据结构的合理应用

 

瑞士计算机科学家,尼古拉斯·沃斯(Niklaus Wirth1934215日—)说过:

 

“程序=数据结构+算法”

 

实现一个函数,如果参数可以使用数据结构定义,那么就使用数据结构定义。

例如

 

Int Distance(int x1,int y1,int x2,int y2)

改进为

struct Point{

int x,

int y

}

          int Distance( Point & p1,Point & p2)

 

 

恰当的重用代码和模块化代码

 

其实就是《重构》ExtractMethod

 

将函数中过长的代码提炼出来,然后组织在一起并独立到一个新的独立方法中,并让方法名称解释该方法的用途.该方法最好之处是有效的减少了方法中的代码.

 

典型的例子有很多:

 

1,文件保存到临时目录中,生成临时名称。我们都需要一个统一的类和对应的方法来完成这个。而不是将代码copy的到处都是。

 

2,主业务过程简化,原来150行业务描述过程,通过模块化代码。简化为10行。

 

灵活、健壮

 

灵活健壮的代码在于,你可以灵活的使用参数。而不是将代码写死。

但是也要注意一点:习惯约定大于配置。

 

注意配置文件的位置,注意代码规范,注意在数据层、业务层编码方式统一。

 

典型的例子有很多:

1Spring IOC方法,将类灵活的注入。反例,SpringAnnotation方法,将代码写死。

2,数据库的配置文件,都写到xxx.property

 

 

错误检测

 

对应的输入,是否进行了参数检查。有无if判断。

使用单元测试和模块化代码可以在编码阶段发现一部分问题。

采用代码复查的方式和方法,可以解决另外一部分问题。

编程方法采用契约编程理念

 

 

编程小工具

 

以下是从别的地方找的一些好的总结。

 

写好代码要掌握的基本数据结构、算法和概念

 

数据结构

算法

概念

链表

广度优先搜索

位操作

二叉树

深度优先搜索

单例设计模式

单词查找树(trie)

二分查找

工厂设计模式

归并排序

内存(堆和栈)

队列

快速排序

递归

向量/数组列表

树的插入/查找等

O时间

散列表

 

 

 

更深一些的:

 

数据结构:图,B树,矩阵

算法:动态规划,贪心

概念:企业应用架构模式,面向模式的软件体系结构。

 

 

2的幂表

 

2的幂

准确值

近似值

X字节转换为MBGB

7

128

 

 

8

256

 

 

10

1024

1K

1K

16

65536

6.4W

64K

20

1048576

100W

1MB

30

1 073 741 824

10.7B

1GB

32

4 294 967 296

 

4GB

40

1 099 511 627 776

1T(万亿)

1T

50

 

 

1P

60

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值