如何实现高效编程

我们拿到一个需求之后,如何快速、准确地代码实现?

  1. 澄清需求,分析需求、拆分需求

拿到一个软件需求之后,先不要着急写代码。要把业务需求吃透,然后从业务角度对需求自上而下进行分解。把总任务分解为多个中等任务,再把中等任务分解为小任务。还要确定哪些任务需要并发执行,以及各个任务执行的先后顺序。

2、 实现需求及软件质量评估标准

首先要考虑是用一个进程?还是多进程?还是多线程?还是多进程和多线程并用?一般情况,cpu密集型任务用多进程,IO密集型用多线程。

按照顺序逐个实现中等需求,从代码角度遵循高内聚、低耦合的原则。函数功能要单纯,不要设计多用途的函数,减少函数复杂度。目标:编程时首先要达到正确性其次要有可移植性、可扩展性、可测试性、可维护性等质量因素,最后才考虑程序的效率

3、 软件设计原则与代码实践举例

(1)数据与代码逻辑分离。实现更好的松耦合,便于对数据进行集中管理。

(2)把读数据操作、写数据操作、处理数据操作分离,以便降低代码实现复杂度。即CQRS模式,全称"命令和查询责任分离",是一种将数据的读取操作和更新操作分离的模式。因为在许多应用中,数据的读取方式和数据的写入方式有很大的不同。

(3)需要用户配置的数据的组织形式,要从用户角度出发,便于用户增删改查,降低用户处理数据的复杂度。代码读写数据时,从代码处理逻辑角度去考虑数据结构(数据的组织形式),便于代码增删改查,降低代码处理数据的复杂度。如果用户配置的数据与代码需要的数据在组织形式上有差异,可以通过数据结构转换器(即函数)来进行数据结构转换。在代码处理过程中,要精心设计数据结构,首先要考虑降低代码复杂度,其次要提高代码运行的性能,对数据进行增删改查时尽量避免for循环。for循环嵌套尽量控制在4层及4层以下。

(4)代码要具有可扩展性,在不修改现有代码的基础上,通过添加新函数来扩展软件的行为。提高代码的可维护性和可重用性,降低软件开发的复杂度。

(5)一个类(函数)应该只有一个职责,当需求变化时,这个变化应该只影响一个类(函数),而不是多个类(函数)。将可能的变化部分封装起来。

(6)上层模块不应该依赖于低层具体实现模块,它们都应该依赖于抽象(或者接口)。将抽象层与具体实现层进行分离,通过抽象类或者接口来定义抽象层,而将具体的实现细节放在具体实现层中。这样,当具体实现发生变化时,只要接口或抽象类保持不变,上层模块就不会受到影响,提高了代码的可扩展性和可维护性。

 详见文章   【Python】新手入门学习:详细介绍依赖倒置原则(DIP)及其作用、代码示例_python依赖倒置原则案例-优快云博客

(7)一个软件对象应该对其他对象保持最少的了解。也就是说,一个模块或软件对象应该尽可能少地了解其他模块或软件对象的内部状态和行为,只关注与自身直接相关的部分。尽量降低软件实体之间通信的宽度和深度。减少软件对象之间的依赖关系,可以降低代码修改的复杂度,使得系统更加健壮和灵活。

总原则:不管在分解业务需求阶段,还是编码阶段,要遵循先分析设计,再进行编码。软件对象(类、函数)要精心设计、数据结构也要精心设计。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值