From Object Oriented Programming to Object Oriented Design

The good news is that I have finished my data scraping module for extracting all the company data listed on the two Toronto Stock Exchanges (TSX and TSV). I presented an alpha version of this data scraping module last week. I added the functionality to download all the historical quotes from Yahoo for all the companies. These data are stored locally in a cool HDF5 format with PyTables. I am very happy about that part.

The bad news is that my module looks more like a hacked job than a piece of software. There is no defined structure for my underlying codes. It is obvious to me that this module would be difficult to extend, which is the whole point of my project. In programming jargon, my code smells (Wikipedia).

Then it finally dawned on me. I am way behind in my programming skills.

For the past few years, my quant work has been confined to MatLab or some proprietary trading platforms. I wrote scripts. Not programs.

My problem with programming is that I am still stuck in a procedural programming mentality because that is what I’ve always used. Even though I updated my knowledge recently by learning Python, learning to program with an object oriented programming language is only the first step. (I am also familiar with C++ and Java from way back)

To use an analogy, programming a software is like constructing a building. The actual coding itself is akin to the construction work. I got that part. But coding without a well designed plan can only go so far.

It is now clear to me that if I am to build the trading software to complement my trading as I have envisioned it, I need to step it up with my software design ability.

Consequently, I am now catching up on object oriented design and analysis, as well as software design patterns with a couple of books. I will try not to get too carried away with these though. My main focus is trading. But this will be very beneficial for my trading in the long run if I can build a more robust trading software that can easily grow with my future needs.

I have many big plans for this side project of mine. I posted a UML diagram showing an architectural overview of my project.

Related posts:

  1. Eureka moment on design patterns for functional programming
  2. Software design, trading development process, and Ikea
  3. Getting started learning JForex programming

No Comments

Trackbacks/Pingbacks

  1. Re-learning Java a decade later | Quantisan.com - [...] words such as “code smell“, “design pattern”, and the likes are creeping back into my world as I am ...
  2. It’s an open buffet in a small business | Quantisan Systems - [...] storage: HDF5, CSV, Binary, MySQL, PostgreSQL, MongoDB, MonetDB, Redis, [...]

Leave a Reply

Your email address will not be published. Required fields are marked *

*

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>