温故而知新
说明水平进步了,如果还是觉得老代码写的好说明原地踏步
好事啊,就应该这样,无限进步
影视飓风,无限进步,哈哈
用未来视角批判过去,是不公平的。以前说过的话,做过的事,现在看多少会觉得幼稚,规律如此,不必改变什么。相反可以利用这一点,筛选自己真正好的产出。拿某位原创歌手举例,他写完歌会留着,一个月内再也不碰这首歌,一个月之后再听,如果还是觉得好听,而不是“写的什么狗屎”,那就可以发布了。
总要成长的嘛,你回头看小时候做的事情不也会觉得幼稚。
不写代码就不会有屎山
从根本上解决问题
有没有想过第一条可以学Rust里的解决方法,构建一个Result<T, E>
的类型。T
是返回值,E
是错误,然后想办法让它们都可以存可空值,用的时候判断一下。
如果是类的话,感觉还是写一个fail方法,参数是errorMsg、errorData(可空),在参数里把这两个参数赋值给类的公共变量或者私有变量也可以,若私有再加getErrorMsg和getErrorData两个方法。在用的时候如果操作成功,则无需调用后面两个,如果操作失败,可以选择调用错误提示或者错误相关数据。
再者 同时返回两个参数,不是所有语言都支持,而且我比较喜欢写
if(操作){
成功
}else{
不成功调用getErrorMsg
}
因为你进化了啊
Rust里的Result<T, E>
提供了is_ok()
、is_err()
这样返回bool
的方法,可以仿照实现以后直接接在操作后面链式调用就可以。而且还可以提供直接转换成Optional
等安全可空值的类型。如何实现、怎么使用基本上就是想象力的事情了。
这样的确不错,but链式调用我还不太理解是怎么实现的,学一下
如果是C#或者Java,在一个类的方法里返回this
。Python类的方法里返回self
。总之就是返回这个类的实例本身。
当方法们都返回这个实例本身的时候,那么就可以链式调用方法了。想链式调用什么,就返回什么的实例。
原来这么简单,感谢,明白了
不一定追求最美观,主要还是易懂易改
无求美观,但求复用率高,改的时候无需改多个地方
也不用一年;上个月的就已经记不住了,一年前其实就是有点熟悉的别人的代码
Go的模式最易懂易改,遍地
if err != nil
,开一枪瞅一眼