The Seven Aspects of Software Quality
Software engineering is a complex field. Good software engineers are capable of balancing opposing forces and working within constraints to create great software. Poor software developers (they really aren’t engineers) are ones who are incapable of perceiving the trade-offs they are making and the implications of their design decisions (or lack thereof).
Delete Your Old Resume!
The cutting-edge software project I have been working on for the past couple of years is being axed. Accordingly, I have turned my attention towards finding an exciting new software development opportunity. As you know, I put 110% into everything I do. When I’m looking for a new job, the search gets 110% of my creative energy, my personal improvement efforts, and my ground-breaking practical experimentation. This time, I learned one simple thing that will radically alter the entire process.
The New Rule of New - Internal Objects
One of the challenges in Object-Oriented Design is figuring out exactly when and where objects should be instantiated. Where is the best place to create a new instance of an object? Where is it critically important not to create new object instances? When should you return a new copy of an object, rather than an existing instance? What are the competing code attributes that must be balanced against each other?
Type Erasure is a Failed Experiment - Type Integrity
In part one, we introduced the topic of Type Erasure, looked at an imaginary conversation with C# and the same conversation with Java, and delved into some of the problems with Java Generics. If you haven’t read that, go back and read it before you read this post.