中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折!

歡迎光臨中圖網 請 | 注冊

包郵 100個GO語言典型錯誤

出版社:電子工業出版社出版時間:2024-01-01
開本: 其他 頁數: 420
中 圖 價:¥96.6(7.0折) 定價  ¥138.0 登錄后可看到會員價
加入購物車 收藏
開年大促, 全場包郵
?新疆、西藏除外
本類五星書更多>

100個GO語言典型錯誤 版權信息

100個GO語言典型錯誤 本書特色

1.Go語言“入門易,精通難”。 2.本書包含開發人員在使用Go語言時經常犯的100個典型錯誤,側重于語言核心和標準庫,而非外部庫或框架。 3.對于大多數錯誤,提供了具體示例,以說明什么時候容易犯這樣的錯誤。 4.沒有閱讀這本書,將是你的第101個錯誤。 5.這不適一本教條主義的圖書:每個解決方案都詳細傳達了其適用的上下文。 6.本書適合具備Go語言基礎知識的開發人員閱讀。 章淼 BFE 開源項目發起人、《代碼的藝術》作者、瑛菲網絡創始人&CEO、百度代碼規范委員會榮譽主席 本書的優點在于它既聚焦于Go語言,又不限于Go語言。本書在講述Go語言的同時,還不斷為讀者灌輸軟件研發的各種基本理念。我相信這種“案例學習”的方法對于讀者來說是一種較好的方式,也希望讀者在閱讀時能夠體會到作者的這番苦心,能夠超越Go語言來體會本書中的一些觀點。 謝孟軍 GoCN社區發起人、積夢智能CEO 本書通過清晰的解釋和實用的示例,能夠幫助讀者更好地理解Go語言的工作原理,并提供了一些*佳實踐和技巧。如果你想高效且準確地使用Go 語言進行開發,這本書絕對是你的**指南! 陳劍煜 《Go 語言編程之旅》作者 前幾年我就關注到了這本書,對于開發者而言有較大的參考和學習意義。本書歸類、講解、總結了7大類常見的錯誤,共100個具體的錯誤例子。在每個例子中,結合不同的場景進行了有針對性的說明,于學習之余也可以擴展你的技術視野。 王中陽 北京字節神話CTO 本書是一本實用且全面的Go語言指南,提供了Go語言開發中常見問題的深入解析和解決方案,不僅適合初學者,也適用于有經驗的開發者,這本書會成為你的良師益友。 魏如博(frank) 公眾號“Golang 語言開發!敝骼砣 簡單并不代表容易,即便是已經有一些Go語言使用經驗的開發者,也無法避免使用時出現錯誤。作者通過整理100個錯誤的“Go語言錯題本”,告訴我們使用Go語言時需要注意的一些陷阱。 楊文 Go 夜讀創始人 本書作者結合自己多年的Go開發經驗,深入分析了Go語言的常見錯誤,并為其進行了歸類。無論你是剛入門還是擁有豐富的Go開發經驗,都應該考慮深入探索這本書。 鄭建勛 《Go 語言底層原理剖析》及《聚沙成塔:Go 語言構建高性能、分布式爬蟲項目》作者 本書以100個典型且全面的例子涵蓋了Go語言開發中的常見錯誤,并深入探討了錯誤發生背后的原因及其對應的解決策略。其中許多例子都非常經典,是實戰中的真實反映。

100個GO語言典型錯誤 內容簡介

Go語言"入門易,精通難”。想要用Go語言寫出優質的軟件,不僅要了解Go語言的語法,還需要對Go語言的特性、軟件的通用編寫方法、軟件項目的組織方法、并發程序設計、軟件測試、軟件性能優化等方面都有一定的了解。 本書既聚焦于Go語言,又不限于Go語言,介紹了開發者在使用Go語言時經常犯的100個經典錯誤,內容側重于語言核心和標準庫。對大多數錯誤的討論都提供了具體的示例,以說明在什么時候容易犯這樣的錯誤。這不是一本教條主義的圖書,每個解決方案都詳細傳達了它應該適用的上下文。

100個GO語言典型錯誤 目錄

