• 当我在写程序的时候,我究竟在写些什么?


        当我写下标题之后,面对着一张白板,发现不知道要写什么。或许我还没准备好这个主题。一个村上春树式的标题,或许是因为我想表达得蓝调一些,那么就还是写一写,就当是怀旧吧。

        记得大学时,同学们都在用VC6写C++程序,而我为了标新,用Cygwin下的vim写,后来干脆在自己的JOY BOOK 3000上安装了一个Fedora 5,用着那个被修改成半透明的Console下的vim,感觉很爽的样子。现在想来,如果一个人写C++不用IDE,那不是装X就是傻X。

        大学时,我们的专业课没有Java,不过我买了一本《Java参考大全(第五版)》,自学了一下。看着JDK5的那个不伦不类的泛型,以及一些C++中很平常,但到了JAVA中就不见了的语言机制,之后感觉“这个语言不行啊!”。但到现在已经做了六七年的Java程序员之后觉得:能用Java做的,干嘛要用C++呢?装X么?

        要形容当时的我,可以套用一个比较俗套的语法:哥写的不是程序,是装逼。

     

        比业之后进入一家公司工作,这家公司的主要开发语言是Java。因为我在学校没怎么用过Java,所以被认为技术水平不行,安排到SIT组做系统测试了。在这里碰巧又找到了装X的机会——一般人在用Loadrunner做性能测试时,登录的用户名是在Vuser中配置了很多个,然后挨个用的,而我是调用Oracle的OCI接口在数据库中直接查的——明显是有劲没处使了,要是现在我再用Loadrunner,直接用VUser就挺好了——不过装一下也是有收获的,至少学会了99%的Oracle用户都没听说过的OCI接口(连当时我买的《Oracle 9i/10g 参考大全》中都没介绍OCI的)。

     

        后来终于有机会进入了研发团队,做起了SSH框架下的系统。但骨子里的C++情结让我一直在寻找使用C++的机会,最后终于是在公司的手持终端(WinCE的系统)上开发了一个拼图游戏(与终端开发组的一个同事合作开发)。后来合作开发那哥们又把这个程序移植到他的魅族M8(当年的国产神机)上去了,看起来还不错。现在新一代的手持终端都改用Android了,C++已经几乎退出了公司内部开发使用。

        在这个拼图游戏的开发中,我还是学到了不少东西:我负责开发游戏的图象处理,完全没有用到任何Win32的控件,直接用DirectDraw画满整个手机屏幕,最开始实现时发生一个有趣的现象——当把方块移动的速度调到很慢时,移动方块时,游戏用户无法做其它操作,原因是整个界面全部在主线程下运行了,当主线程在忙着处理图像时,其它的事件就排上队了。后来竟然在这样一个简单的程序中,我还是写了一个线程池在里面(当时C++11标准还没有颁布,标准库中还没有std::thread,所以这个线程池直接使用了微软的API)——复杂的消息行为放到线程中运行,主线程就可以处理用户的点击事件了。

        在做公司的系统时,第一次接触了Ext2。当时做页面经常会痴迷于搞一些无聊的东西,比如:一个panel是不是要有frame?是不是要有border?border要几个像素才好看?在某个地方用到(√5-1)/2这个比例会不会给用户的感觉更好?……当时经常为几个像素,把页面调来调去。说得高级一点就是“如何给客户一个更好的体验?”,不过在用户体验上我还是不入门,怎么做都很丑的样子。

     

        未完,待续……

    -------------------------------------------------------------------

    周游[http://www.cnblogs.com/naturemickey]版权所有,未经许可请勿转载

  • 相关阅读:
    HYSBZ 3813 奇数国
    HYSBZ 4419 发微博
    HYSBZ 1079 着色方案
    HYSBZ 3506 排序机械臂
    HYSBZ 3224 Tyvj 1728 普通平衡树
    Unity 3D,地形属性
    nginx 的naginx 种包含include关键字
    Redis 出现NOAUTH Authentication required解决方案
    mysql 8.0出现 Public Key Retrieval is not allowed
    修改jar包里的源码时候需要注意的问题
  • 原文地址:https://www.cnblogs.com/naturemickey/p/3820547.html
Copyright © 2020-2023  润新知