[Python] Was ein unerfahrener Programmierer vor dem Erstellen eines Tools getan hat

Einführung

Ich bin derzeit in meinem zweiten Jahr als Ingenieur, aber in meinem ersten Jahr Ich habe tatsächlich ein Tool aus der Anfrage "Ich wünschte, es gäbe ein solches Tool" erstellt. Das von mir erstellte Tool ist hier. Da es das gleiche ist wie damals, gibt es meiner Meinung nach Raum für unbekannte Mängel und Refactoring. Für unerfahrene Menschen, die von nun an daran denken, Leistungen zu erbringen Wie ich das Werkzeug gemacht habe, als ich noch unerfahren war Ich dachte, ich würde es in diesem Artikel belassen, um Sie wissen zu lassen. Ich hoffe, es wird den unerfahrenen Menschen auf dem Weg zur Entwicklung helfen.

Der Prozess der Herstellung eines Werkzeugs

Ab dem nächsten Abschnitt werden wir uns jeden Artikel ansehen.

Ein Tor schießen

Entscheiden Sie bei der Herstellung eines Werkzeugs (eines lieferbaren Produkts), "was das Ziel ist". Es ist eine gute Idee, eine Frist festzulegen.

Versuchen Sie, CSV zu erstellen

Ich wollte wissen, welche Art von CSV ausgegeben wird, wenn das Tool fertig ist Zuerst habe ich csv manuell erstellt. Auf diese Weise habe ich Folgendes verstanden.

PSP erstellen und überprüfen

Ich denke nicht, dass es notwendig ist, es sei denn, Sie haben einen festen Zeitraum für die Erstellung des Tools. Wenn es jedoch um "bei der Arbeit" geht, gibt es fast keine Jobs, für die der Zeitraum (Liefertermin) nicht festgelegt ist. Sie können denken, dass es werden wird.

Auswahl der zu verwendenden Programmiersprache

Einige Programmiersprachen eignen sich, um etwas zu machen. Dieses Mal entschied ich mich für Python, was wahrscheinlich keinen Unterschied machte und eine Qualifikation hatte.

Festlegen, wie das Tool verwendet werden soll

Nicht alle Benutzer, die das verteilte Tool tatsächlich verwenden, verfügen über eine Umgebung, in der dieses Tool verwendet werden kann. Sie müssen angeben, wie die Umgebung vorbereitet werden soll, damit sie von diesem Benutzer verwendet werden kann, oder sie verfügbar machen, ohne die Umgebung vorzubereiten. Zum Zeitpunkt der Entwicklung haben wir uns auf Ersteres konzentriert. (Es wurde später unterstützt, damit es auch dann verwendet werden kann, wenn die Umgebung nicht erforderlich ist.)

Algorithmusbestimmung

Was ich gefunden habe, als ich csv als Testversion erstellt habe, wird gelöscht, da es sich um einen Algorithmus des Tools handelt. Versuchen Sie beispielsweise, eine CSV basierend auf den folgenden Informationen zu erstellen.

sample.txt


set address "Trust" "192.168.1.103/32" 192.168.1.103 255.255.255.255
set address "Untrust" "200.200.200.200/32" 200.200.200.200 255.255.255.255
~(Weggelassen)~
set policy id 3 from "Trust" to "Untrust" "192.168.1.103/32" "200.200.200.200/32" "SNMP" permit log
~(Weggelassen)~

Folgendes habe ich herausgefunden:

Wir werden dies als Algorithmus verwenden.

Programmierumgebung vorbereiten

Diesmal habe ich folgendes vorbereitet.

