Le don du mois: mobx


Si vous avez suivi un peu les différents dons du mois au fur et à mesure de la vie du blog, vous avez du vous rendre compte de 2 choses:

  • Le don du mois n’est pas mensuel. Il est juste limité à un par mois. Ça m’évite la pression d’être un bon samaritain. Sauf que du coup, j’oublie parfois pendant trèèèèèèès longtemps :)
  • Il n’y a pas beaucoup de projets JS dans le lot. Ahem.

En fait le seul et unique projet JS supporté a été VueJS. C’est dire que la barre est haute, étant donné la qualité exceptionnelle de ce projet.

Donc quand je vous dis que j’ai donné 50 balles à Mobx, c’est que le projet déchire. Et il déchire malgré le fait qu’il soit codé en JS.

Mobx permet, en gros, de surveiller les modifications à une structure de données. Vous posez un marqueur sur la structure, et un sur les fonctions utilisant la structure, et c’est tout:

class TodoList {
    @observable todos = []; // dire à mobx de surveiller
}
 
...
 
@observer // dire à mobx de tenir à jour
class TodoListView extends Component {
    render() {
        return <ul>
            {this.props.todoList.todos.map(todo =>)}
        </ul>
    }

C’est là la brillance du système: malgré sa simplicité, mobx va récursivement réagir à toute modifications, même sur des données complexes imbriquées; Et calculer toutes les dépendances de chaque fonction pour ne les appeler qu’au meilleur moment.

C’est facile à utiliser, et étonnamment rapide à exécuter.

Le résultat ? Quand un client me force à utiliser ReactJS, je saute redux, et je met Mobx à la place. Ca donne presque l’impression d’utiliser Vue: le code de manipulation d’état est simple à comprendre, gentil sur le CPU et les mutations d’état restent courtes et élégantes. Le reste est toujours moche, mais ça on y peut rien.

Bref, mobx est ce qui rend react acceptable. Et tout ce qui peut apaiser la douleur du dev en front-end n’a pas de prix.

J’ai regardé le code source, et la popote interne est bien complexe. Mais à chaque fois que je veux l’utiliser je me dis que ça ne pourra pas être si simple… et si.

La page de don, c’est par là.

7 thoughts on “Le don du mois: mobx

  • Eni

    J’ai remplacé Redux par Mobx aussi pour mes projets actuels. Bien plus simple à maintenir je trouve, et également à utiliser.

    Sinon : Mais à chaque fois que je veux l’utiliser je me dis que ça ne pourra pas être si simple… et si.

  • dcba

    Merci pour votre blog, je suis hyper fan de ce que vous faites et je le consulte approximativement 10 fois par jour au boulot (qui est heureusement peu regardant sur le mix code/cul ;-)

    Vous avez pensé à faire des tutos javascript à l’usage des gens qui sont restés sur l’image de JS comme étant un langage pour faire des flocons de neige à l’écran et des alert(“ma bite”)? J’ai l’impression qu’il y a plein, plein de tutos pour comprendre les bases du langage du genre comment faire des boucles for, plein plein de tutos pour faire des trucs ultra chiadés en React/Angular/etc. comme chez Google et Facebook, mais j’ai rarement vu des tutos qui font le lien entre “je sais programmer des bites qui neigent en clignotant” et “je sais déployer une app angular avec babel/gulp/fluxxor” ou que sais-je. Bon je connais tes opinions sur JS et je ne m’attends pas à ce que tu postes gratuitement sur un truc que tu vomis alors que tu te fais payer pour tes formations, mais ça coûte rien de demander. Je me permets cette requête parce que les posts JS ont l’air plus courants ces derniers temps, ce qui indique peut-être que tu t’es adouci sur l’écosystème ?

  • Sam Post author

    Je me permets cette requête parce que les posts JS ont l’air plus courants ces derniers temps,

    En fait il y en a moins. Au début du blog on avait toute une partie sur angular 1.

    vous avez pensé à faire des tutos javascript à l’usage des gens qui sont restés sur l’image de JS comme étant un langage pour faire des flocons de neige à l’écran et des alert(“ma bite”)?

    Donc oui,mais je déteste bien trop le langage et son écosystème pour y investir plus de temps et d’énergie que le minimum.

    Je peux écrire et contribuer à Python pour les 10 prochaines années sans manquer de matière, alors autant ne pas gacher le peu de ressources que j’ai.

    Par ailleurs est lourdement financé, alors que Python, pas du tout: http://sametmax.com/ecrivez-a-larc-envoyez-des-sioux/

    Moralité, j’aide en JS quand on m’aide. Soit comme Vue/Mobx en me facilitant la vie, soit en me payant.

  • lehcim

    mais j’ai rarement vu des tutos qui font le lien entre “je sais programmer des bites qui neigent en clignotant” et …

    Et là, je me suis dit que finalement, j’allait peut être me mettre à faire du JS ….

  • dcba

    @Sam:

    Ok je m’attendais un peu à cette réponse. Je suis déjà très reconnaissant de ce que vous faites sur Python.

    D’ailleurs, vu comme l’écosystème JS est d’après tes dires caractérisé par une doc pourrissime (quand je vois la doc de scikit-learn j’ai l’impression d’être un gosse pourri gâté tellement c’est beau), tu pourrais écrire un gros bouquin dessus façon Zed Shaw si tu retrouves en dèche. Je sais que je l’achèterais, et je serais loin d’être le seul.

Comments are closed.

Des questions Python sans rapport avec l'article ? Posez-les sur IndexError.