4月14日工作心情感想

今天是我在 Jebsen & Jessen Communication 上班满2个月,基本上,工作蛮顺利。上司队长的人也很好,同事也很好。不论是在技术上,工作上,人际关系上,生活上,都分享了一些不错的意见。很有趣。

2个月了,虽然说没学到公司的核心技术,也就是IP Phone电话部分,但基础的网站程序架构方面还是有进步,一些技术还是有进修到。2个月了,还是在做第一个Project。第一个Project使用的Framework特别自己开发的,这几个日子以来,跟着我的知识累积而一起改进中,慢慢成长中,基本上就是在边学习边制作吧。由于第一个 Project 的开发已经到了后期,不适合对 Framework 作出大手术,所以有些地方有可能只能在第二个 Project 才可以重新改造,或者,会使用其他成熟的 Framework 吧。接下来的 Project 我或许会考虑 SpringJSFPlay framework。目前,我也只使用了 SCWCD (Sun Certification Web Component Developer) 的知识,还没使用到 SCBCD (SC Business CD) 的 EJB 知识,但要建立这些开发环境还真有挑战,开发不是问题。

我想这2个月我学到的就是 DI (Dependency Injection) 注入概念,以及 Java 的 iText PDF 库(之前有接触过 PHP 的 TCPDF,也能设计 HTML 模板转成 PDF 的,但我想 iText 也是一样的好)。对于网页设计方面队长的教诲我也学到了一些。

我想我的兴趣应该就是在设计程序架构 Framework 吧,IP Phone 电话技术只算是专科技术,或许很有趣,但我更关注的是如何把这些专科技术整合进基础 Framework,不论是我正在开发的 Framework,还是其他成熟的。

目前设计 Framework 的部分都属于高层次的,主要就是设计网页界面,数据库,而还没到比较底层的,如 Cache, Distributed, Load Balancing。希望接下来有机会去接触。

除了对开发 Framework 有兴趣外,我想我也对科学技术如多人实时在线绘图,neural network 有点点兴趣。

我也在想,能不能引进 Cloud Computing 的使用进来我们的公司呢!我之后会开新一篇进行基础的分析。

我想说:『程序员 (Programmer) 这个工作是最简单的,因为每个人都可以很容易的上手学会,谁都可以当程序员。程序员这个工作也是最难的,如何设计安全的,稳定的,可扩展的,可维护的,不论是大型系统还是小型系统,时刻都是大挑战。』

开发程序难免有 Bug,我容许小错误,而不容许大错误(走错大设计方向),所以每当开发新功能都会仔细想如何更好的在现有基础上开发,而不会为将来带来副作用。所谓三思而后行是最重要的,好好思考,之后问题才会相对比较少,这也是新手常出现的问题,别为了赶一个新功能或者客户要求改什么就马上改,而没有先经过仔细思考而随便加,将来维护就头痛了,我绝不容许。

最后,我觉得这些年来我走这行是对的,科学解决问题是我的兴趣。

说说这几天开发过程吧,这几天,由于开发后期,都是在做网页设计方面的。其实我对网页设计没有设计概念,没有颜色概念,不知如何设计好的用户界面,因为我是比较在 Back End 的,但,用户界面我还是会尽力去做,秉持着一致的开发精神。基本上我都是尽量自己编写自己设计,而不是直接套用模板,因为这样的话很难保持一致。

工作上,没有什么大问题,有的也是小问题,基本上蛮顺利的。只是还是比较静,交流到的人比较少,有待进步和加强。除了自己人(也是application team),比较有共同话题可以聊之外,其他人就很少聊。甚至,想打个招呼也跨不出去那一步。打招呼,讲话,对我来说,比写程序还难上N倍,我最想学会的,还是这些其他人看来最简单的。

另外,我想我暗恋了一个女生,算是一见钟情吧,第一次遇见的感觉。所以,对她,不敢打招呼。顺其自然吧。不能常看到她不用紧,但希望能听到她的声音,已经很满足。『看不到不用紧,看到的时候就会不住紧张。。。』

程序员多数天生就是这么静,我只是那么称职的符合了程序员的这个特征,或许也能这么说,我天生就这么静,所以程序员这个工作适合我。

当然,静,只是人际交流,如果公开做技术演讲,还是没问题的。

另外,我想,得到 Leader 和同事的支持,也是重要的,可以继续激发我的开发热诚和动力。看到他们最近很多压力,其实心里有时候也会想,希望能帮到他们解决一些问题,会的能的就尽量帮,当然本公司核心技术(上述提到)我还没 Hello World 过,所以,还是帮不到。所以,我还是尽量自行解决自己的小问题,不想麻烦他们。非常抱歉的是,我有时也因为学不精,弄错一些东西。不管怎么样,我想让他们知道,我精神上是支持他们的。

而且我们开发团队真特别小,希望我们能开发更好的东西,并壮大开发团队。老实说,我看目前我们的开发团队属于一种不大健康的状态中,很多因素,但需要继续观察才能做进一步评论。

真有趣,感谢队长借我 copy 了他的 9gb 的 MP3 歌曲。真的很有趣。

后语

最后,写了2个小时,段落还蛮短的,其实还想写很多,暂时想不到。其实我还有蛮多的感触,只是难以下笔,分开写吧。

最近,也很少发表技术文章,让小部分读者失望了,抱歉,我会改进。

好了,to be continued… (下一篇见)

3月28日工作心情感想

今天觉得有点高兴。高兴的原因是,今天一次过学会了很多Java知识,并进行了实现,大大改进了现有Project的底层Framework,实现了系统架构上的提升,简化,结果是开发时间更短,维护系统会更加好。

之前读过 Spring 有关 Dependency Injection 依赖注入的文章。突然间我也想把这个方法是现在公司Project的小型Framework里。其实实现还蛮简单的,使用了 Java Annotation 和 Java Reflection API 来自动生成注入 Controller 和 Dao class。

另外,自行编写的 Dao framework,Entity 上,我借用了一些来自 JPA 的 Annotation 标注,然后让我的 Dao framework 自动找到这些 Entity,自动和数据库 bind 在一起,方便实现 CRUD 了。

但是今天这样的改进也只是勉强的改进,功能目的实现了,但程序还不是很 loosely coupled。但,好是好在之前设计程序的时候架构设计还算好,所以今天做的底层 Framework 改进做得头昏脑胀的时候,原本的应用程序部分没有动到,也能完美移植过来。接下来要做的就是放这个底层 Framework 的组成 java class 更加分工清楚。

总的来说,这个Framework的开发也只是测试的,初步的,下一个Project有可能我会尝试用其他Framework,或者用回这个Framework也说不一定,重点是看需求。

说说感想吧。由于今天总共做了3项较大型的内科手术,所以,全天都处于较亢奋的开发状态。所改进的是底层 Framework,改里面,而不是改外观,虽然里面的东西看不到,但是这个修改是很至关重要的。我想明天我还要安排几项大型手术才好,一步一步来。

上个星期五的发布会后,有了一些记录,今天组长没到,不能和他讨论。不知接下来这个system该怎么走,因为看起来星期五观众都有很多想法。

加油,我以清心精神宣誓,我相信我可以。

SableCC Framework

I have read the article written by James Carman, Write once, persist anywhere, and I have found an useful framework when implementing our own DML, that is using lexer parser provided by SableCC Framework.

By using SableCC, you can just provide a grammar definition, and using SableCC generator tool to generate some classes, then you implement the classes based on your needs. To learn more, visit here for its thesis.