1)根据要解决的问题来设计线程或者类体系,保证带来的复杂性都是因为问题的复杂性而带来(用多线程可带来好处的地才使用),并且要试图从技术上尽量缩减方案的复杂性(比如用JDK5新线程代替原来wait,notify)。(数据迁徙重构有感)
针对代码:要思考多这几个类解决了什么问题,多几个线程又解决了什么问题,深层次的调用又解决了什么问题,如果没有解决什么问题,只是复杂,还是删除掉吧。
2)重构代码要有自动测试护航,哪怕是只有验收测试。
3)写足够少的代码,保证每小步都可执行,可观测,在每次小正确时考虑是否要重构。
顺序,先写接口,再写接口测试,测试失败,接口实现,测试通过,考虑重构。
就像是想做一个东西,组装一个东西,先做零件,想合起来时就合起来,不想合时就做部分。单个零件都有单元测试或者集成测试保证,合起来有验收测试来保证。做了一些再看看这些是不是搭,不搭就可以重构。
4)日志记录一定要有类名,方法名,及代码执行到此的副作用说明
5)如果原代码不错,改动原来代码一般要遵守原来代码的风格,如果相反,则应该尽可能在时间允许的范围尽量改动原代码。
6)如果要用设计来体现代码,如果程序使用面向对象思想来设计的,可以用类图来很好的表达,如果程序是面向过程开发的,用流程图来表达更容易些。
7)代码,是追求逻辑流程的清晰,还是追求代码的简洁是一个取舍,但清晰不是代码繁琐的借口。
8)主体功能用面向对象,细节用面向过程。
9)如果不能做到完美,抽取公共代码的最低限度,最容易改变的地方一定要抽取出来。
10)构造函数用于保证必须有的状态,可以防止程序出现意外的错误,增加代码可读性。
11)大多数互联网公司更关心软件的质量属性,而非业务建模。
12)重复代码抽取
代码:出现重复代码,但又不完全一样。
a 把不一样的地方抽象化,就一样了。
b 不一样的地方可以抽象成抽象方法或者接口
c 合并公共代码,不一样的地方用子类或者实现接口的方式来实现。
13)上线
调用其它人的接口一定要把日志打详细
如果程序对CPU或内存要求比较高,一定要在测试环境和线上查看CPU或内存占用率。
14)日志
日志可读性要好,比如多线程程序,一定要打印出线程的名字,要易读,如th-1。
如果监控内容中包含字符串,要能显示出两边是否有空格,比如两边加括号(aaa)。。
15)代码自检
在自己审核代码时经常看不下去,感觉都没问题,但如果有问题,带来的代价比想象中的要大的多,带着这样的心态去审核自己的代码。当然有JUnit测试更放心些,但代码自检还是有自己的意义。
相关推荐
【标题】"my-blog:只需记录一些编码经验" 暗示了这是一个关于编程和开发经验分享的个人博客项目。这个项目的重点可能是作者在编程过程中积累的技巧、问题解决策略以及对各种技术的理解。 【描述】"我的博客 原创 ...
在“安全编码实战经验.pdf”中,我们可以看到作者分享了一些关于如何在实际开发中应用安全编码原则和技术的知识点,尤其是针对PHP编程语言和Linux环境。 首先,文档提到了C语言的栈溢出攻击。栈溢出是由于函数调用...
它可能包含一些高级功能,如自定义编码集转换、字符串混淆与解混淆、编码深度转换(多层编码的解析)等,这些功能可以极大地帮助参赛者解决复杂编码难题。 使用Converter-cn时,用户通常需要输入或导入待转换的文本...
《VB编码经验手册》是一本深入探讨Visual Basic (VB)编程技巧和最佳实践的专业书籍,主要面向已经掌握VB基础知识并希望提升编码技能的开发者。这本书的内容涵盖了VB编程的多个方面,旨在帮助读者从实践中积累经验,...
文档中的斜体部分通常用来强调如果不遵循特定规则可能出现的问题或现象,以及一些额外的注释。这部分内容旨在提醒开发者注意潜在的风险,并提供进一步的解释。 #### 四、版本控制与修订记录 版本控制和修订记录...
尽管如此,GB2312在中国大陆的早期计算机应用中扮演了至关重要的角色,它不仅是汉字信息化的基础,也为后续的汉字编码技术发展提供了宝贵的经验和教训。直到今天,在某些特定的应用场景下,GB2312编码仍然被使用,...
哈夫曼编码统计英文字母频率 哈夫曼编码是一种高效的编码方式,广泛应用于文件压缩、数据压缩等领域。在本节课程设计中,我们将使用...然而,哈夫曼编码也存在一些缺点,例如计算复杂度高、需要大量的存储空间等。
此外,这个工具可能还具备一些高级功能,如批量转换、支持多种编码格式(如UTF-8、GBK等)等,以满足不同场景的需求。不过,具体的功能集需要参照工具的使用说明或界面提示来了解。 总的来说,“URL编码转换工具”...
这个编码表不仅为我国早期计算机系统的汉字处理铺平了道路,而且在技术层面为后续的编码标准如GBK、GB18030乃至国际标准Unicode的推出提供了宝贵的经验和基础。 GB2312编码表的特点在于,它将6763个常用汉字及682个...
在使用五笔字型输入法时,熟悉字根、掌握编码规则以及积累足够多的编码经验对于提高打字速度和准确率至关重要。对于初学者而言,一本详尽的五笔字型编码查询手册将是学习五笔输入法的得力助手。通过不断练习和查询...
GB2312编码是一种双字节编码系统,包含了6763个常用汉字和一些特殊符号。每个字符由两个字节表示,前一个字节属于高字节,后一个字节属于低字节。在GB2312中,高字节的范围在B0-AF,低字节的范围在A0-F7。 UTF-8...
标题“基础档案编码修改工具V1.3”指的是一个专门用于修改用友系统中基础档案编码的软件工具,版本号为V1.3。在企业信息化管理中,基础档案是记录公司基本信息,如部门、员工、客户等核心数据的关键部分。编码是这些...
本人目前是一个大一菜鸟,零基础学的编码器方面,希望我的经验对你有些帮助。 分享一下霍尔编码器电机的使用与测速,我用的是25GA-310直流减速电机。先来看一下最基本的 接线方法——- ——S1与S2连接单片机上的S...
对于初学者来说,直观的图文说明能够快速上手,而经验丰富的用户也可以从中获取一些高级技巧,达到事半功倍的效果。正确的使用方法不仅能够提高工作效率,还能够避免因误操作造成的数据丢失或损坏。 综合来看,...
它提供了一些工具类来处理BCD编码,如`DecimalUtils`,可以方便地进行BCD与十进制数之间的转换。 在压缩包中的`BCDCode.java`文件可能包含了一个自定义的BCD编码示例。通常,这样的类会包含以下功能: - `encode...
综上所述,“安全编码实战经验 (1).pdf”很可能包含了上述的一些或全部内容,提供了实际操作中的案例和技巧,帮助开发者在实践中提升代码安全性。对于任何软件开发团队而言,理解和掌握这些安全编码原则都是确保系统...
在实现FM0编码时,需要定义一些控制变量,如位宽为1比特的变量用于表示位控制(time_cntl),以及位宽为3比特的变量用于表示位计数(bit_cnt)。这些变量配合状态寄存器start_temp1、start_temp2和start_temp3来决定...