October DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PCOctober DealsAmazon USDeal season is back - check today's better picksAmazon US: current deals, useful picks and tech finds.See Picks×
Skip to content
World desk4 min

Facture simple : gardez une règle métier simple à lire

L’exemple d’une facture montre comment des méthodes métier directes peuvent exprimer une règle simplement, et quand une machine à états devient utile.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Pour une règle métier simple, choisissez le code qui la rend la plus facile à voir et à modifier, pas l’architecture la plus impressionnante. Une machine à états n’est pas une mauvaise idée en soi : elle devient utile lorsque le nombre de transitions, de règles et d’effets secondaires rend les méthodes directes plus difficiles à comprendre.

Une facture suffit à révéler le problème

Dans son exemple, Rodolphe D. décrit une facture qui passe par trois statuts : draft, pending et paid. Les transitions prévues sont simples : un brouillon peut être envoyé et devenir en attente, puis une facture en attente peut être marquée comme payée.

As an Amazon Associate I earn from qualifying purchases.

La question métier centrale tient en une phrase : « est-ce qu’une facture payée peut redevenir brouillon ? » Si la réponse est non, le modèle devrait rendre cette règle visible sans obliger le lecteur à suivre plusieurs couches d’indirection.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Dans son récit, l’auteur a d’abord construit une machine à états composée de classes abstraites et concrètes, d’une factory, d’un registre de guards et d’un bus d’événements. Il a ensuite réduit l’exemple à un type de statut et aux méthodes send() et markAsPaid(), qui expriment directement les transitions. Il précise aussi que, dans son exemple Adonis et Inertia, un getter doit porter le décorateur @computed() pour être sérialisé. Ces détails décrivent son implémentation, et non une règle universelle pour ces frameworks. L’exemple de Rodolphe D. sur DEV Community

#1 Best Overall
Income and Expense Log Book - Bookkeeping Record Book/Tracker
  • Income And Expense Log Book: This Income and Expense Record Book(8.5" x 10.5") is a necessary item for any small business owner or entrepreneur. It is an essential part of any business - helping you understand your overall earnings to determine if you are profitable.
  • Daily Tracking and Weekly Overview: let our log tell you if you are profitable today! There are two pages per week to help you you track your income and expenses. At the end of each day or week, you can note whether you made a profit or a loss for the day.
  • Clear P&L Statement For Your Business: This income and expense book makes it easy to see your expenses and how they fluctuate from time to time. This makes it easy for you to decide where you can cut back on expenses and assess your total annual net profit.
  • Main Features: Expense Review + Income Review + Weekly Pages + Summary of The Year + Twin-Wire Binding + Waterproof Cover + Rounded corner design + Thicker paper
  • Effective Organization: This budget book has a twin-wire binding and you can easily lay it flat at 180°. This effective design can help you work better and bring you great convenience in the process of using.

Pourquoi la version directe est plus lisible ici

Une méthode nommée d’après l’action métier permet de comprendre le chemin autorisé en lisant le modèle : send() fait passer la facture à l’état en attente, et markAsPaid() la fait passer à l’état payé. La logique n’a pas besoin d’être reconstruite à partir d’un assemblage de classes et de mécanismes génériques.

L’auteur rapporte que sa première version occupait cinq fichiers et environ 150 lignes, contre une vingtaine de lignes après refactorisation, et qu’il avait passé environ trois heures sur la conception initiale. Ce sont les chiffres de son exemple personnel, pas une mesure contrôlée ni la promesse que KISS réduit toujours le code ou le temps de développement.

Rank #2
Easy to Use Accounting Ledger Book - Expense Tracker for Small Business
  • Neatly Track & Organize Your Finances: The accounting ledger book is here for you to stay on top of your spendings & income! Clearly & neatly structured, it offers ample space for all crucial information about checks, savings, bills & other expenses or income
  • Perfect For Small Business Owners: Keep it simple, yet super effective - the undated income and expense log book is an absolute must-have among small business supplies! Register your financial data and use your debit & credit records to compile a trial balance
  • Premium Style With A Sturdy Cover: With the 120-page finance tracker, you can manage your finances conveniently in one place. A solid cover, thick paper and a reliable ring binding ensure maximum durability
  • Beautiful Modern Minimalistic Design: A visual highlight just like you can expect from ZICOTO! The sage green cover of the ledger book, look stunning with a modern golden floral on the front - makes bookkeeping simply beautiful!
  • Super Handy - Always At Hand: Thanks to its practical size, the 8.6x6.1” ledger book fits into any bag easily and is therefore always by your side. Whether used as a checkbook register or to track other financial flow, with the log book you’ve got it all sorted!

Quand une machine à états devient le choix le plus simple

