/
PyCharm: Entwicklungsumgebung für die
Programmiersprache Python
1 Einführung
[toc]
“Somewhere beyond right and wrong, there is a garden. I will meet you there.” (Jalal al-Din Muhammad Rumi)
- Wikipedia: PyCharm ist eine Integrierte Entwicklungsumgebung (IDE) der Firma JetBrains für die
Programmiersprache Python.
- Neben PyCharm will ich ein paar allgemeine Hinweise zur Programmier mit einstreuen.
- Dieser Vortrag ist 100% subjektiv (keine Allgemeingültigkeit).
1.1 Meine Editor/IDE Historie
[toc]
- 1994: Turbo Pascal.
- 1996: C mit vi unter Linux.
- 1997: Emacs (für C, Shell, Perl, ...) Informatik Studium. Teilweise auch Visual-Basic.
- 1998: Eigenen Editor geschrieben (mit C und ncurses) für Semesterarbeit beim Informatikstudium (HTW-Dresden)
- 2001: Emacs für Python
- 2004: Andere IDEs für Python ausprobiert. Aber Eclipse war zu träge. Bei Emacs geblieben.
- 2015: PyCharm für Python
Wie kam es zum Wechsel nach 18 Jahre Emacs?
- Neuer Kollege nutzte es.
- Leichtigkeit beeindruckte: Springen von der Verwendung einer Klasse zu der Definition, Verwendung von Klassen,
Refactoring, ...
- Der Wechsel war eine "Bauchentscheidung", den ich nicht mit Argumenten begründen kann.
1.2 PyCharm Lizenzen
[toc]
Zwei Versionen:
- Professional Edition: kommerziell - Testversion
- Community Edition: angeblich open source (Ich habe mich damit noch nicht beschäftigt)
1.3 Cross-Plattform
[toc]
1.4 Features
[toc]
- Code Completion
- Syntax and Error highlighting
- Code Navigation: Jump from class definition to usage
- Refactoring: Rename class/method in whole project (not just one file).
- Version Control: git, hg, svn, ...
- Interactive Debugger integriert (nutze ich eher selten).
Aufgrund der dynamischen Eigenschaften Pythons sind der Code-Analyse
Grenzen gesetzt. Aber es funktioniert erstaunlich gut.
Hinweis: Feeling vs Features. Ich bin zu PyCharm gewechselt weil es sich locker und leicht anfühlt. Obige Auflistung
spielt für mich eigentlich keine Rolle :-)
2 Live Demo
[toc]
LIVE-DEMO (strg-shift-a font edi..)
shift-shift set_last ...
inline Variable
strg-alt-shift l --> reformat code
Tippfehler --> rot
(shift-shift test_) Test ausführen mit strg-shift-f10
Refactor/Extract/Method move_mails_from_plus_folders_to_day_folders
new method: foo()
move to file (new_file)
Alles wieder zurück mit strg-z
Test: def test_pycharm_completition():
client.get_ klar: PyCharm erkennt hier die Klasse. Also Code Completion nicht schwierig
run=client.get_last_run()
run... --> Wow woher weiß PyCharm, dass es eine Instanz der Klasse LastRun ist?
(shift-shift) to delete_old_status_mail
strg-shift-a: Search Action or Setting
"hist sel" History for Selection - my favorite :-)
Alt-Shift cursor left/right Zu den Stellen im Code springen, die man bearbeitet hat.
strg-e Last File (Bsp hin- und her zwischen "richtiger Code" "Test-Code")
strg-o Select method to override (In Klasse)
Find Usage (rechte Maustaste)
grüner Balken an linken Seite: Änderungen (vor Commit). Diff Anzeigen.
strg-shift-f Fulltext search "future?" ein Treffer, ENTER, dort.
über "future?" now zu wow --> hellgrau unused variable :-)
Kommentar ... welche Farbe: bold oder hellgrau? --> Yes, Kommentare sind weniger wichtig.
Copy+Paste History per Diodon (nicht nur in PyCharm, sondern für den gesamten Desktop)
Integriertes Terminal
Debugger mit Introspection on "set value" und "eval Fenster"
3 Hinweise zu PyCharm
[toc]
- SSD-Festplatte sinnvoll. Sonst ggf träge.
- Die Firma JetBrains bietet die IDE Plattform IntelliJ
IDEA auch für andere Programmiersprachen an.
- Die kommerzielle Version bietet angelich noch viel mehr Features.
4 Arbeiten mit Editor im Allgemeinen
[toc]
- Ich habe mir das Kopieren mit strg-c angewöhnt. Als Linux-Nutzer hatte ich bisher mit
Markieren+Mittlerermaustaste gearbeitet. Im Linux-Terminal nutze ich nun auch strg-c zum Kopieren und per Konfig
strc-shift-c für "Programm unterbrechen".
- Allgemeiner Hinweis: Ja, programmieren macht Spaß. Datenstrukturen sind eher langweilig ... aber ....Programme
(also dein/mein Python-Code) sind wie rosa Schleifchen. Das Fundament sind die Daten: Ich nutze PostgreSQL mit dem
Django-ORM (inkl. robusten Schema-Migrations). Wenn der Input schwammig ist, nützt das beste Programm nichts.
- Auch im Alter von 40 Jahren kann man noch das Schreiben mit zehn Fingern lernen. Zum Bsp hier tipp10
- Wechsel zwischen Maus und Tastatur vermeiden (bzw Weg verkürzen) --> Thinkpad Tastatur mit Extra Grip dank Schmirgelpapier
- Direkt zu passenden Codezeile springen per Tastatur. Suchen mit dem Auge vermeiden (das spart Energie)
5 Software-Entwicklung im Allgemeinen
[toc]
Meine persönlichen Programming Guidelines
© 2014-2017 Thomas Güttler. Der Text darf nach belieben
kopiert und modifiziert werden, solange dieser Hinweis zum
Copyright und ein Links zu dem Original unter www.thomas-guettler.de
erhalten bleibt. Es wäre nett, wenn Sie mir Verbesserungsvorschläge
mitteilen:
guettli@thomas-guettler.de