﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-咖啡Java-随笔分类-软件工艺</title><link>http://www.blogjava.net/jaunt/category/17633.html</link><description>站在巨人的肩上&lt;br&gt;
Flying in the world of Java</description><language>zh-cn</language><lastBuildDate>Fri, 12 Oct 2007 15:23:08 GMT</lastBuildDate><pubDate>Fri, 12 Oct 2007 15:23:08 GMT</pubDate><ttl>60</ttl><item><title>软件技术(软件工艺)</title><link>http://www.blogjava.net/jaunt/archive/2007/10/12/152315.html</link><dc:creator>Jaunt</dc:creator><author>Jaunt</author><pubDate>Fri, 12 Oct 2007 05:16:00 GMT</pubDate><guid>http://www.blogjava.net/jaunt/archive/2007/10/12/152315.html</guid><wfw:comment>http://www.blogjava.net/jaunt/comments/152315.html</wfw:comment><comments>http://www.blogjava.net/jaunt/archive/2007/10/12/152315.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jaunt/comments/commentRss/152315.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jaunt/services/trackbacks/152315.html</trackback:ping><description><![CDATA[<font color="#666666"><strong>技术仅仅是一种元素,新的技术总是曾出一穷,</strong><strong>更重要的是你的思想<span style="color: #908d92;"><font color="#666666"><strong></strong></font><strong><span style="color: #646868;"><span style="color: red;"><span style="color: #908d92;">、</span></span></span></strong></span></strong></font><strong><span style="color: #646868;"></span></strong><font color="#666666"><strong>学习能力和解决问题的能力。<br />
</strong></font><strong><br />
1. XML<br />
<br />
首先，你要了解XML。我不是说仅仅是XML规格本身，还包括一系列相关的基于XML的语言：最重要的是
XHTML、XSLT、XSL、DTDs、XML Schema
(XSD)、XPath、XQuery和SOAP。那些在过去5年内从未碰过键盘的人，可能不知道XML为何物。XML是一种文本文件，使用与HTML类
似的标记。XML能定义一个树状结构，并能描述所含的数据。<br />
<br />
XML最好的一点是既能存结构化数据也能存非结构化数据。它既能存贮和描述&#8220;规格的&#8221;(regular)表格数据，也能容纳和描述&#8220;粗糙的&#8221;(ragged)文件数据。<br />
<br />
XHTML是现今写HTML的首选方法。因为它是形式完好（well formed）的XML，比起古老的、通常是畸形（malformed）的HTML文件，XHTML格式的文件更容易处理。<br />
<br />
XSLT和XSL是用于把XML文件转成其它格式的语言。可转换的格式包括：文本文件、PDF文件、HTML、以逗号为分隔符的文件，或其它XML文
件。 DTD和XML
Schema描述XML文件所能包含的内容的类型，并让你&#8220;验证&#8221;XML文件内容的合理性，而不用写特殊代码以确保内容符合规则要求。<br />
<br />
XPath和XQuery是用于从XML文件中抽取单个项目或一组项目的查询语言。XQuery扩展了XPath，因而更重要。XQuery与XML的关系正像SQL与关系数据库的关系。<br />
<br />
SOAP是Web服务之间的一个标准通讯协议。尽管你不需要对SOAP标准一清二楚，你应该熟悉一般的schema和它的工作原理，以便能应用这门技术。<br />
<br />
2. Web服务<br />
<br />
Web服务是XML流行后的一个直接产物。因为你能用XML描述数据和物件，因为你能用schema确保XML文件内容的合理性，因为XML是基于文本
的规范，XML为跨平台通讯标准提供了一个极其方便的基本格式。如果你还从来没碰到Web服务，你可能很快就会碰到，在未来5年内，你几乎肯定会碰到。熟
悉Web服务十分重要，因为它是目前所有跨不同机器、不同语言、不同平台和不同地点的通讯协议中最简单的一个。不管你需要与否，Web服务是迈向互用性的
重要一步。<br />
<br />
XML工作组主席John
Bosak曾说XML&#8220;给Java一些事做&#8221;。实际上，Web服务让所有语言都有了一些事做。Web服务让在大型机上运行的COBOL应用软件能调用在手
持设备上运行的Java应用程序、能让Java
applet与.NET服务器交谈、能让微机软件与Web服务器无缝连接，并提供了一个相对容易的方法，让企业不光能向外界提供数据，还能提供功能，而且
是一种与语言、平台和位置都独立的方法。<br />
<br />
3. 面向对象的编程<br />
<br />
很多程序员仍认为OOP是象牙塔里的技术。但如果
你想一下是什么语言在过去的10年里占主导地位，你就会理解OOP不是象牙塔里的技术。OOP从Smalltalk开始，传到C++和Pascal
(Delphi)。Java使OOP大踏步地迈向主流，几年后的VB.NET和C#则完全确立了OOP的优势地位。尽管这些语言中的多数并不要求你必须会
OOP，但我觉得如果你不了解OOP的基本概念也不知道如何应用这些概念，你能找到的编程工作将越来越少。<br />
<br />
4. Java、C++、C#和VB.NET<br />
<br />
我把这些语言列在一起，并不是建议你成为每一种语言的专家。我的理由是：学习编程最有效的方法之一是看代码，而你能看到的大量的代码很可能不是用你所喜爱的语言编写的。<br />
<br />
在过去几年，各语言的能力越来越接近。现在，你可以用VB.NET写Windows服务、Web应用程序或命令行程序。即使你只使用一种语言，你也应该
学一些其它语言，以便能看懂那些样例，并将其翻译到你所用的语言。这4种语言是基本核心，还有其它一些满足不同需要、颇具用途的语言，如FORTRAN、
COBOL、APL、ADA、Perl和Lisp。<br />
<br />
5. JavaScript<br />
<br />
尽管名字有些相像，但Java
与JavaScript并无关联。为什么一个脚本语言会如此重要呢？因为所有主流浏览器都用JavaScript。如果你需要写Web应用程序，你就有足
够的理由学JavaScript。JavaScript可以用作ASP或ASP.NET的服务器语言，也可以当做用于扩展XSLT的功能语言
(functional
language)。JavaScript是Mozilla/Netscape中用于激活基于XUL的程序接口的首选语言。JavaScript的一个变
种ActionScript是Flash MX的编程语言。将来，JavaScript很可能成为新设备的编程语言，以及大型应用软件中的宏语言。<br />
<br />
与JavaScript相对照的是VBScript。尽管Microsoft的软件对VBScript有良好的支持，但VBScript在未来的开发工
作中很可能是一个糟糕的选择。就是Microsoft也倾向于用JavaScript（或Microsoft自己的变种：JScript）写客户端程序。
在选择脚本语言时，请选择JavaScript。<br />
<br />
6. 正则表达式（Regular Expressions）<br />
<br />
查寻关系数据库可以用SQL，查询XML可以用XPath和XQuery，查询纯文本文件则可以用正则表达式。例如，你可以用一个命令从一个HTML文件
中查找并删除所有的注释。各种开发语言内置的一些简单的文本查询功能，如"IndexOf"函数或VB中经典的"InStr"函数或"Like"操作符，
根本不能与正则表达式相提并论。现在，各种主要的开发语言都提供使用正则表达式的途径。尽管正则表达式本身既难懂更难读（是回到早期计算机时代的一种倒
退），但它却是一个功能强大而且未被充分利用的工具。<br />
<br />
7. 设计模式<br />
<br />
正像OOP通过把对象分类以简化编程一样，设计模式对一些普遍的对象之间的交互进行分类，并赋予一个恰当的名称。OOP用得越多，设计模式就越有用。一些最常用的模式的名称已经变成了软件开发领域共同使用的术语，所以要跟上信息的主流，你就要对设计模式有相当的理解。<br />
<br />
8. Flash MX<br />
<br />
如果你需要在客户端得到比HTML和CSS更多的图形和更强的编程功能，Flash是你的答案。用Flash编程比开发Java applets或写.NET代码要快得多，也容易得多。<br />
<br />
在最新版本 (MX) 中，Flash不仅仅是画图和制造动画的工具，它已经成为一个编程功能强大的开发环境：能调用SOAP
Web服务，也能调用远端服务器上的ColdFusion、Java或.NET程序。Flash无处不在。它的引擎存在于世界上大多数客户端计算机，包括
手持设备、置顶盒、甚至是新的书写板电脑。所以使用Flash能大大扩展你的程序的应用范围。<br />
<br />
9. Linux/Windows<br />
<br />
熟悉Linux。在一台旧机器或新机器上安装Linux。下载图形用户界面，在其基础上写一些程序。安装Apache，写一个Web应用程序。这个世界
不再仅仅是属于Windows，这种趋势可能还会持续下去。如果你是一名中坚的Linux开发人员，那就抛弃你对Windows的憎恶，看看你能否做一些
Windows编程。Windows能继续在台式电脑上称王是有其原因的，这不仅仅是因为Microsoft控制了这个市场。<br />
<br />
没人知道你们公司会在什么时候决定从Linux转向Windows（或从Windows转向Linux），或者你想跳到一家用另一种平台的公司，或者你想出了开发一个杀手软件的好主意，所以你要争取拥有在不同操作系统上的编程经验。<br />
<br />
<br />
10. SQL<br />
<br />
尽管SQL不像本文讨论的其它技术那样新，而且SQL的重要性在未来10年内很可能降低，但它仍然是一项基本技能。很多开发人员还没有掌握这门技术，或
掌握得不够，不足以有效率地使用它。不要依赖具有图形用户界面的SQL生成器替你做事情，你要自己手工地写查询命令，直到你熟悉基本的SQL语法为止。了
解SQL不仅能帮助你日后学习XQuery，你还有可能马上发现能简化或改进目前项目的方法。<br />
<br />
培养好奇心<br />
最后，（对，我
意识到这是第11门技术），好奇心是你最重要的技能。要去尝试各种东西。新语言或新技术对你当前或将来的工作可能有用，也可能没用，但并不是你所学的每一
件事都是为了工作。不要害怕失败，万事开头难，学新技术也是如此。大多数失败是因为人们希望太快地学到太多的东西。要对每一点进步感到满意，不要让时间
（或缺乏时间）妨碍你。相反，你要安排时间留心、研究、试验新的开发技术和工具。<br />
<br />
你可能永远也没有必要成为这些技术的专家，而且我的选择可能根本不适合你的特殊情况，但通过培养好奇心，你将会发现你应该了解的东西。
</strong>
<img src ="http://www.blogjava.net/jaunt/aggbug/152315.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jaunt/" target="_blank">Jaunt</a> 2007-10-12 13:16 <a href="http://www.blogjava.net/jaunt/archive/2007/10/12/152315.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>闲聊软件工程</title><link>http://www.blogjava.net/jaunt/archive/2007/08/24/139081.html</link><dc:creator>Jaunt</dc:creator><author>Jaunt</author><pubDate>Fri, 24 Aug 2007 04:56:00 GMT</pubDate><guid>http://www.blogjava.net/jaunt/archive/2007/08/24/139081.html</guid><wfw:comment>http://www.blogjava.net/jaunt/comments/139081.html</wfw:comment><comments>http://www.blogjava.net/jaunt/archive/2007/08/24/139081.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jaunt/comments/commentRss/139081.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jaunt/services/trackbacks/139081.html</trackback:ping><description><![CDATA[1．How important a plan is for a project development.<br>2．How to communicate with your team members in a more effective way.<br>3．How to solve unexpected situations.<br>4．The importance of unification.<br>5．The importance of doing what you should do.<br>6．The importance of designing before programming.<br>7．The importance of management.<br>8．The importance of thinking what your teammates think.<br><br>在软件开发过程中我们应当具有以下能力：<br>1.Like it if you would like to do it.<br>We believe that your attitude toward your work will definitely makes great effect on the project.<br>2.The spirit of group working.<br>Take
myself as an example. I am just a part of the team, just a little part.
You must make it clear that you are just a member of the team, but your
effort will change your project a lot.<br>3.Passion<br>With passion, you can do your job in a more effective way.<br>4.The ability of solving unexpected problems.<br>5.Learning New things in a very short time<br>It is the basic requirement for we computer major to learn new technology.<br>6.Creativity<br>The
tools are changing. As for us, what's more important is to use these
new tools and technology to enable people and businesses throughout the
world to realize their full potential.<br>7.The ability to do your work independently.<br>Every
member has his own business. In a team, your work cannot be replaced by
others' so you must do your business well in order to assure the
project devel<br>opment process.<br><br><br>团队开发当中的一些具体精神应当有：<br>&lt;1&gt; Success and Failure is not one person's effect.<br>Your
team's success is not the contribution of a single person. Success
contributes to the whole team. If your project failed, it also is not
just because of one person's poor work. It is also your failure.<br>&lt;2&gt; Learn from each other.<br>Every
person has his own specialty. Even Bill Gates cannot know all the
things about software development. We often learn from each other and
gains a lot. The old saying goes like this:<br>There must be one out of three who can be your teacher. In our team we say: Every person is your teacher.<br>&lt;3&gt; Help those who have problems. Use the group working spirit to overcome all the difficulties.<br>There
is no need to explain it. As the old saying: Two heads are better than
one. We always find it difficult to solve all the problems just by
oneself.<br>&lt;4&gt; Praise them who have got some improvement.<br>In
our team, I always praise the members when they have finished something
or just solved one problem, and they think that it is interesting and
gains a lot. Because they can see their efforts.<br>&lt;5&gt; Say something if needed.
<br><img src ="http://www.blogjava.net/jaunt/aggbug/139081.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jaunt/" target="_blank">Jaunt</a> 2007-08-24 12:56 <a href="http://www.blogjava.net/jaunt/archive/2007/08/24/139081.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>软件工艺</title><link>http://www.blogjava.net/jaunt/archive/2007/08/24/139080.html</link><dc:creator>Jaunt</dc:creator><author>Jaunt</author><pubDate>Fri, 24 Aug 2007 04:54:00 GMT</pubDate><guid>http://www.blogjava.net/jaunt/archive/2007/08/24/139080.html</guid><wfw:comment>http://www.blogjava.net/jaunt/comments/139080.html</wfw:comment><comments>http://www.blogjava.net/jaunt/archive/2007/08/24/139080.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jaunt/comments/commentRss/139080.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jaunt/services/trackbacks/139080.html</trackback:ping><description><![CDATA[普遍来说，中国人缺乏匠人的气质。&#8220;匠人&#8221;这个词在中国几乎是一个贬义词。例如说：&#8220;xx不过只是一个匠人&#8221;。但是其实国内的软件行业正是缺乏一大批对于自己的工作精益求精的软件工匠，这才是国内软件行业的主要问题所在。<br>相比之下，日本人是一个非常有匠人气质的民族。手艺精湛的匠人自古以来在日本都受到普遍的尊重。在这个方面，我们需要向日本人学习的地方有很多。<br>自
从Pete McBreen所著的Software
Craftsmanship（中文版名为《软件工艺》，人民邮电出版社出版）出版后，&#8220;软件工艺&#8221;为软件行业的从业者带来了&#8220;软件工程&#8221;之外的另一个重要
的隐喻。在此之前，&#8220;软件工程&#8221;
这个隐喻在软件行业中一直占据着绝对的话语权。软件工艺并非是为了彻底颠覆软件工程，而是为了促使大家将目光更多地投向精研软件建造过程中的工艺问题。这
本书将软件开发者分成了三个层次：学徒开发者（Apprentice Developer）、技师开发者（Journeymen
Developer）和软件工匠（Craftsman）。
<br><img src ="http://www.blogjava.net/jaunt/aggbug/139080.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jaunt/" target="_blank">Jaunt</a> 2007-08-24 12:54 <a href="http://www.blogjava.net/jaunt/archive/2007/08/24/139080.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>编码规范及要求</title><link>http://www.blogjava.net/jaunt/archive/2007/03/21/105367.html</link><dc:creator>Jaunt</dc:creator><author>Jaunt</author><pubDate>Wed, 21 Mar 2007 12:55:00 GMT</pubDate><guid>http://www.blogjava.net/jaunt/archive/2007/03/21/105367.html</guid><wfw:comment>http://www.blogjava.net/jaunt/comments/105367.html</wfw:comment><comments>http://www.blogjava.net/jaunt/archive/2007/03/21/105367.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jaunt/comments/commentRss/105367.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jaunt/services/trackbacks/105367.html</trackback:ping><description><![CDATA[
		<p> </p>
		<p>1. 类文件的放置要求：<br />分包的原则是首先按层划分，其次是按模块划分：<br />① com.yinhe.common      放置本应用的公共类<br />（例如：GlobalNames.java、DBConnection.java等）；<br />② com.yinhe.util          放置可以被其它web应用重复利用的公共类文件<br />（例如：编码过滤器EncodeFilter.java、<br />安全过滤器SavetyFilter.java、<br />字符过滤器 WordFilter.java、<br />html语言过滤器HtmlToString.java、<br />GBK转码类 GBKToString.java等）；<br />③ com.yinhe.login.web     放置在视图层（jsp）中用到的JavaBean值对象<br />（例如：UserInfVO.java）；<br />④ com.yinhe.login.control    放置控制类和ActionForm<br />（例如：Struts中的 LoginAction.java、UserForm.java）；<br />⑤ com.yinhe.login.dto      放置在业务逻辑层中用到的JavaBean数据传输对象<br />（例如：UserInfDTO.java）；<br />⑥ com.yinhe.login.modle    放置业务操作实体类（例如：UserDAO.java）；<br />⑦ com.yinhe.login.pojo     放置JavaBean持久对象（例如：User.java）；<br />⑧ conf                   放置工程配制文件<br />（例如：ApplicationResources.properties、global.properties）<br />   conf.spring             放置Spring配制文件（例如：applicationContext.xml等）<br />   conf.hibernate           放置Hibernate配制文件（例如：hibernate.cfg.xml等）<br /> <br />⑨ WEB-INF\conf           放置struts属性配置文件</p>
		<p>2. jsp文件的放置要求：<br />① 所有受保护的（过直接路径不允许访问的页面）放在admins下面，<br />admins下面的left.jsp放置菜单，top.jsp放置logo，main.jsp为主工作区，<br />wellcome.jsp为默认的首页（登录成功之后的显示页面）；<br />② 默认的访问首页命名为: index.jsp；</p>
		<p>3. 样式文件的放置要求：<br />① 按照模块划分放置在/css/模块名；公用的样式放在common.css下面；</p>
		<p>4. 图片文件的放置要求（非上传文件）：<br />① 按照模块划分放置在/images/模块名；</p>
		<p>5. 脚本文件的放置要求：<br />① 按照模块划分放置在/js/模块名；公用的样式放在common.js下面；</p>
		<p>6. 上传文件的放置要求：<br />① 图片文件放在upload/pic/模块名/文件；<br />② 非图片文件放在upload/other/文件；</p>
		<p>7. 命名要求：<br />① 所有jsp文件一律小写；<br />② 所有静态文件的后缀名一律以.htm结尾;</p>
		<p>③ 所有类文件都必须严格区分大小写，<br />接口必须以I开头，实现类以Imp结尾 （例如IUser.java ， UserImp.java），<br />如果是ActionForm必须以Form结尾(UserForm.java);<br />控制类必须以Action结尾(UserAction.java);<br />视图类必须以VO结尾（UserVO.java);<br />所有操作数据库的业务类必须以DAO结尾(UserDao.java);<br />所有数据传输对象必须以DTO结尾(UserDTO);</p>
		<p>④ 所有的包一律小写，分包的原则是首先按层分其次是按模块划分;<br /> 包名的第一及多为com或者org;<br />⑤ 所有java文件中的变量按照java的要求命名，常量一律全大写；<br />⑥ 数据库命名：<br /> 表名和java的实体类名对应而且全部大写（例如 USER 表对应 UserDAO.java);<br /> <br />⑦ 存储过程的命名：<br />传入参数以p_开头（例如p_user),局部变量以v_开头(例如 v_intCount),<br />存储过程的名称以p_开头（例如 p_add），<br />触发器以t_开头(例如 t_update),视图以v_开头(v_list_user),<br />所有参数的命名按照前面的原则：<br />主键以PK_开头，外键以FK_开头，唯一键用UN_开头，<br />检查约束用CHK_开头，默认值用DEF_开头，<br />每个表都必须有一个物理ID(自动产生)，其命名为ID；<br />同时还应该有一个逻辑ID,其命名为"表名_"+ID(例如 USER_ID);</p>
		<p> ⑧ 所有的java源文件和数据库的数据对象必须有注释，必须严格按照相应的规则注释，不要为了写注释而写注释，java的注释必须能自动形成JavaDOC文档；</p>
		<p>8. 关于提交代码的规定：<br /> ① 每天上班前必须和CVS同步，每天下班前必须提交自己的代码和文档（代码必须在本地被编译通过）；<br /> ② 当本地文件和CVS产生冲突的时候不要强行覆盖，必须找出冲突的原因，消除冲突后再提交，千万不要把别人的代码给盲目的覆盖了；<br /> ③ 如果发现jsp文件发生了改变，如果是二进制的比较方式，可能因为增加了换行和回车或者空格而产生冲突，这时可不考虑冲突的问题；</p>
		<p>9. 其它事宜：<br />① 加强沟通，形成高效+创新+强战斗力的团队！<br />② 服从分配，按时保质保量完成任务~！</p>
		<p>
				<br /> </p>
<img src ="http://www.blogjava.net/jaunt/aggbug/105367.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jaunt/" target="_blank">Jaunt</a> 2007-03-21 20:55 <a href="http://www.blogjava.net/jaunt/archive/2007/03/21/105367.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>