Modern Front-end Architecture: Optimize Your Front-end Development with Components, Storybook, and Mise en Place Philosophy
()
About this ebook
Learn how to build front-end applications that can help you ship applications faster with fewer defects. Many software projects fail because they are not planned well, or lack organization. Applying strategies from other industries can help you create better software. This book explores the “mise en place” technique from cooking and reveals how you can apply it to the art of creating software.
In many professional kitchens, the work of preparing a meal is divided and performed in workstations to help create the whole. You'll review the philosophy behind this and see how to leverage this approach in your code. You'll also learn to visualize your applications as a series of components and build parts of your application in isolation - just like a professional chef crafting each part of the meal.
The book describes to how to structure your code base for reuse, and how to communicate the code’s intent to other developers. You’ll develop your components in isolation and test these building blocks for quality at a granular level. Then compose these components as building blocks in increasingly complicated features. Finally, you’ll apply some strategies not directly related to code to ensure maximum quality and efficiency.
With Modern Front-end Architecture, developers of all levels will learn strategies that they and their teams can leverage to be more productive.
What You'll Learn
- Structure an application as a series of components
- Build a component library that others in an organization can leverage
- Ensure quality and accessibility at a component level rather than a page or app level
- Test code in a way that gives the maximum amount of confidence while providing an excellent developer experience
- Automate repeatable tasks
Who This Book Is For
Front end developers looking to maximize their code for reuse, quality, and shipping features quickly. Experienced developers will pick up new techniques that they can apply to their code base. Less experienced developers will be able to start applications off on the right foot.
Related to Modern Front-end Architecture
Related ebooks
React and Libraries: Your Complete Guide to the React Ecosystem Rating: 0 out of 5 stars0 ratingsDocs for Developers: An Engineer’s Field Guide to Technical Writing Rating: 0 out of 5 stars0 ratingsSolving Identity Management in Modern Applications: Demystifying OAuth 2.0, OpenID Connect, and SAML 2.0 Rating: 0 out of 5 stars0 ratingsBuilding React Apps with Server-Side Rendering: Use React, Redux, and Next to Build Full Server-Side Rendering Applications Rating: 0 out of 5 stars0 ratingsFoundation Gatsby Projects: Create Four Real Production Websites with Gatsby Rating: 0 out of 5 stars0 ratingsMERN Projects for Beginners: Create Five Social Web Apps Using MongoDB, Express.js, React, and Node Rating: 0 out of 5 stars0 ratingsWeb App Development and Real-Time Web Analytics with Python: Develop and Integrate Machine Learning Algorithms into Web Apps Rating: 0 out of 5 stars0 ratingsEssential TypeScript 4: From Beginner to Pro Rating: 0 out of 5 stars0 ratingsPractical Enterprise React: Become an Effective React Developer in Your Team Rating: 0 out of 5 stars0 ratingsWebAssembly for Cloud: A Basic Guide for Wasm-Based Cloud Apps Rating: 0 out of 5 stars0 ratingsPractical Svelte: Create Performant Applications with the Svelte Component Framework Rating: 0 out of 5 stars0 ratingsPro MERN Stack: Full Stack Web App Development with Mongo, Express, React, and Node Rating: 0 out of 5 stars0 ratingsDecoupled Django: Understand and Build Decoupled Django Architectures for JavaScript Front-ends Rating: 0 out of 5 stars0 ratingsPHP 8 Solutions: Dynamic Web Design and Development Made Easy Rating: 0 out of 5 stars0 ratingsI, Steve: Steve Jobs In His Own Words Rating: 3 out of 5 stars3/5Domain-Driven Laravel: Learn to Implement Domain-Driven Design Using Laravel Rating: 0 out of 5 stars0 ratingsDatabase-Driven Web Development: Learn to Operate at a Professional Level with PERL and MySQL Rating: 0 out of 5 stars0 ratingsSpring Boot with React and AWS: Learn to Deploy a Full Stack Spring Boot React Application to AWS Rating: 0 out of 5 stars0 ratingsPro Angular 9: Build Powerful and Dynamic Web Apps Rating: 0 out of 5 stars0 ratingsPro Data Visualization Using R and JavaScript: Analyze and Visualize Key Data on the Web Rating: 0 out of 5 stars0 ratingsTaming Text: How to Find, Organize, and Manipulate It Rating: 0 out of 5 stars0 ratingsBeginning Kubernetes on the Google Cloud Platform: A Guide to Automating Application Deployment, Scaling, and Management Rating: 0 out of 5 stars0 ratingsBreakpoint Rating: 4 out of 5 stars4/5The Blocks Come Out at Night Rating: 0 out of 5 stars0 ratingsHow to Speak Tech: The Non-Techie’s Guide to Key Technology Concepts Rating: 4 out of 5 stars4/5GROKKING ALGORITHMS: A Comprehensive Beginner's Guide to Learn the Realms of Grokking Algorithms from A-Z Rating: 0 out of 5 stars0 ratingsThe Autonomous Enterprise: Powered by AI Rating: 0 out of 5 stars0 ratingsHands-on GitHub Actions: Implement CI/CD with GitHub Action Workflows for Your Applications Rating: 0 out of 5 stars0 ratingsSolr in Action Rating: 3 out of 5 stars3/5
Internet & Web For You
Social Engineering: The Science of Human Hacking Rating: 3 out of 5 stars3/5How to Be Invisible: Protect Your Home, Your Children, Your Assets, and Your Life Rating: 4 out of 5 stars4/5How to Disappear and Live Off the Grid: A CIA Insider's Guide Rating: 0 out of 5 stars0 ratingsNo Place to Hide: Edward Snowden, the NSA, and the U.S. Surveillance State Rating: 4 out of 5 stars4/5Coding For Dummies Rating: 5 out of 5 stars5/5Coding All-in-One For Dummies Rating: 4 out of 5 stars4/5Get Rich or Lie Trying: Ambition and Deceit in the New Influencer Economy Rating: 0 out of 5 stars0 ratingsSix Figure Blogging Blueprint Rating: 5 out of 5 stars5/5Beginner's Guide To Starting An Etsy Print-On-Demand Shop Rating: 0 out of 5 stars0 ratingsEverybody Lies: Big Data, New Data, and What the Internet Can Tell Us About Who We Really Are Rating: 4 out of 5 stars4/5The Hacker Crackdown: Law and Disorder on the Electronic Frontier Rating: 4 out of 5 stars4/5Podcasting For Dummies Rating: 4 out of 5 stars4/5The Beginner's Affiliate Marketing Blueprint Rating: 4 out of 5 stars4/5The Gothic Novel Collection Rating: 5 out of 5 stars5/5The Logo Brainstorm Book: A Comprehensive Guide for Exploring Design Directions Rating: 4 out of 5 stars4/5Grokking Algorithms: An illustrated guide for programmers and other curious people Rating: 4 out of 5 stars4/5Remote/WebCam Notarization : Basic Understanding Rating: 3 out of 5 stars3/5Hacking : The Ultimate Comprehensive Step-By-Step Guide to the Basics of Ethical Hacking Rating: 5 out of 5 stars5/5How To Start A Podcast Rating: 4 out of 5 stars4/5200+ Ways to Protect Your Privacy: Simple Ways to Prevent Hacks and Protect Your Privacy--On and Offline Rating: 0 out of 5 stars0 ratingsThe Internet Is Not What You Think It Is: A History, a Philosophy, a Warning Rating: 4 out of 5 stars4/5The Digital Marketing Handbook: A Step-By-Step Guide to Creating Websites That Sell Rating: 5 out of 5 stars5/5More Porn - Faster!: 50 Tips & Tools for Faster and More Efficient Porn Browsing Rating: 3 out of 5 stars3/5The Cyber Attack Survival Manual: Tools for Surviving Everything from Identity Theft to the Digital Apocalypse Rating: 0 out of 5 stars0 ratingsThe $1,000,000 Web Designer Guide: A Practical Guide for Wealth and Freedom as an Online Freelancer Rating: 5 out of 5 stars5/5Introduction to Internet Scams and Fraud: Credit Card Theft, Work-At-Home Scams and Lottery Scams Rating: 4 out of 5 stars4/5
Reviews for Modern Front-end Architecture
0 ratings0 reviews
Book preview
Modern Front-end Architecture - Ryan Lanciaux
© Ryan Lanciaux 2021
R. LanciauxModern Front-end Architecturehttps://doi.org/10.1007/978-1-4842-6625-0_1
1. The Mise en Place Philosophy
Ryan Lanciaux¹
(1)
Ann Arbor, MI, USA
There is nothing quite like the feeling of creating something that didn’t exist before.
Whenever someone unfamiliar with coding asks me about why I am interested in software development, I like to talk about my love for creating things. While writing code, you can create your own worlds and build things that didn’t exist previously.
The questioner may gloss over this response and see coding as an exercise in tedious algorithms, equations, and syntax. To those who write code and enjoy it, however, I would argue that this is a relatable mindset.
As opposed to software, many industries have years of standards, structure, and guidelines. Some may question if these principles help in the creation process. In most cases, they are both necessary and offer a head start. It would be tragic if someone in the construction industry threw out years of physics and structural engineering concepts to start with a blank slate,
so to speak. I wouldn’t want to go to a dentist who performed creative root canals.
Think of the medical and aerospace industries. In both industries, the pace at which they are moving today is staggering. These fields are achieving great things by applying novel concepts to principles that have been around for decades. To start anything completely from scratch would be a terrible mistake.
Software Is Different, Right?
Compared to many fields, software seems different. Software development, as a profession, is a very young field. Many developers are familiar with concepts like SOLID and design patterns from the Gang of Four. While helpful, these philosophies only go back several generations, not hundreds or thousands of years, as is the case in many other industries.
This relative newness
of software development can be both freeing and problematic, especially in front-end development! Time and time again, a project that started off fun and exciting to work on turns into a nightmare after years of development. We often rewrite our applications only to find ourselves in the same situation a couple of years later. As we progress through this book, we’ll discuss some strategies we can employ to keep our software both fun to work on and maintainable.
Good Software
Merely mentioning good
software can cause fights among the developer population of the Internet. Many developers have some opinion of what good software is. While each person’s opinion may be different, there is an ideal that we often don’t live up to.
We build our computers [systems] the way we build our cities—over time, without a plan, on top of ruins.
—Ellen Ullman, programmer and author
At various points in my career, I’ve encountered software built like the proverbial city previously described. In these systems, you could see the reign of different CTOs in the company. You could tell when frameworks were popular and when they fell out of favor. It was clear where developers gave up attempts to maintain any level of consistency and just tried to get something accomplished. These shortcomings ultimately led to applications being rewritten, only to start the process over again.
Have you ever
Found code with the exact same functionality sprinkled throughout a codebase?
Updated styles for one part of an application only to find out that you broke an entirely separate part of the application?
Been on a team that found the challenges of maintaining a codebase so overwhelming that it warranted a rewrite? (Bonus question: Did the rewrite solve all the problems that were encountered?)
I don’t know about you, but I can answer yes
to all of the preceding questions. The sad thing about these responses is that things don’t need to be this way. Few areas in the history of software prepare us for the constant change that besieges most front-end development teams. Thankfully, we can leverage ideas from other industries to write better software.
You don’t have to know it all. Just take in the best big ideas from all these disciplines.
—Charlie Munger, investor
There are many industries that we, software developers, can obtain inspiration from, but one I particularly like is the culinary world—mise en place.
For generations, chefs tout the French term mise en place as a mindset that is critical to success in the kitchen. What is mise en place?
you might ask. According to Wikipedia, mise en place means everything in its place.
In many cases, a mise en place could refer to the setup that one takes before actually cooking a dish. This setup might look like organizing a workspace, chopping vegetables and other ingredients, and measuring seasonings, sauces, and other elements. When this workflow is in place, the final act of preparing a dish can consist of composing parts of the previous steps.
In some restaurants, the mise en place philosophy is so trusted that working with an entirely new kitchen staff is not seen as an impediment to success.
We’ll see as we progress through this book that there are other parts to the mise en place philosophy we can use in software. For now, however, this focus on organization is where we’ll start.
While constant staffing turbulence is to be avoided, it would be excellent to have this sort of resiliency in front-end applications.
What Does This Have to Do with Software?
You might be thinking, Okay, this is neat, but what does this have to do with creating things outside the kitchen?
Adam Savage, the famed cohost of MythBusters and renowned crafter/maker, is a fan of the mise en place philosophy. He dedicates a whole chapter of his book to this concept. He describes the value of this philosophy outside the kitchen this way:
For all the alchemy that goes into building something, the magic of making is only possible because of the many repetitive processes we endure in preparation for final assembly.
—Adam Savage
In other words, a great outcome is only possible because of the little steps we take to build something.
In software development, there are many repetitive processes that we undertake. These processes may not always seem like they are helping us prepare for a great outcome, but with attention to detail and a focus on the individual aspects of an application, we can achieve great results. One such way we can focus on aspects of our application individually is by effectively leveraging components.
Components
We’re in an exciting time for front-end development. Today’s frameworks and libraries offer functionality that those developing front-end applications even five years ago could only dream of. Despite a lot