返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:

  • 100个Go语言典型错误 (法)泰瓦·哈尔萨尼 著 Go语言翻译小组 译 专业科技 文轩网
  • 新华书店正版
    • 作者: (法)TeivaHarsanyi(泰瓦·哈尔萨尼)著 | | Go语言翻译小组译
    • 出版社: 电子工业出版社
    • 出版时间:2024-01-01 00:00:00
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    文轩网图书旗舰店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

         https://product.suning.com/0070067633/11555288247.html

     

    商品参数
    • 作者: (法)TeivaHarsanyi(泰瓦·哈尔萨尼)著| Go语言翻译小组译
    • 出版社:电子工业出版社
    • 出版时间:2024-01-01 00:00:00
    • 版次:1
    • 印次:1
    • 印刷时间:2023-12-01
    • 页数:420
    • 开本:其他
    • 装帧:平装
    • ISBN:9787121469138
    • 国别/地区:中国
    • 版权提供:电子工业出版社

    100个Go语言典型错误

    作  者:(法)泰瓦·哈尔萨尼 著 Go语言翻译小组 译
    定  价:138
    出 版 社:电子工业出版社
    出版日期:2024年01月01日
    页  数:420
    装  帧:平装
    ISBN:9787121469138
    主编推荐

    "1. Go语言“入门易,精通难”。 2. 本书包含开发人员在使用Go语言时经常犯的100个典型错误,侧重于语言核心和标准库,而非外部库或框架。 3. 对于大多数错误,提供了具体示例,以说明什么时候容易犯这样的错误。 4. 没有阅读这本书,将是你的第101个错误。 5. 这不适一本教条主义的图书:每个解决方案都详细传达了其适用的上下文。 6. 本书适合具备Go语言基础知识的开发人员阅读。"

    内容简介

    本书介绍了开发者在使用Go语言时常犯的100个典型错误和低效用法,内容侧重于语言核心和标准库。对大多数错误的讨论都提供了具体的示例,以说明在什么时候容易犯这样的错误。这不是一本教条主义的图书,每个解决方案都详细传达了它适用的上下文。
    本书适合熟悉Go编程和语法的开发人员阅读。

    作者简介

    Teiva Harsanyi 是Docker 公司的资深软件工程师。他曾在多个领域工作,包括保险、交通运输及像空中交通管理这样的安全重点行业。他非常热衷于研究Go 语言及如何设计和实现可靠的应用程序。

    精彩内容

    目录
    1Go:入门易,精通难
    1.1Go语言概述
    1.2简单不意味着容易
    1.3100个Go语言错误
    1.3.1bug
    1.3.2不必要的复杂性
    1.3.3可读性差
    1.3.4非很好组织形式
    1.3.5API对用户不友好
    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.1channel
    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.1Go调度
    8.2.2并行归并排序
    8.3#57:对何时使用channel或互斥锁感到困惑
    8.4#58:不理解竞争问题
    8.4.1数据竞争与竞争条件
    8.4.2Go内存模型
    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:没有使用nilchannel
    9.7#67:对channel缓冲区大小感到困惑
    9.8#68:忘记字符串格式化可能产生的副作用
    9.8.1etcd数据竞争
    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.2JSON和单调时钟
    10.3.3map中的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.1HTTPBody
    10.5.2sql.Rows
    10.5.3os.File
    10.6#80:在响应HTTP请求后忘记加return语句
    10.7#81:使用默认的HTTP客户端和服务端
    10.7.1HTTP客户端
    10.7.2HTTP服务端
    总结
    11测试
    11.1#82:未区分测试种类
    11.1.1build标识
    11.1.2环境变量
    11.1.3短模式
    11.2#83:未打开-race开关
    11.3#84:未使用测试执行模式
    11.3.1parallel标识
    11.3.2shuffle标识
    11.4#85:未使用表格驱动型测试
    11.5#86:在单元测试中休眠
    11.6#87:没有有效处理timeAPI
    11.7#88:未使用测试工具包
    11.7.1httptest包
    11.7.2iotest包
    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.1CPU架构
    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.3sync.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程序的影响
    总结
    结语

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购