1 Go:入門易,精通難
1.1 Go 語言概述
1.2 簡單不意味著容易
1.3 100 個Go 語言錯誤
1.3.1 bug
1.3.2 不必要的復雜性
1.3.3 可讀性差
1.3.4 非*佳組織形式
1.3.5 API 對用戶不友好
1.3.6 代碼有待優化
1.3.7 效率低
總結
2 代碼和項目組織
2.1 #1:意想不到的變量隱藏
2.2 #2:不必要的嵌套代碼
2.3 #3:濫用init 函數
2.3.1 概念
2.3.2 何時使用init 函數
2.4 #4:過度使用getter 和setter
2.5 #5:避免接口污染
2.5.1 概念
2.5.2 何時使用接口
2.5.3 接口污染
2.6 #6:在生產者端的接口
2.7 #7:返回接口
2.8 #8:any 意味著nothing
2.9 #9:不知道什么時候使用泛型
2.9.1 概念
2.9.2 常見的使用方法和誤用
2.10 #10:沒有意識到類型嵌入可能存在的問題
2.11 #11:不使用函數式選項模式
2.11.1 配置結構體
2.11.2 生成器模式
2.11.3 函數式選項模式
2.12 #12:項目組織混亂
2.12.1 項目結構
2.12.2 包組織
2.13 #13:創建實用程序包
2.14 #14:忽略包名稱沖突
2.15 #15:缺少代碼文檔
2.16 #16:不使用代碼檢查工具
總結
3 數據類型
3.1 #17:使用八進制字面量會帶來混淆
3.2 #18:容易忽視的整數溢出
3.2.1 概念
3.2.2 在遞增操作時檢測整數溢出
3.2.3 在加法操作中檢測整數溢出
3.2.4 在乘法操作中檢測整數溢出
3.3 #19:不了解浮點數
3.4 #20:不了解切片的長度和容量
3.5 #21:低效的切片初始化
3.6 #22:對 nil 和空切片的困惑 .
3.7 #23:未正確檢查切片是否為空
3.8 #24:無法正確復制切片
3.9 #25:使用append 的副作用
3.10 #26:切片和內存泄漏
3.10.1 容量泄漏
3.10.2 切片和指針
3.11 #27:低效的 map 初始化
3.11.1 概念
3.11.2 初始化
3.12 #28:map 和內存泄漏
3.13 #29:比較值時發生的錯誤
總結
4 控制結構
4.1 #30:忽視在 range 循環中元素被復制的事實
4.1.1 概念
4.1.2 值復制
4.2 #31:忽視 range 循環中參數是如何求值的
4.2.1 channel
4.2.2 數組
4.3 #32:忽視在 range 循環中使用指針元素的影響
4.4 #33:在 map 迭代過程中做出錯誤假設
4.4.1 排序
4.4.2 在迭代時往 map 中添加數據
4.5 #34:忽視break 語句是如何工作的
4.6 #35:在循環中使用defer
總結
5 字符串
5.1 #36:不理解 rune 的概念
5.2 #37:字符串迭代不準確
5.3 #38:亂用 trim 函數
5.4 #39:缺乏優化的字符串連接
5.5 #40:無用的字符串轉換
5.6 #41:子字符串和內存泄漏
總結
6 函數與方法
6.1 #42:不知道使用什么類型的接收器
6.2 #43:不要使用命名的結果參數
6.3 #44:使用命名的結果參數的意外副作用
6.4 #45:返回一個 nil 接收器
6.5 #46:使用文件名作為函數輸入
6.6 #47:忽略defer 語句參數和接收器的計算
6.6.1 參數計算
6.6.2 指針和值接收器
總結
7 錯誤管理
7.1 #48:panic
7.2 #49:搞不清何時需要包裝錯誤
7.3 #50:不準確的錯誤類型檢查
7.4 #51:錯誤地檢查錯誤值
7.5 #52:處理同一個錯誤兩次
7.6 #53:忽略錯誤
7.7 #54:忽略 defer 語句返回的錯誤
總結
8 并發:基礎
8.1 #55:混淆并發和并行
8.2 #56:認為并發總是更快
8.2.1 Go 調度
8.2.2 并行歸并排序
8.3 #57:對何時使用channel 或互斥鎖感到困惑
8.4 #58:不理解競爭問題
8.4.1 數據競爭與競爭條件
8.4.2 Go 內存模型
8.5 #59:不了解工作負載類型對并發的影響
8.6 #60:誤解 Go 上下文
8.6.1 *后期限
8.6.2 取消信號
8.6.3 上下文值
8.6.4 感知上下文的取消信號
總結
9 并發:實踐
9.1 #61:傳播不恰當的上下文
9.2 #62:在不知道何時停止的情況下啟動 goroutine
9.3 #63:沒有小心處理 goroutine 和循環變量
9.4 #64:使用 select 和channel 來期待確定性行為
9.5 #65:沒有使用通知channel
9.6 #66:沒有使用 nil channel
9.7 #67:對channel 緩沖區大小感到困惑
9.8 #68:忘記字符串格式化可能產生的副作用
9.8.1 etcd 數據競爭
9.8.2 死鎖
9.9 #69:使用 append 函數創造了數據競爭
9.10 #70:對切片和 map 不準確地使用互斥鎖
9.11 #71:錯誤使用 sync.WaitGroup
9.12 #72:忘記了 sync.Cond
9.13 #73:沒有使用 errgroup
9.14 #74:復制sync 類型
總結
10 標準庫
10.1 #75:提供錯誤的持續時間
10.2 #76:time.After 和內存泄漏
10.3 #77:常見的JSON 處理錯誤
10.3.1 由嵌入式字段導致的非預期行為
10.3.2 JSON 和單調時鐘
10.3.3 map 中的any 類型
10.4 #78:常見的 SQL 錯誤
10.4.1 忘記sql.Open 不一定與數據庫建立連接
10.4.2 忘記連接池導致的問題
10.4.3 未使用預準備的語句
10.4.4 對空值處理不當
10.4.5 沒有處理行迭代錯誤
10.5 #79:沒有關閉瞬時資源
10.5.1 HTTP Body
10.5.2 sql.Rows
10.5.3 os.File
10.6 #80:在響應HTTP 請求后忘記加return 語句
10.7 #81:使用默認的HTTP 客戶端和服務端
10.7.1 HTTP 客戶端
10.7.2 HTTP 服務端
總結
11 測試
11.1 #82:未區分測試種類
11.1.1 build 標識
11.1.2 環境變量
11.1.3 短模式
11.2 #83:未打開-race 開關
11.3 #84:未使用測試執行模式
11.3.1 parallel 標識
11.3.2 shuffle 標識
11.4 #85:未使用表格驅動型測試
11.5 #86:在單元測試中休眠
11.6 #87:沒有有效處理 time API
11.7 #88:未使用測試工具包
11.7.1 httptest 包
11.7.2 iotest 包
11.8 #89:寫出不準確的基準測試
11.8.1 未重置或暫停計時器
11.8.2 對微基準測試做出錯誤假設
11.8.3 未注意編譯器優化
11.8.4 被觀察者效應愚弄
11.9 #90:未探索所有的 Go 測試特性
11.9.1 代碼覆蓋率
11.9.2 從一個不同的包進行測試
11.9.3 工具函數
11.9.4 設置和拆卸
總結
12 優化
12.1 #91:不了解 CPU 緩存
12.1.1 CPU 架構
12.1.2 緩存行
12.1.3 包含結構體的切片 vs 包含切片的結構體
12.1.4 可預測性
12.1.5 緩存放置策略
12.2 #92:編寫導致偽共享的并發代碼
12.3 #93:不考慮指令級并行性
12.4 #94:不了解數據對齊
12.5 #95:不了解棧與堆
12.5.1 棧 vs 堆
12.5.2 逃逸分析
12.6 #96:不了解如何減少分配
12.6.1 修改 API
12.6.2 編譯器優化
12.6.3 sync.Pool
12.7 #97:沒有依賴內聯
12.8 #98:沒有使用Go 診斷工具
12.8.1 分析工具
12.8.2 跟蹤工具
12.9 #99:不了解 GC 的工作原理
12.9.1 概念
12.9.2 示例
12.10 #100:不了解在 Docker 和 Kubernetes 中運行Go 程序的影響
總結
結語
展開全部

