今天逛微信公众号的时候看到一个文,关于给软件新手建议的事情。看了之后有一点想法,然后就思考了下,觉得有必要记录一下自己的建议,所以就有了此博文。
这里提一下,笔者自己非计算机专业,但是在学校的时候就对编程感兴趣,毕业后也从事编程工作,累积了一定的经验。按笔者的理解,不管你是否科班出身,需要从入门到精通开始进行学习并且进行实践,在实践中去积累和总结经验,这样才能够提高自己的编程认知和思维方式。此博文只是笔者现在的一些建议,后面如果有新的亮点那再补充完善。
1、 理解需求;
编码之前必须先理解需求,知道你需要做什么,然后再开始编程。这一点很重要,就象你做题目一样,先理解了题目的意思,才能回答问题。需求方面,如果有不明白的,能够咨询项目经理,把需求弄明白,然后才让架构师啥的把架构搭建起来,接着才能够进行实际功能模块的编码工作。
2、 多阅读相关编程语言的书籍;
阅读书籍是挺好的一种提高编程思想和技术的方式,比阅读源码的效果更好。一般建议先阅读从入门到精通系列,然后到实际功能模块,才到设计模式,到架构方面的书籍。逐步提高该编程语言的实际编程技巧和经验。但是还是得配合其它项目源码的实际来提高水平。
3、 多阅读开源软件、框架、类库的源码;
阅读源码笔者认为是一种快乐的过程,能够从中学习到别人的经验,也是提高编程思想、水平和经验的一种必要的方式。阅读书籍能够得到思想,而阅读源码就是能够得到实际的经验了。建议阅读该编程语言中的架构及大型的项目源码,从而提高编程的思维,从高维度来对自己的编程水平进行提高。
4、 适当的编写代码注释;
编写注释笔者认为是适当即可,就是说对于一些复杂及对其它编程模块进行编写注释即可。编写注释也是一种好的习惯,主要是为了在以后回顾自己的代码的时候能够有提高,这时候还能够应用新的编程思路去对该业务代码进行重构而不迷糊,适当的注释对于理解和回顾以前的业务代码有很大和必要的帮助。
5、 有空的时候回顾以前编写的代码;
在阅读书籍和其它项目的源码之后,也就是说自己的编程思想提高之后,需要对自己以前的代码进行重构,能够将当前的编程水平和经验的内容进行记录及得到实践,这时候的重构,将以前的代码得到了思维的提高,也是很愉快的过程,就与自己的思维方式得到提高的那种喜悦心情一样,对自己的心情也是有愉悦的帮助。
6、 编写测试代码;
说实话,笔者的测试代码写的不多,但是建议对一些重要的业务模块进行编写测试代码,就与理解业务一样,以后该模块的代码如果有变动,那直接执行该测试代码就能够直接将该模块代码的一些问题进行基本的测试,保证基本的功能不出问题。而且,如果对一些模块代码进行编写测试代码,也是一个使用该模块的过程,也算是对该模块实际应用的过程,也是一个例子,这样以后使用该模块的时候直接将测试代码里的应用放到其它项目中即可,保证了该模块不出问题,而且也是稳定的代码。
7、 重构代码;
笔者对自己的代码,后面阅读书籍和其它源码得到思维提高之后,会对该模块的代码进行重构,将该模块的编码水平和实际的代码进行修改,能够提高该模块的架构和编码水平和代码质量,也是提高的一个过程,同时该功能模块的功能和质量都得到了提高,也更加的简洁、优雅和健壮安全。所以,笔者强烈建议读者在有空的时候对自己以前的代码进行重构,也是一个思维提高的总结,实际应用的一个总结和应用。
8、 设计模式;
对于编码,一定要学习设计模式。其是软件大师对于实际的应用中的经验总结,也是非常重要的应用的实践经验,更加的编码和功能应用的过程。也就是说在实际功能模块开发中,碰到与设计模式一致的例子,直接就应用该模式即可,前人的经验都给我们总结好了,代码和模块也更加的健壮,所以学好设计模式对于我们的架构设计和编程思维的提高有很大的帮助。
9、 整理写过的代码,形成例子;
与上面的重构和测试类似,笔者认为需要将自己的模块代码整理出来,形成例子,相当于对该代码模块进行测试类似,能够帮助读者在以后的编码应用中直接应用该例子,复用该模块代码即可,更加的方面和方便。
10、提高编程思维;
从需求到设计是一个思维方式,从设计到编码是一个思维方式。这里的需求到设计,笔者认为是从一个架构方面出发的,比如我们使用PowerDesign工具设计数据库,使用UML设计软件的类库和组件等,需要的是一个从文字需求到图形和逻辑设计的过程。而从设计到编码,笔者认为是一个从设计图纸到编码实现的过程,比如我们根据UML类图去实现一个类代码,根据时序图去实现从一个模块到另一个模块的调用过程等,这个也是一个思维转换的另一个过程。
现在的编程主要是面向过程和面向对象两种,面向对象是主要的编码方向,里面的类库也是面向过程的方式。新的编程语言基本上都是基于面向对象的,无论是哪个类都是在命名空间里,都是一个个的类堆积起来的,而类是面向对象的对象模板,已经是面向对象的编码方式了。
提高编程思维,新手们要把自己的维度提高,比如站在架构师的高度去思考编码方式,架构师的思维,已经在底层的编码上提高了,需要新手们深入理解设计模式,从高的思维层次去要求自己,从而提高自己的思维方式,不知不觉中也能够提高纬度,成为高级的程序员和架构师了,对于自己的成长有好处,对于自己的职业生涯也奠定了基础。
11、 前端的设计;
软件前端的设计,从UI出发,到功能模块的设计,建议将自己放到产品经理的层面去进行设计,同时需要参考操作系统和其它软件的UI和模块设计,将当前的设计界面与当前的市场中的其它UI设计结合起来,既能够让使用者更快的熟悉和使用该软件,同时软件前端的功能设计也能够更好的将设计者的要求结合起来,将产品的实际功能更好的呈现出来。
12、后端的开发;
软件后端更好的是从架构出发,然后到功能模块,到实际的功能点的编码,这是一个过程。建议读者将自己放在架构师的思维度上去进行开发,同时结合自己以前的例子进行编码,这样的模块才能够进行其它项目的复用。而且性能、安全性方面也需要进行考虑。
13、数据库的调优;
数据库的调优是一个过程,笔者现在的理解,就是将该SQL语句进行重构,将表的索引充分利用起来,这样SQL语句的效率就体现出来了。从基本的多表查询到临时表等等,最终的要求,笔者认为就是将SQL语句里的查询改成用到表索引就行了。
上面是笔者对于编程的一些思考,也是对新手的一些建议,希望能够对新手们有帮助。强烈建议新手多阅读书籍和源码,从别人的经验里去学习和积累,形成自己的经验和方法,就跟在学校里的学习一样,都需要自己的理解的基础上去总结,有自己的学习和实践的方法,这样才能够在实际的工作中事半功倍,提高自己的工作效率,更好的指导自己的学习和工作经验。
笔者:刘恒辉
2023年7月23日星期日