ch13 review

This commit is contained in:
chai2010
2015-12-24 14:37:53 +08:00
parent 983524dbc8
commit 427ac25df9
7 changed files with 138 additions and 92 deletions

View File

@@ -1,11 +1,12 @@
## 13.5. 幾點忠告
我們在前一章結尾的時候, 我們警告要謹慎使用反射. 那些警告同樣適用於本章的 unsafe 包.
我們在前一章結尾的時候我們警告要謹慎使用reflect包。那些警告同樣適用於本章的unsafe包。
高級語言使得程序員不用在關眞正運行程序的指令細節, 同時也不再需要關註許多如內布局之類的無關實現細節. 因爲這個絶緣的抽象層, 我們可以編寫安全健壯的, 併且可以運行在不同操作繫統上的具有高度可移植性的程序.
高級語言使得程序員不用在關眞正運行程序的指令細節同時也不再需要關註許多如內布局之類的實現細節。因爲高級語言這個絶緣的抽象層我們可以編寫安全健壯的併且可以運行在不同操作繫統上的具有高度可移植性的程序
但是 unsafe 包, 讓程序員可以透過這個絶緣的抽象層使用使用一些必要的功能, 或者是爲了更高的性能. 代價就是犧牲了可移植性和程序安全, 因此使用 unsafe 是一個危險的行爲. 我們對何時以及如何使用unsafe包的建議和我們在11.5節提到的Knuth對過早優化的建議類似. 大多數Go程序員可能永遠不會需要直接使用unsafe包. 當然, 永遠都會有一些用 unsafe 包實現會更簡單的場景. 如果確實認爲使用 unsafe 包是最理想的方式, 那麽應該盡可能將它限製較小的范圍, 那樣其代碼忽略unsafe的影響.
但是unsafe包,它讓程序員可以透過這個絶緣的抽象層直接使用一些必要的功能,雖然可能是爲了穫得更好的性能。但是代價就是犧牲了可移植性和程序安全因此使用unsafe是一個危險的行爲我們對何時以及如何使用unsafe包的建議和我們在11.5節提到的Knuth對過早優化的建議類似大多數Go程序員可能永遠不會需要直接使用unsafe包。當然,也永遠都會有一些需要使用unsafe包實現會更簡單的場景如果確實認爲使用unsafe包是最理想的方式那麽應該盡可能將它限製較小的范圍那樣其代碼忽略unsafe的影響
現在, 把最後兩章拋入腦後吧. 編寫一些實在的應用. 遠離reflect的unsafe包, 除非你確實需要它們.
現在,趕緊將最後兩章拋入腦後吧編寫一些實實在在的應用是眞理。請遠離reflect的unsafe包除非你確實需要它們
最後用Go快樂地編程。我們希望你能像我們一樣喜歡Go語言。
用Go快樂地編程. 我們希望你能像我們一樣喜歡Go語言.