using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Ugly.Code { public class GeoCalc { public double GetCS(double value) { double val1; double calc; val1 = value; calc = Math.Pow(val1, 2) * Math.PI; return calc; } public double GetSS(double value) { double val1; double calc; val1 = value; calc = Math.Pow(val1, 2); return calc; } // Some other methods... } }
Warum ist der Code oben „Ugly“?
- Ungenutzte „using“ Zeilen
- Der Klassen-Name sagt nicht, was die Klasse enthält/anbietet/tut
- Die Methoden-Namen sagen nicht, was sie tun oder berechnen/zurückliefern
- Die Parameter-Namen sagen nicht, was sie enthalten
- Die lokalen Variable-Namen sagen nicht, was sie enthalten
- Lokale Variablen kaschieren die Parameter und dessen Werte, machen den Algorithmus schwer verständlich
- Unnötige Leerzeilen verlängern unnötig die Methode. Man muss mehr scrollen und mit den Augen rauf & runterschauen.
Die Klasse „GeoCalc“ von Oben, könnte man auch so schreiben:
using System; namespace Clean.Code { public class GeometryCalculator { public double CalculateCircleSurface(double radiusLength) { return radiusLength * radiusLength * Math.PI; } public double CalculateSquareSurface(double sideLength) { return sideLength * sideLength; } // Some other methods... } }