Le bon critère n’est pas d’éviter les abstractions à tout prix. C’est de comparer le coût de compréhension et d’évolution des options pour les règles présentes.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Nombre d’états et de transitions : quelques états et chemins directs peuvent rester lisibles dans le modèle. Des transitions nombreuses ou difficiles à suivre peuvent justifier une représentation dédiée.
  • Règles métier : si chaque transition dépend de plusieurs conditions croisées, centraliser ces règles peut être plus clair que de les disperser dans des méthodes.
  • Effets secondaires : des courriels, webhooks ou autres actions déclenchés par les transitions peuvent rendre une structure explicite plus utile.
  • Indirection et évolution : pesez le coût des couches supplémentaires contre celui de comprendre, tester et modifier les règles. Une abstraction aide lorsqu’elle réduit la complexité totale, pas simplement parce qu’elle est générale.

Dans l’exemple de la facture, une machine à états pourrait donc devenir pertinente si le cycle de vie gagnait de nombreux statuts, conditions et effets externes. L’illustration ne démontre pas qu’une telle architecture est inadaptée à d’autres domaines.

KISS et YAGNI ne veulent pas dire « coder vite et mal »

YAGNI (« You Aren’t Gonna Need It ») conseille de ne pas construire aujourd’hui une capacité uniquement parce qu’on imagine qu’elle sera utile plus tard. Martin Fowler rattache cette pratique au « Simple Design » et à la conception incrémentale. Cela n’autorise pas à rendre le code pénible à modifier : différer une fonctionnalité hypothétique suppose de garder une base suffisamment malléable pour répondre aux besoins lorsqu’ils deviennent réels. Martin Fowler, « Yagni », 26 mai 2015

« Simple » ne signifie pas « facile » ni « bâclé ». Dans le chapitre « Simple Design » de Clean Code: A Handbook of Agile Software Craftsmanship, 2nd Edition, Kent Beck décrit la meilleure conception comme la plus simple qui prenne en charge les fonctionnalités requises tout en offrant la plus grande flexibilité pour le changement. Autrement dit, la simplicité consiste à démêler la solution; ce travail peut être difficile. O’Reilly, chapitre « Simple Design »

Rank #4
HAUTOCO Accounting Ledger Book A5 Horizontal Ledger Books for Small Business Bookkeeping Expense Tracker Notebook for Home Budget Tracking Personal Finance Log Journal 8.3 x 6.2'', Black
  • Easy To Track Your Finances: HAUTOCO accounting ledger book keeps you on top of your expenses and income! Help you keep your money organized, spend well, and set and achieve financial goals
  • Premium Material: The A5 accounting ledger book has a total of 120 pages and 2040 lines of entries. It is made of 100gsm thick paper to reduce ink leakage; it is equipped with a waterproof and sturdy PP cover to protect the inner pages
  • Practical Design: Compact 8.3 x 6.2'' expense tracker notebook is easy to carry and features information pages, 2025 calendar, yearly financial goals page, and PVC pocket for storing important tickets and loose items
  • Manage Your Finances Effectively: Undated accounting books with number, date, description, account, payment or deposit amount, and total balance. You will be able to easily analyze your financial activities and quickly prepare accurate financial statements
  • Ideal For Small Business or Personal Use: An accounting log journal can track your business or personal financial status. With a clear record of transactions, you can find unnecessary expenses or fraudulent charges
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Une décision pratique avant d’ajouter une couche

  1. Écrivez la règle métier en langage courant. Par exemple : « une facture payée ne redevient pas un brouillon ».
  2. Listez les états et transitions réellement nécessaires. Séparez les chemins existants des fonctionnalités seulement envisagées.
  3. Montrez où les conditions et effets se trouvent. Si le lecteur doit naviguer dans plusieurs abstractions pour retrouver une règle courte, la conception mérite d’être réexaminée.
  4. Choisissez la forme qui reste claire quand le besoin change. Commencez par des méthodes directes si elles expriment bien les règles; introduisez une machine à états quand elle réduit effectivement la complexité.

Une lecture complémentaire facultative est Code Simplicity de Max Kanat-Alexander, publié par O’Reilly Media. Le livre, en anglais, traite notamment de simplicité, de complexité, de changement et de conception; il n’est pas nécessaire pour appliquer ces critères.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Best Value
Clever Fox Income & Expense Tracker, Business Ledger 5.8x8.3 Dark Green
  • PERFECT LEDGER BOOK FOR SMALL BUSINESSES: This accounting ledger book for small businesses will help you organize finances, sort and summarize transactions, create balance summaries and set you up for financial success.
  • SWITCH TO EFFICIENT & STRESS-FREE ACCOUNTING: This accounting book is undated and lasts a whole year and has 113 pages, including 53 weekly views, an annual summary, empty note pages, and, at the back, a spacious pocket for receipts.
  • TAKE CONTROL OF YOUR FINANCES & SUCCEED: With this detailed record of all transactions and totals, you will be able to easily analyze your finances and quickly prepare accurate financial statements.
  • COMPACT A5 FORMAT & DURABLE DESIGN: This bookkeeping record book comes in A5 format (5.8 by 8.3 inches) and has an eco-leather hardcover, 120gsm no-bleed paper, elastic, pen loop, bookmark, pocket for notes, and a user guide.
  • 60-DAY MONEY-BACK GUARANTEE: We will exchange or refund your receipt book for small business if you aren’t satisfied with your expense tracker notebook for any reason. Reach out to us via message to refund your small business supplies.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.