When it comes to web development, my experience has been a mix of trial and error, along with moments of clarity that often come at 3 a.m. Design patterns? I’ve heard about them, but my knowledge is still a work in progress. ICS 314 exposed me to various tools and frameworks like HTML, Bootstrap5, React, and NEXTJS. Each step brought new challenges and learnings, especially when trying to make webpages more user-friendly and accessible. So here’s my take on design patterns, based on what I’ve managed to piece together from my own coding misadventures.
My journey into web development began with HTML and CSS. These two are the bread and butter of creating web pages. They’re like the basic tools in a carpenter’s toolbox—essential but straightforward. HTML gave structure to my content, while CSS allowed me to style it. I learned how to position elements, style text, and make my pages look somewhat decent. It was a solid start but nothing groundbreaking in terms of design patterns. Think of it as the phase where you’re just happy if your code doesn’t crash.
Things started getting interesting when we moved on to Bootstrap5. Bootstrap introduced me to the Component Pattern, although I didn’t realize it at the time. Pre-built components like navigation bars and buttons made my life easier by reducing the amount of custom CSS I had to write. Bootstrap’s grid system and pre-defined classes were a godsend for layout and styling. It was a step up from the basics, like switching from a wooden hammer to a nail gun.
React took this concept further by allowing me to create custom components. Now, instead of writing repetitive code, I could build a component once and reuse it throughout my application. It was like discovering that the same key could open different doors. This approach emphasized modularity and reusability, making my code cleaner and easier to maintain. Though, let’s be honest, it also meant fewer nights of banging my head against the wall.
The real test came with NEXTJS. One of the significant projects involved creating user profile cards using React-Bootstrap’s Card component. This task required ensuring that the user interface dynamically reflected data changes. While I didn’t realize it at the time, I was implementing the Observer Pattern. This pattern ensures that changes in one part of the application automatically reflect in other parts. It’s like having a shadow that mirrors every move you make.
Using React’s hooks, I managed to make updates in one section of the app instantly reflect in another. Whenever a user updated their profile, the changes were immediately visible on the page. It felt like magic, but it was really just a well-applied design pattern making everything work smoothly. Well, smooth for code—let’s not talk about the occasional crash.
Initially, design patterns seemed like abstract concepts reserved for veteran developers. However, through practical projects, I realized their value in providing structured solutions to common coding problems. They help create code that is more robust, maintainable, and scalable. They’re like the unsung heroes of programming, silently making life easier.
I haven’t dived deeply into advanced patterns like Singleton or Factory, but the principles behind them have subtly influenced my approach to coding. Whether it’s creating reusable components in React or managing state changes in NEXTJS, design patterns have been guiding principles in making my code more efficient. Though, some days, just getting the code to run feels like a victory.
Design patterns are essential tools in web development, offering tried-and-true solutions to common challenges. My experiences in ICS 314 have highlighted their importance, transforming my coding from a mess of trial and error into a more structured process. As I continue to develop my skills, design patterns will remain invaluable resources, helping me tackle new challenges with a bit more confidence and a lot less stress. And who knows, maybe one day I’ll look back and laugh at how daunting all of this once seemed—or maybe just cringe a little less.
Side Note: Out of all the essays I wrote this semester, this is my first time using AI to assist me. It makes me feel as if I have schizophrenia, alzheimer’s, and dementia all at once. I think I’ll just stick to trying and failing at writing my own essays. For this essay, I used both ChatGPT and Copilot.