Reactive Extensions for .NET (slides)

Do you write event driven code in .NET? Reactive Extensions can make your job much easier. I have Included the slides that I previously prepared and presented. It compares events and RX.NET and shows how similar and different they are. Write below or reach me out if you have any questions. I would love to…More

OOP confusion

I think there have been misunderstandings about what OOP really is. Some want to think each and every object as the model of a real-world object. It takes you to very interesting paths. What an object really is a unit that has a lifecycle (appear and disappear from its universe) And this unit (instance) has…More

Intro to React

I have recorded a video for people having no idea about react and want to see it in action. This is the first part, there will be second part coming.More

Immutability in programming [draft]

One of the ways I like designing immutable classes is having no setter methods and only one constructor. So we know that an instance will have only one way of constructing. It documents its usage itself, it will only have one state.More

Composition vs. Aggregation

Composition Instance A keeps instance B as a member. B’s only purpose and capability is to serve for A. It’s irrelevant in any other context. B was probably created because A had become too complex and trying solve too any problems. Aggregation Instance A keeps instance B as a member again. But B could serve…More

Random things I noted

How I read books: https://denzhadanov.com/how-i-read-books-a-guide-on-how-to-learn-a943123a4aeb https://medium.com/@maartenvandoorn/the-complete-guide-to-effective-reading-fc1835937757 Mental model affects perception -> decisions -> actionsMore

Absurdities in Turkish that Turks aren’t aware of

Ok. Languages can’t have absurdities, each one of them has their unique evolutionary path, and they end up with something which is not designed by a single and reasonable mind. But you may unintentionally (and undeservedly) have such an expectation when you are learning a new language. I remember myself questioning interesting unexpected rules that…More

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

Observable.Create

[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