Alex) schreef op zaterdag 10 mei 2014 @ 20:45:
Ik hou meestal de volgende indeling aan:
- fields
- constructors
- properties
- events, delegates en andere zooi
- public methods
- internal methods
- protected methods
- private methods
En binnen die groepen alles alfabetisch gesorteerd. Het groeperen en sorteren laat ik echter doen door CodeMaid

Dat is wel erg OCD

Scheid je ook de fields die bij de properties horen of houd je die wel bij elkaar. Een van de meest vervelende dingen van R# vind ik namelijk dat hij de fields naar boven gooit.
Zelf probeer ik ook de flow van de code een beetje bij elkaar te houden. Meestal doe ik het zo:
- fields / consts
- constructors
- properties
- evt incl hun fields
- publieke functie 1
- specifieke private functies voor deze public (op volgorde van call)
- publieke functie 2
- specifieke private functies voor deze public (op volgorde van call)
- generieke helpers
Waarbij regelmatig de helpers naar een aparte class worden gezet (SRP) welke ontsloten wordt via een property.
De publics staan vaak gegroepeerd op soort en staan over het algemeen een beetje op volgorde. Vaak hanteer ik:
- Initialize
- Get/search functies
- Save/update
- Delete
Deze werkwijze voorkomt over het algemeen een hoop gespring tussen de blokken code, je kunt redelijk goed van boven naar beneden werken
Meestal begint het overigens netjes en gestructureerd, maar uiteindelijk zie je (zeker in een team) dat zaken toch wat minder gestructureerd worden en properties soms halverwege terug te vinden zijn. Zeker wanneer men slimme properties maakt (bijv berekeningen) dan plaatst men ze vaak tussen de functies. Naarmate je IDE/plugins slimmer worden lijkt het minder belangrijk om goed te structureren, omdat je veel gebruik kunt maken van de goto functies in je tool. Desalniettemin vind ik nette, gestructureerde en logische code wel erg belangrijk