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.
Dans la section suivante, nous examinerons chaque élément.
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.
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.
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.
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.
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.)
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.
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.
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.
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).
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)
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