Posts

Showing posts with the label DESIGN

Main characteristics of APIs

1. Understandable (give consideration to the entry points into their API) 2. Well-documented 3. Consistent (methods should have the form getXYZ() or xyz(), but not both forms) 4. Fit for purpose (Do only one thing, and do it right) 5. Restrained (API can happen almost too quickly, we are potentially committing to a lifetime of support) 6. Evolvable (view them in the wider context) Read API best practices here: https://dzone.com/refcardz/java-api-best-practices

Keep it simple

Software development often suffers from 2 aspects: bad code, and unnecessary complexity. The first point can be avoided by reviews, but how to avoid unnecessary complexity? Maybe by keeping the experience and philosophy of smart engineers in mind: "Keep it simple, stupid" aka KISS Kelly Johnson  - American Aircraft Engineer, known as an organizing genius. "The principle is best exemplified by the story of Johnson handing a team of design engineers a handful of tools, with the challenge that the jet aircraft they were designing must be repairable by an average mechanic in the field under combat conditions with only these tools. Hence, the "stupid" refers to the relationship between the way things break and the sophistication available to repair them." https://en.wikipedia.org/wiki/Kelly_Johnson_(engineer) "Simplicity is the ultimate sophistication" Leonardo da Vinci "Less is more" Mies Van Der Rohe - German-American archi...

SOLID - OO Design Guideline

S ingle responsibility principle O pen/closed principle L iskov substitution principle I nterface segregation principle D ependency inversion principle https://en.wikipedia.org/wiki/SOLID_%28object-oriented_design%29

Steps towards REST

Steps toward the glory of REST https://martinfowler.com/articles/richardsonMaturityModel.html

REST API Best Practices

"If they are used as POST mediumgameapi.com/getaccounts , it gives the feeling that our objective is contradicting the URL structure. Hence, it is assumed to be better to have it in nonverbal format. For example, if it is mediumgameapi.com/accounts, it can be preceded with any HTTP methods like ... " https://dzone.com/articles/designing-rest-api-best-practices-you-should-be-fo

Observer pattern with Spring

... This pattern can be implemented using an adhoc solution or using java.util.Observer/Observable classes. But my projects are always developed with Spring whether they are web or desktop applications. So in current post I will explain how I implement Observer pattern with Spring... http://www.lordofthejars.com/2011/10/una-terra-promessa-un-mondo-diverso.html

design patterns @wikipedia

http://en.wikipedia.org/wiki/Design_pattern_%28computer_science%29