- What’s the difference between operational and programmer errors?
Operational errors are problems that take place during runtime in a program where the code has been written correctly, but there are some other issues preventing it running as intended. Examples of operational errors might include failure to connect to database, invalid user request or input, or failure to resolve hostname.
Programmer errors, on the other hand are bugs in code that need to be found and fixed. A common example would be a syntax error or a variable not being defined.
- What is ‘event-driven’ programming?
Event driven programming is a programming paradigm whereby key events and switches in the program as defined and activated by user actions/behavior such as key presses, mouse clicks, scrolls, etc. A videogame or web app game, where everything is all about the player controlling the game, would strike me as amenable to the event based programming paradigm.
- What are ‘worker processes’?
Worker processes are essentially API’s that provide the runtime environment for website and applications configured in IIS (Internet Information Services) which is a general purpose and versatile server from Microsoft. Worker processes help make traffic more efficient by being assigned to and fielding specific request tasks.
- Describe how Node.js can be made more scalable.
Node can be made more scalable by running a different Node process on each CPU core of the production servers, and performing “load balancing”, or balancing requests evenly across all servers. Load balancing take place through “cloning” whereby a big application is cloned into multiple instances but each instance only handles part of the request load. Node even has a built in module called
cluster to help with implementing this cloning strategy, even on a single server.
Other key Node scalability practices are “decomposing”, which refers to breaking a large app up into a loosely associated by tightly cohesive smaller components grouped according to a key functionality areas, and “splitting”, similar to decomposing only by splitting the application into multiple instances with each instance handling a different part of the application’s database.
- Explain global installation of dependencies.
Global installation of dependencies is distinct from local installation. Local installation of dependencies, which takes place with the command
npm install , saves the dependencies in the
node_modules folder in you project directory locally.
Global installation, on the other hand, is performed with the command
npm install -g , and saves the dependencies in a specified place in your system, depending on your computer setup.
- Explain RESTful Web Service.
A RESTful web service is one that adheres to the principles of REST or Representational State Transfer , a fundamental paradigm of software architecture whereby each resource in an application can be accessed by a unique resource identifier, or URI. Most web apps today are based on RESTful APIs.