写代码有两个需要重视的地方。一个是架构,一个是算法。
架构决定了项目的功能。
比如鱼与人的骨骼不同,最后形成的功能也不一样,鱼儿擅游,人能行走。当然也并不是骨骼这个一个模块独立完成的。比如蛇的骨骼也没有由躯干骨衍生的四肢,但依然可以游于林间。
所以,我们将项目看作一个生命体。生命体的每一个系统、每一个器官、甚至每一个细胞,按照某种模式组合在一起,形成其独特的功能模块。而这种模式,大概就是我们常说的架构,再把架构抽象出来,就形成了某种框架。
反过来看,地球上的生命基本单位是细胞,每一个细胞都相当于一个小模块,把这些小模块按照某种架构组合一个大模块,大模块继续按照某种架构组合成一个更大的模块,最后形成了具有某种功能的系统。此时,每一个细胞就如同Java代码中的类,类上有包,包上有个更大的包,最后形成能够完成我们某种特定需求的项目。而源码便是DNA,RNA是编译器或解释器,大脑就好像服务器与数据库,客户端就好像心肝脾肺肾啊乱七八糟的东西,中间依靠神经/网络传递信息,同时为了减轻大脑压力或者是大脑来不及处理时作出反应,就有了条件反射这玩意,如同页面的JavaScript一般。
而算法大概是个更加有趣的东西,它决定了代码或者项目的运行效率。
就好像良好的思维模式让我们在工作中更加得心应手。这让我走上一条怀疑智商的是否真的存在的道路。
怎么说?比如我们的代码始终受限于硬件,虽然说记忆力可能有差别,但是大家计算1+1=2的速度不都是一样快吗?一次运算的速度接近,为什么多次运算便会产生如此大的差异呢?大概就是思维模式不一样的结果,或者说是算法不同的结果。
比如1+1+1+1+1=5。如果,遍历一遍做了5次运算,在加上遍历 i 的值,一共做了10运算左右。如果我们有乘法的概念,遍历一次得到 i=5 的结果 然后 1*5=5,一共做了6次运算。随着代码越来越多,积小成多,效益惊人。
可见智商对于每个人来说差异并不大,毕竟我们做1+1=2这种事情谁也不见得比爱因斯坦慢。可是我们的知识量与思维模式才是我们不是爱因斯坦的真正原因。
那么,如果我学习了爱因斯坦的思维模式,我会不会就是下一个爱因斯坦呢?
嘻嘻嘻,想想就开心。
又或许因为每个人类都是独特的实现类,大部份思维模式从我们还是受精卵的时候便决定好了,造成我们改变与和其他人差异的,可能是知识吧。所以爱因斯坦的思维模式我可能是一辈子也学不会了,呜呜呜。不过要证明这个的话,我首先要有和爱因斯坦相当的知识量才行。或许我比爱因斯坦还优秀哦,哈哈哈。
又或许我们是某种独特的实现类,而且封装的还算不错,所以有时候我们自己也不了解自己,当我们作出某些惊天地泣鬼神的操作时,自己都会讶异。亦因此,我渐渐开始相信直觉并非空穴来风,只是某种连我们自己都不明白的计算结果的返回而已。
所以再有逻辑的逻辑,亦有无逻辑之处,再无逻辑的逻辑亦是一种逻辑,不过是不理解罢了。
人生和代码,真的是有趣之极。
想想梦想这东西,我就开心的流口水。