This is a broad topic, it could go from simple coding tricks to large scale system design.
Let’s start from programming tips using Object Oriented paradigm. Some basic concepts like encapsulation, polymorphic behavior,…, are the normative. The following topics talks about how to organize tour source code, to avoid repetitions and code smells.
- S.O.L.I.D. Details and Source Code
- G.R.A.S.P. Details
Design Patterns are common solutions to common problems. Some people are against it. However I think they are handy, special to recognize/share code developed by other programmers.
This design architectural pattern is very common, used on apple related apps, Asp.net, Qt Apps (“well sort of …”)
A tailored version of MVC and Model View Presenter (MVP) for Windows Presentation Application (WPF)
Well most of time we are doing some refactor with the aim to improve the source code to avoid the problematic technical debt.
Next link describe some techniques that we could use:
S.O.L.I.D. PrinciplesOfOod (Uncle Bob) G.R.A.S.P. (wikipedia) G.R.A.S.P.