Standard Tools
These are the tools we have pretty much settled on as a team. For ease and consistency of development please try to remain on these tools and discuss with the team before introducing competing technologies.
Developer Software Tools
- Operating System: what ever floats your boat.
- IDE: Eclipse commonly used and free
- Wiki / Issue Tracker / Code Browsing and Reviewing / Automated Builds: we have a Jira Studio subscription (Nicole Deflaux and Mike Kellen as admins)
- Code versioning: Subversion, hosted by Atlassian as part of our Jira Studio subscription
- Build System: Maven
- Build repository manager: see Sage's hosted Artifactory service see jFrog website for info (John Hill and Mike Kellen as admins)
Profilers
Java Libraries
At this point we don't have any strict licensing requirements, however to maintain flexibility we have to be careful about licenses for software we choose to incorporate into our system. The best licenses are open source licenses without copy-left provisions (e.g. Apache License) that give us maximal flexibility in what we later do with the code base. Some strong copy-left licenses (e.g. GPL) would impose licensing requirements on us (e.g. force us to use GPL ourselves) if we chose to redistribute the code base at a later date. For now, we should just be aware of the mix of licenses incorporated into our projects, and have a bias for open source, non-copy left licenses.
- Application Framework: Spring
- Test: JUnit as test framework, Easy Mock 3.0 for mock objects in unit tests
Subversion
Developer branches
http://svnbook.red-bean.com/en/1.1/ch04s02.html#svn-ch-4-sect-2.1
Moving files and directories
The eclipse plugin for svn generally does a decent job moving files and directories. See also http://svnbook.red-bean.com/en/1.1/re18.html
Here is an example:
- You can see that there is a "deleted" file here but it was actually "svn moved" http://sagebionetworks.jira.com/source/browse/PLAY/trunk/src/test/java/com/symform/common
- Old filename http://sagebionetworks.jira.com/source/browse/PLAY/trunk/src/test/java/com/symform/common/TestHelpers.java#r9
- New filename http://sagebionetworks.jira.com/source/browse/PLAY/trunk/src/test/java/com/symform/common/Helpers.java#r41
- You can see that the full svn history is shown on each page.
svn gets really upset though when you do more complicated things like created a file, delete that file, then make a directory with the same name in the same location as the deleted file. (but that is a pretty odd thing to do anyway)
When in doubt, make a developer branch and try it there first.http://svnbook.red-bean.com/en/1.1/ch04s02.html#svn-ch-4-sect-2.1
Tools To Know About
Pretty-Print JSON
Have a large blob of JSON? Want to see it in human readable format? Toss it into this web ui: http://jsonformatter.curiousconcept.com/
Web Trace Tools
- Firebug http://getfirebug.com/
- Fiddler http://www.fiddler2.com/fiddler2/
Sequence Diagram Editors
Don’t waste your time with drawing programs when you can just write something similar to psuedocode.
Lucene Search
Browse lucene indices with Luke http://www.getopt.org/luke/