`
sodabao
  • 浏览: 165233 次
  • 性别: Icon_minigender_1
  • 来自: 大连
文章分类
社区版块
存档分类
最新评论

【转】我本人一直以来在犯的错误

阅读更多
 也许你是只老鸟,也许你的程序编的很精,但是,在你的程序生活,你也许没有注意到一些“常识性”的问题,因为有些时候我们不需要去注意,我们的程序照样能够运行得飞快,但是如果那天有一个无聊的人问你一个像这样的问题,本来他是非常崇拜你的,可是因为你的一个疏忽就从他的心理掉价了。呵呵,开个玩笔,有一些东西我们还真的不得不注意,因为说不定我们那天就在这个小沟里翻了。

    我个人也是个CODER,一直被外界的一些花哨的东西所忽悠着,一直就没有心来看这些书,大致一翻,都懂,没有什么看的。但是,懂是懂的,可是有很多的所以然,还真的说不出来。
1、Java里面默认值的误解:

这个不是SUN公司的错,怪只怪我们没有仔细看文档,因为我们所看的书中都可能是这样的说“如果没有分配值,系统会为变量自动分配置默认值”,我们就信以为真了,有些地方也确实是行得通的,在有时编程的时候也遇到没有赋值就编译通示过的提示,也没有多去想。这个所说的默认值是指类成员变量在没有赋值的时候会赋以默认值,其它局部变量是不能够享受这种待遇的。这下懂了吧,为什么会出错了,这里一定要给以初使值才行。
 
2、很少使用接口
当然这不是说我有这处毛病,你们就有,我只是说我自己,以免在黑暗中被拍了砖头@。至少我相信有一大部朋友是这样的,拿到一个东西,就直接在类里面去实现,因为为什么呢?没有必要吗,为什么要去多写一个接口呢,这不是明摆着给自己找麻烦吗?
    
      
说实话,就在写这篇自我反省以前,我一直都是这样的,可以说是从来没有写过接口,也许您会说,“从来没有写过接口也算是学JAVA”,不过不管你怎么说,确实没有写过,所有写的都是直接在类中实现(注:我这里指的类表示非接口类)。如果有些小程序,确实不需要写,因为实现也很简单,也可能以后不需要继承,也不需要在以后的某年某月再次重新优化一下,当然没有必要了。

       可是,这是一个习惯问题,当你走路习惯了左边,那你走路的时候就不会走右边,你就会在不知觉中去和车车亲个嘴。我们应该培养自己的这种思维,让我们不管在大小项目中,都会想到要这么做。有句古话叫“一屋不扫,何以扫天下”就是这个道理,而不是报以“大丈夫不拘小节”的态度。


你可能对这个为什么要写接口还是不明白,就像《Think In Java》这样说的,“如果你现在写了一个功能,以后发现这个功能执行起来速度不理想的时候,如果你去代码中改,那有可能会是增加BUG进去,如果我们使用了接口,就不用这么麻烦了,方法重写就很好办”,我想也是这样的,我就经常犯这样的错误,有些时候随着时间的推移,连自己写的程序,逻辑都还要慢慢去理。
 
3、让一个类去做特定的事情
 
     
在《Think In Java》提到,把每个对象都当成服务的提供者,为什么这样说呢?还是说现实的比喻吧,就像是一个人,我们如果希望他什么都会,结果也可能是他什么都会,但是没有一样东西是能够拿出手的,都是半懂。而如果把这些东西分给多个人去学习,只要他们每人学自己那一部份,结果是每个人懂得都不是那么多,也不会有那么大的心理负担去学习,最后都学得很精,结果综合的深度,每个人都能够独挡一面,就是这个道理。

       我个人也是经常犯这样的错误,有些时候,一个类下来,什么乱七八糟的功能都有,结果后来多得连自己有时都分不清楚,那些方法在用,那些方法没有用了。
 
4、根本不注重合理使用访问控制:public, private, protected

   
    
我自己写程序的时候,想到什么样方便,就怎么样使用,特别是对于类变量,不管定义成PUBLIC还是PRIVATE,都可以在当前类中使用无阻,这也应该就是让我不注意的原因吧。如果完全是自己使用,可能出错的机率不会太大,因为个人对这个应该还是熟悉的,但是如果你的应用程序需要发布,用户来使用就会出错,因为他们调用一个不能够独立执行的方法或者是变量。又或者是一个本来不需要对外公开的方法,你对外公开了,外面的用户使用了,而在你后面的版本中,你又把这个方法更改了,那么使用者在调用这个方法的时候就会出错,至少你写的程序分健壮性就要打个问号了。
 
这是我现在发现的个人毛病,挑出来,希望以后不要再犯。最后见意,有经验的程序员,不要忘了看看《Think In Java》,因为你们更容易犯错,而在自己的错误中生存下去。
分享到:
评论

相关推荐

    360杀毒完全免费本人一直在用,推荐

    360杀毒完全免费本人一直在用,推荐360杀毒完全免费本人一直在用,推荐360杀毒完全免费本人一直在用,推荐360杀毒完全免费本人一直在用,推荐

    任现职以来专业技术工作总结【四篇】.pdf

    自20xx年12月晋升为副教授以来,本人始终坚守四项基本原则,严格遵守法律法规,秉持敬业精神,投身教育事业,教学工作量饱满。在此期间,我在教学和科研方面取得了显著成果,特别是在马克思主义理论领域,我不仅在...

    精美桌面壁纸 本人一直当桌面在用

    精美桌面壁纸 本人一直当桌面在用 淡黄色沙发 看着很舒服

    本人研究COM以来的所有资料

    本人研究COM以来所有的资料。无奈,现实太残酷,鄙人不能继续造福易友了,留给各路大侠继续研究了。 现将本人研究COM以来的所有代码都开源,包括BHO了~~还有未完成的挂接事件,脱离核心库调用对象等。。 对研究COM...

    网络通讯飞鸽2007,本人一直在用

    本人一直在用的 很好用 无插件 无病毒 局域网最快的传输软件 快点下吧

    本人一直在用,ImageEN v10.2.0 build 38258 Full Source D12 稳定可靠

    本人一直在用,ImageEN v10.2.0 build 38258 Full Source D12 稳定可靠。

    工作录入错误的情况说明.docx

    工作录入错误的情况说明是指在工作中由于疏忽大意、工作不够细心、责任心有待加强等原因,导致财务部消失了付款错误的问题,给公司和客户带来了肯定的不良影响。为了避免类似错误的出现,需要详细检讨本身思想、行为...

    C语言十八种常见错误

    C语言的最大特点是:功能强、使用方便灵活。C编译的程序对语法检查并不象其它高级语言那么严格,这就给...看着有错的程序,不知该如何改起,本人通过对C的学 习,积累了一些C编程时常犯的错误,写给各位学员以供参考。

    文件MD5校验软件,小巧好用,本人一直在用

    本人一直在用的文件MD5校验工具,非常好用,Hash 1.04版本,目前为止最新版本 也可校验文件的Hash码,CRC32码

    PNG转换RGBA.exe

    因为本人用的是MCU,没使用linux或者andriod等系统,要做图片的透明叠加效果,在网上各种找PNG转565rgba和888rgba的工具软件,找了好久都一直找不到,实在没办法自己写了一个,用在本人的实际项目中。可以选择转换成...

    本人写的rgb转gray

    本人写的,请勿用于商业,如果有问题请联系我,希望大家一起交流

    旺铺销售理财专家破解版(本人一直在使用)

    旺铺理财专家破解版,带破解补丁,解压后,运行“cr-wpxslczj.exe"即可无限制使用,本人店铺一直使用了6年,没有任何问题。

    电灯泡时钟屏保,本人一直坚持使用的

    电灯泡时钟屏保,本人一直坚持使用的,不错的很好看

    网站木马清除工具、自动查找、无毒无插件、本人一直使用着

    该工具,下载后直接解压就可...无毒无插件,会编程的朋友可以继续修改,以增加其性能。本人一直以来使用着,操作非常方便,直接快速。对大型的网站数据库批量查找木马代码是很有帮助的。特此传于csdn和大家一起共享。

    wap错误操作记录器

    这里我是将我的空间错误页设置404.asp 这样的话只要将这3个文件同时放在站点的根目录就可以了! 只要有用户访问到错误的页面就会自动记录真实IP和代理IP 更重要的是会记录错误的地址,让你知道错误的在哪里! 错误...

    宽带连接错误711

    我家是ADSL的,WIN7旗舰版点宽带连接的时候出现了错误711,经过上网查询及对照检查 发现服务里无法启动Windows Event Log服务(本身为自动但开机自动启动失败,手动启动仍然失败!)错误代码是4201(好像是,囧)...

    SAP GUI760 解决搜索帮助内部格式错误

    本补丁是SAP GUI760的补丁,非760的版本不要使用,目的是解决搜索帮助内部错误,由于本人没有这个报错,补丁是其他朋友提供的,所以我没有尝试,可以谨慎使用,如果不想打补丁,可以找我的文章【SAP搜索帮助内部错误...

    电平转换 5V转3.3V

    电平转换电路, 5V转3.3V。本人已用在串口通信电平转换上。

    POI DOCX/DOC转 THML WordToHtml

    网上好多都是坑人的,要么只支持 doc ,要么就是 docx 不支持表格边框。 下面介绍一个 docx转HTML 支持表格边框的,也带样式。...同时本人也最讨厌那些错误的代码,还要贴出来。 亲,用好了,记得回来给个好评!

    位图转数据(bmp图片转dat数据)源码

    //若需将.dat数据在转换回位图.bmp文件,可以下载参考我的另外一个文档"data_bmp.c" //运行参考:./main infile.bmp outfile.dat //程序是本人自己写的,有实际使用,使用场景比较复杂(有更改内部的值),现在发的...

Global site tag (gtag.js) - Google Analytics