- Hands-On Dependency Injection in Go
- Corey Scott
- 179字
- 2021-06-10 19:17:50
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.
推薦閱讀
- iOS Game Programming Cookbook
- Java Web開發學習手冊
- Spring Boot開發與測試實戰
- Mastering AWS Lambda
- C++程序設計(第3版)
- C#完全自學教程
- Python爬蟲開發與項目實戰
- oreilly精品圖書:軟件開發者路線圖叢書(共8冊)
- Building Mobile Applications Using Kendo UI Mobile and ASP.NET Web API
- bbPress Complete
- Working with Odoo
- AutoCAD 2009實訓指導
- Flowable流程引擎實戰
- Struts 2.x權威指南
- Instant Zurb Foundation 4