第1 页 共2页12»

November 18th, 2008你喜欢写程序吗?

你喜欢写程序吗?我问过同行很多次,但是还没有碰到过哪个人干脆的回答:我喜欢。相反,说不喜欢的却有很多人。我有个大学同学说:我不喜欢计算机,不喜欢写程序,是爸妈让我来学计算机的。有的同行说:没办法,在大学学了这个专业,所以就做这一行了,其实我不喜欢写程序。我得到的最多的答案是:程序员工资高呀,我才不喜欢写程序,如果我有其他方式挣钱,我就不做程序员了。我知道我接触到的这些人是这个行业的极小部分,我期望剩下的那绝大部分中能有很多人会喜欢写程序,否则,我们这个国家的软件行业就永远没有出头之日。我们这个国家的程序员中不缺少梦想一夜暴富的投机者,也不缺少沽名钓誉的学术骗子,更不缺少为求生计混日子的人,但我们非常缺少充满激情热爱写程序的人。

不能选择自己的生活是可怜的,为了点钱把每天三分之一的时间用来做自己不喜欢做的是事是可悲的。如果你是个程序员,却并不能再程序代码中找到快乐,我劝你还是做些别的吧,你的人生不应该在这里。

而我要自豪的说,我热爱我的行业,我喜欢让指尖在键盘上跳动,让思维在代码间流动,让创造力在CPU的脉动中体现。

Share/Save/Bookmark

September 26th, 2008数据迁移经验

做关系型数据库数据迁移的时候,为了加快速度,要注意以下几点。

充分利用数据库的能力

关系型数据库被设计成善于做查找,比较,排序等操作。在大数据量的时候,重新写个程序去对数据做查找排序等,效率往往比不过数据库。所以在数据迁移的时 候,应该尽量将此类操作交给数据库来完成。另外数据库往往都有自己的一些工具,比如导入导出工具,如果你的迁移过程要做类似的工作,也应当交给数据库来完 成。假如你要取出数据库里的一些数据,将格式做些转换,再插入到另一个数据库。你可以写个程序读一条,转换一条,写一条,但是这样很慢,还不如把数据导出 成csv等文件,然后再对文本处理生成新的另一个数据库的导入文件,然后再用另一个数据库的导入工具导入。我曾经做过这样的工作,将数据从sql server 2000迁移到 mysql,要对数据做些简单的格式转换,前一种方案用时40分钟,而后一种只要一分钟。

减少IO操作

现代计算机的CPU,总线和内存的速度都远超过各种IO的速度,所以减少IO操作就可以大幅提升数据迁移时的速度。使用连接池重复使用连接,减少新建连接 的次数可以减少IO操作。使用缓存将可能会被多次查询的数据缓存起来,减少查询数据库次数,可以显著减少IO操作。将中间结果缓存到内存或临时表中,非常 有用。最近在工作中遇到的数据迁移,通过大量的应用内存缓存,成功的将数据迁移时间有原来的近一周缩短到一个小时。

注意索引

也许你在做数据迁移时的很多查询操作是平时用不到的,所以并没有适合于做迁移查询的索引,那么你一定要记得在迁移前加上它。同样,需要被插入数据的表的索引还是先删掉吧,迁移完后再加上。

经常维护数据

不完整的数据,在迁移过程中是最让人头痛的。平时经常清理数据中的垃圾,如果垃圾成山了,数据迁移将是恶梦。

Share/Save/Bookmark

最近公司又在招人,头安排我对一些应聘者做电话面试,让我遇到了不少华而不实的家伙。这些家伙的简历上密密麻麻会写了很多项目经验,都说自己做过需求做过架构,有项目管理经验。但是细细问下去,你会很失望,有些人会把hibernate 一级缓存和二级缓存搞混,有些人声称自己从来没有用过hibernate的二级缓存,有些人简历上写了一大堆模块,实际上只做了其中一两个,还有些人号称精通J2EE,却不知ejb3是何物!而这些人也只是用struts + spring + hibernate做过一些开发,而且并不能深入理解spring和hibernate的工作细节。

我不相信对基础工具不熟悉的人能做个架构师。我也不相信只会用struts+spring+hibernate的就可以做架构师。我更不相信架构师是高于程序员之上,只用画画图,写写文档,放放PPT,动动嘴皮子就可以做得了的。那些声称不想编码,只想做管理做架构的人,是不折不扣的妄想者。

做架构师的首要条件是基础扎实,连jdk里的api都不熟悉的家伙,是不可能做架构师的。要做架构师,还要能对新技术敏感,只围着自己的小圈子转,不看着未来世界的家伙,只能落后于这个领域,更别谈做架构。做架构师还得要大量编码,不写程序,还能算是程序员吗?不写程序,你做的架构会越来越没有根基。

用struts+spring+hibernate做过几个项目就可以做java架构师了吗?做梦吧!

Share/Save/Bookmark

新年还到,新的病毒已经来了,公司内网里流窜着一种称为 Merry Christmas 的病毒,IT部管事的不得不在公司的广播上大喊:有发现自己电脑可疑中毒的,立刻拔掉网线! 从内网上internet的速度也降到了非常低,只有几K每秒了。我是这场瘟疫中的幸存者。假如我的电脑再中一次病毒,我就用linux了!我这样想。去年,维金病毒暴发时,我的电脑就前前后后足了几次招,搞得我有一个星期不能正常工作,后来花钱买了个正版的杀毒软件,才搞定了它,痛苦呀。

自从我会用电脑以来,我一直在使用windows系统做为我的主要的操作系统。但是现在它已经越来越让我不满意了,使用中,系统越来越臃肿,越来越缓慢,病毒肆虐,而且还有WGA。新的WINDOWS VISTA 又是那么让人失望。我受够了,如果再有下一次,我一定会转向linux了,到时,windows将变成我的游戏机。

Share/Save/Bookmark

最近在招聘java 网络程序员的时候发现,好多人都对一某个流行的web框架非常熟悉,却写不出一个servlet和jsp。面对着他们觉得自然的表情,我不仅惊讶,更觉得无奈。java 网络程序员真的不需要知道servlet吗?回答当然是需要。不懂得servlet的java web程序员永远是在瞎子摸象。java世界里的web层开发框架那么多,到现在都没有一个能够成为绝对的主流的,只会其中的一两种框架的使用,就等于把自己限定在那几种框架。就算会使用很多框架,但时代在变迁,尤其是java世界变化得更快,一两年后这些框架大多都变得不再流行或者面目全非了。所以想在这一领域站住脚,应该看到这些框架背后更持久的东西,而这就是servlet,j2ee web层最重要的东西。不论是struts, struts2还是jsf等,都是通过servlet或者filter(servlet规范里的东东)来实现的。如果懂得了servlet不仅可以很快地学习会别的web框架,还可以加深自己对java web层的理解。真正地理解了http请求如何到达你的代码,才能够更得心应手的使用这些框架,并在出现问题时准确地定位到问题所在。其实好的框架应该是能够完全把底层的东西给屏蔽掉,以减轻框架使用者的开发难度,唉,可惜现在的这些框架真的都是无法做到这一步。比如session的概念,这个东西是在servlet里引入的,struts, struts2,jsp等都有session,而这些session就是servlet的session。如果有新手打算学习j2ee,学习web层编程,希望您能够耐心的先把servlet这样基础的东西学一遍。

Share/Save/Bookmark


第1 页 共2页12»
© 2007 涂0实验室 | iKon Wordpress Theme by Windows Vista Administration | Powered by Wordpress