Simple software design

[draft] Clearly differentiate what you want to implement and what you consume. How? If you use an alien dependency, dont consume it directly Provide all dependencies in constructor (services and data) If possible, try hard to have only one constructor -> apparent instructions for others, in your implementation, you don’t have to check how it…More


[draft] Observable.Create allows you to design or plan to create an observable. It allows you to control and intervene the subscription phase of the lifecycle. You have (maybe too much) freedom about what you want to do once an observer subscribe your observable, but timing wise, that’s it. You have to do whatever you would…More

Why I don’t like init;

Ok. It’s not that I don’t like but wanted to have a short title.immutability but not explicit. It’s not clear what properties are expected to be initialized unless you go through each member of a class. If you used constructor it could have been guaranteed that state is initialised as it has to be. You…More

what distinguishes great software engineers?

I have come across this interesting paper. [what distinguishes great software engineers?] The result of the research lists the qualities of good software engineers grouped under three categories. the items in the list are compact. As a software developer, you will find the items very familiar. but having them listed and defined nicely can give…More