What I learned in the first month of developing ClowderTask

What I learned in the first month of developing ClowderTask

Hello!

I started ClowderTask because I wanted to have a personal project outside of my university studies. I'm in my first year, and while I love my course and the assignments we're given, the freedom of doing a personal project was highly appealing.

Since we're heading into a new month, I wanted to do a bit of reflection on what the past four weeks have taught me. Hopefully, other beginners can learn from my mistakes and successes.

Organising my code and MVC

So, when I started this blog, I wanted to find a nice way to organise my code. I have not had classes yet about architectural patterns, so it was up to me to research it. The MVC architectural pattern looked great, so I quickly jumped on it and started working on organising it. However...

I've learned a lot since then! For example, while the MVC architectural pattern is great and very important in software engineering, it's not necessarily the most suitable for Windows Forms. Basically, in Windows Forms, the 'View' and 'Controller' parts are tightly knit together. I had to spend a lot of time decoupling the Controller parts from the View bits. I now think that possibly my code could have been well organised without using MVC.

On the other hand, trying to decouple the controller from the view has made me learn a lot about how Windows Forms works that I don't think I would have learned otherwise. There was a lot of trial and error, and it was pretty fun. Therefore, I don't regret it at all! Personal projects are for learning after all.

Overall, however, if you're just starting with Windows Forms, I would recommend not worrying about using MVC. I'm looking forward to seeing how my choice of architectural pattern will affect how I develop it later on.

Plans for April

In April, I'm planning on beginning to add functionality to the application. This includes putting tasks on a list and attaching tasks to them. I will research how I can use the System.Diagnostics.Process class for users to attach processes to tasks they have created. I think I may need to use the Process.GetProcessesByName property. I'll also need to set up a database and connect it to the Model layer to continue following the MVC architecture as close as I can.

My recommendations to other beginners!

  1. Plan things out first - which language do you want to use? Why? What architectural pattern? Why? It's better to have this kind of thing thought up well before starting. :)

  2. Actually start! Before I started this blog, I was trying to work on it on my own. I thought I'd be more motivated if I did it more publically (and I have been!). But starting and going through it has helped me learn new things I wouldn't have otherwise.

    Hope you learned something from this! Or, if you're a more seasoned developer, I would really appreciate some feedback. :) Either way, let me know in the comments below!