Imaginez un outil avec lequel vous pouvez transformer n'importe quelle donnée en ... n'importe quelle donnée.
L'exemple le plus accessible est Images. Et si je veux obtenir une image d'une certaine taille et mettre quelque part un filigrane (également une certaine taille).
Et voici un exemple de ce à quoi cela
pourrait ressembler :

PS: Ceci est un article de synthèse, s'il est intéressant, je décrirai plus en détail les approches.
La motivation
Récemment, en novembre 2018, j'ai dû redimensionner une photo ...
Les services en ligne en raison de leurs «fonctionnalités» (publicité, interface étrange, etc.) ont rendu ce processus aussi pénible que possible.
Les outils standard de Windows 10 ne m'ont pas paru évidents. J'ai dû télécharger GIMP et à partir de là faire tout ce qui était nécessaire - pour redimensionner la photo.
À ma défense:
- Heure d'apparition du problème ~ 1 h (1 h)
- Il n'y avait pas d'ordinateur portable fonctionnel à portée de main
- Windows est à la maison uniquement pour les jeux. Parfois, j'écris du code avec un clavier Apple

Et puis un autre programmeur a décidé de créer un autre os ... Outil.
Prérequis
Cet outil doit être toutes les béquilles béquilles:
- Interface utilisateur simple
- API simple
- Organisation pratique des entités de projet
- Boutons et paramètres minimum
- La possibilité de mettre en œuvre leurs ... "standards"
- Open Source: backend et frontend
Et le plus important - tous ceux qui comprennent ce qu'ils veulent devraient pouvoir l'utiliser.
Plusieurs séquences possibles:- Image, image plus petite, filtre
- Télécharger le contenu URL, ne laisser que du contenu utile, Ne laisser que du texte
- Téléchargez une image, déterminez qu'il y a un objet dessus (correspondance de modèle)

Implémentation
Lire récemment sur Habré
Il faut grandir aux microservices ... et décidé de suivre. Il y a déjà eu quelques tentatives pour faire une telle chose à travers des structures «belles» (dans mon imagination): chaque fonction (comme
template_match ,
md5 ) est comme un microservice optimisé pour résoudre sa tâche. En conséquence, tout y arrivera, mais pas aujourd'hui :)
Total disponible:
- Frontend sans beaux fonds d'écran
- API backend
- Céleri (en développement local j'utilise Redis, et dans le test et prod RabbitMQ)
- Travailleurs backend
Je dirai tout de suite: je suis très médiocre avec Frontend, cependant, grâce à Stackoverflow et à la recherche Google.

Plus d'exemples
Tous les exemples peuvent être trouvés
ici , ils sont combinés en «projets».
L'un d'eux: extraire du texte d'une page HTML
Attention : le site fonctionne en lecture seule, mais le résultat vous sera retourné. Il ne pourra pas enregistrer vos modifications dans Project et Pipeline.
Une petite explication
Une liste de ce qui peut transformer les données:
iciCe que ce projet n'est pas:
- Entrepôt de données
- Mineur de Bitcoin
Le projet est très similaire à:
- Zapier
- Yandex Nirvana
- Parse.com (quelques années achetées par Facebook)