Journal Sortie de Movicon 0.3

Posté par  (site web personnel) .
Étiquettes : aucune
7
26
sept.
2010
Un an après la sortie de la première version utilisable, voici venir la première version stable de Movicon.

Pour rappel, Movicon est un framework (ou cadriciel) implémentant l'architecture Modèle-Vue-Contrôleur (MVC) en PHP. Il a la particularité d'être très simple et entièrement programmé de façon fonctionnelle.

Il est très facile d'installation et ne nécessite que l'extraction d'un zip où de nombreux autres frameworks demandent l'emploi d'une ligne de commande. Dès lors, on peut commencer à travailler sur son application avec très peu de paramétrages. Il dispose en outre d'un système d'abstraction de base de données permettant l'usage quasi-transparent d'une base ou d'une autre.

De nombreuses améliorations ont fait leur apparition depuis la version 0.2. Ainsi, Movicon dispose à présent d'un nouveau pilote de base de données pour Oracle et de la base de donnée locale en PHP PHPtextDB, faite sur mesure pour Movicon.

Un système de composants (plug-in) sérieux a également émergé, donnant naissance à un composant d'authentification intelligent. D'autres composants sont en cours de développement.

Il est maintenant possible de charger plusieurs contrôleurs à la fois, le standard de nommage des fonctions ayant changé afin d'éviter les collisions de noms autant que faire se peut.

Le coeur de l'application a subit maintes corrections de bugs, et a enfin atteint un niveau stable. L'utilisation de Movicon sur serveur de production est donc désormais possible.

Le développement de l'application est passé sous git et est hébergé sur gitorious.

Enfin, la documentation a été mise à jour et une documentation technique générée par Doxygen accompagne le tout.

Pour faire plaisir au sieur Octabrain, je n'ai pas mis de tutoriel vidéos cette fois!

