Cycle #6, day 1 Off:
I did pursue my execution engine refactoring. I created a new class to encapsulate a core functionality of the engine in it. This did allow me to rip off an extra 500 lines from the execution engine main file. I think that before the refactoring it was 2000 lines long and I am now down to about 1,200.
This is introducing a very minor performance cost as I am creating communication interfaces between the various sub-components but the code is becoming so much cleaner. Easier to navigate and read. This is going to pay off in terms of maintainability and flexibility when the time will come to add features to it.
Update: Another round of refactoring is completed. I created a 4th utility class to encapsulate another execution engine sub-component. This has remove another 400 lines from the execution engine main file.
It is getting pretty slick. Just for the kick, I did return to my BASE journal. At the start of March, I had 40K lines of code written for my trading system. At the end of that month, I was up to 50K. I have written that in the first 2 months of the project, I wrote 40K lines.
I just checked how many lines there was currently in the current code baseline. It is now up to close to 64K lines. It seems like the pace has slowed down but this is probably ok. It is not the only metric to measure productivity. A lot of time has been spent to improve and fix existing code. 15K new lines in the last 5 months but a system that runs pretty smoothly for few weeks now... If only I could have some crazy volatility to trigger my system...
I did pursue my execution engine refactoring. I created a new class to encapsulate a core functionality of the engine in it. This did allow me to rip off an extra 500 lines from the execution engine main file. I think that before the refactoring it was 2000 lines long and I am now down to about 1,200.
This is introducing a very minor performance cost as I am creating communication interfaces between the various sub-components but the code is becoming so much cleaner. Easier to navigate and read. This is going to pay off in terms of maintainability and flexibility when the time will come to add features to it.
Update: Another round of refactoring is completed. I created a 4th utility class to encapsulate another execution engine sub-component. This has remove another 400 lines from the execution engine main file.
It is getting pretty slick. Just for the kick, I did return to my BASE journal. At the start of March, I had 40K lines of code written for my trading system. At the end of that month, I was up to 50K. I have written that in the first 2 months of the project, I wrote 40K lines.
I just checked how many lines there was currently in the current code baseline. It is now up to close to 64K lines. It seems like the pace has slowed down but this is probably ok. It is not the only metric to measure productivity. A lot of time has been spent to improve and fix existing code. 15K new lines in the last 5 months but a system that runs pretty smoothly for few weeks now... If only I could have some crazy volatility to trigger my system...