!^/fy;@”s0William F.
Buckley.Jr
曾经说过,“保守主义者是那些逆着历史潮流不断喊停的人,其他人都不愿意这么做或者对他们这么做显得没有耐性”。虽然我对此了解不多,但是每次看到有
Java开发人员做以下事情或者我自己被迫做这些事情时,总想跳出来叫停。51Testing软件测试 YtVLI6N
-P
ig%[#J){n01、遍历结果集并构造对象51Testing软件测试 np3m1jkOg8e51Testing软件测试 n$Jm21D
while51Testing软件测试 Uj+{!Y]51Testing软件测试 i p.GTXk3rM2v2~d
(result.next()) {51Testing软件测试 l@c’|ow3fc.d
String
Yl’a)ZSfq’U4 name = result.getString(“name”);
bV.T[W&sw
E0 String
B b”H’/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软件测试 .o4a51Testing软件测试 /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&q@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.j,Jh0用JDK中的Date和Calendar来做复杂的日期和时间计算简直就是浪费生命。内建的类仅仅支持最基本的操作,而且一点也不直观。我们还
是用JODA
Time这样的先进库来代替吧,除非您还在用x86编译器来写Web应用,因为除此之外你也享受不到用JDK的Date和Calendar之类带来的乐
趣。51Testing软件测试 9Wv-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/p>
这是最让人厌恶的,我个人对排序算法并不留意。写排序代码的人要么是不知道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软件测试 CO5ZF3_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
文章知识点与官方知识档案匹配,可进一步学习相关知识Java技能树首页概览91437 人正在系统学习中 相关资源:最强劲的加密软件TrueCrypt_Setup_7.1a_最强劲的越野车- 络攻防…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!