Thursday, March 3, 2016

Microservices Ending up as a Distributed Monolith


If a service cannot interact within a system unless all these libraries are available, then Christensen calls this a distributed monolith. Essentially all you have done is spread a monolith over the network paying all the cost of a distributed system but losing a lot of the benefits of the microservices architecture. Some of the benefits lost include the characteristic of polyglot, meaning that you loose the possibility of services adopting the best technologies to solve the specific problem, and organizational and technical decoupling, allowing for a team to evolve technically without first having to convince a central authority.

The alternative for Christensen is contracts and protocols, services should hide all their implementation details only exposing data contracts and network protocols. 

Tuesday, February 23, 2016

JavaScript variable names you shouldn’t use

JavaScript has keywords and reserved words that can't be used as identifiers, but there's also a number of host objects that exist and can be overridden without any warning.
  • self – I see this a lot when setting a pointer to the this object, such as: var self = this;. Oftentimes, this is how developers are keeping a reference to an object for use inside of a closure. The problem is that self is already in use as another pointer to thewindow object. Don't redefine self as something other than what it is as it could confuse others looking at your code.
  • top – This one is most often used in combination with a variable named left to determine or set element coordinates. Once again, the problem is that top is a host object, it points to the outermost window object and is most useful when used from within a frame.
  • location – I'm surprised, but I have seen variables with this name. This is a host object containing information about the page that is currently loaded.

Source: https://www.nczonline.net/blog/2007/06/03/javascript-variable-names-you-shouldn-t-use/

Monday, February 8, 2016

Angular JS: Common Pitfalls using scopes

http://thenittygritty.co/angularjs-pitfalls-using-scopes

Any amount of changes must be applied by calling $apply to invoke the digest cycle. However, you don't have to if it's not required.
Sometimes it might not be suited to apply the digest cycle after every single change since it could massively decrease performance.