[Python] Ce qu'un programmeur inexpérimenté a fait avant de créer un outil

introduction

Je suis actuellement dans ma deuxième année d'ingénieur, mais dans ma première année J'ai en fait créé un outil à partir de la requête "Je souhaite qu'il y ait un tel outil". L'outil que j'ai créé est ici. Puisqu'il est le même qu'à l'époque, je pense qu'il y a de la place pour des défauts inconnus et du refactoring. Pour les personnes inexpérimentées qui envisagent de créer des livrables à partir de maintenant Comment j'ai fabriqué l'outil alors que j'étais inexpérimenté à l'époque J'ai pensé le laisser dans cet article pour vous le faire savoir. J'espère que cela aidera les personnes inexpérimentées sur la voie du développement.

Le processus de fabrication d'un outil

Dans la section suivante, nous examinerons chaque élément.

Marquer un but

Lors de la création d'un outil (produit livrable), décidez "quel est l'objectif". C'est une bonne idée de fixer une date limite.

Essayez de créer un csv

Je voulais savoir quel type de csv sera produit lorsque l'outil sera terminé, donc Tout d'abord, j'ai créé manuellement csv. En faisant cela, j'ai compris ce qui suit.

Créer et vérifier WBS

Je ne pense pas que ce soit nécessaire à moins que vous n'ayez une période fixe pour créer l'outil. Cependant, en ce qui concerne «au travail», il n'y a presque pas d'emplois pour lesquels la période (date de livraison) n'est pas fixée. Vous pensez peut-être que cela deviendra.

Sélection du langage de programmation à utiliser

Certains langages de programmation conviennent pour créer quelque chose. Cette fois, j'ai décidé d'utiliser Python, qui était peu susceptible de faire une différence et avait une qualification.

Déterminer comment utiliser l'outil

Tous les utilisateurs qui utilisent réellement l'outil distribué ne disposent pas d'un environnement dans lequel cet outil peut être utilisé. Vous devez spécifier comment préparer l'environnement pour qu'il puisse être utilisé par cet utilisateur, ou le rendre disponible sans préparer l'environnement. Au moment du développement, nous visions le premier. (Il a ensuite été pris en charge afin de pouvoir être utilisé même si l'environnement n'est pas requis.)

Détermination de l'algorithme

Ce que j'ai trouvé lorsque j'ai créé csv en tant qu'essai est abandonné tel quel en tant qu'algorithme de l'outil. Par exemple, essayez de créer un CSV basé sur les informations suivantes.

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
~(Omis)~
set policy id 3 from "Trust" to "Untrust" "192.168.1.103/32" "200.200.200.200/32" "SNMP" permit log
~(Omis)~

Voici ce que j'ai découvert:

Nous utiliserons cela comme un algorithme.

Préparation de l'environnement de programmation

Cette fois, j'ai préparé ce qui suit.

La préparation environnementale est décrite dans ici. En outre, cela changera en fonction de la langue, etc., donc je vais l'omettre. Le développement a commencé ici.

Revue WBS

Je pense qu'il y a des phases qui sont plus avancées que ce à quoi je m'attendais pendant le développement, ou des phases qui ne le sont pas. Vous pouvez écrire du code de test et le refactoriser dans la phase où vous en avez les moyens D'autre part, que faire lorsqu'une phase qui ne l'est pas sort À cette époque, j'ai senti qu'il devenait important pour moi de travailler dans le futur.

Contrôle de fonctionnement

Assurez-vous que ce que vous avez implémenté selon l'algorithme fonctionne comme prévu. Si cela fonctionne comme prévu, sinon ... corrigez-le. Ajout d'algorithmes pour traiter les exceptions qui n'ont pas fonctionné comme prévu lors de la vérification des opérations Il peut être nécessaire de modifier les algorithmes existants. Si vous ne pouvez pas le réparer correctement ici, vous pouvez voir l'enfer (voir ci-dessous).

Refactoring du code de test

En corrigeant la pièce qui n'a pas fonctionné comme prévu lors du contrôle de fonctionnement, la pièce qui fonctionnait jusqu'à Je pense que cela peut ne pas fonctionner correctement (dégradation). Je l'ai dégraissé tel quel ... Si vous avez du code de test, vous le remarquerez immédiatement lors du dégraissage, Au pire, vous remarquerez si vous déboguez avec print, etc. L'échelle du produit que j'essaie de fabriquer car cela ne vaut peut-être pas la peine d'écrire le code de test Je pense qu'il vaut mieux décider s'il faut écrire en fonction de la fréquence d'entretien. (Sauf si vous souhaitez écrire un code de test pour la première fois)

En ce qui concerne le refactoring, je l'ai fait en me basant sur Lire le code lisible. C'était très utile pour nommer les noms de fonctions et en faire une fonction très polyvalente. J'ai également utilisé flake8 et radon.

Q&A

Q. N'étudiez-vous pas le langage de programmation à l'avance? R. Je n'ai rien étudié au-dessus de la qualification à l'avance. J'ai appris en l'utilisant quand j'en avais besoin. Exemple: Je veux sortir csv avec python → Guguru → Sachez qu'il existe une bibliothèque appelée pandas → Apprenez à utiliser les pandas J'ai étudié avec un diplôme ≠ car il y a une possibilité que je puisse l'utiliser dans la pratique Je pense que le point de départ n'est pas si différent des gens sans instruction. (Bien qu'il soit préférable d'étudier)

finalement

Au début, vous pouvez réfléchir à ce qu'il faut faire, etc. Je pense qu'il est important de «l'essayer pour le moment». L'expérience de "créer un produit à partir de 0" à ce moment-là Je pense que c'est utile pour le travail de développement actuel. "Commençons ici, à partir de zéro ... Non, à partir de zéro."

Recommended Posts

[Python] Ce qu'un programmeur inexpérimenté a fait avant de créer un outil
[Python] Mémo de création de l'outil de grattage
Ce que j'ai fait avec les tableaux Python
Création d'outils de grattage
Problèmes lors de la création d'un outil de conversion csv-json avec python
Notez ce que vous avez fait pour utiliser Flycheck avec Python
Précautions lors de la création d'un générateur Python
[Python] Chapitre 03-01 graphiques de tortues (création d'une tortue)
Créer un fichier power simple avec Python
Quel type de langage de programmation est Python?
Qu'est-ce qu'un chien? Volume d'installation Python
Remarques sur la création d'outils de mise en forme de texte
[Python] Création d'un graphique de tirage des actions
Un outil pour saisir facilement du code Python
Essayez un tube de programmation fonctionnel en Python
J'ai créé un outil de mot de passe en Python.
Ce que j'ai fait pour économiser la mémoire Python
Créer un outil de génération de documents Python car il est difficile d'utiliser sphinx
J'ai essayé d'implémenter ce qui semble être un outil de snipper Windows avec Python