Skip to content

Commit

Permalink
update practices and stacks. prep for release candidate.
Browse files Browse the repository at this point in the history
  • Loading branch information
focusaurus committed Mar 18, 2014
1 parent cf94137 commit b3ca2e4
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 8 deletions.
10 changes: 5 additions & 5 deletions app/pages/practices.jade
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@ block body
* Pragmatic Craftsmanship (see The Pragmatic Programmer, Code Complete)
* The #1 primary mandate of the software engineer is managing complexity
* Simple, small, consistent tools
* Small languages that foster consistency such as CoffeeScript or Python
* Small languages that foster consistency such as Python, jade
* One and preferably only one good way to do it
* Significant white space fosters consistency, so I use it
* Significant white space fosters consistency, so I am in favor of it
* Small core library plus good package management such as node.js with npm
* Big, complex, heterogeneous languages like Perl and Ruby aren't compatible with my general orientation (but I will code in Ruby when appropriate)
* Correctness and clarity are king
Expand Down Expand Up @@ -47,7 +47,8 @@ block body

##Programming Paradigm

* Multi-paradigm taking the best elements of procedural, functional, object oriented
* Multi-paradigm taking the best elements of functional, procedural, object oriented
* Functional programming is the dominant paradigm in my mind these days
* Pure functional with no side effects has great testability
* Use built-in data structures (lists, maps) for simple cases, but go to objects as soon as it is non-trivial
* Encapsulation and composition as opposed to complex inheritence hierarchy
Expand All @@ -60,7 +61,7 @@ block body
* Factories as opposed to fixtures
* Test only the first-party code written for this application
* A small handful of end to end system tests
* phantomjs for headless system test automation
* If running tests gets slow, it's probably time to split the project into smaller modules

##Process

Expand All @@ -83,6 +84,5 @@ block body
* Clear development, staging, production environments from day one
* Staging means production minus users
* Should be able to rebuild entire app infrastructure with code and docs in the main source code repository
* [Git Flow](http://nvie.com/posts/a-successful-git-branching-model/) branch management structure
* [Semantic Versioning](http://semver.org/)
* Modified [12-Factor](http://www.12factor.net/) principles
7 changes: 5 additions & 2 deletions app/pages/stacks.jade
Original file line number Diff line number Diff line change
Expand Up @@ -21,20 +21,23 @@ block body
* App Server: [Express](http://expressjs.com/)
* Views: [Jade](http://jade-lang.com/)
* CSS: [Stylus](http://learnboost.github.com/stylus/)
* Tests: [mocha](http://visionmedia.github.com/mocha/)
* Tests: [mocha](http://visionmedia.github.com/mocha/) and [karma](http://karma-runner.github.io/0.12/index.html)
* Control Flow: [async](https://github.com/caolan/async)
* Utility: [lodash](http://lodash.com/)
* Logging: [bunyan](https://www.npmjs.org/package/bunyan)
* Configuration: [config3](https://github.com/focusaurus/config3)

## Browser

* [angular.js](http://angularjs.org/)
* [backbone.js](http://documentcloud.github.com/backbone/), [lodash.js](https://github.com/lodash/lodash)
* [vanilla.js](http://vanilla-js.com/) when convenient. Otherwise [jQuery](http://jquery.org/).
* [browserify](http://browserify.org) for bundling JavaScript for the browser

## Utility

* Web Server: [nginx](http://nginx.org/)
* Monitoring: [monit](http://mmonit.com/monit/)
* Email: [exim](http://www.exim.org/)
* Startup: [Upstart](http://upstart.ubuntu.com/) scripts
* Startup: [Upstart](http://upstart.ubuntu.com/) scripts, and soon systemd
* Deployment: [Ansible](http://ansibleworks.com)
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"name": "peterlyons.com",
"description": "The Node/Express web app that powers the peterlyons.com web site",
"version": "5.0.6",
"version": "5.0.4",
"homepage": "http://peterlyons.com",
"repository": {
"type": "git",
Expand Down

0 comments on commit b3ca2e4

Please sign in to comment.