Saturday, April 14, 2012

4/9 - 4/13 CS373 Blog Post

Good afternoon everyone,

Another week has gone by!  It's incredible to realize that the semester is getting closer to the end.  Just a few weeks, and then we'll be in final exam week mode.  And then after that, we (or at least some of us) will have graduated from the University of Texas.  It's a crazy thought to think about; to realize that it's already been four years since the first time I stepped onto campus as a freshman.  It's a scary thought to think about because for now, I don't have anything planned.  I have been looking for job postings, but I feel like I don't really qualify for some of them.  It makes for a very worrisome experience, but I hope I can find something soon!

This week in class, we discussed about SQL and refactoring.  SQL has always been a fun subject for me, and I feel like with some practice that I've had with database development on a website I've been working on, I understood the topics quite well.  Relational database management, I've realized, is a highly important topic and is integral in attempting to minimize the amount of duplicated data in the database.  I've noticed this in my website, and I've actually decided to change the database schema up completely so I can reduce all of the bloat in my tables.  I probably won't get into this until later in May, since I have this project and a million of other things to work on.  But it is definitely something I want to fix, and it's something I'm excited to work on!  I've never understood joins very well, but they make complete sense with the use of primary and foreign keys.

Refactoring has been an interesting subject to talk about.  I think it's one of those things that we just do subconsciously after we're done writing the code that produces the results we want.  I do it all the time; I sometimes don't like where a method or a chunk of code is placed, and so I might create a subclass or a new method out of it to make it more organized.  The cached variable versus calling methods multiple times argument is an interesting one, and I guess it makes sense that calling a method multiple times doesn't really affect the program's performance so long as it isn't so intensive.  And while it is true that a local cached variable could get invalidated in between, it sometimes seems like it wouldn't be so likely.  Although I guess the argument begins to matter more significantly with bigger projects with hundreds of source code files.  The use of abstract classes was also an interesting one.  I recall learning about abstract classes literally once in my CS307 class.  I didn't really understand why it was necessary, other than to explicitly lay out what methods need to be implemented for a class that extends the abstract class.  But now it makes much more sense, and I see how useful they could be in a project that contains similar classes but with slightly different implementations.

This is all I have for now.  Until next time,

Corey

No comments:

Post a Comment