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

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.

主站蜘蛛池模板: 金门县| 格尔木市| 台北市| 缙云县| 益阳市| 博湖县| 牟定县| 浙江省| 方正县| 诸城市| 宁武县| 天峻县| 陆良县| 栾川县| 东丰县| 米脂县| 秀山| 邵东县| 阳原县| 郴州市| 罗江县| 长寿区| 道真| 开原市| 夏津县| 仁化县| 德钦县| 荃湾区| 长春市| 绥棱县| 镇平县| 天等县| 监利县| 绥化市| 新野县| 象山县| 六枝特区| 密云县| 开远市| 吉木萨尔县| 巴林右旗|