Il s'agit d'une histoire à propos d'un oncle SES résident client, qui est souvent dit être similaire à Wakusaku, qui a porté une ancienne application ACCESS VBA sur Python.
Ingénieur dans le domaine financier. J'ai tout fait, des petits EUC aux backbones et aux packages, mais peut-être que je fais des EUC depuis le plus longtemps près des utilisateurs. L'âge qui m'inquiète pour les vieux yeux.
J'ai commencé à travailler sur Python pour deux raisons: premièrement, l'employé client qui était assis à côté du site faisait Python normalement. Cette personne semble s'être spécialisée en informatique dans une université étrangère, et je la regardais de côté avec un sentiment "incroyable". En outre, d'autres employés non ingénieurs étudient également Python dans le cadre de leur formation, et ces personnes posent des questions. Alors, bien sûr, je ne pouvais pas répondre. C'est un peu comme remplir les douves autour de vous, ou vous pouvez sentir le flux du temps. Ensuite, allez dans PyCon et écoutez des histoires telles que Exemples d'utilisation de Python. fait.
Ensuite, je veux l'utiliser au travail.
Le développement et l'administrateur d'une certaine application sur le site du client seront des emplois modifiés. Je voulais donc le reconstruire à partir de zéro, alors j'ai demandé si je pouvais le suggérer.
L'application est une application ACCESS / VBA qui produit différents rapports (format Excel / CSV) et les envoie à divers endroits par e-mail, et fonctionne depuis plus de 10 ans. VBA a un mécanisme intégré comme un planificateur de travaux et est automatiquement exploité. Au fait, j'ai également aidé au fonctionnement de l'application.
Au début, j'ai envisagé des alternatives de type plateforme à ACCESS, mais aucune d'entre elles ne semblait convenir. Comme je l'ai mentionné plus tôt, l'entreprise dans laquelle je résidais avait encouragé les employés non techniques à utiliser Python, alors quand j'ai suggéré d'utiliser Python, j'ai été facilement accepté. La personne qui organise le site a fait remarquer que ".NET est la chose principale ici, mais je suis un peu inquiet quand d'autres personnes le maintiennent", mais "plutôt, si Python peut être utilisé, la gamme de la technologie peut être élargie. N'est-ce pas? " L'objectif était également de permettre à des personnes non techniques de le maintenir à l'avenir.
Tout d'abord, les parties concernées se sont réunies pour faire le point sur les fonctions, et certaines fonctions ont été supprimées ou transférées. Pour d'autres fonctions essentielles, nous avons décidé de moderniser chaque élément (Base de données / Formulaires / VBA) de la plateforme de la version actuelle, ACCESS.
Python 3.7
La dernière version au début du développement.
Les principales bibliothèques sont les suivantes. --OpenPyXl: utilisé pour le traitement de sortie des artefacts. --pandas: utilisé pour le traitement d'agrégation. Cela peut être plus pratique que l'agrégation avec SQL.
L'éditeur est VS Code. Je pensais que c'était mieux que le Visual Studio original.
** Un petit problème avec la gestion d'Excel **
Vous ne pouvez pas définir de mot de passe lors de l'enregistrement d'un fichier Excel à partir de Python. Bien sûr, Microsoft n'a pas publié les spécifications pour la partie sécurité, vous ne pouvez donc pas mettre de mots de passe sur des fichiers Excel à partir d'autres applications que de véritables applications. Comme il n'y a pas d'aide pour cela, j'ai appelé une instance Excel à partir de PowerShell et appliqué un mot de passe au fichier Excel cible et l'ai enregistré par écrasement. À propos, il est nécessaire de libérer explicitement chaque instance (feuille, classeur, application) lorsque l'instance Excel est terminée. Pourquoi?
#Release instance après avoir quitté Excel
$sheet, $wb,
Bien qu'Oracle ait été utilisé comme base de données principale sur le terrain, l'application (base de données) à migrer n'est pas référencée ou mise à jour par d'autres, et il n'y a pas besoin de s'inquiéter de l'échelle, j'ai donc choisi cela. La bibliothèque est incluse dans Python par défaut. Nécessaire et suffisant comme alternative à la base de données ACCESS (Jet DB).
PyQt est lourd, j'ai donc choisi le Web. J'ai donc décidé d'utiliser une bibliothèque JavaScript appelée DataTables parce que je pensais que ce serait bien d'avoir une interface utilisateur semblable à une feuille de calcul pour la référence des données. Beaucoup plus facile à utiliser et à visualiser que l'écran du tableau ACCESS. Il semble y avoir une fonction de mise à jour, mais je ne l'ai pas utilisée cette fois.
Cependant, j'ai eu un petit problème avec JavaScript. J'ai pensé qu'il serait difficile pour l'ingénieur front-end de lutter avec JavaScript lors de la conception.
** Serveur Web **
Puisqu'il n'y a aucun serveur de développement, le serveur Web emprunte IIS qui était dans le département.
Le pont entre SQLite et le Web (DataTables) est une API REST! J'étais enthousiaste, mais apparemment, je ne peux pas utiliser ASP en premier lieu. Les données de SQLite sont générées dans un fichier JSON à intervalles réguliers et renvoyées d'IIS au navigateur. C'est un peu difficile ici, mais il n'y a pas de problème en termes de convivialité. Je veux m'améliorer ici s'il me reste du temps (celui qui ne le fait jamais).
Python est amusant.
Vous pouvez simplement écrire ce que vous voulez faire. Je ne pense presque jamais que ce soit un problème. La plupart du temps, j'aurais aimé avoir une bibliothèque comme celle-ci.
La productivité est donc bonne.
Cette fois, au début du développement, j'avais presque compris les spécifications métier et fonctionnelles, et il n'y avait presque pas de processus de conception, donc je pense que c'est ainsi.
Par conséquent, l'expression «ne dérange pas» plutôt que «bonne productivité» peut être plus proche du sentiment réel.
Je veux continuer à utiliser Python si j'ai une chance!
Dans ce billet de blog Requests-HTML, "La bibliothèque elle-même ne fait pas beaucoup de travail, mais se concentre sur la combinaison des bibliothèques existantes." Après avoir lu une phrase, j'ai essayé d'utiliser au mieux la bibliothèque existante. Moins vous écrivez, plus le test est court. Cela peut ne pas être limité à Python.
Comparé à d'autres langages, Python a trop de bibliothèques et il est difficile de saisir même les principales. Je pense qu'il y a pas mal d'endroits où je n'ai pas pu utiliser la partie telle que "J'aimerais pouvoir utiliser cette bibliothèque ici" ou la bibliothèque elle-même. Surtout autour des dataclasses, vous ne pourrez peut-être pas bien les utiliser.
Après tout, l'endroit où le type de la variable ne peut pas être explicitement déclaré. J'ai utilisé des annotations de type pour vérifier avec mypy, mais j'ai toujours des exceptions liées au type. J'espère que la précision de mypy s'améliorera davantage à l'avenir. Jusque-là, rédigez un test unitaire. J'espère qu'un jour il y aura quelque chose comme TypePython comme TypeScript.
J'ai également utilisé SQLite ROUNDing numbers to get errors, mais j'ai essayé d'éviter les calculs numériques et les agrégations en utilisant autant que possible des pandas.
Et, Pourquoi Python est-il si lent? J'étais un peu inquiet pour les performances, mais c'est rarement un problème dans la zone EUC. Je pense que je vais le faire, et en fait cela n'avait pas vraiment d'importance cette fois (plutôt, mon style d'écriture avait un grand impact sur les performances de traitement).
La phase de mise en œuvre est terminée, et à ce moment-là, il était censé fonctionner en parallèle avec la version ACCESS et entrer dans la phase de vérification, mais il est bloqué à cause de ce désastre corona ... (J'écris donc cet article)
On dit souvent qu'il existe des tâches de routine mortelles dans le monde que vous souhaitez automatiser et des applications EUC qui n'ont personne à gérer.
Il y a des personnes et des non-ingénieurs qui s'intéressent à Python, et je pense que les non-ingénieurs augmenteront progressivement leur utilisation de Python à l'avenir.
En combinant ces derniers, le nombre d'emplois tels que l'inventaire des CUE existants, les économies de main-d'œuvre et la modernisation continuera d'augmenter, quoique à petite échelle, et il n'y aura aucune entreprise dans laquelle les ingénieurs soutiendront ces emplois. Je me demande si.
Recommended Posts