2013-05-04から1日間の記事一覧
IF YOUR APPLICATION is going to handle a large, persistent, interconnected set of data elements, don't hesitate to store it in a relational database. If your application's data is larger than the system's RAM, an indexed RDBMS table will p…
Know your next commit. If you cannot finish, throw away your changes, then define a new task you believe in with the insights you have gained. Do speculative experimentation whenever needed, but do not let yourself slip into speculative mo…
YOUR RESOURCES ARE LIMITED. You only have so much time and money to do your work, including the time and money needed to keep your knowledge, skills, and tools up to date. You can only work so hard, so fast, so smart, and so long. Your too…
as programmers we have time-proven Unix streaming tools that can help us manipulate our code. Let's spend a bit of time to study how to become more effective with our IDE.
A one-language programmer is constrained in her thinking by that language. Moving among these paradigms creates the greatest challenges. Why are these challenges good? That has to do with the way we think about the implementation of algori…
if an IDE is the only programming environment that you ever use, you may never fully understand what your tools are actually doing. You click a button, some magic occurs, and an executable file appears in the project folder. suggestion is …
If it's something I really don't care about and that really doesn't matter, I ask the team if we can change our warning policy. By making sure that the build is always clean, I will not have to decide that a warning is irrelevant every tim…
RESPONSE TIME IS CRITICAL TO SOFTWARE USABILITY. When performance is a problem in such applications, my experience has been that examining data structures and algorithms isn't the right place to look for improvements. Response time depends…
LESS IS MORE. It's a quite trite little maxim, but sometimes it really is true. It was a fun bit of extra stuff, and the programmer wanted to write it. (Hint: Write code because it adds value, not because it amuses you.) Someone thought th…
A good bug report needs to convey three things. How to reproduce the bug, as precisely as possible, and how often this will make the bug appear What should have happened, at least in your opinion What actually happened, or at least as much…
AS A PROGRAMMER, YOU'LL FIND THAT working hard often does not pay off. programming and software development as a whole involve a continuous learning process.
A "guru" is simply a smart person with relentless curiosity. one of software's biggest obstacles is smart people who purposefully propagate the guru myth. This might be done out of ego, or as a strategy to increase one's value as perceived…
API developers solve this problem in various ways, but the easiest way is to lock down the API. It's not enough to write tests for an API you develop; you have to write unit tests for code that uses your API.
CHANCES ARE PRETTY GOOD that you are not developing software at work that fulfills your most ambitious software development daydreams. The harder you work on an open source project, the faster you'll realize your true ambitions as a progra…
FLOATING-POINT NUMBERS ARE NOT "REAL NUMBERS" in the mathematical sense, even though they are called real in some programming languages, such as Pascal and Fortran. Because the spacing between adjacent floats in that range is 128, and floa…