You are currently browsing the daily archive for October 19, 2006.
Recently my company constructed new build process. I found very good articles.
The Build Process
There are many ways to build or release software, processes such as Continuous Integration and Release Management can help you to increase productivity or be more disciplined. The articles in this section discuss a number of processes and best practices.
- Defining the Build Process
This article defines in detail just what exactly the build process is and also discusses its value to an organization.
- Architecting the Build Process
This article describes how a typical build process can be architected and some best practices for evaluating the capability of your current build process.
- Build Process Top Ten Tips
This article describes my top 10 tips for constructing a complete, consistent and reproducible build process.
- Software Release Management Best Practices
A discussion of the fundamental concepts of software release management, the types of releases and their lifecycles, and 10 best practices that can be adopted to improve your own software release management process.
- Agile SCM and the IBM Rational SCM Toolset
A discussion of the concepts of Agile SCM and how it can be implemented by the IBM Rational SCM Toolset.
- Realizing Continuous Integration with the IBM Rational SCM Toolset
A discussion of the concept of Continuous Integration and how it can be realized with a supporting toolset (in this case IBM Rational ClearCase and CruiseControl).
- Version Control Requirements for the Build Process
A definition of a set of requirements that any version control tool should meet in order for it to successfully enable repeatability, reliability and scalability of the Build Process.
- Creating an SCM Plan
An example of a typical Software Configuration Management Plan.
In my J2EE projects I used the following tools:
- ANT (if you have already scripts) or Maven2 (it is more interesting for JavaEE 5)
- Xdoclet: a flexible and extensible code generator. It is very easy to customize the templates and generate additional code. Generates DDs, Local, Remote, Home, Composite-Keys, Value Objects, Facades etc.
- You can use APT (significanlty faster) instead of XDoclet. But you have to build the generator first…
- JBossIDE: an eclipse plugin (actually nature and perspective). Especially useful for code completion of xdoclet-tags (just click: ctrl+space to expand…)
- P6SPY: a free sql logging tool. Also binding variables in prepared statements are monitored.
- JMeter, Grinder, OpenSta(if possible LoadRunner). Load testing frameworks (from my perspective: even more important then unit-testing)
- JunitPerf, HttpUnit: collection of JUnit test decorators used to measure the performance and scalability of functionality contained within existing JUnit tests.
- JConsole: part of Java SE 5. A JMX-monitoring tool.
- JEdit: very useful and powerful editor.
- Continuum, Ivy or CruiseControl: central build servers (very useful)
- JDepend, PMD, FindBugs , CheckStyle, Jalopy: basic QA stuff.
- Middlegen: DB import wizzards (can generate Hibernate, CMP 2.0 etc. from DB).
- StarUML: a free UML-Tool (sometimes it is required to draw pictures :-))
- Squirrel, QuantumDB, Eclipse DTP or just Netbeans: Database explorers
- Jikes: very fast compiler for development
- Scriptella, Apache DdlUtils: Database migrations are a critical piece of any project upgrade.
- Eclispe WTP, Apache Struts, Ajax, Ruby on Rails : Web development tools.