Mik is ezek a szokások:
- Ha valahol egy jól körülhatárolható értékhalmazt találok abból Enum-ot illetve Enum szerű osztályt csinálok.
- Ahol a típus egyszerű, de a jelentéskülönbség fontos ott azt vezetem be ("String firstname" helyett "Firstname firstname", ahol "Firstname extends String")
- Ha egy Map vagy Listába nem szigorúan azonos típusú és rokon értelmű objektumok kerülnek, akkor konkrét "holder" osztályra cserélem le.
Összességében jobban tipizálom a kódomat. A manapság divatos programok látszólag ellenkező irányba mennek, de nem így van. Egy dolog, hogy a típusos a nyelv és megint másik, hogy a típust mikor ellenőrzi. Python, Ruby aktívan használ típusokat, de mivel interpreteres nyelvek fordítási idő, mint olyan nem létezik. De Ha egy nyelv típusos, akkor használjuk bátran.
Ezen változtatások idegbajt okozhat másoknak, mert sokszor feleslegesnek tűnnek (különösen ha Firstname példámban), de ha ezzel egy hibával kevesebbet kell később kijavítani, akkor már megérte. Ráadásul odafigyelek, hogy nem csak létrehozom ezeket, hanem igyekszem következetesen ki is használni.