A big part of being efficient and/or remaining competitive is tackling the less/more relationship: that is, accomplishing more in less time. Unfortunately, like everything in this world, things are not as easy as they seem.
Put your helmet on, dive deep into the process and only then will you discover unforeseen drawbacks or - in a more optimistic note - potential shortcuts.
One such shortcut reveals itself when you're trying to write reusable components. It might not seem like a shortcut at first, as it involves much more craftsmanship than writing a component suited just for the task at hand would require.
(By component I don't necessarily point to React components, but to any piece of code that performs a well-defined task.)
Getting into the mindset of writing orthogonal components not only keeps source code under control but also helps programmers stay sane as the project grows and evolves.
And since I mentioned React, here's a basic example.
The client wants an app which has to be on both mobile and web. Let's say you're using React for the web and React Native for the mobile apps. Bingo! Now's the time to reuse as much code as possible because there's a high chance the apps have almost the same features on all platforms (here's how this practice pans out in the bigger picture of a product development agency).
Designing your redux store as platform-agnostic as possible is key for code reuse.
What happens is that the redux code should work in an (almost) plug-n-play fashion for both codebases. No need to write it twice, no need to reason about a specific feature twice. All you and your team need to take care of is the platform-specific UI and the implementation details that are not compatible. This saves time and makes features easier to maintain. Of course, it also means you have to keep the code between the two codebases in sync. Depending on the specifics of the project, this could be either a mundane or a fairly complex task.
I'm confident that even if your reusable components never get to be used outside the project, writing code within this approach keeps your codebase cleaner and easier to maintain.
That's it. Enough ranting on my side, let's jump to the articles which popped in the group chat the month that just passed.
"Time doesn’t exist, therefore writing code for it doesn’t matter, so boom, we’re done here! Thanks for reading".
We all know that dealing with time is a tricky endeavor, both in day-to-day life and when you're writing code which handles that booking request to a business running on a different timezone. At least nowadays it's easier than it was in 1882 (that's when they settled for creating a comparative timetable of the U.S. cities compared with noon time in Washington DC).
It's a blunt, funny and informative piece of article I received from Vlad, and which I highly recommend as it's one of the best I've read in a while.
Instead of using concurrent programming to handle complex computations, what if there were multiple Business Logic Processors that run on a single thread and we use the output from only one of them (discarding the rest)?
This redundancy ensures zero downtime and the promise that an output is always delivered (unless all Business Logic Processors fail at the same time, in which case we make use of Snapshots of previous states and rebuild the state). Recommended by Cosmin.
"A spec must describe a product as if it already exists. A spec must sound like a manual, a tutorial, or a reference".
Although I usually avoid articles/books with lists in their title, this has to be an exception.
Trello boards are being indexed by Google. This is not a big deal until you start storing credentials using Trello cards. Recommended by Darius.
A little story about a little computer worm. Recommended by Piter.
With this, I conclude the current issue and hope you stick around for the next one (it can pop up in your feed if you follow Around25 here).
One more thing: if you're in the mood for more reads, there are plenty my fellow Around25-ers recommended in the past (check this).
We want to hear your favorite reads and ideas too, so get in touch with us!