努力多经历些东西,让自己的文字厚实点。
最近开发的一个模块需要对一些股票平台进行统计分析:
1.统计各个平台的访问量
2.统计访问量前十的股票
3.统计访问量前十的股票的来源
4.统计单个平台每日的访问量
5.统计单个平台访问量前十的股票
6.统计单支股票的每日的访问量
7.统计单支股票在各平台的访问量
。。。。
还有很多,总之一共需要画16张统计分析图。
拿到需求之后,按部就班地对每一张图的进行查询sql,定义实体,写mybatis的查询语句。当做到一半的时候,发现自己做不下去了,因为,我已经没法给这么多功能类似的函数命名了。
回头再看自己写的代码,发现了大量的冗余,很多代码是可以复用的。
重新思考之后,我发现查询语句其实只有三种,group by data/code/plat,所有的查询仅仅是在这些查询语句之中添加了类似if判断之类的东西。
不得已回头重新修改xml、DAO、service、controller,原本担心这样大改之后,会需要很多时间来重新调试代码,可以修改完毕之后,我惊讶地发现,程序仅仅出来几处很明显的因为变量拼写问题造成的错误。
没有一开始就强调复用多好,因为我知道没有切身经历,是没法去体会的。当年看编程思想和核心技术时,最多只能一知半解地去领悟作者的高明,某些方法的巧妙。
其实所有写代码的技巧,目的都是为了增强代码的阅读性。
很多人不乐意看自己写的代码,因为冗余繁杂的代码,使得自己再回顾时,都需要花大量的精力和时间才能读懂,更不用说别人。
代码复用的好处在于,你一开始就把自己所需要的工具分清了,当你需要使用某个工具时,你能很明确地说出它的名字,它需要的燃料,以及它应该返回的东西。
每次写代码之前,已经认真分析了那些代码时可以复用的,可以真到了写代码,发现自己当初的分析还是不够细致。
最后,不要觉得自己思考代码复用会浪费时间,要知道,对于类似的代码,你思考方法名变量名的时间,远远大于思考它的时间,同时在调试以及修改的过程中,你对自己代码的熟悉度越高,越方便自己调试。
我TM见过自己刚写完代码调试时不知道这个变量出现在哪里的逗逼,也是玩的溜。
分享到:
相关推荐
经过多方收藏,一些QT 编程的经典案例。可以直接复用代码
本系统采用了jspm作为开发框架,结合前端技术栈,实现了高效的模块化开发和代码复用,从而确保了系统的稳定性和可扩展性。同时,系统后端采用了先进的数据库技术,保证了用户数据的安全性和隐私性。 在功能方面,...
看了不少js继承的东西也该总结总结了。 先说一下大概的理解,有不对的还望指正,也好更正一下三观。另外说明下,下面的例子并非原创基本就是改了个...真正是用来干啥的呢,主要是用来复用我们之前写过的代码。比如写过
event在IE和FF不兼容,今天传参碰到些问题,参考网上的一些方法,有所心得: aClassArray[i].onmouseover = function () { //代码直接写在里面是可以的,要传参也可以传,只是不方便复用 }; aClassArray[i]....
组织化工具包丰富 移动机器人的开发往往需要一些友好的可视化工具和仿真软件, ROS采用组件 的方法将这些工具和软件集成到系统中可以作为一个组件直接使用。例如 3D 可视化工具rvk,开发者可以根据ROS定义的接口在其...
1.问题 我们公司的项目比较大 表格 表单的页面都不胜数 ,基于此封装了一些 可复用的代码。 2.分析 vue给了我们不一样的前端代码体验 element ui 给我们一套功能强大的组件 减少了我们大量的开发时间 。双剑合璧 ...
在真正可复用的面向对象编程中,GoF 的《设计模式》为我们提供了一套可复用的面向对象技术,再配合 Refactoring(重构方法),所以很少存在简单重复的工作,加上 Java 代码的精炼性和面向对象纯洁性(设计模式是java 的灵魂...
CSS方面,体验了代码的复用 尽量把能还原的每个细节都还原了 Version 1 做出了大部分静态页面和hover效果 Version 2 做了上方两个弹出框 做了顶部和侧边工具条 做了5个轮播图,3个tab切换,和1个倒计时,其中有2个...
在真正可复用的面向对象编程中,GoF 的《设计模式》为我们提供了一套可复用的面向对 象技术,再配合Refactoring(重构方法),所以很少存在简单重复的工作,加上Java 代码 的精炼性和面向对象纯洁性(设计模式是java 的灵魂...
DM9000A数据地址复用问题.doc DM9000寄存器功能详细介绍.doc FPGA控制DM9000A进行以太网数据收发的Verilog实现// C和Verilog代码实现.rar Dm9000a DM9000A Application Notes Ver 1_20 042205.pdf DM9000A.C ...
DM9000A数据地址复用问题.doc DM9000寄存器功能详细介绍.doc FPGA控制DM9000A进行以太网数据收发的Verilog实现// C和Verilog代码实现.rar Dm9000a DM9000A Application Notes Ver 1_20 042205.pdf DM9000A....
HttpModule 实现 ASP.Net (*.aspx) 中文简繁体的自动转换,不用修改原有的任何代码,直接部署即可! 服务器自定义开发二之客户端脚本回发 Web开发: 使用URL重写WEB主题切换 如何在Asp.Net1.1中实现页面模板(所谓的...
USB的IO口需不需要复用,如果要复用,怎么设置呢?没发现手册上有讲啊,而且那2个口,PA11,PA12默认是IO口啊!怎么设置呢 答:在此部分代码用于实现我们在硬件设计部分提到的功能,USB的配置通过三个函数完成:USB_...
6 4.3 主程序流程图 7 5、 详细设计 5.1 设计电路图 7 5.2 程序代码 12 5.2.1 时-分程序代码 12 5.2.2 时-分-秒程序代码 23 6、 结论 6.1 结果分析 33 6.2 心得体会 33 7、 设计总结 34 8、 参考文献 34 共 33 页 第...
为能和大家能共同探讨"设计模式",我将自己在学习中的心得写下来,只是想帮助更多人更容易理解 GoF 的《设计模式》。由 于原著都是以C++为例, 以Java为例的设计模式基本又都以图形应用为例,而我们更关心Java在中间件等...
Java采用面向对象技术,所有的Java程序都是对象,通过封装性实现了模块化和信息隐 藏,通过继承性实现了代码的复用,使得用户可以根据自己的需要创建自己的类库。 Java最强大的是网络方面的应用,本课程设计不涉及...
总设计,将任务说明、框图、功能模块图及相关说明分给成员,协助程 序编辑和错误处理,查找资料心得体会。 汤跃:担任软件设计,根据功能模块图细分出流程图编辑相应程序与功能相关说明,查 找资料。 曾玉珍:担任...