As I'm trying to get better at designing good software I'm wondering if there are out there good (as in well written) open source software with lot of code documentation that aims to explain details about why this or that design choice was made in the context of that specific problem set. I'm interested in OOP and I don't really care much about the language (php / java / c# are preferred tho :))
Example:
Problem: X
Possible way to handle this problem: A, B, C.
We choose B because... (technical details about the implementation, pros and cons, code comments etc)