敏捷开发中高质量 Java 代码开发实践
简介: 本文将介绍在敏捷开发过程中如何通过采取一系列的步骤来保证和提高整个项目的代码质量,阐述了每一步可以利用的工具和最佳实践,从而使开发过程更加规范化,成就高质量的代码。
SQL 语句性能调优
初级篇 —— 简单查询语句的调优
简介: 经常听到有做应用的朋友抱怨数据库的性能问题,比如非常低的并发,令人崩溃的响应时间,长时间的锁等待,锁升级,甚至是死锁,等等。本文针对应用开发人员经常接触的 SQL 书写部分进行优化,以期望能对数据库开发人员有所帮助。
FTP防火墙的设置取决于Passive和PASV mode
大多数的TCP服务是使用单个的连接,一般是客户向服务器的一个周知端口发起连接,然后使用这个连接进行通讯。但是,FTP协议却有所不同,它使用双向的多个连接,而且使用的端口很难预计。一般,FTP连接包括:
一个控制连接(control connection)
这个连接用于传递客户端的命令和服务器端对命令的响应。它使用服务器的21端口,生存期是整个FTP会话时间。
几个数据连接(data connection)
这些连接用于传输文件和其它数据,例如:目录列表等。这种连接在需要数据传输时建立,而一旦数据传输完毕就关闭,每次使用的端口也不一定相同。而且,数据连接既可能是客户端发起的,也可能是服务器端发起的。
在FTP协议中,控制连接使用周知端口21,因此使用ISA的IP PACKET FILTER就可以这种连接进行很好的安全保护。相反,数据传输连接的目的端口通常实现无法知道,因此处理这样的端口转发非常困难。FTP协议使用一个标准的端口21作为ftp-data端口,但是这个端口只用于连接的源地址是服务器端的情况,在这个端口上根本就没有监听进程。FTP的数据连接和控制连接的方向一般是相反的,也就是说,是服务器向客户端发起一个用于数据传输的连接。连接的端口是由服务器端和客户端协商确定的。FTP协议的这个特征对ISA转发以及防火墙和NAT的配置增加了很多困难。
除此之外,还有另外一种FTP模式,叫做被动模式(passive mod)。在这种模式下,数据连接是由客户程序发起的,和刚才讨论过的模式(我们可以叫做主动模式)相反。是否采取被动模式取决于客户程序,在ftp命令行中使用passive命令就可以关闭/打开被动模式。
In sun.net.ftp.FtpClient,
Make your class become subclass of sun.net.ftp.FtpClient and use the protected method issueCommand("passive") to do this.
Apache Ant样式的路径 ant path url pattern
Apache Ant样式的路径有三种通配符匹配方法(在下面的表格中列出)
这些可以组合出很多种灵活的路径模式
Table Ant Wildcard Characters
Table Example Ant-Style Path Patterns
| Path | Description | |
| /app/*.x | 匹配(Matches)所有在app路径下的.x文件 | |
| /app/p?ttern | 匹配(Matches) /app/pattern 和 /app/pXttern,但是不包括/app/pttern | |
| /**/example | 匹配(Matches) /app/example, /app/foo/example, 和 /example | |
| /app/**/dir/file. | 匹配(Matches) /app/dir/file.jsp, /app/foo/dir/file.html,/app/foo/bar/dir/file.pdf, 和 /app/dir/file.java | |
| /**/*.jsp | 匹配(Matches)任何的.jsp 文件 |
| Wildcard | Description | |
| ? | 匹配任何单字符 | |
| * | 匹配0或者任意数量的字符 | |
| ** | 匹配0或者更多的目录 |
