Hello Builders! Hope you had a wonderful week! For this week’s TWIL post, I’d like to share a slight change to the series moving forward.
As I mentioned in my previous post, I’ll continue writing one TWIL post each week, but the content might shift a bit. Instead of diving deep into a couple of technical topics, I’ll provide a high-level overview of what I’ve learned. While these posts might be shorter than before, they’ll still offer enough insight to get you started or to spark your interest. For those of you eager for a deeper dive, don’t worry—I’ll be creating separate, detailed posts on specific topics. So, stay tuned for those!
Now, with that out of the way, let’s jump into what I’ve been exploring this week.
NPM Packages
While scrolling through my X feed, I stumbled upon an announcement from OnchainKit about adding a React component to their NPM package. Intrigued, I decided to check out their GitHub repository and see if I could contribute. As I browsed through their docs, I noticed a couple of issues that seemed easy to fix. Following their contribution guidelines, I forked the repository, cloned it to my local machine, and started exploring. In the process, I discovered several packages I hadn’t encountered before. Let’s quickly go over them.
Vite
A front-end build tool and development server designed for speed and efficiency. It offers features like dependency pre-bundling and hot module replacement. If you’re interested in learning more, I recommend checking out their official docs.
Vitest
A testing tool tailored for Vite, with an interface similar to Jest. If you’re already using or planning to use Vite, this is worth a look.
Changeset
A versioning tool for multi-package repositories, making it easy to bump project versions and create changelogs. For those working with multi-package repos, their README is a good starting point.
MDX
JSX with markdown capabilities, allowing you to use JSX in markdown files with .mdx
extension. I believe it’s particularly useful for creating interactive documentation. See the official doc for more.
Vocs
A documentation framework powered by React and Vite. Follow their project structure, and you can quickly generate a documentation website complete with rich features, including navbar, sidebar, and search functionality. It even supports markdown and MDX. For more information, check out their official doc.
I haven’t had the chance to dive deep into each of these yet, but I hope this overview gives you a good starting point to explore further.
Agile Software Development
Lately, I’ve been reading "Agile Software Development: Principles, Patterns, and Practices" by Uncle Bob, and it’s quickly become one of my favorite books. I’m only up to chapter seven, but it’s already packed with insights not just on Agile development, but on software development in general. Here are a couple of key takeaways as appetizers.
First Test, Then Implementation
I used to underestimate the benefits of Test-Driven Development (TDD), thinking it was inefficient to write tests before implementation. However, this book opened my eyes to how TDD can guide better software design by forcing me to think from the perspective of a customer (i.e. person who will use my code). I’m eager to try this approach in my next project.
Design for Now, Not Later
This advice is straightforward. If you notice a repeating pattern, apply design principles or patterns to improve it. If not, keep it simple. Overcomplicating your design with unnecessary abstractions can make it harder for others (and even yourself) to understand. I’ll be keeping this in mind in my future development work.
Once I finish the book, I’ll definitely write a separate post to share all the insights I’ve gained.
Wrapping Up
That’s it for this week! This TWIL post ended up being a bit lengthy, but I hope you found it helpful. Wishing you all a great week ahead and happy hacking! ☕️