PyCologne Treffen Mai 2020

Datum: 13.05.2020, 19:00 Uhr

Themenabend zu Tools für Codequalität und Codeanalyse: Reimar stellte pyreverse zum Plotten von UML-Diagrammen vor, dazu ein Überblick über die Python Code Quality Authority mit Flake8, Pylint und Bandit, Linting in Editoren, Codeformatter wie Black und Yapf sowie eine Diskussion über technische Schulden und ein Tool zur Prüfung der Python-Versionskompatibilität ungetesteter Projekte. Zum Abschluss ein kurzer Blick auf namedtuple und die Idee, künftige Sessions auch per Videocall zu öffnen.

pyreverse - Reimar

Reimar stellt kurz pyreverse vor (Plotten von UML-Diagrammen mittels graphviz).

Python Code Quality Authority

https://meta.pycqa.org/en/latest/introduction.html

flake8 + pylint

Flake8

http://flake8.pycqa.org

pyflakes + pep8

Pylint

https://docs.pylint.org/en/1.6.0/tutorial.html

Pedantischer als Flake8, weil es auch schlechten Codestil erkennt und Verbesserungen empfiehlt.

Bandit

https://pypi.org/project/bandit/

Security-orientierter statischer Analyzer für Python-Code.

Linting in VS Code/Editoren

Codeanalyse

Python Antipatterns: https://github.com/quantifiedcode

Autopep8

Codeformatter

Technische Schulden

Technical Depth / Code Smell. Links: ?

Softwareästhetik: https://www.innoq.com/de/articles/2016/09/consumer-driven-contracts/

"Why is there no goto? Design and History FAQ, Python 3.6.6rc1 documentation" [Internet, zitiert 26. Juni 2018]. Verfügbar unter: https://docs.python.org/3/faq/design.html#why-is-there-no-goto (Statement von Guido van Rossum zum Design von Python)

"I thought of objects being like biological cells and/or individual computers on a network, only able to communicate with messages." - Alan Kay, Erfinder von Smalltalk, zur Bedeutung von "objektorientierter Programmierung"

Technische Schulden. In: Wikipedia [Internet]. 2018 [zitiert 15. Januar 2019]. Verfügbar unter: https://de.wikipedia.org/w/index.php?title=Technische_Schulden&oldid=182035209

Guter Artikel (Spoiler: vom Hersteller eines Tools):

  1. Sharma T. Four Strategies for Managing Technical Debt [Internet]. Designite. 2018 [zitiert 15. Januar 2019]. Verfügbar unter: http://www.designite-tools.com/designite/four-strategies-for-managing-technical-debt/
  2. Quelle: www.designite-tools.com via Daniel Widerin

Python-Versionskompatibilität ohne Tests

Gibt es ein Tool, das ein Python-Projekt ohne Tests scannt und berichtet, mit welchen Python-Versionen es nicht kompatibel ist? In Linux-Distributionen gibt es das Problem, dass Projekte oft keine Tests mitliefern. Wir möchten sehen, für welche Python-Versionen ein Paket nicht läuft, wenn nichts angegeben ist.

namedtuple

from collections import namedtuple

Ausgabe direkt mit Beschreibung, direkt über Attribut adressierbar, und wie ein Tuple.

Ideen und Ankündigungen

Idee für Sessions nach Corona: Einbinden von Videosession in normale Session.

Nächste Woche ist das Django-Meetup, ebenfalls remote: https://www.meetup.com/de-DE/Koln-Django-Meetup-Gruppe/events/270173878/


Protokoll des Treffens, gemeinsam im Etherpad mitgeschrieben und aus dem Archiv der Jahre 2013 bis 2020 übernommen.