Forcing the calling code to handle the error right away is the correct approach, because it forces the programmer to think about the possibility of an error occurring. That's a key point. The fact that this clutters the code with error checking is unfortunate, but it is a small price to pay for correctness of operation.http://www.lighterra.com/papers/exceptionsharmful/
Wednesday, May 15, 2019
Force Proper Error Handling - via Checked Exceptions?
Friday, May 10, 2019
Providing Rest Clients Nearly as Bad as Publishing SOAP Contracts
Even still, many developers and architects have continued to emotionally cling to the SOAP bad old days, wherein the contracts between a server and a client are to be well-defined and strictly-enforced. Semantically-versioned contracts is a common pattern, where the contracts themselves are held in a separate package, and compiled for consumption by consumers. Another is the published “ServiceClient” which exposes all methods and contracts for the consuming clientA to call serviceB. Both are architecturally troubling, because once more these contracts or clients are nothing more than another form of tight-coupling.
Once again, nobody moves unless everybody does, just not in as rigid a format as SOAP provided.from: https://medium.com/it-dead-inside/isolating-your-microservices-through-loose-coupling-48b710e28de6
Overly Coupled Microservices
The rule of thumb goes that if a change to one microservice requires the redeployment of x number of other microservices in order for all of them to be successful, then the higher x is, the worse your architecture is.https://medium.com/it-dead-inside/domain-driven-design-in-the-era-of-icroservices-de2be01821ed
Thursday, May 2, 2019
Waterfall better than Agile without Business Support
For agile to be effective, stakeholders and product owners have to change their behaviors and provide a conducive environment for the delivery team. Else, they should just stick with traditional waterfall because doing agile without reaping the benefit is sheer stupidity.https://blog.gds-gov.tech/the-biggest-myth-of-agile-development-faster-cheaper-and-better-outcome-27c20a95978c
Wednesday, April 24, 2019
Everything is either a Service, Entity, or Value
First, remember that everything in your system is either a Service, Entity or Value. I didn’t make those names up: I learned them from Eric Evans in Domain-Driven Design.https://blog.thecodewhisperer.com/permalink/when-is-it-safe-to-introduce-test-doubles
Tuesday, April 23, 2019
Fourth generation languages
Another is that trying to make a language syntax English-like often demands that the ``English'' it speaks be bent seriously out of shape, so much so that the superficial resemblance to natural language is as confusing as a traditional syntax would have been. (You see this bad effect in a lot of so-called ``fourth generation'' and commercial database-query languages.)http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ar01s09.html
Sunday, April 21, 2019
Hardest thing in Software Engineering
The hardest part of the software task is arriving at a complete and consistent specification, and much of the essence of building a program is in fact the debugging of the specification.Brooks -- No Silver Bullet
Thursday, March 7, 2019
OCP
In other words, the OCP says that you can always add new code to an object, but should never change the design of old code.https://medium.com/@severinperez/maintainable-code-and-the-open-closed-principle-b088c737262
Monday, January 28, 2019
Microservices
A species would be a combination of roles [DCI?], instead of being characterized as an animal, which would not necessarily be the best description. At a larger scale, microservices are a very similar case [of composition instead of inheritance / ISP], they are pieces of a system separated by responsibilities, instead of being a great monolith.https://hackernoon.com/solid-principles-made-easy-67b1246bcdf
Procedural vs OO
In any complex system there are going to be times when we want to add new data types rather than new functions. For these cases objects and OO are most appropriate. On the other hand, there will also be times when we’ll want to add new functions as opposed to data types. In that case procedural code and data structures will be more appropriate.https://medium.com/mindorks/how-to-write-clean-code-lessons-learnt-from-the-clean-code-robert-c-martin-9ffc7aef870c
Subscribe to:
Posts (Atom)