Week 5 — Hack-a-thon Week
This week we focused on working together as a team to create an API and manage a DB using Node. We were both preparing to work in teams (learning about agile method, working a scrum on Trello), and getting ready to build our final project apps. I was our team’s scrum master — our class was separated into two teams and competed to see who finished first. Our team had everything done minus working initialization of our DB and testing in two days (as a result of not being able to connect to our DB). Neither team, with the help of our instructor to boot, was able to get MySQL working, unfortunately.
How does Node.js handle child threads? | Node.js, in its essence, is a single thread process. It does not expose child threads and thread management methods to the developer. Technically, Node.js does spawn child threads for certain tasks such as asynchronous I/O, but these run behind the scenes and do not execute any application JavaScript code, nor block the main event loop. If threading support is desired in a Node.js application, there are tools available to enable it, such as the ChildProcess module.
How can you listen on port 80 with Node? |Redirect to another port: sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
What tools can be used to assure consistent style? | JSLint by Douglas Crockford, JSHint, ESLint, and JSCS.
List out the differences between AngularJS and NodeJS. |
AngularJS:
- MVC (Model-View-Controller) framework — Angular is integrated with a dynamic and easy-to-use MVC framework, which makes it easier for Angular developers to build a client-side web application.
- POJO (Plain-Old-JavaScript-Objects) model — If we consider functionality, the plain-old-javascript-objects are fully self-sufficient. Simply put, the POJO model offers well-organized objects and logics in a natural manner.
- MVW (Model-View-Whatever) architecture — On top MVC framework, the Angular is comprised of MVW architecture in which the view basically manipulates and remodels DOM to update data and behavior.
- Easy to use — Angular can easily decouple the DOM manipulation from your favorite app logic, making it an all-time easy to use JavaScript framework compared to others.
NodeJS:
- Open source — Node.js is free and completely open-source for anyone to download and use.
- Enhanced performance — The framework allows Node.js developers to perform non-blocking operations, which enhances the performance of a web application.
- Server development — Node.js has incredible in-built APIs using which developers can easily make different kinds of servers like DNS server, TCP server, HTTP server, and more.
- Unit testing — Node.js is blessed with a significant unit testing called Jasmine using which developers can easily test written code.
- Scalability — You can scale a Node.js application in both Vertical and Horizontal way, helping you improvise the performance.
What are the advantages of NodeJS? |
- Node.js offers an easy scalability
- It’s easy to learn
- Node.js is used as a single programming language
- Has the Benefit of fullstack JS
- Known for offering high performance
- Has the support of large and active community
- Has the advantage of caching
- Offers the freedom to develop apps
- Getting support for commonly used tools is easy
- Handles requests simultaneously
- Node.js is highly extensible
What is meant by JSON? | JSON stands for JavaScript Object Notation. JSON is a lightweight format for storing and transporting data. It is often used when data is sent from a server to a web page.
Discuss your understanding of Agile so far. | It’s a project management method used to work collaboratively in software development. Work is broken up and followed through different stages to better organize teams to work on things independently, simultaneous with others and collaborate their work together at other times.
How is scrum different from waterfall? |
Waterfall is the traditional approach to software development. It is based on the principles of sequence, strict hierarchy, and documentation.
- Each Waterfall project includes at least five sequential stages: the project’s planning, designing, performing, testing, and deploying. Usually, there are even more sequential stages in the Waterfall projects. None of them can begin before the previous stage is finished.
- It is also impossible to return to the previous stage in the Waterfall methodology. It means that if a fail occurred at the early stages of the Waterfall process and was identified only at the final stage (testing), the whole project should be made from scratch even after all the work was finished.
- Constant use of documentation is one more specific feature of the Waterfall method. The documents are required because the customer is not involved in the process of software development. The Waterfall developers should gather all the necessary information about the customer’s wishes before the work on a project starts and document it. All their further work is based on documents.
- The customer sees the product only after the work is finished. Hence, there is a great risk that the final product will not meet the customer’s requirements.
The Scrum methodology is based on different principles. It is flexible and does not require strict structure.
- The Scrum teams are independent. They have no project managers or other formal leaders. The only person who coordinates the work of a Scrum team is a ScrumMaster, but he is there as a coach rather than a leader.
- All the work of a Scrum team is subdivided into small charts that are called sprints.
- The intermediate product is shown to the Product Owner after each sprint so he can estimate it.
- The project’s priorities may change after every sprint.
What are the Three Amigos in Scrum? | The product owner (or BA), tester, and developer.
What is the “timeboxing” of a scrum process called? Describe, please. | Timeboxing is allotting a fixed, maximum unit of time for an activity. That unit of time is called a time box. The goal of timeboxing is to define and limit the amount of time dedicated to an activity. Scrum uses timeboxing for all of the Scrum events and as a tool for concretely defining open-ended or ambiguous tasks.
What are the roles of a scrum master and product owner? | While the scrum master and product owner work closely together, these roles are very different. A scrum master leads the agile development team and supports the product owner by relaying updates to relevant employees. Product owners manage the product backlog and ensure the company gains maximum value from the product.