Skip to content

Instantly share code, notes, and snippets.

@LIttleAncientForestKami
Created June 8, 2018 08:49
Show Gist options
  • Save LIttleAncientForestKami/62ec63967c8a8140a08db8aee316cbe4 to your computer and use it in GitHub Desktop.
Save LIttleAncientForestKami/62ec63967c8a8140a08db8aee316cbe4 to your computer and use it in GitHub Desktop.
recenzowanie - lista

Migawki

  1. opisy - "dlaczego", nie "co" czy "jak"?
  2. Czy migawki się powtarzają? - git log --format="%B" | sort | uniq -c | head
  3. Czy ich opisy są użyteczne?
  4. długość opisów? - git log --format="%B" > l; awk '{ print length($0); }' l | sort -n, do CSV i rób wykres i licz średnią
  5. spójność opisów (te same nazwy, styl)? - git log --format="%B" | sort
  6. czas teraźniejszy w nich? - j.w.
  7. opisy odwołują się do czegoś (kwitów, konkretnych poprawek, recek, komciów, wymagań)?
  8. % rozległych?
  9. Ile % migawek ma pliki znikąd?
  10. wykorzystanie GitHuba (zamknij #1)?
  11. ile jest migawek a ile scaleń? git shortlog -sn [--no-merges]
  12. ile migawek z ciałem (coś poza tematem)? - git log --format="%b" | sort | grep . | wc -l - do also remove last part and see if multiline body won't change the results

Sposób pracy

  • dobre i złe strony i na ile ułatwiły bądź utrudniły one dowiezienie projektu
  • inne: spłaszczanie?
  • czy kiedykolwiek były wrzuty na majstra bezpośrednio
  • praca cały czas na innej gałęzi (develop, robocza), wrzuty na majstra po reckach
  • brak dedykowanych gałęzi dla drobiazgów, kwitów, itp.
  • święty majster
  • brak TDD
  • brak testów przed
  • okazjonalne testy po
  • okazjonalny kroczący szkielet
  • jakiekolwiek znaki, że realizujemy kamienie milowe, dodajemy funkcje wg planu

Podsumowując: napędzanie się czymkolwiek na plus, rozbicie rodzajów pracy na plus.

Jakość

  • Recenzje kodu co mówią?

Linter Javy:

javac -help -X | grep Xlint. Ustaw dla Mavena.

                <configuration>
                    <source>1.8</source>
                    <target>1.8</target>
                    <compilerArgument>-Xlint:all</compilerArgument>
                    <showWarnings>true</showWarnings>
                    <showDeprecation>true</showDeprecation>
                </configuration>

Sonar via Maven

Wymaga Mavena 3 i samego Sonara: https://docs.sonarqube.org/display/SCAN/Analyzing+with+SonarQube+Scanner+for+Maven

Polecenia:

/opt/sonarqube-5.6.1/bin/linux-x86-64/sonar.sh start
mvn sonar:sonar
firefox localhost:9000

Jako usługa na GNU/Linuxie: https://docs.sonarqube.org/display/SONAR/Running+SonarQube+as+a+Service+on+Linux

pokrycie testy SOLID

=== Święty majster?

czystyMajster.sh

Dobór kolekcji?

grep java.util **/*.java jakie kolekcje i gdzie i na co? parametry kolekcji? Ile miejsca zużywamy? klasa Collections użyta?

inne: cyklo? inne: złożoność obliczeniowa?

=== Numerki

kodNr.sh

Testowalność

Testability rules Coverage

Obiektowość

  • karty CRC

  • koncepty == obiekty?

  • pakiety pakiety: tech? pakiety: nazwy? pakiety: liczność? mapa pakietów? rozkład liczności?

  • API public vs pakietowe? interfejsy - ile, jakie? get/set? kalistenika? polimorfizm? wzorce obiektowe?

zawężenie

Git: kwadrant Feathersa pakiety: największe pakiety: mapa pokrycie: najwięcej testów pokrycie: części bez testów kod: sprawdzenie wyniku Sonar: dług techniczny Sonar: mapa złożoności cyklo

Usprawnienia

inne: haki? inne: .github?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment