代码基础功能研究

本文探讨了项目中应具备的基础功能,包括切面、异常处理、枚举、Http协议、存储策略、逻辑与物理存储、全局资源管理、工具类、反射、路径处理、线程使用、日志记录和API设计。强调了单元测试、聚合与解耦的重要性,并讨论了机器学习在代码优化中的潜在应用。
摘要由CSDN通过智能技术生成

作为一个项目,该有哪些基础功能?

基于经验来讲,实事求是。
111

1
1

1.切面

切面用于运行期产生动态代理相关内容,可以在不改变代码逻辑的基础上对代码进行增强。但是仍然需要业务逻辑的配合,才可以记录比较准确的记录详细情况。

2.异常

异常机制为程序的健壮性提供了保障,同时也有一个比较实用的功能,就是如何对一个产品的提示信息做出描述。因为所有正常的,符合逻辑的情况都会在程序内部顺利执行。而所有异常情况均会在操作节目出现对应提示。所以捕获和抛出这种机制就很好的确认了这种形式。

3.枚举

枚举是为了保证确保程序在一处更改,处处生效的好帮手。在一种自动化处理的代码系统中,我们没有必要让交互变成字符串类型,也没有必要保证生成代码的可读性,我们只要保证我们的逻辑绝对正确,因此枚举是必要的。我们唯有通过枚举来决定我们项目的一个统一处理。

4.Http

作为最常实用的网络协议,无数的产品都是基于此展开。我们着实没有必要绕开这个东西。这个协议的任何变化,都会影响我们产品。我们产品是息息相关的。我们有必要根据一个协议绑定吗?有必要。

5.存储

缓存是和存盘是两种选择。
我们的系统规定可以在不同存储策略之间灵活变迁。

6.逻辑存储和阻断

我觉得数据库的存储在于逻辑存储和物理存储。数据库的实现有什么逻辑的,物理的。但是我们肯定还是挺喜欢逻辑的。物理和逻辑这个区别是有的,我个人喜欢逻辑,因为可迁移。

7.全局静态资源和动态资源

有人十分不喜欢全局的,静态的,因此在考虑代码质量时,要尽量减少这些代码的出现。
spring则是做了全局动态资源的统一调度,实现了一种代码的跨越。

8.工具类的使用

工具类可以极大减少原声API的使用难度。工具类是典型的静态资源,因此也会污染代码

9.反射的使用

理论上说这类东西不可见,不可预知,因此我们没办法控制。因此尽量减少使用吧。

10.关于路径问题

写死的一些路径在项目中,十分的不好改变。但是有些路径又是随意的。更甚,和操作系统有关的路径问题是典型的历史遗留问题。

11.线程的使用

线程+缓存,可以达到十分神奇的效果。但是同时也复杂化代码。出了问题十分不好排查。

12.日志

日志理论上是为了记录异常,排错。因此有必要做全局的,统一的管控,而且为了减少数据量,尽量在出问题的时候记录。而且相关的上下文也要记录。日志的功能很简单,就是一个简单的命令行/文件输出的问题。

API风格

采用统一的API风格会大大减少不必要的代码量和数据量。同时因为返回的数据格式规范,因此也容易做成分布式,远程调用函数的形式。

单元测试

理论上,因为是按照模板的业务逻辑生成对应的代码,我们就可以生成对应的单元测试代码。单元测试无非是将所有的逻辑进行覆盖,最终去掉不必要的逻辑判断的过程。因此规则设计的越复杂,越成熟,越会生成完整的测试代码。

聚合和解耦

理论上,越高效的代码,其可读性越差。因此在代码优化的道路上,可否朝着逐渐生成看不懂的代码为主呢?然后一步步朝着c语言,朝着汇编语言过渡呢?
然后以0和1为边界,将软件进行高度聚合,简单解耦。是否可以过渡到一种十分高效的时代?

机器学习和代码

机器学习是经验主义的高度复制,而这个系统最初其实就是积累经验,因此和该系统并不冲突。等到真的形成了一种复杂,高效的框架,这时候按照深度学习框架跑的算法啊,性能啊,可以实时被调到最优,我觉得这是最终目标。而拆当下最流行的学习框架,补一些数学相关的知识,则是项目最终过渡到这个领域的一个福利。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值