展开全部

主编推荐语

一本新手程序员的生存指南,教你如何将理论转化为实践技能。

内容简介

本书专注于介绍项目开发领域的实战方法和高效范式。全书共9章,从预备理论知识开始,按照业务开发的真实流程详细阐述了以往开发的经验误区,并结合实际的.NET和C#代码,给出经过大量项目检验的解决方案。

作者用他独有的幽默感和数十年的软件开发经验,将软件开发的实战故事一一道来。正如作者所言,无论你是非科班出身的开发者,还是已经入行几年的开发“上道人”,本书都能对你有所裨益。

目录

  • 版权信息
  • 内容提要
  • 译者介绍
  • 译者序
  • 致谢
  • 关于本书
  • 关于作者
  • 关于封面插图
  • 资源与支持
  • 第1章 初入行当
  • 1.1 在实战中,什么最重要?
  • 1.2 谁是实战程序员?
  • 1.3 杰出实战程序员
  • 1.3.1 懂得质疑
  • 1.3.2 结果驱动
  • 1.3.3 高产出
  • 1.3.4 接受复杂性和模糊性
  • 1.4 现代软件开发存在的问题
  • 1.4.1 技术繁多
  • 1.4.2 遍阅范式
  • 1.4.3 科技黑箱
  • 1.4.4 低估开销
  • 1.4.5 自扫门前雪
  • 1.4.6 憎恶重复
  • 1.5 特别说明
  • 1.6 本书主题
  • 本章总结
  • 第2章 实用的理论
  • 2.1 算法速成
  • 要有好的Big-O
  • 2.2 深入数据结构
  • 2.2.1 字符串
  • 2.2.2 数组
  • 2.2.3 列表
  • 2.2.4 链表
  • 2.2.5 队列
  • 2.2.6 字典
  • 2.2.7 哈希集合
  • 2.2.8 栈
  • 2.2.9 调用栈
  • 2.3 类型有大用
  • 2.3.1 使用强类型
  • 2.3.2 有效性证明
  • 2.3.3 巧用框架
  • 2.3.4 用类型防止打错字
  • 2.3.5 null的可与不可
  • 2.3.6 免费的更好性能
  • 2.3.7 引用类型与值类型
  • 本章总结
  • 第3章 有用的反模式
  • 3.1 若无损坏,亦可破坏
  • 3.1.1 面对代码刚性
  • 3.1.2 快刀斩乱麻
  • 3.1.3 敬畏边界
  • 3.1.4 隔离相同功能
  • 3.1.5 网页示例
  • 3.1.6 不要留下技术债
  • 3.2 从头开始写
  • 推倒重写
  • 3.3 修复它,即使它没有坏掉
  • 3.3.1 奔向未来
  • 3.3.2 整洁仅次于功能
  • 3.4 重复你自己
  • 复用还是直接复制?
  • 3.5 是我所创
  • 3.6 不要使用继承
  • 3.7 不要使用类
  • 3.7.1 enum太好用了!
  • 3.7.2 结构体真棒!
  • 3.8 写点糟糕代码
  • 3.8.1 不要使用If/Else
  • 3.8.2 使用goto
  • 3.9 不写代码注释
  • 3.9.1 选个好名字
  • 3.9.2 充分利用函数
  • 本章总结
  • 第4章 美味的测试
  • 4.1 测试的类型
  • 4.1.1 手动测试
  • 4.1.2 自动化测试
  • 4.1.3 执意玩火:在生产环境中测试
  • 4.1.4 选择正确的测试方法
  • 4.2 如何停止抱怨,爱上测试?
  • 4.3 不要使用TDD或其他缩写
  • 4.4 为你自己的目的写测试
  • 4.5 决定测试对象
  • 4.5.1 尊重边界
  • 4.5.2 代码覆盖率
  • 4.6 不要写测试
  • 4.6.1 不要写代码
  • 4.6.2 不要一次写完所有的测试
  • 4.7 让编译器测试你的代码
  • 4.7.1 消除null检查
  • 4.7.2 消除范围检查
  • 4.7.3 消除有效值检查
  • 4.8 命名测试
  • 本章总结
  • 第5章 正名重构
  • 5.1 为什么要重构?
  • 5.2 架构修改
  • 5.2.1 识别组件
  • 5.2.2 评估工作量和风险
  • 5.2.3 树立威信
  • 5.2.4 重构让重构更容易
  • 5.2.5 最后冲刺
  • 5.3 可靠重构
  • 5.4 什么时候不重构
  • 本章总结
  • 第6章 安全审查
  • 6.1 黑客之外
  • 6.2 威胁模型
  • 袖珍威胁模型
  • 6.3 编写安全的网络应用程序
  • 6.3.1 在设计时考虑到安全问题
  • 6.3.2 隐蔽性安全的用处
  • 6.3.3 不要光靠你自己去实现安全
  • 6.3.4 SQL注入攻击
  • 6.3.5 跨站脚本攻击
  • 6.3.6 跨站请求伪造
  • 6.4 引发第一次“洪水”
  • 6.4.1 不要使用验证码
  • 6.4.2 验证码的代替品
  • 6.4.3 不要使用缓存
  • 6.5 存储机密信息
  • 保存源代码中的机密信息
  • 本章总结
  • 第7章 死磕优化
  • 7.1 解决该解决的问题
  • 7.1.1 简单的基准测试
  • 7.1.2 性能与响应性
  • 7.2 迟缓的剖析
  • 7.3 从头开始
  • 7.3.1 嵌套循环
  • 7.3.2 面向字符串的编程
  • 7.3.3 评估
  • 7.4 打破瓶颈
  • 7.4.1 不要打包数据
  • 7.4.2 就地取材
  • 7.4.3 将依赖性工作分开
  • 7.4.4 要有可预测性
  • 7.4.5 SIMD
  • 7.5 I/O的1秒与0秒
  • 7.5.1 让I/O更快
  • 7.5.2 避免I/O阻塞
  • 7.5.3 古老的方式
  • 7.5.4 现代式async/await
  • 7.5.5 异步I/O的弊端
  • 7.6 如果所有方法都失败了,试试缓存吧
  • 本章总结
  • 第8章 可口的扩展
  • 8.1 不要使用锁
  • 双重检查的锁
  • 8.2 拥抱不一致
  • 可怕的NOLOCK
  • 8.3 不要缓存数据库连接
  • 以ORM的形式
  • 8.4 不要使用线程
  • 8.4.1 异步代码的问题
  • 8.4.2 异步多线程
  • 8.5 尊重单体
  • 本章总结
  • 第9章 与bug共存
  • 9.1 不要修复bug
  • 9.2 错误恐惧
  • 9.2.1 有关异常的真相
  • 9.2.2 不要捕捉异常
  • 9.2.3 容异性
  • 9.2.4 没有事务的容异性
  • 9.2.5 异常与错误
  • 9.3 不要调试
  • 9.3.1 printf()调试法
  • 9.3.2 初识转储
  • 9.3.3 高阶小黄鸭调试法
  • 本章总结
展开全部

评分及书评

评分不足
1个评分

出版方

人民邮电出版社

人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。