Skip to main content

Software-Systeme entwickeln sich über lange Zeiträume dynamisch weiter.

Der aktuelle Zustand weicht oft weit von der ursprünglich geplanten und erst recht von der heute wünschenswerten Architektur, Struktur und Qualität ab.

Refactoring und andere Korrekturen sind deshalb immer wieder notwendig um vorhandene Software zu verbessern und ein akzeptables Qualitätsniveau wieder herzustellen. itestra führt HealthChecks sowie Software Optimierungs- und -renovierungsprojekte bei zahlreichen Unternehmen durch und macht damit existierende Software besser.

Zeig uns dein Qualitätsverständnis und bewerte den im Folgenden beschriebenen Code.

Kannst du hier Anti-Patterns erkennen?

Wie viel LoC brauchst du, um eine perfekte Lösung des Problems zu implementieren?

public static int customUtilsFunction(final CharSequence cs, final char... sc) {
    if (ArrayUtils.isEmpty(sc)) {
        return -1;
    }
    final int csL = cs.length();
    final int scL = sc.length;
    outer:
    for (int i = 0; i < csL; i++) {
        final char ch = cs.charAt(i);
        for (int j = 0; j < scL; j++) {
            if (sc[j] == ch) {
                if (i < csL - 1 && j < scL - 1 && Character.isHighSurrogate(ch)) {
                    if (sc[j + 1] == cs.charAt(i + 1)) {
                        continue outer;
                    }
                } else {
                    continue outer;
                }
            }
        }
        return i;
    }
    return -1;
}

Meine Lösung

  • Dieses Feld dient zur Validierung und sollte nicht verändert werden.

Leave a Reply