Where has the time gone? To think I’m writing the blog post for my last project is surreal to me! I decided to push my limits and step outside of my comfort zone for this project. I decided to build a typing game for my final project. For me, this seemed difficult because I’ve never built a game before, all previous labs/lessons have been a review app or something similar, never a game. At first I wasn’t confident in my abilities to create what I had in mind, but I did it and it is truly an amazing feeling knowing that I did!
When leading up to the Ruby on Rails project, I felt like I knew what I wanted to do and how to properly do it. Which was a considerably different feeling than the one I had the week before JavaScript project week. It took me a day or two to think of and settle on a project idea. The requirements for this project were a lot looser than the previous project which made it more difficult to decide what to do!
Learning ruby as a first programming language has been truly enjoyable. Once I had finished my Rails project and was starting my JavaScript curriculum, I quickly noticed how readable and expressive Ruby was. I find Ruby to be expressive, intuitive, simple and powerful in many ways!
About a week before starting my rails project I started thinking of ideas for the application I wanted to build. I had thought of a “Renters Review” app. In this app, there would be two different types of users (Landlords and Tenants). I had to research on how to keep one user class but have two different types of users with different attributes/ relationships to other models. With the help of a friend from my cohort, we thought it would be best to make the class polymorphic. This means that there would be different variations of the user class. After about 3 days of doing this project, I decided it was best for me to put it on the back burner and try to finish it some other time. The polymorphic relationship was causing me to have a lot of trouble using OmniAuth and I didn’t want to risk falling behind and not having my project done in time!
When starting the Rails Curriculum, the concept of convention over configuration was said to be the basis of Ruby on Rails. The Rails framework has provided developers with an environment designed to get more done, in a shorter time with less code. Convention over configuration is defined as a software design paradigm that attempts to minimize the number of recurring decisions that a developer needs to make. In Rails, the repetitive part of programming is abstracted away to allow you to focus more on problem solving. I’ve noticed that the naming conventions in the Rails framework follows a natural/sensible thought process. For example, when using the resources macro for the application routes, it creates the 7 RESTful routes and provides url helpers with appropriate naming. It’s conventions like this that help cut out a bunch of time in the developing process. Convention over configuration in Rails allows you to focus more on problem solving by abstracting the repetitive stuff away! Being new to the programming world, I thought Rails would be extremely difficult for me to learn. However, I’ve found that the constant use of convention over configuration has made everything in the framework come together very naturally.