[PYTHON] Guter und schlechter Code zum Vergleich mit Minikarten

Ich habe den guten Code (überarbeiteter oder umgeschriebener Code) und den schlechten Code (Originalcode) mit einer Minikarte verglichen.

Umgebung

Mini-Karte

Welcher ist besserer Code, A oder B, und welcher ist schlechter?

Wird in 1 Pixel pro Zeile angezeigt

minimap_1.png

Wird in 3 Pixel pro Zeile angezeigt

A minimap_3_old.png

B minimap_3_new.png

Vergleich

Gesamtanzahl der Zeichen

A ist der Eindruck, dass die Briefe als Ganzes dicht gepackt sind. Dies liegt daran, dass nur wenige Leerzeilen vorhanden sind und die Anzahl der Zeichen in einer Zeile groß ist.

B ist ein ordentlicher Eindruck, da es eine mäßige Anzahl von Leerzeilen enthält.

Linke Seite des Codes

A hat viele Leerzeichen auf der linken Seite und Unebenheiten sind auffällig. Dies liegt daran, dass die Verschachtelung von for und if tief ist und es viele Stellen gibt, an denen die Verarbeitung schlampig geschrieben wird.

B hat ein flaches Nest und die linke Seite ist insgesamt flach.

Rechte Seite des Codes

A hat viele Zeichen auf der rechten Seite, und Linien mit Zeichen bis zum rechten Ende fallen auf. Dies liegt daran, dass es viele Stellen gibt, an denen Aufrufe von Funktionen mit vielen Argumenten ohne Zeilenumbrüche in eine Zeile geschrieben werden.

In B werden lange Linien ordnungsgemäß unterbrochen, sodass auf der rechten Seite Leerzeichen erkennbar sind.

Anzahl der Zeichenfolgenliterale

Die Farbe von ■■■ </ font> repräsentiert ein Zeichenfolgenliteral, das in A sehr häufig vorkommt. Dies liegt daran, dass dict ständig zum Speichern von Daten verwendet wird.

B verwendet Klassen zum Speichern von Daten, sodass weniger Zeichenfolgenliterale vorhanden sind.

Was ich fand

――Guter Code ist auch dann schön, wenn Sie sich die Minikarte ansehen

  • Schlechter Code sickert schmutzig, selbst wenn Sie sich die Minikarte ansehen

Recommended Posts

Guter und schlechter Code zum Vergleich mit Minikarten
Zeichencode
Schreiben Sie Python-ähnlichen Code
FFT-Pseudocode
VS-Code-Einstellungen
Python-Zeichencode
[Python] Code, der Algorithmen kennt
QR-Code-Anzeige
Geokodierung der Postleitzahl
PyCharm-Code-Interpolation
Guter und schlechter Code zum Vergleich mit Minikarten
Verfahren zum Anhängen und Debuggen von VS-Code an Jupyter Lab auf einem Remote-Server
Python 3.6 unter Windows ... und zu Xamarin.
Code, der zufällig eine Punktzahl generiert
Holz kratzen und essen - ich möchte ein gutes Restaurant finden! ~ (Arbeit)
Eine Geschichte, die es aufgegeben hat, JavaScripthon unter Windows auszuführen.
Vorgehensweise zum Erstellen einer virtuellen Python-Umgebung mit VS-Code unter Windows
[Python] Erstellen Sie einen Linebot, um den Namen und das Alter auf das Bild zu schreiben
Versuchen Sie, Python-Code zu schreiben, um Go-Code zu generieren. - Versuchen Sie, JSON-to-Go usw. zu portieren
Ich möchte Python-Code auf VS-Code nach meinen Wünschen formatieren und überprüfen
Erstellen Sie Linux in einer Windows-Umgebung. Schritte zum Installieren und Migrieren von Laradock
So teilen und speichern Sie einen DataFrame
Qiita (1) Wie schreibe ich einen Codenamen?
Ein Memo mit Python2.7 und Python3 in CentOS
Führen Sie Python-Code in der A2019 Community Edition aus
So testen Sie auf einer von Django authentifizierten Seite
Eine Geschichte über einen Versuch, uwsgi auf einer fehlgeschlagenen EC2-Instanz zu installieren
Ich möchte eine Datei auf tkinter ablegen und ihren Pfad abrufen [Tkinter DnD2]
So führen Sie eine Django-Anwendung auf einem Docker-Container aus (Entwicklungs- und Produktionsumgebung)
Erstellen Sie eine PYNQ-Umgebung auf Ultra96 V2 und melden Sie sich bei Jupyter Notebook an
Stellen Sie unter Linux (Ubuntu) das Trackpad ein und stellen Sie die Funktion auf Drei-Finger-Wischen ein
Tool zum Einfügen des Ländernamens und des Ländercodes in einen Teil der IP-Adresse
So codieren Sie eine Drohne mithilfe der Bilderkennung
Gibt es einen guten Beispielcode für Nosetests?
Versuchen Sie, QR-Code mit Raspberry Pi zu verwenden
Aktivieren Sie die Code-Vervollständigung auf boto3 mit boto3-Stubs
Machen Sie einen Chat-Bot und üben Sie, beliebt zu sein.
Versuchen Sie, einen neuen Befehl unter Linux zu erstellen
Wie man mit 2017 Windows ein anständiges Leben führt
Liste des zu verschiebenden und zu merkenden Python-Codes
[Schienen] So zeigen Sie mehrere Markierungen auf Google Map an und zeigen beim Klicken eine Sprechblase an
So erstellen Sie eine schöne Python-Umgebung auf einem neuen Mac und installieren Jupter Notebook
So stellen Sie pyenv unter Amazon Linux und Ubuntu ein, um eine Python 3.6.0-Umgebung zu erstellen
Versuchen Sie, Schedule auszuführen, um Instanzen in AWS Lambda (Python) zu starten und zu stoppen.
Von der Einführung von Flask unter CentOS bis zum Service unter Nginx und uWSGI
Memo Ein Anfänger hat versucht, eine Java-Umgebung zu erstellen und unter Ubuntu 18.04.2 LTS ins Japanische zu übersetzen.
So erstellen Sie eine virtuelle Ausführungsumgebung für Python mit Visual Studio Code und pipenv auf einem Windows-Computer (auch Jupyter-Notebook)