Notes: Pragmatic Development
These are notes from John Paul Ashenfelter’s presentation on 12/13/07 regarding pragmatic development. The entire discussion is done with open source tools and can be set up in an afternoon.
Build it CRISP: Complete, Repeatable, Informative, Schedulable, Portable. Building is taking all the pieces and creating the final product. All source code should be in a repository; there’s no other way to do it. Perhaps you’ll want continuous development: Every commit, it is redeployed. This especially makes sense for the QA server.
Source control is a must. Subversion is the popular source control option for now.
Automation is an important factor for building. Shell scripts can get the job done (although Windows shell isn’t so good), but tools like make, rake, and Ant seem to be better for this kind of thing. Considering Ant’s popularity in the Java world–and ColdFusion’s connection to Java–it often is the automation tool of choice. It’s easy to install, widely used.
Testing is another important factor in the process. CfcUnit is “pretty darn solid”.
Functional testing tools like Selenium and Canoo WebTest are useful too. Depending on your deployment, load-testing tools like Grinder may be useful too. However, load-testing may sometimes be frustrating to set up. Worry more about your unit and functional tests.
Selenium is useful for any of the testing of your application that is repetitious. The nice thing is that you don’t even have to know how to write Selenium tests. With the IDE, you can record your tests by walking through the application, and then the Selenium test will be generated. Flex and Flash are problematic, but other elements of web pages work great, including AJAX code.
Using Ant. When using Ant, dbUnit can be extremely useful to also reset your database to a certain condition. Not good for HUGE amounts of data, though. Use SvnAnt v1.1 (it doesn’t use JavaHL). To learn how to use ant, try the Ant Manual. Also try looking at well-annotated ant scripts written by other people.
Charlie mentioned an excellent blog post with lots of resources for Subversion from a ColdFusion developer’s perspective.
A very decent presentation. Thanks, John.
