In this week I was more focused on the feature of an open-source project that I mentioned before that is called Rise Media Player.
If there is no documentation the last hope is communication
Working in open-source projects makes me value more the interaction with the rest of the team and how you cannot just sit down and code to solve issues.
When you afront an already started project there’s a lot of things happening and that happened for a specific reason.
And most of the time, those reasons and sections of code are lost in time, and only the closer people to the project know about it.
For example, when I was doing work for the album thumbnails in the Media Player, there was a helper that makes the conversion of images to PNG format and saves it for further use.
If I had never putted in contact with the owner of the project, I probably never realize that that part of the code already exists.
That’s why from now on I’m going to try to better my communication with my coworkers and mates to have a better workflow and also have a better clean code.
How select an archive with C# and UWP
Something interesting that I do this weekend is read archives directly from the explorer in the Windows 10 OS.
On UWP is made via the instance of the object Windows.Storage.Pickers.FileOpenPicker that opens a native Windows file picker.
When the user picks a file, the function returns a StorageFile object for further use.
This was a very valuable experience for me in order to make better and more user-customizable applications with C#.
Basic design patterns
Also in this week, I reviewed some of the basic design patterns in OOP, such as singleton, builder, notation, and composite. In the following days, I will make simple examples to secure the knowledge and be prepared for further interviews.
Interfaces and abstract classes
I had been working on those aspects of OOP because I think is very important to understand for a position interview. I learn that an interface is just a document of declaration of methods that should be implemented in a class.
For example, you can have the interface engine, and then have a boat that implements the interface, so it has to implement the methods of the engine like “turn on”, “check oil”, etc.
This is linked also with the aspect of the polymorphism in the OOP.
On the other hand, there are the abstract classes, that are completely different from the interfaces.
Abstract classes have the methods with all the code needed, this way you can use them easily, this can be helpful in cases that you need a piece of code several times in different parts of your project like a static or singleton class.