hello
🔙Retourne en arrière

Hello World

dav 17/08/2023 public
Présentation du Framework

Et cetera est un dispositif d'édition applicative en Php.

Présentation

Il est construit selon une mode qui n'est pas admissible en prog moderne, et dont les avantages sont sa simplicité, sa rapidité, et l'espace qu'il laisse à de nouvelles idées. Les petites chaloupes prennent les virages plus vite que les grands paquebots.

De nombreux aphorismes viennent à l'esprit en concevant ce genre de logiciel, qui est une synthèse de très gros travaux faits en amont. L'idée principale est de faire le maximum avec le minimum de code.

L'économie maximale de nombre de calculs et de poids du code combinés permettent d'avoir un « produit » dont les temps d'exécution peuvent être dix-mille fois supérieurs à celui de logiciels ayant exactement les mêmes compétences. Et donc, il s'agit aussi de dix-mille fois moins d'énergie électrique dépensée - ou d'électrons. Ce n'est quand même pas rien, par rapport à ses « inconvénients ».

Pour obtenir une simplification extrême des processus, la règle est de déplacer le maximum d'intelligence dans la conception au niveau des structures. Les structures ne pèsent rien et ne sont pas écrites sous forme de code. Habituellement elles sont dédiées à procéder à une sorte de classification typologique des événements qui constituent la moindre action sur le logiciel. Ici, en plus, elles renferment la logique du fonctionnement, un motif répétitif, et une grande somme de principes plus ou moins pris en compte selon les circonstances.

Ce n'est pas possible d'énumérer tout ce que renferment ces quelques lignes de code, bien qu'on s'y essaye dans nos moments philosophiques. Mais en terme général, dans les grandes lignes, l'ensemble du logiciel fonctionne en Ajax (réaction sur la page sans avoir à la recharger), et il dispose d'une librairie qui est le Kernel, sur laquelle repose le Core du logiciel (les parties communes), auquel s'attachent le dossier des applications.

Le Kernel est pensé pour n'importe quel projet web en terme général et de façon intemporelle. Ce sont des choses qui ne peuvent actuellement exister que sous cette forme et qui doivent nécessairement exister. Les Kernel est très intriqué, n'importe quelle compétence additionnelle irait s'infiltrer dans celles existantes. On ne peut pas ajouter ou enlever ce qu'on veut dans le Kernel.

Le Core contient des compétences communes et classiques, la gestion des blocs (une spécificité du logiciel local), le boot, qui amène la clique de paramètres, construit les css, produit la structure html, et propose le système des connecteurs (mais t'inquiète qu'on va y revenir).

Les Apps contiennent finalement les deux seules choses que font ce site, présenter des articles et des commentaires. À la fin, quand il s'agit de faire un tel logiciel, en connaissant ce qui précède, il ne faut pas plus d'une heure pour le faire.

Fonctionnement

Les trucs notables dans Etc sont :

- Son usage de Json

- Sa façon de faire des requêtes Sql

- Son moteur de templates

- Son moteur Ajax (gestion en ligne, pas de bouton « save » etc)

- Les connecteurs.

Json

Json est partout !

Les dispositifs qui reposent sur Json sont :

- Les paramétrages globaux et locaux : chemins d'accès, choix techniques et stratégiques

- Les définitions de bases de données : les noms des tables, les colonnes et leurs types sont définis de façon logicielle. Ils sont modifiés si les définitions sont modifiées. Cela permet une plus grande sensation de liberté pendant qu'on compose un logiciel, où les nouvelles idées s'ajoutent aux nouvelles contraintes.

- Les menus : on peut laisser à l'utilisateur le soin de confectionner ses menus.

- La verbosité : l'ensemble des messages système et du vocabulaire employé par le logiciel en réponse aux actions, est paramétrable, et d'office multilingue.

- Les Css : ils sont entièrement régis en Json, et construits d'après ces définitions. Cela va beaucoup plus vite, et on peut confier cette gestion à une interface.

- Le Html : lui aussi est géré en Json. Eh oui !

- Les connecteurs : c'est le système de mise en forme laissé au public.

Sql

Le système de requêtes Sql est fait de sorte qu'on n'ait qu'à écrire une ligne de code pour obtenir les données souhaitées. Pour cela il y a peu de choses à savoir, 1) que les requêtes s'écrivent sous forme de tableaux à protocoles (pour différencier les opérateurs), et 2) que les données retournées doivent prendre la forme d'un type de tableau, parmi l'énorme paquet de types de tableaux qui existent, et qui sont tous énumérés selon un autre protocole.

View

Il est hors de question que vous mettiez le moindre Html dans le code. C'est interdit, c'est mal. On a des machines pour ça. Les définitions de construction des balises est certes un peu rude, mais hyper-généralisable. Les templates peuvent s'imbriquer les uns aux autres grâce à un constructeur topologique (comme les connecteurs).

bj()

bj() est le nom de la fonction la plus utilisée partout dans le logiciel, autant qu'elle soit courte à écrire, pour « bouton ajax ».

Elle relève d'un protocole Ajax qui décide de la cible du résulte, de l'opération sélectionnées, et des paramètres qui y sont envoyés, de façon statique ou dynamique (par l'utilisateur). Un cinquième champ sert vaguement à créer des opérations secondaires « au rebond ».

Le moteur Ajax peut laisser le soin à l'application elle-même de décider de la cible des résultats, qui peuvent être en différents endroits de la page. Dans ce cas le résutat retourné est en Json et va s'injecter dans le Dom de la page. Et tout cela sans la moindre dépendance logicielle mesdames messieurs ! Profitez-en tant que c'est encore autorisé ! Lol

Connecteurs

On traduit le Html en Connecteurs en input (conv) et les connecteurs en Html en Output. Depuis les Connecteurs il est très aisé de faire du MarkDown (conversion dans les deux sens), si bien qu'on peut aussi l'utiliser dans la mise en forme du contenu. Les images sont absorbées immédiatement après être mises sur la zone d'édition. Les vidéos et les liens sont interprétés et associés aux applications qui leur conviennent. Pour les Connecteurs chaque tag est une application, si bien qu'on peut ajouter n'importe quelle application et appeler un fichier qui en relève au sein d'un contenu, ou de la page.

Alors question : Pourquoi ne pas utiliser directement le système des Connecteurs pour en faire un système de Templates ? Réponse : On a fait ça pendant longtemps et ça marchait super bien, mais c'est pénible à éditer. Tandis que le système View, lui, est de plus bas niveau, puisque les Arrays sont déjà construites. Cependant ce n'est pas plus rapide à exécuter que le hashage de chaîne des Connecteurs. Mais c'est beaucoup plus confortable d'y intervenir rapidement sans (trop) se prendre la tête.

Logo

Le logo de Etc ressemble à peu près à cela : (en parlant de la bonne époque où les choses étaient simples)

Bavardages

0 Bafouille(s)
💬