代码改变世界

给奋斗在一线程序员的一点忠告

2012-07-13 18:39  AceYue  阅读(4801)  评论(36编辑  收藏  举报

      近一周确实被bug搞的很烦,这正是每个苦逼的程序员都要经历的。并不是因为我们不够优秀,现实中情况及其复杂,如硬件环境都不相同,都给我们增加了测试的难度,不止一次的骂了傻逼的客户提出的无理要求,公司里又有boss方面的催促确实感到鸭梨山大,甚至有辞职的冲动。

       但是你有没有想过,一切都不能怪别人,原因还是在于自己。这是每个程序员都要经历的路,如果没有风吹雨打又怎么会有硕果累累呢?如果你也有同样的烦恼,就需要及时调整心态。我也同样的经受这些磨难,虽然很难,但是我还是一步步走了过来,在这里分享下自己的一点点经验:

1,要想做好,还得他妈的自己动手

       这里我引用了《刀锋2》中一个吸血鬼的话“小时候我爸给我说了一句话,要想做好,还得他妈的自己动手!”,我们做程序的也一样,碰到问题要自己解决,在学校的时候碰到问题可以问老师,问同学;去公司了,也许运气好会有个师傅带着你。但是最终还是的靠自己。在公司我碰到过很多棘手的问题,有时根本没有一点思路,这是就会想着问问boss怎么办?boss来了同样束手无策,时间是一分一秒的过去了,但是bug仍旧还在,也许你会想,连boss都没有办法我能有什么办法呢?还是不做了吧!但是这个task是你的,不管boss什么事,最终完成不了还是我的问题,不管怎么样还的自己解决。现在回想起来,当初有多少bug给吓到,最终我们还是挺来了,也算有点小成就。

2,换个思路,也许很简单

        所有的程序员可能都会有这样过,遇到一个问题,始终拘于一种方法上。其实我们有时候换条路,感觉就豁然开朗了。本周做了一个报表程序,本来什么都做好了,可惜客户提出要将description一列改成一行显示,数据从数据库取出来之后生成的是xml文件,然后用xslt来格式化xml生成report样式。本来以为很简单的,我就决定在xslt中使用自定义的函数来处理text文本,用正则除去html标记。本来在demo中很成功的处理了,然后转到项目中经验编译不通过,这让我先后测试了C#,VB,JavaScript自定义函数及xPath函数,具体用法见我的博客xslt函数扩展之使用自定义函数(C#,VB,JavaScript). 我试过所有的方法之后,投降 了,真的没办法了,不知道这个asp中问题出在哪里?今天眼看就周五了,这个task还没有完成,怎么能不着急呢? 难道真的没有办法了吗? 为什么非要在xslt中来替换呢?xslt如果不支持,我们可以让他进入xslt之前就把标记给去掉。我们可以再sql中查询的时候就把html代码给替换了,只需要把换行的代码替换了就可以了,虽然在sql中不可以使用正则,但是我们只需要替换掉主要的标记就可以了。 the Demo:

select top 10         
        REPLACE(        
            REPLACE(        
                REPLACE(        
                    REPLACE(
                        REPLACE(cast(JobDesc as nvarchar(max)),'<p','<span'),
                    '</p','</span'),
                '<br','<span'),
            '<div','<span'),
        '</div','</span')
from Job_Details_Desc where AccountID=12100387 and LangID=1

换个思路也是如此简单,还让我花了一整天栽在xslt自定义函数上,不过也算有所收获,对xslt了解的更深。

3,没有解决不了的bug


      "方法永远比问题多!",“只有想不到的,没有做不到的!”,在程序这条道路上也是一样,没有解决不了的bug。同样是这个用xslt去掉html标记的问题,我昨天整整用了一天时间花在了xslt函数上,一直想着用什么样的函数,是用自定义函数实现但asp里面却支持不了,有在找xpath函数.....折腾到四点多了,对boss说“我已经试过了所有的方法,我已经黔驴技穷了!”,boss只是淡淡的回复了一句“在找找看吧!” ,我“好吧!我在找找!”(暗骂所有的方法都试过了还找什么?其实是不包报什么希望,自我放弃了)。现在回想昨天的窘态,苦笑啊!回想自己走过的路,有多少时侯觉得我们解决不了,但是最后还是找到了方法,如果没有找到方法,只能证明我们自己没有努力。同样的一件事,昨天一个js bug。由于那个js文件在文件提交的时候只能够执行一次,而无法设置断点调试,只知道有错误,却不知道错误在哪里? 迫于周末来临的压力,我决定加班完成这个bug的修复,于是我用了最原始的alert()弹框的方式,一步一步查看执行步骤,最终喜出望外,找到了js function调用先后导致了值被覆盖。也是松了口气。

4,客户永远是对的

      如果你老是抱怨“他就是个傻逼!”,“他不同技术来指挥我!”,“我的做法是对的!”........我也有过,其实我们都错了,“客户永远是对的”,这点很重要,想想,我们只是站在开发的角度,而用户才是使用者,如果我们开发的东西客户使用不了,那还有什么意义呢? 不管客户的要求怎么不合理,他都是对的。这点没有疑问,如果你觉得他不对,你能说服他吗?若果不能改变就要学会适应。

 

    最后要记住,我们的命运要靠自己改变。我的命我操盘!

 

    由于本人文采有限,就写道这里,分享给跟我一样的奋斗中的程序员。本文只是个人观点,欢迎来喷!