-
Notifications
You must be signed in to change notification settings - Fork 11
Dev Tools
Here are the development tools and setup we use at BriteSnow.
While eclipse is good enough, Intellij is better. Now, given BriteSnow minimalistic framework approach, we do not need the whole J2EE/JEE/Spring/.... tool set, and we just use IntelliJ community, and it is plenty enough (and best of all, free).
While IntelliJ is best at editing .java, and good for editing other files, sublime text 3 and ecosystem of plugins is ideal to edit other files types, such as .css, .less, .js, .html, .xml, and any other text based file format.
Here are some Sublime Text 3 plugins we use:
- Package Manager (a must have) https://packagecontrol.io/installation (search and install the plugins below with the package controller)
- SublimeLinter: Allows to install language syntax highlighter/checker
- SublimeLinter-jshint: This is very important, it add javascript syntax checker.
- Git: We usually like to use command line for git, but this is useful to do a "git diff current file"
- Less: nice syntax highlighter for lesscss
- Brite: Do a "git clone https://github.com/BriteSnow/sublime-brite Brite" in your "sublime text 3/Packages" and you can use "CMD + Option + B" and see some menu to create new brite.js components following the BriteSnow best practices
All our Java project are based on maven. It's not the current cool-kid option, but it is the one that will get the best mileage for the amount of work put in. At BriteSnow, we think that sometime the process need to be adapted to mature tools or runtime, rather than always trying to rewriting tools that works well.
In addition to Maven, we use nodejs/gulp to compile/process the web assets (handlebar templates, postcss) as well as some devops task like "gulp recreateDb" which use the "vdev" nodejs module.
Few notes:
- Maven calls nodejs/gulp to process the web files on "mvn clean package"
- During development, developers can type "gulp watch" which will watch each web asset folders and recompile live.
- When setup as in this projectmvc project, developers can do "gulp recreateDb" to recreate the database in a consistent way.
IMPORTANT: Make sure that your npm and node versions are greater than the version below.
Updating node
node -v
# Clear NPM's cache:
sudo npm cache clean -f
# Install a little helper called 'n'
sudo npm install -g n
# Update node to the latest stable
sudo n stable
as of Feb 14th 2016 node -v is v5.6.0
Updating npm
npm -v
sudo npm install npm -g
as of Feb 14th 2016 npm -v is 3.7.2
While open JDK might work, we standardize dev and prod on Oracle Java 8 SDK. Note that the OpenJDK and Oracle JDK differences are becoming smaller by the years.
This is now the defacto standard in development and for a good reason. Install Git, and learn the command line. Do not rely on GUI tools to understand and use Git.
There are few Github alternatives outhere, but GitHub has really become the defacto standard. If you are not using it, you need to have a good reason.
Github issue tracking simplicity, flexibility (with images and label), and tight code coupling makes it the ideal tool for high velocity development. There is no need to have other "Story-centric" tools, just have you issue tracking system as close to the code (and developer) as possible, and GitHub perfectly fit the bill.
Especially true on Mac, learning the command line for tools like git and postgres (psql), is never a wasted time. Learn them, use them, and complement them with some GUI when convenient, but do not substitute a GUI for a tool CLI.