官术网_书友最值得收藏!

The Time It application

A couple of years ago I was working with some friends on a personal Java project. We used to meet every Saturday to review what we had done before building the entire system. Let me introduce you to my friends: Susan Obstinate and Mark Nowsitall (weird last names, aren't they?).

"I've spent the entire week writing this code, but it's ready now," said Susan with an embittered tone.

"Let me see how you handled that," replied Mark suspiciously. Though they didn't seem to be, they were a couple.

So Susan proudly showed us her piece of code:

// some nasty code was here (censored for respect of the reader)
public String getUglyUrl(long total) {
    String url = "http://localhost/app/someservice?code=";
    
 for(long i = 0; i < total; i++) {
        url += someTrickyMath(i);
    }
    
    return url;
}

public String someTrickyMath(long i) {
    // (censored)
}

"We can use an int object type instead of long for the loop in your getUglyUrl method," instantly affirmed Mark.

"I don't think we need that," said Susan.

"You could also use a StringBuilder class to..." I started to say, but suddenly got interrupted by Mark.

"An int object type would improve performance a lot. The int comparisons and manipulations are faster than long ones," Mark explained.

"What if the total gets too big? We'd need a long object type then," Susan argued.

"Total has never gone beyond 10,000 and I highly doubt it will in the near future," Mark replied.

We (actually it was Mark) finally managed to convince Susan to change her code.

There are lots of situations similar to this one, more complicated, and with tons of external factors that make it hard to be 100 percent sure about which of two code strategies will work faster. Let's take advantage of this story and develop a nice Vaadin application for timing code.

Note: please read the following sentence using a flamboyant and jazzy voice.

Introducing: Time It! The application that will show some facts to Susan.

主站蜘蛛池模板: 西盟| 栾城县| 广元市| 霍林郭勒市| 乐陵市| 陈巴尔虎旗| 萝北县| 肥东县| 井陉县| 绥宁县| 化隆| 龙南县| 徐州市| 息烽县| 八宿县| 基隆市| 磐安县| 重庆市| 阿荣旗| 荔浦县| 青海省| 高阳县| 怀远县| 玉环县| 达拉特旗| 紫金县| 永福县| 宜丰县| 宜都市| 开江县| 碌曲县| 宜良县| 班玛县| 安阳县| 贵州省| 明水县| 定襄县| 屯门区| 威信县| 屏东县| 古丈县|