吃西瓜

走过必留下痕迹

目录
碎碎念-写代码的困惑(十八)
/  

碎碎念-写代码的困惑(十八)

引言

我们每天都要工作,每天工作的内容,都是坐在电脑面前敲代码。 在敲代码这件事情上面,我们很多人就做了很多年。但是,最近这几个月,我越来越发现我根本不会敲代码。我不知道什么是好的代码。我只是会敲一些代码而已。

什么才叫做好的代码?

其实在脑海中,这个问题是慢慢才出现的。我也回顾过去那些敲代码和改bug的日子。发现,我还是总结不出来什么是一段好的代码。

也许我们脑海中还是有一些所谓的原则。高内聚低耦合函数的责任要单一注释得有异常得捕获命名要清晰

但是,光光是函数责任单一这一点,我还是不得其门而入。怎么才算是单一的责任?怎么才算是一件事情?

举一个最简单的例子。

一般我们业务系统中都是分为多个层次。其中有controller层,service层,dao层等等。有些公司还把service层分为多个service层。

可能我们会这么去规定这些层次所拥有的责任。

controller层一般是做一些简单的入参的校验。service层是做一些真正业务上面的逻辑。dao层尽可能只是简单调用一下数据库,获取最原始的值,做一些ORM的映射。

那么service层中如果会有查询数据,要不要对这些数据的合法性进行校验呢?

好像是必须校验。不然就会抛出空指针之类的错误。

那么如果service层中使用到一些util的函数?那么这个基本的参数校验是谁来做?

是这个util函数来做吗?如果是这个util函数来做,那么controller层和service层上面不是已经做过了吗?如果util函数不做校验这个事情,万一这个函数被其他函数使用,很容易抛出空指针的异常?这个时候,不会有日志打印,也是一件非常苦恼的事情?这个时候又该怎么办呢?那么是做两边,各层之间是不透明的假装?

结合下之前看Spring源码的经历,Spring源码到底是怎么处理参数的合法性的这个问题的呢?日志又是怎么去抛出的呢?

还有是否Effective Java或者Clean Code之类的书籍中是否有这方面的讲解呢?值得一看。

这就是书籍带给我们的作用吧,前人栽树后人乘凉,站在巨人的肩膀上面,我们才能够看到更远一些。

关于写作

以后这里每天都会写一篇文章,题材不限,内容不限,字数不限。尽量把自己每天的思考都放入其中。

如果这篇文章给你带来了一些帮助,可以动动手指点个赞,顺便关注一波就更好了。

如果上面都没有,那么写下读完之后最想说的话?有效的反馈和你的鼓励是对我最大的帮助。

另外打算把博客给重新捡起来了。欢迎大家来访问吃西瓜

我是shane。今天是2019年8月27日。百天写作计划的第三十四天,34/100。


标题:碎碎念-写代码的困惑(十八)
作者:yang2yang
地址:http://blog.chixigua.xyz/articles/2019/08/27/1566918150330.html

评论