Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.
-
Upload
elwin-miller -
Category
Documents
-
view
213 -
download
0
Transcript of Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.
![Page 1: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/1.jpg)
![Page 2: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/2.jpg)
Brian DuffPrincipal EngineerJDeveloper TeamOracle Corporation
![Page 3: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/3.jpg)
Team Development Best Practices
With Oracle JDeveloper 10g
![Page 4: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/4.jpg)
Team Development Process
Change control Day to day development Testing and auditing Building and releasing
![Page 5: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/5.jpg)
Change Control
Essential for most teams– Safety– Accountability– Flexibility
Use version control software– CVS, Oracle SCM, ClearCase, SourceSafe
JDeveloper team uses ClearCase– Moving to Oracle SCM in next twelve months
![Page 6: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/6.jpg)
Components
Main division of a product Should have well defined dependencies Organize for future growth Don’t be afraid to reorganize as they grow
– Helps to have a version control system that makes this easy
![Page 7: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/7.jpg)
JDeveloper Components
![Page 8: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/8.jpg)
Files
Logically structured– Primary organization by type or subcomponent– Use “parallel source tree” pattern for unit testing
Version control almost everything Derived objects
– Usually better not to version control– Can use a derived object cache in large products
![Page 9: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/9.jpg)
JDeveloper Files
A bit messy… Newer components (e.g.
adfc_modelers) have a more organized internal structure
8,990 .java files in “java” 2.2M Lines of code
![Page 10: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/10.jpg)
Parallel Development
Developers can work on tasks concurrently Developers control when their workspace
picks up changes Developers can use micro-versioning within a
task
![Page 11: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/11.jpg)
![Page 12: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/12.jpg)
Unit Testing
Run unit tests before checking in Essential part of refactoring
– Refactoring without unit testing is just “moving stuff around”
– Only way to prove that refactoring is just reorganizing code without altering functionality
Important metric of tip quality for a team– Automate unit testing after each check in
![Page 13: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/13.jpg)
Code Auditing and Metrics
Use a coding standard– Structural changes can be distracting when
comparing files– Developers have a natural aversion to changing
messy files (including large files)
Automate auditing and metrics– After each check in, or during builds
Make it easy for developers to audit
![Page 14: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/14.jpg)
Building Code
Build frequently and automatically– After each check in is ideal
Developers should be able to verify they won’t break the build by checking in
– Use a build tool such as ant or make– Version control third party libraries
Label successful builds– Any successful build should be reproducible– Provides a branch point for release branching
![Page 15: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/15.jpg)
![Page 16: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/16.jpg)
JDeveloper Build System
Automated system using Java, JMS, EJB Builds several releases of the product at once
in parallel– Multiple “workhorse” build machines– A single controller & scheduler– Highly parallel, e.g. debug build happens at same
time as nondebug build After build, check in comments are mailed to
team
![Page 17: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/17.jpg)
![Page 18: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/18.jpg)
Further Reading
Configuration Management Best Practices Wiki– http://www.cmwiki.com/
Streamed Lines– http://cmcrossroads.com/bradapp/acme/branching/
Ed Saikali’s J2EE Environment Article, OTN– http://otn.oracle.com/oramag/webcolumns/2003/techar
ticles/saikali_jdev.html
![Page 19: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/19.jpg)
AQ&Q U E S T I O N SQ U E S T I O N S
A N S W E R SA N S W E R S
![Page 20: Brian Duff Principal Engineer JDeveloper Team Oracle Corporation.](https://reader035.fdocuments.in/reader035/viewer/2022072011/56649e395503460f94b2a738/html5/thumbnails/20.jpg)