Pragmatic ColdFusion
From BriansWiki
[edit] Presenter
[edit] John Paul Ashenfelter
[edit] Pragmatic Defined
Dealing with things sensibly and realistically in a way that is based in practical rather than theoretical consideration
Using ant to automate the deploying process
[edit] Building CRISP
- Complete – having huge build is OK if that’s complete
- Repeatable – same build every time
- Informative – Did the build pass all tests
- Schedulable – Do it at 2 AM when network is low traffic (with a rollback on failure ideally)
- Portable – Build on any machine; not just Bob’s machine
[edit] Tools
- Source Control
- Automation Tools
[edit] Subversion
- Easy to install
- Hosted providers
- Integrate into most ides
- Stable
- Widely used
- lightweight
Track sits on top of Subversion and does bug tracking too
[edit] Testing
The trouble with programmers is you never know a programmer is doing until iit is too late.
[edit] Tools For Testing
- CFCUnit (unit Testing)
- Selenium (user testing)
- Grinder (stress testing)
- Automation Tools
[edit] Selenium (selenium.openqa.org)
- Testing in the Browser
- Handles majority of Tests
- Shows Browser differences since it run in the browser
[edit] Ant Build Files
- Project is the root
- Description
- Collection of properties
- You can use variables to abstract the server variables
- Type defs and task defs then do things with all those properties
- Never use Trunk for Deployment
[edit] Inits
Initializes the Builder
[edit] Copy
Copy from Trunk to Tags, this doesn’t really duplicate anything it just created pointers
[edit] Export
Then export from the tag to the build directory
[edit] Build
Then Build which is dependent on the Export function
[edit] Filter
You can use filters to insert the build date into files in the build directory where label token are
[edit] Concatenate
Then concatenate two files together to create a build file that documents the date and time of this build.
[edit] Deploy
Deploy – copy one more time
[edit] Zip
Zip it up and run a md5 check sum and then export it to a server for distribution
[edit] Common problems
Reset the database to a know state before you test. There is a tool call dbUnit that uses jdbc to export schemas, or even dump data before and after and compare the two. Or you can go to a command line and run Tsql scripts to restore a backup
[edit] The Agile Manifesto
[edit] Individuals and interaction over process and tools
[edit] Working Software over comprehensive documentation
[edit] Customer Collaboration over Contract negotiations
[edit] Responding to change over following a plan
[edit] Planning
[edit] User stories
Customers on the team Iterating
[edit] Short Cycles
Continuous integration Steady pace
[edit] Testing
Test Driven dev Acceptance testing
[edit] Re-factoring
Collective ownership Simple design
[edit] Continuous Integration
[edit] Books
[edit] The trilogy
- Pragmatic Source Control
- Pragmatic Unit testing
- Pragmatic Project Automation
