Book review
Hello, this is my book
review from book Facts and Fallacies of Software Engineering. I chose the book
because it was about my interest programming. We had to choose one chapter, so
I read chapter About Quality because it was most intriguing to me. I also think
that it can help me to produce better code. Chapter was divided to three main sections
that are Quality, Reliability and Efficiency. Sections are divided to different
facts about them.
For example, one fact
from book is that “There are errors that most programmers tend to make” (Glass, 2002) . That fact is no
surprise by any means but it is still important to remember the basics so you do
not make mistakes that can be easily avoided. Every programmer should consider this
when trying to avoid errors. Writer points out good example that everyone who have
been participant of code review remembers moment when someone was like this "oh-oh,
it's another one of those (brand-X) errors" (Glass, 2002) .
Avoiding errors can be sometimes difficult and you can probably never get hundred
percent surely code without any errors. That in mind you should at least try learning
from mistakes made by other programmers. If you can learn already made mistakes
out of your code, you are doing very well.
My reaction to the book
was it is interesting and gives useful information. I already knew many things
that were in the book, but it got me thinking more of them. I mostly agree with
the author. Some parts are more controversial but there is good discussion
about them.
“There are tradeoffs
between size and time optimization. Often, improving one degrades the other” (Glass, 2002) . The text contains
good example for algorithm function “For example, consider something as trivial
as a trigonometric function. Most trig functions are coded as algorithms; their
code consumes very little space, but their iterative nature means that they will
take some time to execute” (Glass, 2002) .
This is not always considered how so normal function works so it is important
to think that because I think I it can help improve coding. More intriguing point
of view comes from writer’s alternative “An alternative way of providing trig
functions is to build into the program a table of values and then simply
interpolate among them to get a result. Interpolation is far faster than iteration,
but a table will be far larger than that iterative code. (This solution was
actually employed on a space system I was involved with, where timing mattered
a whole lot and size didn't.)” (Glass, 2002)
We can improve our group
project by continuing keeping quality high. Book gives good reminder to that
and maybe trying to emphasize design little bit more.
References
Glass, R. L.
(2002). Facts and Fallacies of Software Engineering. Addison Wesley.
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.94.2037&rep=rep1&type=pdf
Comments
But couldn't the error be almost considered to be IDE's or debugger's fault, if 'most programmers tend to make' it? And so those errors are caused by overthinking in many cases? Or what do you mean by that "it is still important to remember the basics so you do not make mistakes that can be easily avoided" exactly?
This sounds like a topic that I would love to debate some more, even though I would be quite likely to lose miserably, due to my pretty much non existing research work😂.