告诫各位处于开发第一U的朋友Q千万不要受本文的误|把规范和设计文不当回事?
我的看法Q?
1、文的多少和深度决定于目环境?
如果是大目Q比如二三十开发h员,架构文档、需求文、代码规范等都是必须Q否则开发h员不能迅速了解项目技术和业务特点Q从而无法快速开发,也即是规范可以降低培训成本和团队沟通;另外Q项目开发中后期可能Ҏ不可控,谁都看不懂其它h的代码。部|时看到的一些bug无法及时修复Q因为到处都有地雗我以前l历q这L目Q最后加班都没用?
如果是品型Q规范更重要。当然我说的产品可能?.0版以后,因ؓq时候的产品基本得到了市场的认可。而在初版Ӟ代码写得烂都没关p,因ؓ你不不知道用户会不会买单Q也不知道能否按q度开发完成。而在后箋版本Q如果没有规范文,l护的成本都不亚于重新开发。特别是处于一U的开发h员会怨声载道Qؓ什么要我来收拾D局Q那么,q样的士气,开发效率怎么会高Q项目质量怎么会高Q?
2、成熟型大公叔R套做事流E,可能高手受不了,但可能是最优的Ҏ。因为,到项目后期维护,往往只是一些业务功能的删减改进Q不需要技术高手,q个q程可能漫O几年Q项目维护成本会非常高,雇䄦高手一来他不愿意干二来也不需要这UhQ如果项目代码还l持在一U?#8220;U序”Q初中开发h员就可以胜QQ有什么不好呢Q?
目上线Ӟ是ؓ了追求利润。项目维护期Q是Z省成本?
3、刚入道的朋友,最好是按规范来Q就像学武术Q先要学套\。否则,L的编E坏习惯Q比如文件名叫Aaa1.javaQ代码没有羃q。过几年非常难改。而好的编E习惯,可以提升开发效率,q能让自己思维清晰?
学技术阶D,一定要注意代码的可l护性、健壮性及灉|性,只有L对代码精益求_态度Q你才可能成为技术高手。技术学好,做技术管理就有了基础Q而且别h也会服你?/div>
原文地址Qhttp://www.javaeye.com/topic/646406
]]>
你是个Y件架构师吗?Q{Q?/title> http://www.tkk7.com/Carter0618/archive/2010/04/19/318748.html前方的\ 前方的\ Mon, 19 Apr 2010 08:50:00 GMT http://www.tkk7.com/Carter0618/archive/2010/04/19/318748.html http://www.tkk7.com/Carter0618/comments/318748.html http://www.tkk7.com/Carter0618/archive/2010/04/19/318748.html#Feedback 0 http://www.tkk7.com/Carter0618/comments/commentRss/318748.html http://www.tkk7.com/Carter0618/services/trackbacks/318748.html
l常被用来区分Y件架构和软g设计开发的关键几点包括 伸羃性和抽象E度的增加以及作出正设计决{意义的增强。Y件架构是通过一个全局的观点,宏观的视角来理解软gpȝ作ؓ一个整体如何工作?
即ɘq能够帮助区分Y件开发和架构Q它q不能帮助理解某人如何从开发提升到架构?q且Q它也不能帮助识别谁能够成ؓ一个好的Y件架构师Q如果你想雇人的话你如何d找他们以及你是否是一个Y件架构师? 阅读全文 ]]> Oracle Flashback 技?ȝQ{Q?/title> http://www.tkk7.com/Carter0618/archive/2010/04/14/318280.html前方的\ 前方的\ Wed, 14 Apr 2010 09:38:00 GMT http://www.tkk7.com/Carter0618/archive/2010/04/14/318280.html http://www.tkk7.com/Carter0618/comments/318280.html http://www.tkk7.com/Carter0618/archive/2010/04/14/318280.html#Feedback 0 http://www.tkk7.com/Carter0618/comments/commentRss/318280.html http://www.tkk7.com/Carter0618/services/trackbacks/318280.html 在Oracle 10g中, Flash back家族分ؓ以下成员Q?Flashback DatabaseQ?Flashback DropQFlashback Query(分Flashback Query,Flashback Version QueryQ?Flashback Transaction Query 三种) 和Flashback Table?nbsp; 阅读全文 ]]> 代码?/title> http://www.tkk7.com/Carter0618/archive/2010/03/25/316564.html前方的\ 前方的\ Thu, 25 Mar 2010 10:17:00 GMT http://www.tkk7.com/Carter0618/archive/2010/03/25/316564.html http://www.tkk7.com/Carter0618/comments/316564.html http://www.tkk7.com/Carter0618/archive/2010/03/25/316564.html#Feedback 1 http://www.tkk7.com/Carter0618/comments/commentRss/316564.html http://www.tkk7.com/Carter0618/services/trackbacks/316564.html 阅读全文 ]]> JavaScript Base64~码和解码,实现URL参数传递?/title> http://www.tkk7.com/Carter0618/archive/2009/06/16/282539.html前方的\ 前方的\ Tue, 16 Jun 2009 02:34:00 GMT http://www.tkk7.com/Carter0618/archive/2009/06/16/282539.html http://www.tkk7.com/Carter0618/comments/282539.html http://www.tkk7.com/Carter0618/archive/2009/06/16/282539.html#Feedback 0 http://www.tkk7.com/Carter0618/comments/commentRss/282539.html http://www.tkk7.com/Carter0618/services/trackbacks/282539.html 阅读全文 ]]> Q{QSpring Framework之最佛_践二 http://www.tkk7.com/Carter0618/archive/2008/08/14/222014.html前方的\ 前方的\ Thu, 14 Aug 2008 07:15:00 GMT http://www.tkk7.com/Carter0618/archive/2008/08/14/222014.html http://www.tkk7.com/Carter0618/comments/222014.html http://www.tkk7.com/Carter0618/archive/2008/08/14/222014.html#Feedback 0 http://www.tkk7.com/Carter0618/comments/commentRss/222014.html http://www.tkk7.com/Carter0618/services/trackbacks/222014.html 阅读全文 ]]> Q{QSpring Framework之最佛_践一 http://www.tkk7.com/Carter0618/archive/2008/08/14/222012.html前方的\ 前方的\ Thu, 14 Aug 2008 07:13:00 GMT http://www.tkk7.com/Carter0618/archive/2008/08/14/222012.html http://www.tkk7.com/Carter0618/comments/222012.html http://www.tkk7.com/Carter0618/archive/2008/08/14/222012.html#Feedback 0 http://www.tkk7.com/Carter0618/comments/commentRss/222012.html http://www.tkk7.com/Carter0618/services/trackbacks/222012.html
我想最重要的是QEJB让每个h都痛恨。要~写一个EJBQ需要写LocalHome, RemoteHome, Bean, LocalInterface, RemoteInterfaceQ需要一个标准描q符Q一个特D厂商描q符QWeblogic、WebSphere都不一PQ如果是Entity BeanQ还需要Mapping文g。如此之多,实在ȝ。但EJB最重要的是解决Transaction问题Q没有Spring之前Q没有其他方法能够描q式的解军_。每个h、每个公ؓ了解决Transaction的问题,~程的写法都不一P百花齐放。于是,在最需要它的时候,Spring出现了?nbsp; 阅读全文 ]]> 【{】Java开源项目(备查Q?/title> http://www.tkk7.com/Carter0618/archive/2008/08/11/221222.html前方的\ 前方的\ Mon, 11 Aug 2008 02:24:00 GMT http://www.tkk7.com/Carter0618/archive/2008/08/11/221222.html http://www.tkk7.com/Carter0618/comments/221222.html http://www.tkk7.com/Carter0618/archive/2008/08/11/221222.html#Feedback 0 http://www.tkk7.com/Carter0618/comments/commentRss/221222.html http://www.tkk7.com/Carter0618/services/trackbacks/221222.html 阅读全文 ]]> osgi介绍 http://www.tkk7.com/Carter0618/archive/2008/02/20/180899.html前方的\ 前方的\ Wed, 20 Feb 2008 08:46:00 GMT http://www.tkk7.com/Carter0618/archive/2008/02/20/180899.html http://www.tkk7.com/Carter0618/comments/180899.html http://www.tkk7.com/Carter0618/archive/2008/02/20/180899.html#Feedback 1 http://www.tkk7.com/Carter0618/comments/commentRss/180899.html http://www.tkk7.com/Carter0618/services/trackbacks/180899.html
OSGi技术的研究和讨?/p>
]]> 关于文g下蝲的几个问题ȝ http://www.tkk7.com/Carter0618/archive/2008/02/17/180331.html前方的\ 前方的\ Sun, 17 Feb 2008 08:32:00 GMT http://www.tkk7.com/Carter0618/archive/2008/02/17/180331.html http://www.tkk7.com/Carter0618/comments/180331.html http://www.tkk7.com/Carter0618/archive/2008/02/17/180331.html#Feedback 0 http://www.tkk7.com/Carter0618/comments/commentRss/180331.html http://www.tkk7.com/Carter0618/services/trackbacks/180331.html 使用servlet来下载文Ӟ其原理非常简单,只要得到文g的输入流Q或相应字节Q,然后写输出流卛_。现其中的几个l节问题展开Q?
1. MIMEcd的设|:
Web 览器?MIME cd来识别非 HTML 文Qƈ军_如何昄该文档内的数据?
例如EXCEL文g?MIME cd?"application/vnd.ms-excel "。要用servlet 来打开一?EXCEL 文Q需要将 response 对象?header ?contentType 讄?#8220;application/vnd.ms-excel ”?
response.setContentType(contentType);
2. Content disposition
HTTP response header中的content-disposition 允许 servlet 指定文表示的信息。用这Uheader Q你可以将文指定成单独打开Q而不是在览器中打开Q,q可以根据用L操作来显C?
如果用户要保存文档,你还可以文一个文件名。这个徏议名UC出现?Save As 对话框的“文g?#8221;栏中。如果没有指定,则对话框中就会出?servlet 的名字?
servlet 中,?header 讄成下面这P
response.setHeader("Content-disposition","attachment;filename="+ "Example.xls" );
response.setHeader("Content-Disposition", "inline; filename="fliename)
点击打开会在ie中打开?
需要说明的有三点:
Ø 中文文g名需要进行iso8859-1转码方可正确昄Q?
fileName = new String(fileName.getBytes("GBK"),"iso8859-1");
Ø 传递的文g名,需要包含后~名(如果此文件有后缀名)Q否则丢失文件的属性,而不能自行选择相关E序打开?
Ø 有下载前询问Q是打开文gq是保存到计机Q和通过IE览器直接选择相关应用E序插g打开两种方式Q前者如上代码所C,后者如下:
response.setHeader("Content-disposition","filename="+ "Example.xls" );
3. 在研I文件的上传及下载过E中Q有几点体会
E序的I/O操作往往是性能的瓶颈所在,java io定义了两个基本的抽象c?InputStream和OutputStream,对于不同的数据类型比如磁盘,|络又提供了不同的实玎ͼjava.io也提供了一些缓冲流(BufferedStream)Qɼ盘可以很快的读写一大块的数? 而Java基本的I/OcMơ只能读写一个字?但缓冲流(BufferedStream)可以一ơ读写一Ҏ据,,~冲?Buffered Stream)大大提高了I/O的性能。所?
Ø块块的读写数据会非常?因此,量大块的读写数?
Ø使用BufferedInputStream和BufferedOutputStream来批处理数据以提高性能
Ø对象的序列化(serialization)非常影响I/O的性能,量用