Liens:
Site de Movicon: [http://movicon.dyndns.org/]
Documentation: [http://movicon.dyndns.org/bookhtml/movicon_toc.html]
Référence technique: [http://movicon.dyndns.org/reference/files.html]
Page gitorious du projet: [http://gitorious.org/movicon]
  • # Cadriciel & Preums FTW!!!

    Posté par  . Évalué à 9.

    Bon, les meilleures blagues sont les plus courtes, on va tous gentiment remballer le mot cadriciel dans sa boite, la plomber, et la jeter dans un volcan sous-marin, très, très profond. Et l’on va faire comme la fois ou l’on c’est réveillé, enduit de latex liquide, avec un orang-outan outrageusement maquillé dans le lit, sans aucun souvenir de comment on est arrivé la. On ne va plus y penser.

    Et pour revenir dans le sujet, tu as quoi contre les vidéos ? :)

    Depending on the time of day, the French go either way.

    • [^] # Les vidéos

      Posté par  (site web personnel) . Évalué à 2.

      Voir le lien (déjà dans le journal)
      http://linuxfr.org/~Brioche4012/28768.html
      • [^] # Re: Les vidéos

        Posté par  . Évalué à 4.

        Mouais, autant il y a des mots français qui existaient avant pour traduire certains mots anglais (logiciel pour software, matériel pour hardware), autant il y a des mots qui ont été plus ou moins astucieusement trouvés pour ce faire (courriel pour email, gratuiciel pour freeware, partagiciel pour shareware), autant cadriciel ça pue en plus de piquer les yeux et ne rien vouloir dire, même de loin...
        • [^] # Re: Les vidéos

          Posté par  . Évalué à 2.

          Que dire de plugiciel…

          The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

          • [^] # Re: Les vidéos

            Posté par  . Évalué à 2.

            Que dire de plugiciel…
            Toi même ? C'est quoi?

            Depending on the time of day, the French go either way.

            • [^] # Re: Les vidéos

              Posté par  . Évalué à 4.

              Bah, c'est tout simplement un truc qui se plug dans un logiciel, aka Plugin/greffon/module d'extension.

              Et le braviciel, connais-tu ? C'est la forme informatique de la bravitude, forme politique de la bravoure. Ex : « On a réussi à finir le programme cette nuit grâce à des litres de café et la méthode la rache, c'est un braviciel. »

              The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein

        • [^] # Re: Les vidéos

          Posté par  . Évalué à 7.

          Perso je refuse d’employer des mots qui viennent du Canada francophone. je leur en veux encore pour celine dion.

          Depending on the time of day, the French go either way.

    • [^] # Re: Cadriciel & Preums FTW!!!

      Posté par  (site web personnel) . Évalué à 3.

      et la jeter dans un volcan sous-marin, très, très profond.

      chez BP on en boucherait des conduits !

      Alexandre COLLIGNON

  • # Retour vers le futur !

    Posté par  (site web personnel) . Évalué à 2.

    Je jette un coup d'oeil au source : pas d'objet et pas de tests unitaires... C'est compatible PHP 3 ?

    On est bien retourné au 20ème siècle Marty !
    • [^] # Re: Retour vers le futur !

      Posté par  (site web personnel) . Évalué à 2.

      Ah ah, je m'y attendais.

      Même si ma Deloréane est en double file, je sais que nous sommes au 20eme siecle. Ce projet est uniquement fonctionnel parce que c'était pour moi un challenge de faire un programme en PHP sans utiliser de code orienté objet.

      Quant aux tests unitaires, je n'ai jamais été très fort pour ça. Si tu t'y connais et que ça t'intéresse, je serais fort honoré si tu écrivais quelques tests unitaires pour Movicon.

      Enfin, non, il n'est pas compatible PHP3. Il contient certaines choses uniquement compatibles PHP5.
      • [^] # Re: Retour vers le futur !

        Posté par  . Évalué à 2.

        De plus pour ta défense le paradigme fonctionnel à justement la capacité d'être bcp plus fiables puisque sans effets de bords => tests fonctionnels beaucoup plus simples (pas de prise en compte du contexte) et plus petits (juste traîter les cas aux limites pour ainsi dire)...

        Par contre PHP comme language fonctionnel pour moi ce n'est tout simplement pas possible (proprement), car il n'a pas les prérequis de base pour cela (les fonctions comme manipulables comme données, ...).
      • [^] # Re: Retour vers le futur !

        Posté par  . Évalué à 10.

        je sais que nous sommes au 20eme siecle.

        Justement, on y est plus depuis quelques années…
      • [^] # Re: Retour vers le futur !

        Posté par  . Évalué à -1.

        Et le faire en basic, sans if then else, pour le challenge, t'y a pense?

        Autant je comprends le cote challenge, autant si tu veux diffuser ton projet et le mener qq part, c'est un peu dommage d'utiliser des techniques de 1975. Surtout que dans le milieu du dev web, l'objet est tres largement dominant (et ya de bonnes raisons a ca), tu vas te couper a la fois de contributeurs et d'utilisateurs.

        Bon après, ca m'empechera pas de dormir la nuit, et loin de moi l'idee de te saper le moral, mais ta reponse fait lever un sourcil comme disent nos amis anglophones.

        If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

        • [^] # Re: Retour vers le futur !

          Posté par  . Évalué à 2.

          L'un n'empêche pas l'autre : dans des langages comme Objective Caml, Scala, F# (liste non exhaustive), on peut écrire des programmes de façon fonctionnelle avec des objets. C'est très pratique pour certaines choses, par exemple quand on a un algorithme qui s'exprime naturellement de façon récursive et prend des données que l'on a tout aussi naturellement encapsulées dans des objets. J'ai eu le cas avec un algorithme d'appariement au système suisse : à vouloir l'exprimer de façon itérative, on finit avec le cerveau en tire-bouchon.
          • [^] # Re: Retour vers le futur !

            Posté par  . Évalué à 1.

            Certes, tu peux mixer imperatif et objet.
            Toujours est il que c'est loin d'etre la meilleure solution et que ca va probablement en rebuter plus d'un.

            Le fonctionnel a ses avantages dans certains cas tres precis, je suis parfaitement d'accord avec toi, mais dans le cas qui nous interesse ici, un framework web qui implement mvc donc, l'imperatif n'a strictement aucun interet, plutot des inconvenients en fait.

            Bon apres, on pourrait diverger sur la necessite d'avoir un framework pour implementer mvc.
            Je suis loin d'etre convaincu de la chose, dans le web ce qui est reellement interessant c'est un framework pour s'abstraire des couches basses du web (ces conneries de sessions, url et tout le tralala qu'on a rajoute pour rendre http stateful) et, aussi important si ce n'est plus, un framework UI oriente composant.

            Le premier a pas franchement grand chose a voir avec MVC.
            Le deuxieme, indirectement.

            Une fois que t'as ca, c'est a dire une bonne implementation de V, le C vient tout seul faire la glue avec le M (qui est a la charge du dev quoi qu'il en soit). Un coup d'autowiring de tes controlleurs dans les vues, un coup d'autowiring de tes services/assemblers dans tes controlleurs et paf, ton mvc il vient tout seul comme un grand.

            If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

            • [^] # Re: Retour vers le futur !

              Posté par  (site web personnel) . Évalué à 3.

              J'espère que tu as quand même testé avant de pondre ton bloc de texte.
              • [^] # Re: Retour vers le futur !

                Posté par  . Évalué à 1.

                La prochaine fois que tu veux pas d'avis sur ton framework, tu penseras a pas venir en parler, d'accord?

                If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

                • [^] # Re: Retour vers le futur !

                  Posté par  (site web personnel) . Évalué à 3.

                  Un avis qui me dit que je dois changer de paradigme pour quelque raison ésotérique n'a pas de valeur.

                  Si tu trouve de vrais problèmes concrets dans le code, je t'en prie fais-nous en part. En attendant, quel que soit le paradigme choisi, impératif, fonctionnel ou objet, l'application reste faisable et utilisable.

                  Après si _toi_ tu n'aime pas, parce que t'aime l'objet et que le fonctionnel t'ennuie, ça n'apporte pas grand chose ni au projet, ni aux programmeurs qui lisent ton commentaire.
                  • [^] # Re: Retour vers le futur !

                    Posté par  . Évalué à -1.

                    perso je m'en branle, le php moins je m'en approche, mieux je me porte.

                    esoterique?
                    Demander pourquoi utiliser un paradigme qui a montre ses limites ya 20 ans plutot qu'un paradigme qui fait l'unanimite dans la communaute depuis 20 ans, c'est une raison esoterique?

                    Surtout quand la reponse a cette question c'est "pour le fun, c'est rigolo", ca inspire pas confiance.

                    J'ai pas besoin d'aller voir dans le code pour trouver un probleme concret, le probleme concret commence par le choix du paradigme.

                    Ca a beau marcher tres bien, faut etre un peu farfelu quand tu fais du dev objet pour aller choisir un framework imperatif, tu crois pas?
                    Partant de la, ca va pas etre evident de trouver des utilisateurs...

                    Apres, si ca te deplait que je dise ca, ne pose pas des questions dont tu ne veux pas entendre la reponse, autrement dit ne cherche pas a diffuser ton projet si tu ne vuex pas qu'on te pose la premiere question qui vient a l'esprit de tout le monde en entendant "framework MVC imperatif ecrit comme ca parce que c'est rigolo".
                    C'est tout ce que je dit.

                    If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

  • # Commentaire dans le code

    Posté par  . Évalué à 1.

    J'ai parcouru le code vite fait, et j'ai une question : à quoi ça sert des commentaires du types // Starting the session.
    session_start();
    ?
    Autant pour des trucs comme // Defining the base path, essential to load system libs.
    define('SYSPATH', dirname(__FILE__) . '/');
    je comprends, mais là un simple session_start();, c'est quand même pas très compliqué ...
    • [^] # Re: Commentaire dans le code

      Posté par  (site web personnel) . Évalué à 2.

      Mieux vaut trop de commentaires que pas assez. Je les ai écrits pour moi principalement.
      • [^] # Re: Commentaire dans le code

        Posté par  . Évalué à 3.

        Ca se discute ca :)
        C'est meme une grosse source de troll.

        Le pb avec trop de commentaires, c'est qu'il faut le maintenir ce trop de commentaires.
        En pratique, ce qui se passe, c'est que tu vas ecrire une tartine, puis l'oublier cette tartine.
        Ensuite, toi ou quelqu'un d'autre va venir, regler un probleme, refactorer ou autre, et va laisser le commentaire inchange (forcement, il influe pas sur le build, et on est presse, faut que ca marche la maintenant).

        Et paf, pasteque. Tu te retrouves avec un commentaire qui potentiellement dit le contraire de ce qu'il se passe, au pire, au mieux tu te retrouves avec un commentaire qui veut pas dire grand chose.

        Et quand tu reviens encore plus tard (ou qq1 d'autre), tu te dis "mais merde, ca fait pas du tout ce que c'est cense faire... Qui qu'a tord? Qui qu'a raison?" Et hop la, t'es parti pour une demi journee de "bon, on va d'abord voire ce que ca fait precisement, et apres on va faire le tour du bureau pour trouver qui sait pourquoi le commentaire et le code sont desynchronises".

        C'est un peu le meme probleme avec les jean jean qui unit testent des getters et setter, tu change un attribut, et t'es parti pour une journee dans une jungle de classes de test de 4000 lignes qui au final ne font que unit tester la fonction "generate getters/setters..." d'eclipse.
        Quoi, ca se voit que je suis sur ce genre de probleme a la con depuis ce matin, que j'ai a peine avance d'un poil, et que ca me gonfle ces test unitaires aussi debiles qu'inutiles?

        Sans meme parler de la pollution du code. Un commentaire qui dit // iteration variable i c'est juste du bruit. Tout le monde sait ce que i veut dire.

        If you can find a host for me that has a friendly parrot, I will be very very glad. If you can find someone who has a friendly parrot I can visit with, that will be nice too.

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.