2016 Year in Review
Well, this is my first year in review post! As I look back at my first blog post, Things I Want to Learn in 2016, I'm actually surprised at how small that list is compared to what I did learn.
Articles I Wrote
In the first year of my blog, I wrote 4 articles:
- Things I Want to Learn in 2016
- Setting Up a Personal Gogs Git Server
- Links From My Pocket #1
- RSS Feeds & Slack
I was hoping to write a lot more... I have a list of 15+ topics I'm interested in talking about. For 2017, I'm hoping to write more technical posts around web development.
Things I Did Learn
If I could summarize 2016 for myself in one word, it would be React. Although I had a bit of experience with React in 2015 (writing a static site generator called rovr), in 2016 I actually started using React for personal projects and at work! I fell in love with Redux, Immutable, and CSS Modules which pair really nicely together. I even made my own little react boilerplate project react-starter which I use for new projects and demos.
Regarding CSS Modules, I decided not to go back to any css-in-js libraries and ended up not trying Radium. I much prefer pairing css files to their respective components and not worrying about global class name conflicts.
As for the back-end, I didn't get around to trying Koa nor Socket.io. I did, however, try out a few other solutions such as the Laravel framework and Express. Laravel is nice to work with since it's a full framework that has everything you need out of the box. I only used Express shortly to try out json web token authentication and haven't gotten back around to it yet.
For testing, I finally got a chance to dive in head first and try out Mocha, Chai, and Sinon. I knew testing is really important, especially for teams. I still don't write tests for my personal projects yet. As I said a year ago, I like to build things fast and see results immediately. Writing tests slows things down a lot which doesn't make sense for me when experimenting. If I end up sharing my projects with other people or on GitHub (a few things I have in mind for 2017) then I would definitely take the time to write proper tests!
Other things I tried in 2016:
Docker for local development environments
- this could/will be an entire blog post for itself
- ReactNative for iOS
- Electron (powering another personal project I need to get back to!)
Progressive web apps & service workers
- I attended the Toronto PWA Roadshow back in September
But, above all, my favorite part of what I learned in 2016 happened in the last week... I started learning Elixir and the Phoenix framework! It's been really exciting to learn a new language and it's paradigms. For 2017, I'm deciding to write the back-end for my next project with this lovely pairing. I also expect myself to write blog posts around this stack as I continue to learn it.
In summary, 2016 was the year of learning for me. I tried many different libraries and tools that led to me coming up with my own set of best practices.
As for 2017, I'm going to slow down and ship one or two things. I have a few personal projects on the go and one is close to being complete! I expect that to go live in the next two months hopefully... more on that soon.
I'll be posting an article in the next couple days about my goals for 2017, so keep an eye out for that!