优秀程序员
关于什么是一名合格的程序员,优秀的程序员,这些讨论从来没有停止过,标准各不相同。有人说优秀程序员追求简洁的代码,优秀的框架结构,新的技术技能。我们不是在讨论什么是业界大牛,我心中的一名优秀程序具备如下几个素质:
-
简洁高效
优秀的程序员会使用整洁,易于理解的方式解决实际的问题,任何不必要的复杂代码均不会出现,简单比复杂更具有价值。能通过简洁的方式把复杂的问题解决掉。
HW八年总结
白驹过隙,进入公司已是八年,一路学习一路收获。往后回首,一些经历回想起来还历历在目:经历过一线比拼的激情,经历过产品上线的喜悦,经历过多个项目的变换,经历过持续熬夜的艰辛;写过不少的代码,带过一些徒弟,负责过团队开发,一直在公司从事基层的研发工作。一路走下来,也得到部门领导,公司同事的帮助、指导与鼓励,能让我一直坚持下去,过程中我也得到一些很高的认可,感触多,收获多。在此我先感谢大家!
团队成功才能成就个人
还记得进入公司做的第一个项目,就是上海电信的XXX规范比拼项目,在上海一呆就是3个月之久。之后从09年开始到现在,我应该遇到一个不错的机遇,时逢部门的产品在欧洲开花结果,并且我非常有幸地参加了其中的多个项目,TLF比拼、VDF比拼、SFR比拼、O2的交付,DT比拼,有去一线出差现场操作,也有在家持续熬夜支撑。后又参与平台非常重要的新项目C3的构建,见证它从无到有,到多个局点的交付,目前C3在VDF交付。所以说是 只有团队的成功,才能有个人的成就 。我作为一个普普通通的软件工程师,有机会参加了这么多的高端比拼与交付,也可能实属我人生中为数不多,以后可能值得会拿出来说一下的事儿。当然参与这些项目对我自身也是一项非常大的挑战,尤其是在比拼项目中亦时候不知熬了多少个夜晚,甚至彻夜难眠,也不知当面对客户苛刻的验证时的紧张感,心跳加速多少次。但始终相信我是在做一件有意义的事情这就是对的,虽然过程肯是辛苦的,结果可能不理想的。有时甚至还害怕而抵触过,抱怨过。但只要一旦接受了也就始终没有放弃过,把分给我的工作尽自己最大的努力做好做实,做到问心无愧 。
Java线程使用建议
最近Review团队内一些的代码,发现不少地方在使用线程池,但使用比较乱,针对问题建议如下:
-
线程不能调用Thread.stop来停止它,我见过有新员工就这么干过哦,而是需要设置一个标识位,在run方法中判断此标识位退出循环。用interrupt也是可以考虑的,但线程的run方法中要捕获InterruptException。
-
所有线程需要设置Name,主要是方便线程dump出来之后定位问题。这可是编程军规,我们很多的兄弟没有遵守。
[WebApp沙箱]SecurityManager运用
在JRE类白名单能控制类的使用权限(请点击),但控制不了一些资源的访问权限。如默认情况下可访问机器下的任意资源,如读取、删除一些文件,网络操作,创建进程与线程等。必须对Web容器下的WebApp进行资源权限访问控制。
Security Manager
Java从JDK 1.0开始就实现一套安全架构,主要用于Applet。在这种体系下Java Code的执行环境被严格划分为两部分,本地代码可以访问计算机的所有资源,而远端代码(Remote Code,主要是Applet)只能支行在严格限制的沙箱里面。安全管理器(SecurityManager
)作为一个子系统来决定哪些资源允许沙箱中程序访问。这是一种运行期的安全检查。
[WebApp沙箱]JRE类白名单运用
ClassLoader
JVM类加载器层次结构:
Bootstrap ClassLoader
|
Extension ClassLoader
|
System ClassLoader
JVM一启动,会先做一些初始化的动作。一旦初始化动作完成之后,就会产生第一个类加载器,即所谓的Bootstrap Loader, Bootstrap Loader是由C++写成,这个BootstrapLoader所做的初始化中,除了做一些基本的初始化动作之外,最重要的就是加载定义在sun.misc命名空间下的Launcher.java之中的ExtClassLoader(因为是innerclass,所以编译之后会变成Launcher$ExtCjassLoader.class),并设定其Parent为null,代表其父加载器为BootstrapLoader。然后再加载定义于sun.misc命名空间下的Launcher.java之中的AppClassLoader(因为是InnerClass,所以编译之后会变成Launcher$AppClassLoader.class),并设定其Parent为之前产生的ExtClassLoader实例。AppClassLoader这一层我们也称之为SystemLoader。AppClassLoader会加载CLASSPATH目录下定义的Class。
远离罪恶
今天在回家的车上,遇到一个上帝的信徒,在宣传上帝的故事,对着一个高中生大讲特讲信上帝不是一种迷信。举了很多的例子,比如人们熟知的爱因斯坦,牛顿等是上帝的忠实信徒,一边搞学问一边翻圣经,学问做不去了,就去问圣经。也讲宇宙是什么,是上帝创造了宇宙万物,人类就是大海中一粒沙一样存在整个宇宙之中,人类是渺小的。无论人类科技多么的发展,也不能在其它星球上创造生物。最后在快下车的时候,给每人发一张卡片,劝说人们多去教堂感受一下。身体只是一个灵魂的载体,每个灵魂需要远离罪恶,前往永远与罪恶无关的福乐美地。
德国出差记
到达德国的Frankfurt法兰克福大约是19号早晨的6点半左右。这边的天还没有亮,取得托运行李,再过完签证检查之后已是7点左右,天还是没有亮。这次还好,去年过境德国,被安检人员问了一堆的问题。这次可能我事先跟海关检查人员打了声招呼“Morning”,他居然什么都没有问,直接盖上大章就说“Pass”。出了Airport,外面非常的冷清,11月的德国已经开始很冷,有点冬的味道。
我要去的目的地是一个叫Darmstadt达姆斯塔特的小城。在Airport的外面bus stations逛了一圈,终天在Terminal 2 E8找到Darmstadt的air line。等了大约2分钟的时光,Bus准时到来,我向司机打了声招呼,示意让我上车。在车上他说了一堆的德语,可惜我一句也没有听明白,我只能用生硬的英语说“I want to go to Darmstadt, how much is the ticket?”或许大家都能听明白Darmstadt。于是他在电子售票机上打了一张票给我,电子屏上显示7.3欧。