Post

Avatar
1/Venturing back into #developer territory, I had a thought about experience in relation to programming. I'm rewriting an app I began developing in '08 that's expanded over the years as the business changed. I've been a solo dev for the duration so all the good ideas - and mistakes - are all mine.
Avatar
2/Here's a small example - in 2008, I had done apps in ASP, PHP, and Perl, but NOTHING with OO langs. I'd also never written anything that complex. I understood DB normalization but had never dealt with the consequence of doing it incorrectly. So I started reading everything I could get my hands on.
Avatar
3/I understood things like inheritance, interfaces, GC, and lazy loading, enough to be dangerous. Looking back at a lot of that code is definitely cringe! BUT - the DB design was good enough that there's not much I'm changing. I also am happy with separation of concerns such that I'm keeping it too.
Avatar
4/So here's an example of experience making a difference: the site uses a LOT of data grids to display lists of sub-transactions, eg Purchase Orders, Invoices, etc. attached to a Project. Previously, I used jqGrid, which is great, but now I'm using DataTables.net (datatables.net).
DataTables | Javascript table librarydatatables.net
Avatar
5/I'm now able to render the tables server side and add searching and paging on the frontend with one call to DataTable(). My grids are about 90% the same - get the data from a SQL view, gen the really complex columns on request, render a partial view, and return to the client. Hello inheritance!
Avatar
6/The original code was a mess of copypasta bc I didn't understand inheritance (even though I'd read everything I could about it). This time, I set up my base class from the jump, had each grid inherit, and went from multiple 000's of LoC to a few hundred.
Avatar
7/Now that I understand what I'm doing, I'm streamlining all over the code which TRULY brings me joy. Throw in the advances in C#, plus the genius of LINQ, and I'm writing code like a madman. All the articles and sample projects didn't make me understand until I had a place to really use it.