Zum Thema Clean-Code:
Du solltest zuerst zwei Prinzipien kennen:
Single Responsibility Principle
Open-Close Principle
SRP bedeutet, dass jede Klasse nur einen Grunde haben sollte, verändert zu werden.
Bspw. eine Klasse, die eine Connection herstellt, eine Abfrage gegen eine Persistenzschicht fährt und dann noch die Daten aufarbeitet entspricht nicht dem SRP. Daher solltest Du darauf achten, dass Klassen nur eine Aufgabe haben. Dementsprechend sollte auch jede Methode / Funktion einer solchen Klasse nur eine Aufgabe wahrnehmen.
Das Open-Close Prinzip sagt nichts anderes, dass eine Klasse für Veränderungen geschlossen ist, für Erweiterungen aber offen.
Beispiele findet man zu Hauf im Netz. Einfach mal nach SOLID (jeder Buchstabe ein Prinzip) suchen. Ansonsten kann ich die Seite clean-code-developer empfehlen.