What if I had automated continuous integration type of environment in JavaScript world?
This question leads to a series of questions -
1. How will you automate the build process?
2. How do you know your code will work correctly?
3. How will you achieve the confidence that a newly introduced piece of code contains sufficient validation mechanisms to prove it works correctly?
4. How will you prevent unvalidated code to be included in the main line?
5. What will you do to ensure code is well documented?
6. How do we automate and reduce merge time and reduce wait time for a person working on same module in code?
The answers to these questions are in the tools currently available in the JS world today -
1. How will you automate the build process? -- Do you know a tool named 'Grunt' does exactly that.
2. How do I know that my code will work on different browser environments? -- Do you know an npm plugin named 'Karma' does exactly that.
3. How do you know your code will work correctly? -- Do you know an npm plugin named 'Jasmine, Mocha' does exactly that.
3. How will you achieve the confidence that a newly introduced piece of code contains sufficient validation mechanisms to prove it works correctly? -- Do you know an npm plugin named 'Istanbul' does exactly that.
4. How will you prevent unvalidated code to be included in the main line? -- Do you know an npm plugin named 'Threshold' does exactly that.
5. What will you do to ensure code is well documented? -- Do you know an npm plugin named 'Jshint, Jslint' does exactly that.
6. How do we automate and reduce merge time and reduce wait time for a person working on same module in code? -- Do you know a distributed repository named 'Git' does exactly that.
7. How will you automate the build process? -- Do you know an open build server named 'Bamboo, Jenkins' does exactly that.
In my next article I will be expanding on a sample application and detailing how to create such an environment.
No comments:
Post a Comment