100個GO語言典型錯誤 作者簡介

Teiva Harsanyi 是Docker 公司的資深軟件工程師,常年研究Go語言及如何設計和實現可靠的應用程序,具有非常豐富的實戰經驗。
Go語言翻譯小組成員:曾浩浩 、晁岳攀 等,譯者均為資深軟件工程師,對Go語言編寫及軟件項目實現有豐富的實戰經驗。

商品評論(0條)
暫無評論……
書友推薦
本類暢銷
編輯推薦
返回頂部
中圖網
在線客服
主站蜘蛛池模板: 江苏皓越真空设备有限公司| 连续油炸机,全自动油炸机,花生米油炸机-烟台茂源食品机械制造有限公司 | 智能门锁电机_智能门锁离合器_智能门锁电机厂家-温州劲力智能科技有限公司 | 造价工程师网,考试时间查询,报名入口信息-网站首页 | led全彩屏-室内|学校|展厅|p3|户外|会议室|圆柱|p2.5LED显示屏-LED显示屏价格-LED互动地砖屏_蕙宇屏科技 | 土壤有机碳消解器-石油|表层油类分析采水器-青岛溯源环保设备有限公司 | 昆明挖掘机修理厂_挖掘机翻新再制造-昆明聚力工程机械维修有限公司 | 艾默生变频器,艾默生ct,变频器,ct驱动器,广州艾默生变频器,供水专用变频器,风机变频器,电梯变频器,艾默生变频器代理-广州市盟雄贸易有限公司官方网站-艾默生变频器应用解决方案服务商 | 上海阳光泵业制造有限公司 -【官方网站】 | 培训中心-海南香蕉蛋糕加盟店技术翰香原中心官网总部 | 顺景erp系统_erp软件_erp软件系统_企业erp管理系统-广东顺景软件科技有限公司 | 万烁建筑设计院-建筑设计公司加盟,设计院加盟分公司,市政设计加盟 | 淄博不锈钢,淄博不锈钢管,淄博不锈钢板-山东振远合金科技有限公司 | 国际线缆连接网 - 连接器_线缆线束加工行业门户网站 | 不锈钢水箱厂家,不锈钢保温水箱-山东桑特供水设备 | 标策网-专注公司商业知识服务、助力企业发展 | 不锈钢监控杆_监控立杆厂家-廊坊耀星光电科技有限公司 | 厌氧工作站-通用型厌氧工作站-上海胜秋科学仪器有限公司 | 杭州顺源过滤机械有限公司官网-压滤机_板框压滤机_厢式隔膜压滤机厂家 | 河南橡胶接头厂家,河南波纹补偿器厂家,河南可曲挠橡胶软连接,河南套筒补偿器厂家-河南正大阀门 | 粘度计维修,在线粘度计,二手博勒飞粘度计维修|收购-天津市祥睿科技有限公司 | 粉丝机械,粉丝烘干机,粉丝生产线-招远市远东粉丝机械有限公司 | 伸缩器_伸缩接头_传力接头-巩义市润达管道设备制造有限公司 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | 高光谱相机-近红外高光谱相机厂家-高光谱成像仪-SINESPEC 赛斯拜克 | 挤出熔体泵_高温熔体泵_熔体出料泵_郑州海科熔体泵有限公司 | 石油/泥浆/不锈钢防腐/砂泵/抽砂泵/砂砾泵/吸砂泵/压滤机泵 - 专业石油环保专用泵厂家 | 假肢-假肢价格-假肢厂家-河南假肢-郑州市力康假肢矫形器有限公司 | 酒精检测棒,数显温湿度计,酒安酒精测试仪,酒精检测仪,呼气式酒精检测仪-郑州欧诺仪器有限公司 | 丁基胶边来料加工,医用活塞边角料加工,异戊二烯橡胶边来料加工-河北盛唐橡胶制品有限公司 | 铝镁锰板厂家_进口钛锌板_铝镁锰波浪板_铝镁锰墙面板_铝镁锰屋面-杭州军晟金属建筑材料 | 耐火浇注料价格-高强高铝-刚玉碳化硅耐磨浇注料厂家【直销】 | 上海办公室设计_办公楼,写字楼装修_办公室装修公司-匠御设计 | 智成电子深圳tdk一级代理-提供TDK电容电感贴片蜂鸣器磁芯lambda电源代理经销,TDK代理商有哪些TDK一级代理商排名查询。-深圳tdk一级代理 | 不锈钢钢格栅板_热浸锌钢格板_镀锌钢格栅板_钢格栅盖板-格美瑞 | 模具硅橡胶,人体硅胶,移印硅胶浆厂家-宏图硅胶科技 | 自清洗过滤器,浅层砂过滤器,叠片过滤器厂家-新乡市宇清净化 | 合肥抖音SEO网站优化-网站建设-网络推广营销公司-百度爱采购-安徽企匠科技 | 蒸压釜_蒸养釜_蒸压釜厂家-山东鑫泰鑫智能装备有限公司 | 振动传感器,检波器-威海广达勘探仪器有限公司 | 杭州可当科技有限公司—流量卡_随身WiFi_AI摄像头一站式解决方案 |