JS/Rails Full Stack: A Tale of Two Ends

In my last blog, I touched on the often overwhelming breadth and depth of Ruby-on-Rails. I now realize that my struggles while building my last major project were likely attributable to a still very immature “code-sense.” There is a not-so-subtle art to developing code that is hyper-generalized to aid in translation/debugging for both yourself and other developers. In my past approaches, I have always held a sense of pride in writing code that finds unique, roundabout solutions to a problem. While this is useful in gaining confidence in your code, it certainly does not lead to a clean, efficient readable final product. In this new module, however, we began working with JavaScript; the event-driven staple of front-end development.

Something that quickly became apparent when starting with JS was the emphasis on organization and variable declaration. While many components of JavaScript resemble that of Ruby/Rails, there is are several distinct differences. For instance, JavaScript requires acute attention to variable types and where they are declared. In fact, one of the current issues I am dealing with while building my full-stack application is the location and type of variable to use to assign a username and pass it through to the end of the user flow before fetch() POST-ing it back to my Rails API!

While JS does have quirks that make it less “user-friendly” to code with, I have thoroughly enjoyed writing with it. Something about writing code that is so straightforward yet returns interactive, convenient content is very satisfying. Truthfully, JavaScript feels like a step toward narrowing down my area of interest within software engineering. I definitely enjoy writing backend code to parse information and manipulate databases but, to put it plainly, frontend/UX design is just more fun. Something that I still find fascinating is the limitless possibilities surrounding the basic JS concept of EventListeners. By simply monitoring the real-time “happenings” on a webpage, you can design anything from smooth transitions for login screens to full-fledged three-dimension RPG games.

Throughout this module, it has been repeatedly mentioned that JavaScript was not originally intended to handle complex processes. While this is obvious in its’ inaccurate handling of floats/decimals, the limitations are largely eradicated through clever manipulations of a basic system. As I mentioned above, these roundabout solutions are something of a specialty of mine. Thus, if I can continue working to keep my code generalized and easily adjustable, JavaScript feels like a step in the right direction both for my natural interests but also my strengths as a developer.

⁍ Full-Stack Software Developer ⁍ Biology/Environmental Conservationist ⁍ Avid Computer Nerd⁍