Posts

Showing posts from March, 2023

My Aesthetics Bring All The Users To The Yard: It’s Better Than Yours

Three aesthetic principles: layout, color, and typography work together to create the overall look and feel of a website. The AirBnB’s website provides a very clear message, with a focus on the homes the user plans to rent. Sufficient white space makes the homes stand out, and the information for each home is easily identifiable. The relevant information required to make a decision on an AirBnB home is prominent and clear. The various filter options at the top of the screen are accessible and easy to use, while also unintrusive. Above the fold, the user clearly understands the purpose of the website: to explore vacation home rentals with no other distractions. AirBnB’s implementation of the three aesthetic principles creates a welcoming user environment. Alternatively, LingsCars struggles to successfully implement the three aesthetic principles. In hopes of appealing to a younger audience, LingsCars focuses on implementing a fun and engaging website and forgets to provide a clear messa...

Always Use Protection: Why Adequate Documentation Often Saves A Failing Project

Mind maps allow a software developer to intentionally consider a customer’s needs and desires. When utilizing a mind map, a developer listens and records a customer’s statements and converts them into a visual working plan for a project. I enjoy using mind maps because they encourage a developer to build rapport with a customer. The customer remains the focus, and the software developer maps out a visual plan the customer can easily understand. By reflecting the statements back to the customer, the developer provides an opportunity for feedback from the customer increasing the likelihood that the software developer designs a system that meets the wants and needs of the customer. The customer feels supported and involved in the process. A user story allows a developer to quickly consider how an application applies to multiple user scenarios. A paragraph describes the initial user need and project idea. While a user story does focus on the wants and needs of the customer, it does not bui...

Code Maintainability: Context Alters Developer Preferences

The MVC Design pattern encourages developers to create reusable code that flexibly addresses different areas of concern. In the context of the MVC Design pattern, the DRY principle must be applied in a way that is compatible with MVC. The model handles data validation using our enum classes for different data types. A flexible base class allows a developer to extend a class to be used in the model for all data types. Data from the model is returned to the controller. In web-based MVC frameworks, html and css are returned from the view, and the controller manages the data flow request that is returned to a user’s computer. A base Criterion class that subsequent related classes would inherit allows a developer to implement the DRY principle in an effective way. This base class would provide all the foundational and generic functionality for any criterion the application is capable of handling. This program architecture exemplifies a developer preference that does not contribute to prog...

What is Good is a Matter of Opinion

Image
Creating an enum class for each data type creates multiple classes. The more data types you add to a program, the more classes you must create to accommodate the enum pattern. Some developers might consider this highly organized, while others might feel overwhelmed or annoyed that they must check multiple files for something as simple as a data comparison. Enum classes and if-else statements are both acceptable solutions to this problem. In larger programs, the enum approach is still manageable even with more classes because each class has a unique name. The multiple enum classes can become a problem if you later need to change 100 classes to alter how all data types are handled, but even this can be managed. To modify Version 4 of the final software, I would abstract the logic of the enum class and separate the type values into their own classes. This would allow me to have a central place to add additional logic to all enums. Alternately, to modify version 3, I would not have used en...