Java – konwencje pisania kodu – podsumowanie

Jakiś czas temu zachęcałem Was do zapoznania się z artykułem firmy Oracle na temat założeń, jak powinien wyglądać schludny kod w języku Java (tutaj post). Dziś przyszedł czas na małe podsumowanie i streszczenie najważniejszych reguł.

  1. Nazwnictwo plików
    • rozszerzenia: .java – dla plików ze źródłami oraz .class dla plików skompilowanych
  2. Zawartość plików – kolejność instrukcji
    • Komentarz
    • Definicja pakietu
    • Niezbędne importy klas i interfejsów
    • Komentarz Javadoc
    • Deklaracja i definicja klasy publicznej lub interfejsu
      • Zmienne statyczne
      • Zmienne instancji
      • Konstruktory
      • Metody
    • Deklaracje i definice klas niepublicznych
    /*
     * komentarz
     */
    package net.krzymar.java.convenvtion;
     
    import java.util.Date;
     
    /**
     * opis klasy lub interfejsu
     */
    public class SuperTool extends CommonTool {
        public static final Integer TYPE_SUPER = 2;
     
        public String name = "name";
     
        public SuperTool() {
            this.state = 1;
        }
     
        public void changeState() {
            this.state = 2;
        }
    }
     
    abstract class CommonTool {
        private int state;
        public void changeStateToConcrete() {
            this.state = 3;
        }
    }
  3. Wcięcia
    • Długość linii: komentarze javadoc do 70 znaków, linie kodu do 80 znaków
    • Zawijanie liniii:
      • za przecinkiem
        jakasMetoda(parametr1,
                parametr2);
      • przed operatorem
        int zmienna = 1 * (2 + 3)
                + 4;

        Należy starać się nie rozdzielać wyrażeń w nawiasach.

      • wielonijkowa deklaracja metod – każda kolejna linia definicji powinna być wcięta na 8 spacji
        jakasMetoda( Integer param1,
                String param2, Boolean param3,
                Long param4) {
            // ... zawartość metody
        }
      • wyrażenie warunkowe if – wicęcia na 8 spacji przy warunkach, 4 spacje dla zawartośći bloku po wyrażeniu if
            if(zmienna1==true
                    || zmienna2==false && zmienna3!=null) {
                someMethod("do it");
            }
  4. Komentarze
    • implementacyjny
      // komentarz

      lub

      /*
       * komentarz
       */
    • dokumentacyjny
      /**
       * komentarz z dokumentacją
       */
  5. Deklaracje
    • deklaracja każdej zmiennej w oddzielnej linii, czyli:
      long zmienna1;
      long zmienna2;

      zamiast:

      long zmienna1, zmienna2;

      a już na pewno nie używaj nigdy:

      long zmienna1, tablica[];
    • o ile to możliwe – inicalizacja zmiennych lokalnych w tej samej linii co deklaracja
    • deklaracja i inicjalizacja zmiennych na początku nowych bloków kodu
    • unikaj przysłaniania zmiennych – przysłanianie prowadzi do zmniejszenia czytelności kodu
  6. Wyrażenia
    • jedno wyrażenie w jednej linijce
      zmienna3++;
      zmienna1 = zmienna2 * zmienna3;

      zamiast

      zmienna3++; zmienna1 = zmienna2 * zmienna3;
  7. Puste linie
    • służą oddzieleniu linii kodu logicznie ze sobą powiązanych
    • 1 pusta linia
      • pomiędzy metodami
      • pomiędzy deklaracją zmiennych lokalnych w metodzie a pierwszymi wyrazeniami
        public int methodName() {
            int a=1;
            int b=2;
         
            a=a+b;
            return a;
        }
    • 2 puste linia
      • oddzielenie sekcji kodów w pliku źródłowym
      • oddzielenie definicji klas i interfejsów
  8. Spacje
    • po słowie kluczowym a przed nawiasem
      for (int i=0; i<10; i++) {
          //...
      }
    • operatory od operandów
      a += b;
      a = b * c;
    • rzutowania
      byte s = (byte) 12;

Dodaj komentarz