关于写代码这件事
什么样的代码是最优秀的
举一个简单的例子,需要解决的问题是1+2+3+…+99+100;
这样一个问题,最高效的代码必然是
1 | return 5050; |
可是我们要考虑到后期的维护性,那我们要是会遇到1+2+3+…+99+100+101的时候呢?只好
1 | int result = 0; |
当然这样的代码是可以实现功能的,可是
1 | return (1 + n) * n / 2; |
不是更好么.
然后就发现了这样一个imba的事情,考虑的情况越来越多,可能一开始只是为了解决一个简单的http post req的问题.
后来一套http各种data放在httpbody里,或者form形式,或者直接para传的处理方式全加进来
然而一个公司不可能有那么多的请求方式.那这就又太复杂了,法禁愈严则愈不胜禁,所以:
解决当下的问题,适当的考虑后期功能的补充.
在忍无可忍的时候重构.
关于学习
在我的认知里面,学习一门语言,就是学习语法和一些特性
我觉得写代码和搭积木比较像,官方的那些class和api就像一些积木.
只是把它按照我想的,搭出来就可以.
会搭了一种积木,那以后的积木再过分(讲道理ERLANG这个积木好过分…..),也就是长方体变成圆角长方体或者可以有枘凿的那种吧.根本跳不太远.
而一些第三方库/框架,可能就是.比如说我们的目标是搭一个人,他已经搭好了一个人头(当然,由于他这个人头要百搭,那肯定有很多地方是我们不需要的.这就是为什么我并不是很喜欢用一些不知名的小型第三方库/框架),我们直接拿来装了就OK.或者提供一些扳手之类的.我们用了用起来会更方便(由于有些框架基本上修改了整个语言的工作逻辑,那可能也会带来一些积木的变形).
所以我觉得学习一门新语言并不需要多久,我会装奥迪的四驱车,田宫的四驱车我也可以啊,讲道理我这个按键精灵的脚本写的也是美如画.
其实写代码最核心的一句话就是
千万不要脱了裤子放屁.
有些人能一两行写完的,强行绕一圈.
比如设计一个弹窗 有几个按钮
按钮点击回调直接写同一个函数传一个按钮的tag过来对不.
强行18个方法.
别的地方要用到,方法名还怪怪的.
或者说数据库操作,每次req都同样的操作,几十行代码一遍一遍写有意思.
….好急啊.
不谈了.再谈要爆炸了.