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

Start with simple – get complicated only when you must

As programmers, we should always strive to keep things simple, and resort to complexity when there is no other way. Let's see this principle in action. Try to determine what this next example does in three seconds or less:

func NotSoSimple(ID int64, name string, age int, registered bool) string {
out := &bytes.Buffer{}
out.WriteString(strconv.FormatInt(ID, 10))
out.WriteString("-")
out.WriteString(strings.Replace(name, " ", "_", -1))
out.WriteString("-")
out.WriteString(strconv.Itoa(age))
out.WriteString("-")
out.WriteString(strconv.FormatBool(registered))
return out.String()
}

How about this one:

func Simpler(ID int64, name string, age int, registered bool) string {
nameWithNoSpaces := strings.Replace(name, " ", "_", -1)
return fmt.Sprintf("%d-%s-%d-%t", ID, nameWithNoSpaces, age, registered)
}

Applying the approach embodied in the first code to an entire system will almost certainly make it run faster, but not only did it likely take longer to code, but it's also harder to read and therefore maintain and extend.

There will be times when you need to extract extreme performance from your code, but it's far better to wait until it cannot be avoided before burdening yourself with the extra complexity.

主站蜘蛛池模板: 镇平县| 肥乡县| 普兰县| 嵊州市| 那曲县| 韩城市| 东安县| 浮梁县| 太湖县| 鸡泽县| 惠水县| 诸城市| 友谊县| 襄汾县| 武安市| 分宜县| 新营市| 博客| 剑河县| 阜宁县| 香港| 榆社县| 富民县| 武义县| 纳雍县| 宁武县| 兴城市| 阳江市| 安龙县| 黄龙县| 区。| 颍上县| 周至县| 湘西| 赤城县| 吉林省| 云霄县| 大洼县| 绥中县| 乡宁县| 青铜峡市|