Week 15: 13th Nov - 17th Nov
Started going through the system (top-down) seeing where I can make small improvements (such as better naming, solving things I noted down as to-do and so on). The customer postponed the meeting to the end of the day which gave me time to ensure all the things I wanted to show, were in fact still working after my changes (things that aren’t covered by unit tests).
Meeting went splendidly and as Ian’s away I asked Jake to help out, by making sure I don’t babble on. Lastly the customer finally (a lot later than I would have liked) linked me to the location where more sample files are located. And as soon as the meeting was over I started digging through them to find any discrepancies.
In the end, I found few minor discrepancies which shouldn’t be too hard to account for, however the last template I had a look at would require quite a significant amount of work in order to be accounted for. This will require some investigating, but at first glance looks like it might be a right pain in the ass.
Finished going through the files, noting down any deviations from the file I was supplied with initially. I contacted the client about the deviations to figure out which ones the system needs to be prepared to handle.
As I was waiting for the response, I decided it would be worth going over my old code, refactoring it and writing as many (thorough) unit tests as I could. This in turn would give me at least a basic safety net, which will come in handy when making changes to account for all the edge cases I found. Not much new progress was made, although something noteworthy - I wrote set of unit test for a class, which already was covered. Anyw ho the new tests were superior and more in-depth!
Half-day and working from home! I received a response from the client regarding edge cases I detected. The worst of the edge cases I located is not something I need to be concerned with!
With work done, I headed down to Nottingham to meet up with friends which I haven’t seen it a while, I also attended a talk about Automated Algorithm Design presented by Thomas Stutzle.
Forgot to note down what I worked on…
Worked on decoupling key aspects of the code in preparation to making the system more testable, and did general refactoring, seeing as I’ve improved quite a bit since I’ve written the code originally. Also, I began installing one of the product images for the team tester (Ben) to test.
Week 16: 20th Nov - 24th Nov
Separated few layers of concern, which ensures that different levels of abstraction do not mix.
More old logic decoupling (by old, I’m talk written few weeks/months ago), then unit testing the decoupled classes, and adding minor things to account to handle recently discovered edge cases.
First software design review eve; my software got absolutely shredded! I joke, most of the things that got pointed out where low level things like using var
instead of explicitly declaring the type. There were few other, minor suggestions that I received, but as a whole, the review went much better than I anticipated.
Began making the improvements, based on the feedback I received on Wednesday. One of the main things that was pointed out, was my usage of magical values everywhere. And to mock that I added a new meme to Phabricator which is to be used during morning audits whenever a magical value appears. Lastly, I updated number of existing and added a bunch of new unit tests.
I have no memory of this day…
Week 17: 27th Nov - 1st Dec
Started the week off by cancelling the meeting with the client, as no significant and tangible progress has been made since the last meeting. I proceeded by making further improvements based upon code/design review feedback and began writing implementation/change to account for an edge case in data verification.
Finished implementing the verification thing I began on Monday.
Fixed an issue where thumbnail generation wasn’t able to save the thumbnail image data, because the directory location did not exist. Fix simply created appropriate folder structure necessary by checking whether it exits (I started writing my own implementation for number of these checks, but I noticed that the exact implementation already existed in .NET).
Managed to do A LOT of debugging and implemented an archiving feature which was brought up during last meeting with the client.
Made improvements to auto-generation of certain data values inside the database. Had a catch-up with Ian and spent the whole morning decorating the office with Christmas music by Jake! Overall a very productive week.