This week in Object Oriented Programming, I learned about a lot of including range, the open-closed principle, iterators and how to solve the Australian voting problem. The thing I enjoyed learning, the most this week was about the open-closed principle specifically the closed principal is a part of the SOLID framework. The SOLID framework is a intended to enable better code for software designers, engineers, and programmers. The five parts of the SOLID framework are Single responsibility, closed, open-closed, Lysov substitution, interface, segregation, and dependency inversion. This week I learned about the open-closed principle. The most important part of it is "Software Entitites (classes, modules, functions, etc.) should be open for extension, but closed for modification." This means that you should be able to extend a module to accommodate for changing requirements, but you should not modify existing features. This ensures that the original implementation of the code or design stays the same, which allows for it to be more "backwards compatible." I think that is very important to consider software design when writing code. The open-closed principal allows you to really consider the usefulness of functions, modules, and sections of code. Specifically, considering reusability, ease of use, and efficiency. You need to be in the mindset of considering what a certain piece of code tries achieving, and making it something that doesn't have to be fully replaced when the next major change comes around.
My pick-of-the-week is the new Google Gemini music generation tool. It is directly integrated into the Google Gemini website and apparently let's you create music just from words or just a picture. I think that this sounds very cool and is one of the next things that Gemini is focusing on. I think that it's very interesting that it's able to generate music from an image. I'm curious exactly how it works and if it is similar to how an LLM processes, images and text already. I haven't really tried it out yet, but I'm curious on how good it is in creating catchy rhythms. I'm also curious on if it's able to create speech rather than just music. Here is the link to learn more from the Google Website: https://blog.google/innovation-and-ai/products/gemini-app/lyria-3/