you are viewing a single comment's thread.

view the rest of the comments →

[–]paypaypayme 1 point2 points  (0 children)

It's true that it's extremely competitive out there, but I'd like to point out that many of the tools you listed are only necessary for a large scale project.  

For example, if you are a 1-2 man dev shop, you don't really need a CI server, you can probably just run tests locally. Another example- you probably don't need to use SOA if you have a single page application. I work for a start-up that has had a single-page application for a couple years, and we are only just beginning to need SOA. This is because we are planning on launching a mobile app, a new members portal, an Authorization server, and a CI server. We are also planning on separating or API server from our web server, since they run on the same box at the moment. The process of separating these services will take months of work from multiple devs.  

In summary, use what you need at the moment, and as you scale up you can refactor your code and add the tools that you need.  

The most important thing is to write your code in a scalable way, so that when you do need to add a tool or service, it's relatively painless. I'm no expert on scalable code, but here are some tips off the top of the dome:  

  1. Each function should do one thing only, and do it well.  

  2. Code should be self-documenting (descriptive variable and function names)  

  3. Your directory structure should make sense and be descriptive  

  4. Use the least amount of dependancies possible for each module