“老黄”谈数据实时展示系统项目感悟

到现在公司完整做完的第二个项目,前后花了大概20多天已经基本完成。通过开发该项目让我对前端利器JS有了别样的认识,当然整个过程中依然是遇坑无数,但通过该次实践让我再次认清了编程的一条真理:“代码是调试出来的,而动手是解决一切问题的关键”。

浏览器很强大

在开发该项目之前我一直有一个认识上的误区,那就是尽量不要用js写过多的业务逻辑,这可能和我之前的学习对象有关(主要学的是后端模板),我认为业务逻辑应该尽量是在所谓的服务端来完成的比如Java端,页面这种东西是跑在浏览器上的,浏览器这东西总感觉“不堪一击”,很“孱弱”,用js写大量的代码,那样浏览器会不会就无响应直接崩掉了呢?事实证明不是这样的,浏览器远比我们想象的要强大的多,在本次项目的开发过程中,我用js写了大量的业务代码,各种组件封装,循环嵌套,逻辑判断,最后程序运行的时候可以发现没有丝毫压力。所以如果和我一样有这种顾虑的人以后必须要更正下观念,那就是把JS完全当成是你之前的Java放心大胆的去写吧,只要你不写出各种Bug一切都绝不会有问题。

算法很重要

算法真的很重要,无论你是写页面逻辑,业务逻辑,还是数据分析,算法都至关重要。为什么说算法重要呢?因为代码是活的,好多时候你需要通过算法的思维进行创新,其实在聊编程的时候我一直在说一点创新,一个人可能对业界的常用框架用的行云流水,写了无数项目,但假如这些项目千篇一律都是简单的对已有代码的套用,每天干的都是模板化的编码,以实现效果为最终目的,我们只是会用框架,会写页面,这种项目即便你写+无穷个,也远不如从原生写起,所有的算法逻辑自己实现,自己封装,完成一个创新型的项目要有用的多。框架这种东西有利也有弊,虽然现在提倡的是敏捷开发,简化编码,覆盖底层实现,但这种简化本身就会让编码失去他应有的趣味性和艺术性,降低难度的同时也在剥夺程序员的创新精神和全局意识。试想同样是写一个网站,你用了别人封装好的容器,确实减少了自己的工作量,而另外一个人则是从头到尾所有的技术实现细节都是自己完成的,项目上线的时候虽然都很开心,但很明显成就感是不一样的,我要说的就是不要把可以用算法写代码的机会让给别人,那样虽然省事省力,但实际上是编程界的“核霸权”。

逻辑分析很关键

我之前在自己的一篇博客中提到过编程里边Bug的解决有如侦探破案的推理,在写代码的过程中尤其是在遇到问题的时候我们必须要有处理问题的优化思路,这也就是我先前在学习方法论中讲到的思考性学习(当你学东西到了思考性学习的状态,那么你就开始真正入门了),思考性学习本质强调的就是学习要拥有自主可控性,要有话语权和绝对自信的心态(战略上藐视敌人,战术上重视敌人),要自由化,个性化,随意化,我在博客签名中写的是“自己的代码,自己的世界,自己的逻辑”,强调的就是这种唯我独尊不惧权威的观念,只有丢掉了一切条条框框才能坐下来进行真正的思考。在我的学习方法论中还有另外一种很重要的学习方式那就是“手动建模”理论,这种理论有思考但主要通过动手在纸上验算或者作图为核心驱动来完成对理论的分析,知识的学习,这种学习方式可以将抽象的问题具体化,直观化,很关键很重要,但缺点是本本主义严重,过度的程式化,适合于大型的复杂的理论知识的分析学习,灵活性,创新性远远不够,真正的思维创新往往源自于直觉,而不是大量的数学验算(观杨振宁有关麦克斯韦方程场理论与数学的密切联系)。在我看来编程中的逻辑分析要两种方法都用,针对简单的要用“思考式”为主,但手动建模这种学习能力也必须作为硬核实力要具备。如此以来为实际分析保驾护航,才能让自己成为编码界的“神探狄仁杰”。

接口聚合与前端总结

其实这次项目整体来说难度并不大,有几处都是经过我思考后采取的方案这里做一下简单的汇总:1. 生命周期对应方法的选用,经过思考我最终选择在OnOPen()方法启用定时器调用业务逻辑。2. 针对页面多类数据的展示采用接口聚合数据重新建模的思想,将页面所需数据一次推送到客户端。3. 数据分类,找到项目页面的同类项,然后从同类项中找出类别决定因子,将数据进行合理的分类建模。4. 前端表格采取原生动态字符串拼接的思想直接填充数据。5. 双重循环,组件数组化借鉴了Android开发中的思想。6.Echart样式的配置使用。7. 页面元素的动态添加和移除以及百分比布局。8.Bootstrap中table插件的使用。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章