Best Practices for Enterprise Development - TedHusted/dreamops.github.io GitHub Wiki
Overview
Enterprise development on the Force.com platform can be made an enjoyable experience by adhering to a set of best practices. This section will provide a central living place that enterprise developers can reference to seek out further knowledge about how to develop on Force.com.
Continuous Integration
For an enterprise development team, changesets do not satisfy the requirements of tracking changes and require manual deployment. Continuous Integration, using Git and Jenkins, provides an automated framework for deployment and grants visibility into your development process.
At the current time, the Force.com Development Lifecycle guide recommends using a developer org for each of your developers. For enterprise development, this is very difficult for the following reasons:
- The need to develop teardown scripts to reset the developer org.
- Mixing of features makes deployment more error prone.
- Developers are less likely to experiment and prototype due to the overhead.
Derek Hansen and Ted Husted presented on Continuous Integration at Dreamforce 13. The setup involved using Feature Branches mapped to Feature Sandboxes. The setup for this process can be found in the open-nu-devops repository.
Selenium Testing
Custom VisualForce pages should be covered not only by Apex Unit Tests, but User Integration tests as well. Selenium is well adopted in the industry and has a low learning curve. Architected incorrectly, Selenium tests can be hard to maintain and costly to develop.
Ted Husted and Derek Hansen presented on Selenium Testing with Page Flow Navigation at Dreamforce 13. This is the recommended architecture for building a Selenium framework for Force.com enterprise development. More information can be found in the open-nu-selenium repository.