我做程序员这十年(四)

我做程序员这十年(四)

程序员的工作圈和生活圈都特别单调,如果你在一个公司上班,那么以你为中心的方圆百里都是程序员,如果你在一个地方居住,那么以你为中心的方圆百里住的都是程序员。除了动物世界里见到的聚居动物,可能程序员就是人类世界中最典型的聚居物种了。

有一次我晚上下班后找了个小面馆,跟老板要了碗牛杂面。当时小店里人特别多,我就找了个落单的哥们儿对面坐了下来津津有味的吃着。正吃着开心的时候,对面的哥们儿突然开口问我:“你是做Java的?”,我随口回了句:“是的”。然后他就来了兴致,放下筷子就问我:“你熟悉Ant吗?”那时候刚参加工作不久,对Ant确实不知道,于是就回他:“什么Ant?”他兴致勃勃的对我说:“就是那只小蚂蚁。”我说:“什么小蚂蚁,我不知道。”

当时我感觉他有些失望,但有能从他的失望中看到一点点的小得意,然后他就问我:“那你们打包都是怎么打的?”我想都没想就说道:“Eclipse直接导出……”

我不知道那哥们儿当时是什么心理活动,回家之后我想来想去觉得还是得网上搜一下,就这样我就学到了Ant这个玩意儿。

在转到报表组之后,我每天的工作就是按照要求出各种报表的算法,然后通过任务配置输出各种报表数据。在做报表的那段时间,我接触最多的就是Oracle数据库,我被Oracle中的函数,过程深深吸引。甚至想过以后转行去做DBA(后来这个想法也没成),就在做报表的那个时候,我养成了一个坏习惯:在做业务开发的时候,习惯性的将数据计算的逻辑写到SQL中去,然后通过简单的程序调用直接得出结果。这种坏习惯持续了有将近一年。直到现在,我看到有人还在代码中调用复杂的SQL,我都会毫不留情的批评他。

使用复杂的SQL的坏处是显而易见的,首先一个项目中使用的数据库是多样化的,复杂的SQL必然强依赖于数据库的类型和配置。比如Oracle上的函数在Mysql上不适用,即使同一个数据库也依赖其配置的不同而效率大相径庭。然而将这种计算压力都放在数据库上,对数据库的压力太大,严重影响程序调用的时间。这种显而易见的坏处太多太多了……

当时还有一件让我及其厌烦的事情,就是每当我写一个业务处理类或者数处理类的时候,总是要很SB的去建一个对应的Interface(接口)。或许是当时我对设计模式不太懂,一直就想不明白为什么要这么做。后来我终于忍不住去问了项目经理这个问题,他当时给我的答复是“要面向接口编程,提供多种实现的可能。”我当时频频点头表示赞同,后来当整个项目做完之后,我发现那些定义的接口仍然还是只有一个实现。

这就是我觉得写Jave程序跟写C程序最大的不同,后来我就用“写Java嘛,就是面向对象编程。”来搪塞我心里的疑问。对于类似的这种很SB的做法,我都把她归类为“面向对象的思想”。我并不是吐槽面向对象这种思想,我只是觉得一个美好的思想有时候就是被人为的给复杂化,进而固化了其思想,甚至是僵化了。本来是非常灵活的对象化思想,最后却变得僵硬了,就像Hibernate一样。现在函数编程有悄悄的流行了起来,正是这个原因。

转载于:https://my.oschina.net/u/244775/blog/3052480

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值