Developer Space
Overview
This page is a developer space for this project.
Developer Accounts Needed
Amazon EC2 Server (e.g. 10.230.174.166, terminology.tools, term-server.com) - (user/key)
Tomcat runs as ec2-tomcat. Admins should have sudo access to root or ec2-tomcat.
UTS Account (each user has their own account)
Github (obtain on your own)
WCI Wiki (only needed for editing, email bcarlsen@westcoastinformatics.com)
MSC Sharepoint Account (email lroth@mscweb.com) - needs to be set up via a mscweb.com account (e.g. bcarlsen@mscweb.com)
MAILING LIST: TBD
Project Resources
Github Project - https://github.com/WestCoastInformatics/SNOMED-Terminology-Server.git
Portal Site - http://wiki.terminology.tools/confluence
Deploy Site - http://snomed.terminology.tools/term-server-rest/index.html
Deploy Instructions (for Amazon EC2 - AMI instance)
MSC Sharepoint Site
Sprints and Milestones and Meeting Notes
Meetings
SPRINT 3 - concludes November 28 - extended until 12/12
Future Features to consider
a switch to disable changes at rest layer (so that server doesn't have to be taken down for admin tasks).
Eclipse Setup
Performance tips - http://stackoverflow.com/questions/5660247/hints-to-improve-eclipse-performance
Eclipse Plugins
Use version 4.4 (Luna) - consider the J2EE edition
m2e with m2e-egit (Eclipse marketplace)
Jautodoc (Eclipse marketplace)
Set Eclipse preferences to use "UTF-8" as the character encoding and "Unix" as the line termination setting. These are not typical defaults
See General->Workspace under Window->Preferences
Code and XML Formatting in Eclipse (includes jautodoc configuration)
Configure Java warnings/errors according to spec (need screenshots)
All warnings (including missing javadoc) should be resolved before commits occur
Keep these ignored
Code Style
Unqualified access to instance field
Non-externalized strings
Resource not managed via try-with-resource
Potential programming problems
n/a
Name shadowing and conflicts
local variable declaration hides another field
Deprecated and restricted API
n/a
Unnecessary code
Unnecessary else statement
Generic Types
Redundant type arguments
Annotations
n/a
Configure Javadoc warnings
Java -> Compiler -> Javadoc
Set everything that's "ignore" to "warning" and check all boxes.
Coding Standards
Only commit projects when the following things are the case:
Non-parent maven projects should not directly reference versions
where absolutely necessary, they should use variables for version info
All java errors and warnings should be removed.
Javadoc should be added and fleshed out
Imports should be properly organized and code is formatted
No "TODO" sections should remain in the code - create additional tickets if necessary
Service (JPA) calls should take parameters in general (except "add" and "update" calls).
Swagger annotations should be up to date and reflect current state of REST APIs
Exception handling "catch" clauses should always properly handle errors
Low-level code (e.g. services) should NEVER handle exceptions, they should show them
The right level at which to handle an error is any code that is capable of showing the user an error message.
System.out and System.err calls should be replaced by Logger.getLogger... calls
Remove any explicit package names, class names, file paths, database names, or other hard coded environment information that makes assumptions about what exists and where it exists. All of this should be data-driven (either from config files or from the database.
Git Best Practice
WCI project is configured with branches "master" and "develop" and "release-prep"
Use Maven jGitFlow to manage feature/hotfix/releases.
For any work, start a feature. When finished, finish the feature.
When fixing but
Git Branching Strategy: http://nvie.com/posts/a-successful-git-branching-model/
Training Videos
TBD