什么样的代码是最优秀的
举一个简单的例子,需要解决的问题是1+2+3+…+99+100;

这样一个问题,最高效的代码必然是

1
return 5050;

可是我们要考虑到后期的维护性,那我们要是会遇到1+2+3+…+99+100+101的时候呢?只好

1
2
3
int result = 0;
for(int i = 1 ,i < n; i++)
result += i;

当然这样的代码是可以实现功能的,可是

1
return (1 + n) * n / 2;

不是更好么.

然后就发现了这样一个imba的事情,考虑的情况越来越多,可能一开始只是为了解决一个简单的http post req的问题.

后来一套http各种data放在httpbody里,或者form形式,或者直接para传的处理方式全加进来

然而一个公司不可能有那么多的请求方式.那这就又太复杂了,法禁愈严则愈不胜禁,所以:

解决当下的问题,适当的考虑后期功能的补充.

在忍无可忍的时候重构.

关于学习

在我的认知里面,学习一门语言,就是学习语法和一些特性

我觉得写代码和搭积木比较像,官方的那些class和api就像一些积木.

只是把它按照我想的,搭出来就可以.

会搭了一种积木,那以后的积木再过分(讲道理ERLANG这个积木好过分…..),也就是长方体变成圆角长方体或者可以有枘凿的那种吧.根本跳不太远.

而一些第三方库/框架,可能就是.比如说我们的目标是搭一个人,他已经搭好了一个人头(当然,由于他这个人头要百搭,那肯定有很多地方是我们不需要的.这就是为什么我并不是很喜欢用一些不知名的小型第三方库/框架),我们直接拿来装了就OK.或者提供一些扳手之类的.我们用了用起来会更方便(由于有些框架基本上修改了整个语言的工作逻辑,那可能也会带来一些积木的变形).

所以我觉得学习一门新语言并不需要多久,我会装奥迪的四驱车,田宫的四驱车我也可以啊,讲道理我这个按键精灵的脚本写的也是美如画.

其实写代码最核心的一句话就是

千万不要脱了裤子放屁.

有些人能一两行写完的,强行绕一圈.

比如设计一个弹窗 有几个按钮

按钮点击回调直接写同一个函数传一个按钮的tag过来对不.

强行18个方法.

别的地方要用到,方法名还怪怪的.

或者说数据库操作,每次req都同样的操作,几十行代码一遍一遍写有意思.

….好急啊.

不谈了.再谈要爆炸了.