Die Vorbereitung der Umwelt wird in [hier] beschrieben (https://github.com/ap-communications/NEEDLEWORK-ScenarioWriter). Außerdem wird es sich je nach Sprache usw. ändern, also werde ich es weglassen. Die Entwicklung hat hier begonnen.

PSP-Überprüfung

Ich denke, es gibt Phasen, die weiter fortgeschritten sind als ich erwartet hatte, oder Phasen, die es nicht sind. Sie können Testcode schreiben und ihn in der Phase umgestalten, in der Sie ihn sich leisten können. Auf der anderen Seite, was zu tun ist, wenn eine Phase herauskommt, die nicht so ist Um diese Zeit hatte ich das Gefühl, dass es für mich wichtig wurde, in Zukunft zu arbeiten.

Funktionsprüfung

Stellen Sie sicher, dass das, was Sie gemäß dem Algorithmus implementiert haben, wie erwartet funktioniert. Wenn es wie erwartet funktioniert, sonst ... beheben Sie es. Hinzufügen von Algorithmen zur Behandlung von Ausnahmen, die bei der Funktionsprüfung nicht wie erwartet funktionierten Möglicherweise müssen vorhandene Algorithmen geändert werden. Wenn Sie es hier nicht richtig reparieren können, sehen Sie möglicherweise die Hölle (siehe unten).

Refactoring des Testcodes

Durch Korrigieren des Teils, das bei der Funktionsprüfung nicht wie erwartet funktioniert hat, des Teils, das bisher funktioniert hat Ich denke, dass es möglicherweise nicht richtig funktioniert (Degration). Ich habe degradiert wie es ist ... Wenn Sie Testcode haben, werden Sie ihn sofort beim Entfetten bemerken. Im schlimmsten Fall werden Sie feststellen, wenn Sie mit Print usw. debuggen. Die Größe des Produkts, das ich herstellen möchte, weil es möglicherweise nicht die Zeit wert ist, den Testcode zu schreiben. Ich denke, es ist besser zu entscheiden, ob nach der Häufigkeit der Wartung geschrieben werden soll. (Es sei denn, Sie möchten zum ersten Mal einen Testcode schreiben)

In Bezug auf das Refactoring habe ich es basierend auf Read the readable code durchgeführt. Es war sehr hilfreich, um Funktionsnamen zu benennen und es zu einer äußerst vielseitigen Funktion zu machen. Ich habe auch flake8 und radon verwendet.

Q&A

Frage: Lernen Sie die Programmiersprache nicht im Voraus? A. Ich habe im Voraus nichts über der Qualifikation studiert. Ich habe es gelernt, als ich es brauchte. Beispiel: Ich möchte CSV mit Python ausgeben → Guguru → Wissen, dass es eine Bibliothek namens Pandas gibt → Erfahren Sie, wie man Pandas benutzt Ich habe mit einer Qualifikation studiert ≠ weil es eine Möglichkeit gibt, dass ich sie in der Praxis anwenden kann Ich denke, der Ausgangspunkt unterscheidet sich nicht so sehr von verlernten Menschen. (Obwohl es besser ist zu lernen)

Schließlich

Zuerst können Sie darüber nachdenken, was zu tun ist usw. Ich denke, es ist wichtig, "es vorerst zu versuchen". Die Erfahrung, "ein Produkt aus 0 zu erstellen" zu diesem Zeitpunkt Ich halte es für nützlich für die aktuelle Entwicklungsarbeit. "Fangen wir hier von vorne an ... Nein, von vorne."

Recommended Posts

[Python] Was ein unerfahrener Programmierer vor dem Erstellen eines Tools getan hat
[Python] Memo zum Erstellen von Scraping-Tools
Was ich mit Python-Arrays gemacht habe
Erstellung von Schabewerkzeugen
Probleme beim Erstellen eines CSV-JSON-Konvertierungstools mit Python
Beachten Sie, was Sie getan haben, um Flycheck mit Python zu verwenden
Vorsichtsmaßnahmen beim Erstellen eines Python-Generators
[Python] Kapitel 03-01 Schildkrötengrafiken (Erstellen einer Schildkröte)
Erstellen einer einfachen Power-Datei mit Python
Was für eine Programmiersprache ist Python?
Was ist ein Hund? Python-Installationsvolumen
Hinweise zum Erstellen von Textformatierungswerkzeugen
[Python] Erstellen eines Aktien-Drawdown-Diagramms
Ein Tool zur einfachen Eingabe von Python-Code
Probieren Sie eine funktionale Programmierpipe in Python aus
Ich habe ein Passwort-Tool in Python erstellt.
Was ich getan habe, um Python-Speicher zu speichern
Erstellen eines Python-Tools zur Dokumentgenerierung, da die Verwendung von Sphinx schwierig ist
Ich habe versucht, ein scheinbar Windows-Snipper-Tool mit Python zu implementieren