Tt!}V8_y0编者注:Andy是OSI(开发系统集成者)的CEO,同时也是位思想先锋及优秀博客作者。VMW9_&etR0

!^/fy;@"s0William F.

Buckley.Jr

曾经说过,“保守主义者是那些逆着历史潮流不断喊停的人,其他人都不愿意这么做或者对他们这么做显得没有耐性”。虽然我对此了解不多,但是每次看到有

Java开发人员做以下事情或者我自己被迫做这些事情时,总想跳出来叫停。51Testing软件测试网YtVLI6N

-P

ig%[#J){n01、遍历结果集并构造对象51Testing软件测试网np3m1jkOg8e51Testing软件测试网n$Jm\2?S1D

while51Testing软件测试网Uj+{!?5Y]51Testing软件测试网i p.GTXk3rM2v2~d

(result.next()) {51Testing软件测试网l@c'|ow3fc.d

String

Yl'a)ZSfq'U4\0 name = result.getString(“name”);

bV.T[W&sw

E0 String

B b"H'?J/\Z&P0 address = result.getString(“address”);51Testing软件测试网3`-tYas#S%hk

String

!c`&o_%{UM0 email = result.getString(“email”);

7T*}B6Z+M.cSRwY0 String51Testing软件测试网^(lxVS1}"n}

phone = result.getString(“phone”);

2aW#wL1IuIP*}%G0 stuff.add(new:IH |-A2hu^x051Testing软件测试网VNVi3x

AddressEntry(name,address,email,phone));

MwI(jb9mer7sz0}51Testing软件测试网H],g;K{;a{0Z3f p

%BQ|6@%i0如果你是个时髦的开发者而不是专业人员,显然你从某篇博客中读过有开发者遇到Hibernate的“性能问题”,因而认为ORM都不好,觉得手动编码

“明显更好”。喜欢的话你当然可以用JDBCTemplate之类,但是谢谢你的对它们的无端指责,我还会继续用我的JPA/Hibernate。51Testing软件测试网1P

\r.z(Q7Z

a

U:kf6@4k02、在交易型系统中写PL/SQL51Testing软件测试网.o4a?}? \51Testing软件测试网/k+[5Y`F)}xg

随着时间推移,你系统中的业务逻辑会被逐步迁移到关系中,所有宝贵的设备交易都会迁移到数据库中去。有的人将它们转换为类似COBOL的处理方式,绑定到调用物化视图的触发器中。通过他们调用其它扁平化版本。简而言之,很快你会拥有一个极其难以控制的遗留系统。这对的投资者而言是好事,但对我们则不然。g[^5m,M0

7U_(IrJp7p7e03、编写,调试甚至真正使用Swing应用程序51Testing软件测试网-Fmk`+xYz

/nT:v7OhC%I0许多年来我一直觉得自己在GUI代码方面相当差劲,甚至根本不该去碰前端的东西。Java看起来根本不应该和前端有什么关联,Swing效率很低。没

错,如果你是开发NetBeans的前Sun员工,又不用担心浏览器,而且还有一堆内存空间可以尽情使用的话,确实可以写出很快的Swing代码来。否则

Swing的确很慢。默认情况下Swing弄出一堆跟原生GUI动画一样的图形界面来,让人不爽。此外还有Java的沙箱模型。7i'm5y;j D

\l0

Ib3u(E$jJ"L0vE F04、强制类型转换T_}0ZI3zX6~0

DH+D:K*j+wrE0Java泛型并不完美,甚至不是我所首选的 解决方案,有时总会有些边界情况使得泛型无法有效处理。例如,我实在不想再这么做:3T#ge&?2q@0Foo

B.C#z k6@g0 bar = (Foo) FooFactory.get(“bar”);不幸的是,总有些库没有及时更新,而且遗留代码总是存在。我们只好自作自受,乖乖多写些、使用泛型。51Testing软件测试网#[uG4K(T#R(Y51Testing软件测试网.tZ!s[j:J&H

5、用Calendar或Date来做日期计算N@m*_g(|0

I4cxX0K5sXX d.?Pj,Jh0用JDK中的Date和Calendar来做复杂的日期和时间计算简直就是浪费生命。内建的类仅仅支持最基本的操作,而且一点也不直观。我们还

是用JODA

Time这样的先进库来代替吧,除非您还在用x86编译器来写Web应用,因为除此之外你也享受不到用JDK的Date和Calendar之类带来的乐

趣。51Testing软件测试网?K9Wv-g.K1MB51Testing软件测试网k9aZhl%P

6、配置会话(Session)复制51Testing软件测试网cS:Kh6cp(Uq51Testing软件测试网o&N'c)sS|`t-V0A

2000年早就过去了,现在所有分布式缓存产品和项目都已用NoSQL的键值对存储方式重构过了。如果需要带状态的客户端,那就用

AJAX/Javascript好了,把HttpSession丢一边去吧,这样的话可以大大提高应用程序的可靠性和可扩展性。我们也就不用因为隐藏在深

处的一连串异常爆发而半夜起来一路颠簸了。可别误会了,半夜颠簸挺好的,至少我老婆因此买了辆小货车(虽然我更喜欢我那辆Ninja

650机车),不过老实说,是时候换成更好、更快、更聪明的东西了。O

a;T2L

G/[x0

8Ftx.M0e07、自己写排序算法b7X!}2ba]051Testing软件测试网xpS(|

G?

这是最让人厌恶的,我个人对排序算法并不留意。写排序代码的人要么是不知道Java已经提供了你所需的排序算法(或者自己写了个排序的第三方库

文件),要么根本不知道Comparable和Comparator如何工作。赶紧去补充一下功课,以后再也不要自己写排序自寻烦恼了。51Testing软件测试网$ZkAk2Cv~

G

@7xO^"WA08、自己写链表,栈,队列等u4Z^F{051Testing软件测试网QkyGF!Lw:qS%bg

必须承认,写个基本的链表挺容易。Wikipedia有个关于链表的不错的页面(http://en.wikipedia.org/wiki

/Linked_list),上面有含代码的内容,完全可以直接复制粘贴,不过何苦要这么做?也许我是挺懒的,不过我更愿意用一个已经通过测试的数据结

构,而我也是花过不少功夫才决定这么做的。vW(a7qH_}|051Testing软件测试网l WQ7ZU

9、自己写池,集合或通用的并发代码.pXW(bIG,x/Y0

}n|'hG j0认识Doug Lea大师。崇拜大师,那就支持大师的java.util.concurrent包吧。大师可不是凡人,人家可的以高度并行,因此您想得到的并发问题对策,大师也早已想到。N]&TRTAAOO051Testing软件测试网b2^

B]fh'l

10、处理日志框架51Testing软件测试网+zV `!t W1r$h51Testing软件测试网yJ#a;bE

^"[

你用什么词来形容Commons

logging、SLF4J之类?答案是:烂!几年前Sun不肯简单地把Log4J的接口引入JDK就导致了这个问题,Oracle倒是可以把

java.util.logging做得好点。我宁可大家都用java.util.logging这个烂标准,也不要有人搞出个伟大的其他日志候选项。这

就像有人进行下面的对话:51Testing软件测试网1o1ld3n)]51Testing软件测试网C\O5ZF3_9||eg

“我有可口可乐”51Testing软件测试网:m

Wa-@6v51Testing软件测试网r.r7D3@{\Cu|

“喝百事怎么样?”51Testing软件测试网~D*JG!f%S"[*P!H

INbC#V N.L0“管它呢,反正喝了都胖,有什么区别?”3O8CSk!P|051Testing软件测试网v$q$m*A'my k

7WA,?@!D.~0

java10没人开发了吗,不愿看到Java开发者再做的10件事相关推荐

  1. 开发测试矛盾java吧_不愿看到Java开发者再做的10件事

    5.用Calendar或Date来做日期计算 用JDK中的Date和Calendar来做复杂的日期和时间计算简直就是浪费生命.内建的类仅仅支持最基本的操作,而且一点也不直观.我们还是用JODA Tim ...

  2. 不愿看到Java开发者再做的10件事

    编者注:Andy是OSI(开发系统集成者)的CEO,同时也是位思想先锋及优秀博客作者. William F. Buckley.Jr 曾经说过,"保守主义者是那些逆着历史潮流不断喊停的人,其他 ...

  3. 人到中年混得再差,也别做这10件荒唐事,年龄越大,越会被人欺

    人到中年万事休,世人都提倡要看得开放得下,其实,所谓的"放下",只是逃避的借口.人到中年,正处于职场中"不上不下"的位置,上又上不去,下又下不来,地位很尴尬.家 ...

  4. 安装Ubuntu后必须要做的几件事(二)--开发工具篇

    链接 链接 安装Ubuntu后必须要做的几件事(一)–基础应用篇 安装Ubuntu后必须要做的几件事(二)–开发工具篇 终端的乐趣–Linux下有趣的终端命令或者工具 Ubuntu使用apt-file ...

  5. 职场上情商高的人有什么特征,盘点职场上情商高的人必做的3件事

    在日常生活和工作中,我们都倾向于,和情商高的人打交道.人都是情感动物,所以在人际交往中,尤其是在职场中,情商真的特别重要.很多人因为情商不行,别人和他相处的时候,就会觉得很不舒服,偏偏这些人,自己还不 ...

  6. 一生里和你爱的人做完50件事

    [/转载] 一生里和你爱的人做完50件事 我想幸福,也许就是这么一件.一件积累起来的-- 1.布置一间书房,要一整面墙的大书柜,和你一起慢慢把它装满 2.和你背靠背,一边听我们都喜欢的CD,一边看各自 ...

  7. 人物传记:JULLIAN MURPHY:聪明的人,不做这三件事

    一个人的一生,只有一次,这一生,如何度过,要取决于每个人自己.如果人生的道路选择错误,那么这一生将充满遗憾.那么,一个人想要过好这一生,应该如何做呢?其实,聪明的人,一般要避免做这三件事.最近,星盟预 ...

  8. 世上的人大都只会“飞鸽传书下载”,没人开发

    当我上大学的时候,高级飞秋局域网聊天也曾是我的目标.当时,我通过等级考试获得了高级飞秋局域网聊天证书,并在自己的名片上印上"高级飞秋局域网聊天"的字样.后来,我的水平提高了,似乎也 ...

  9. 10年软件开发教会我最重要的10件事[转]

    1.面向对象比你想象的要难得多     也许只有我有这种想法,不过我曾经以为计算机科学课上学过的"面向对象"是很简单的东西.我的意思是,创建一些类来模拟现实世界能有多难啊?其实,那 ...

最新文章

  1. BAPI_BILLINGDOC_CANCEL1解析
  2. The response status was 0. Check out the W3C XMLHttpRequest Level 2 spec for
  3. java 根据经纬度计算多边形的面积_强基初中数学amp;学Python——第二十九课 根据海伦秦九韶公式编程计算三角形面积...
  4. Linux 下如何查找 MySQL 数据库的数据根目录呢?
  5. request获取各种路径总结、页面跳转总结。
  6. binaryviewer java_用java实现java的2进制文件字节序转换到C/C++的2进制文件字节序
  7. mysql table fetching_MySQL死锁分析一例
  8. 用命令行快速打开软件
  9. “鲲鹏新时代、中原更出彩” 2020数字经济峰会暨黄河鲲鹏生态发展大会召开
  10. C++进阶教程之异常如何处理
  11. 基于SSM的灾情发布平台
  12. 进销存excel_还在用Excel处理进销存?推荐4个免费库存管理软件
  13. [摘]研究方法 - 实证研究
  14. easyui 合并列_Easyui DataGrid 合并单元格
  15. 菜谱点菜c语言编程,菜单点菜并计算价格 C++改成C 运行成功100分
  16. 1、Ray基本原理及使用
  17. python include_python中的include()是什么?它和进口有什么不同?
  18. 简析“正向代理”与“反向代理”
  19. 介绍几种最常见的加密和解密方法
  20. 2022.06.07 前端-uniApp跨域解决办法

热门文章

  1. 深度:蒙牛老年高端产品营收增长9倍,中老年消费品市场趋势不变,创新机会涌现!
  2. hypermill五轴再加工_【秒杀】hyperMILL2018三四五轴基础到高级编程视频教程,带你快速熟悉五轴编程...
  3. 20克拉默法则、逆矩阵、体积
  4. Maven配置JdbcTemplate完成数据查询
  5. QTranslator的使用
  6. solidworks 2020(3D机械设计) 附安装教程
  7. Java线程池七大参数详解和配置
  8. [数据结构]freebasic实现动态单链表
  9. 美国FBA海运详解:美国FBA海运费用价格有哪些
  10. 中国嵌入式天花板灯具行业市场供需与战略研究报告