Light Day
Today was not my most productive day, but I still managed to get in a couple of good hours of studying in before hitting the pillow. Every Monday during our busy season at the golf course, I host a golf clinic for the ladies of the club. Another assistant and I started this up last year and it's really grown since we got it going. Last year, we would have weeks where we could only round up 3 or 4 ladies for the group; we're only in our second week and we're going to hit our maximum capacity next week, for sure. When we first started it, I was really nervous to be talking and teaching in front of a group of people, but about halfway through the year, I became really comfortable and confident in my abilities. Since then, I've found that I'm pretty good at it and I get a real sense of enjoyment out of leading the classes. After I finished that up in the morning, I had a doctor's appointment to check up on my ankle. Everything looks really good, and I've been told I can stop wearing the boot in 2 weeks. Looking at the x-ray, I could barely tell it had ever been broken in the first place; considering the severity of the break, this is amazing. I got home around 2 and my fiancé left for work shortly after, leaving me in charge of my little girl. I got her fed and down to bed, and then got to work.
I've been working on Stephen Grider's Modern React with Redux course on Udemy for the last couple of weeks, and am now in the home stretch of the course, with only about 10 hours left to go. Right now, I'm in the midst of a pretty large project, where we are building a clone of Twitch. This app is going to bring in several libraries and span a lot of complex concepts. So far, we've fixed up the routing with React-Router and handled sign-in authentication with OAuth, using Google to authenticate the users. I've had quite a bit of practice with both of libraries, more so with React-Router, and find them to be pretty simple at this point. Towards the end of the authentication section, though, we refactored the authentication to be handled by Redux, which definitely added a layer of complexity. Surprisingly, it was much simpler than I thought it would be, and we were able to refactor it with a minimal amount of code. Since we hadn't added Redux into the app yet, the majority of the added code was just boilerplate for Redux, and the actual implementation of the authentication was pretty straightforward. In the future, when I want to add a sign in function to my own projects, there is no doubt I will use OAuth instead of housing user information in a database. It is so much simpler and really more secure in the long run. After getting the authentication up and running, we looked at using the extension for the Redux Devtools, something I've definitely used in the past. This is one of the coolest and most useful tools for React developers out there, allowing the developer to travel back through each action and inspect the state therein.
The Devtools section was just a short introductory section and was only about 15 minutes long, so we quickly moved on to building out the form to create a new stream. Forms in React are notoriously more complicated than they should be, but there are some great libraries out there to help in the process. When implementing a form using the help of Redux, things can really get hairy. This is where one of these libraries really comes in handy: Redux-Form. Redux-Form has some of the best documentation I've seen of any library out there. There are plenty of examples of different kinds of implementations and a step-by-step guide to walk the developer through the process. Their site is really visually appealing and it's apparent they took a lot of time to create this useful guide. Without this documentation, I think Redux-Form would be really difficult to implement, but with it, I don't think it will be that hard. I'm about halfway through the section, and it's going really smoothly so far. Everything is really easy to understand and I'm able to make sense of the code. After I complete this section, we move on to the longest section on the course, which deals with creating a REST-based React app. Specifically, we are going to be turning this app into one that is REST-based, giving the user the ability to add, edit, or delete streams that they have created. This is something I've done in other courses, but not something I'm very comfortable with, so I'm looking forward to learning a lot.
Until tomorrow!