In the Epilogue of the Object Design Style Guide, I started happily outlining some of the architectural patterns I've been using for several years now. I wanted to give some kind of an overview of how the overall design of your application would improve if you apply the object-design rules in that book. I soon realized that an Epilogue was not enough to cover all the details, or to communicate the ideas in such a way that they would be applicable in everyday projects. And so a new book project began...
I started working on it exactly a year ago, in April 2019. The initial excitement kept me going for the first 100 hours or so, after which other projects came up (like the re-release of the style guide with Manning, lots of programming projects and trainings). Finally there was some time to finish the work, but then the Corona crisis kicked in.
Even though it's a strange time to be releasing a new book, I think it's ready to be read by you. I'm very happy to be using the Leanpub platform again. My experience with Manning was great, but I wanted to be completely independent again, so I could experiment with several new forms of publishing. A book alone is nice, but I wanted to offer a more elaborate learning experience this time, which is why I'm offering several things at the same time:
Get a new chapter every two weeks
I'm releasing the book while I'm still working on it. Right now an early release is available for $15,-. It contains the preface, an overview of the contents, the introduction chapter which introduces the concept of infrastructure code, and the first chapter of the first part of the book. The first part is called "Decoupling from infrastructure". The first chapter is about designing the domain model in a decoupled way.
During the following months I'll be publishing one new chapter at least every two weeks, and every time this happens, the minimum price will go up with 2 dollars. Note that if you get your copy now, you will be entitled to all future updates.
Gain access to a new platform: "Read with the author"
There's a special package available on Leanpub which gives you access to the new "Read with the author" platform. If you buy that package, you can join a regularly scheduled video chat, where we go over a new chapter every two weeks. You will be able to use these sessions to deepen your understanding of the topic, and learn about related topics that didn't make it into the book. You can ask questions too, so you'll be prepared in the best possible way when you start applying the ideas from the book to your own projects.
Inspect a showcase project that illustrates the book's concepts
The book itself contains many architectural principles and design patterns, illustrated with code samples and diagrams. However, not all the relevant details fit on a page. And sometimes things are a bit different in a real-world project than they are in idealized code sample scenarios. In fact, the real-world project that I offer alongside the book is the "Read with the author" platform which I've just described. Its code base follows the concepts explained in the book and shows how the different objects work together to provide a working application that is not another Todo app, but a normal application, with everyday use cases we can all relate to. Reading through the code and the tests will provide you with many implementation ideas for your own projects.
Access to the showcase project is kindly supported by Gitstore.
Conclusion
I hope that all of this adds up to a nice reading experience, and that you'll have fun with the book, and any combination of related products. Get it now, while it's hot, and join other readers in their adventure!
And as always: thank you very much for your ongoing support and interest.
P.S. If you want to buy this book for your team, or for multiple teams: check out the Team and Enterprise licenses.
We all get tons of new ideas constantly as designers. Which is awesome – don’t get me wrong – but sometimes we get way more ideas than we can actually get to in one sitting. Or even in one lifetime.
Often, designers simply jot down those excess ideas in a notebook and file them away somewhere, but that’s boring and unhelpful.
The truth is, there are far better ways to deal with your spare ideas. Here are some suggestions on what to do with them.
Give Yourself A Deadline
If you really want to finish something, force yourself to make time for it. We often have more time than we think we do, so if an idea is really burning a hole in your desk drawer or hard drive, it’s time to pull it out and make time to finish it. This may require reorganizing your to-do list, and letting go of other items that are less important.
Ultimately, it’s up to you to decide whether this project is really worth the sacrifices you’ll need to make in order to finish it.
Sometimes it is and sometimes it isn’t, but you’ll never know for sure unless you actually schedule time to analyze your priorities.
Combine Them With Other Ideas
If you’re anything like me, you come up with approximately a million and one ideas every single day. Over the course of several years this can add up to… well, a lot of ideas.
Often, these ideas might be compatible with one another, in ways that you might not expect. You can always combine ideas if you don’t have time to do each one. Sometimes this results in an even better idea.
Combining ideas is actually a well-known brainstorming technique, in fact, because the juxtapositions can open up new creative pathways in your brain and put you on the path to your best idea yet. Or at least something that you will actually want to finish.
Give Them To A Friend
Ideas are free; you can’t legally copyright an idea. But you can still give away some of your extra ideas that you know you’re not going to get to anytime soon to someone else who might use them in the near future. They might know exactly what to do with the idea, and will be grateful that you’ve helped them develop their creativity a bit more.
By the way, if you’re worried about having your idea ripped off or stolen, don’t be. Your friend won’t implement the idea the exact same way you would, so there’s nothing to worry about.
Also, consider this: if an idea isn’t good enough to be stolen, it’s probably not worth doing in the first place.
Drop Them
Sometimes it’s better to just admit that you’ll never use an idea and move on. Holding on to old ideas can actually hold you back creatively. You want to be fostering the development of new ideas, not hanging on to old junk that’s never going to be realized. You might be surprised to discover, after a few years have gone by and you’ve managed to drop an idea, that it wasn’t even that good of an idea in the first place.
This has happened to me many times, and I consider it a good sign. As your taste develops, you learn to detect bad ideas more easily, and you’ll no longer be stifled by those ideas you’re not completely sold on.
Ideas are useless unless you act on them. Don’t forget to check your backlog of ideas often to make sure you’re not simply stockpiling them for a “rainy day.”
Whether you combine them, power through them, give them away, or drop them, always make sure you’re keeping things rotating in your creative process. Shaking things up, shuffling ideas around, arranging ideas like pieces of a jigsaw puzzle is a great way to get your creative juices flowing, even if you never end up doing anything with the idea.
One of the more unique aspects of WordPress is that designers can choose how they want to utilize it. We can build websites that do any number of things – and there are plenty of different ways to do so.
For instance, we can create a theme from scratch or download one of the thousands of free or premium options. Or, we might choose to create content with the Gutenberg block editor or take advantage of a page builder plugin.
These choices matter, as they will determine a lot about the finished product. Will it function the way we need it to? Will it look the way we want? How flexible will it be to change in the future? And, perhaps most importantly: will it lock us into a specific product?
There’s a sort-of bottom line with these choices. In essence, we’re deciding whether or not we want (or need) to write custom code.
It’s kind of a big deal. And, as WordPress and its ecosystem continue to evolve, it does make one wonder if more designers will choose code-free solutions. But, if so, what are the ramifications?
Page Builders Are Getting Better
We’ve arrived at this point in no small part because of the WordPress developer community. Page builder plugins, for example, have been around for years.
Early on, these products tended to be sloppy approximations of what one could accomplish with some knowledge of CSS and PHP. Still, they brought the ability to create a custom page layout to a larger number of people.
Professional designers (myself included) could sometimes be quite dismissive of these tools. Code-wise, they were very much all over the map in terms of quality. And utilizing a page builder felt like cheating your way through a project.
However, plugin authors continued to improve their products. Modern tools have evolved to the point to where the code is cleaner and responsive. In addition, deactivating a page builder will result in lost content formatting, but no longer will your pages display massive amounts of unused shortcodes.
Gutenberg Brings Blocks to a Default Installation
WordPress itself has moved to a more visually-oriented way to create content. When the Gutenberg block editor was introduced in WordPress 5.0, it aimed to bring a more consistent user experience. This was in part a response to the bespoke techniques developers had used to get around the Classic Editor’s limitations.
It also signaled that you didn’t necessarily need to write custom code to accomplish more complex layouts and features. The editor has spawned its own ecosystem of custom blocks, which you can add as needed.
While Gutenberg isn’t necessarily in direct competition with full-blown page builders, it does provide a much more lightweight alternative. And, as more blocks become available, it will likely lead to more designers sticking with the native editing tool.
In addition, the block editor will eventually allow for full-site editing. This means that, in addition to creating content, we’ll have the ability to create an entire website visually – all within a default installation of WordPress.
When this comes to fruition, it seems that code will become very much optional for anyone building a website with WordPress.
The Good and the Bad
The switch to a code-free site building experience has some potential positives and negatives:
Positives
Whether it’s through a page builder plugin or Gutenberg, these tools allow anyone to create custom page layouts. In addition, they can add more complex content such as post listings, image galleries, navigation and more. All it takes is a few clicks, drags and drops.
When used in combination with a compatible theme, the ability to build an entirely custom website also comes into the realm of possibility. This is a pretty big step for WordPress in terms of competing with many of the DIY website builders on the market.
There is also an opportunity to usher in a much more consistent editing and building experience. Too often, readymade themes have implemented custom solutions that can lead to confusion for users.
And it didn’t help that even the recommended tool, the WordPress Customizer, is meant to handle some tasks – but not others. This has meant switching between various UIs to try and piece together a site. It’s doable, but not the most user-friendly process.
Gutenberg’s continued evolution is a potential game-changer in this area. The back-and-forth between interfaces disappears, as we would have a singular UI for all of our design and layout-related tasks.
Negatives
Despite the many positives of a code-free future, there are some real drawbacks. Perhaps the most immediate is that it may just allow non-technical users a little too much freedom.
One of the really handy aspects of a custom-built theme is that designers can lock down items they don’t want clients to touch. That may become a much more difficult challenge if everything is available in a visual UI.
This already exists somewhat with page builders. But Gutenberg could make it even easier for an adventurous client to go too far with their design experimentation. Hopefully, there will be some sort of built-in way to safeguard against this type of situation.
The other large issue is a potential lack of opportunity to do more with a theme. After all, it’s often those little bits of custom code that make a website unique. Could this new way of doing things prevent developers from adding template-based code snippets? Will everything have to be a block?
Finally, it’s also worth wondering if this discourages new developers from tinkering with code. Theme development is such a common starting point for learning PHP, CSS and JavaScript.
True, creating custom blocks is an opportunity to write code. But not everyone will go that route. It would be a shame to see that can-do spirit go away.
An Evolving Landscape
The fact that WordPress is moving towards a visually-oriented design process has been evident for some time. Since the first glance at Gutenberg’s block-based editing experience, or even the advent of the Customizer years earlier, it seemed like the goal was to accomplish more design tasks without touching code.
As the back end of the CMS becomes more polished, the way of building with WordPress as we know it is changing. Code will still be a part of the process – for those who wish to use it. For others, design will fundamentally shift towards interactive tools.
This will open up a whole new world of possibilities for a lot of people. What will it mean for web professionals? That story is still being written.
Our compilation for the month of April comes packed with awesome new web dev tools, including lots of Bootstrap goodies, a new testing framework, and more!