C++编程剖析 (1)

  • 一个基于 stringstream 的 lexical_cast 简单实现
    第3条 字符串格式化之二:标准的替代方案 中介绍了一个使用 stringstream 实现的 lexical_cast 函数模板,将字符串转换为指定数据类型。目标数据类型可以是 stringstream 支持的基本类型,也可以是自定义类型(需...

程序员修炼之道 (第2版) (11) 更多

  • 第9章 务实的项目
    提示 86 组织全功能的团队 《人月神话》中提到的软件的概念完整性,以及外科手术式团队。 软件开发过程:端到端的功能演化 围绕功能(而非职能)组织团队。前端(客户端)、后端(服务端)、UI/UX 设计、数据建模...
  • 第8章 项目需求管理
    这章名为「项目启动之前」,主要讲需求采集与分析中的原则和方法,也包括一些推进项目的方法流程、结对编程实践、敏捷的本质等。 ---------- 需求,可能一开始并不存在,它是用户和开发者交流的产物,是在反馈循...
  • 第6章 并发
    并发性:两个或多个代码的执行过程表现得像是在同时运行一样。需要一个软件环境,能切换执行过程,如 fiber 纤程、线程、进程。 并行性:两个或多个代码的确是在同一时刻一起运行。需要并行处理器,如 多核心 CPU...
  • 要点记录:程序员技能训练
    前言中简述了优秀程序员的基本素质和工作方法。 [提示1] 关注你的技艺 这里提的程序员技能是广义的,包括开发阶段(需求分析、设计、编码、测试、部署与维护)、产品与项目管理(产品质量控制、开发过程管理)、...
  • 要点记录:资源平衡
    第26条 如何保持资源的平衡 [糟糕的设计] 用函数之间共享的资源句柄,这里是 customer_file 文件描述符,来管理资源的分配-释放。文中 Ruby 示例: 可维护性差:当在 update_customer 中出现分支时(包括提前返回...
  • 要点记录:变换式编程
    第30条 变换式编程 思想来源于 Unix shell 编程文化,用管道将单一功能的程序串联起来,完成最终目标。 示例,找到文本文件行数最多的 5 个文件: find . -type f | xargs wc -l | sort -n | tail -6 | head -5 ...
  • 要点记录:契约式设计
    第23条 契约式设计 第24条 死掉的程序不会说谎 第25条 断言式编程 参考之前关于 C++ 程序设计的总结 我对 OOD 中封装性和抽象的思考 防御式编程 defensive programming 和 契约式编程(或契约式设计)contract p...
  • 要点记录:设计原则、过程方法
    第10条 正交性 正交 orthogonal 这个词源自数学,工程设计上指模块、组件之间的独立性或解耦性。 正交性,也是这些模块设计原则的另一种表述:单一职责、接口隔离与依赖倒置(实现依赖于接口)、可替换、易单元测...
  • 要点记录:设计模式
    第29条 在现实世界中抛球杂耍 交互式应用常用的解耦设计模式: 1. FSM 有限状态机 2. observer 观察者模式 3. pub-sub 发布-订阅 模式,例如 C# 的 event-delegate、Qt 的 signal-slot 4. reactive programming ...
  • 要点记录:编程语言、开发工具
    第14条 领域语言 DSL (Domain-specific Language) 领域特定语言 1. 内部 DSL:借助元编程或宏,在已有语言上构建一套针对特定事务的语法、语义集合。能够借助宿主语言的特性,但也受宿主语言的限制。 2. 外部 DSL...
  • 要点记录:测试、命名
    第41条 为编码测试 [提示66, 67] 在谈到写测试带来的主要好处时,作者提到的一个观念,也是现在流行的 TDD 观念。写测试的主要好处不在于 bugfix,而在于驱动开发,即能让你反思功能需求、究竟提供怎样的接口、具...

More Effective C++ (3)

  • 第8条 了解各种不同意义的 new 和 delete
    关于 new 有两个不同的东西,new expression(也叫 new operator)和 operator new()。 new expression 是语言内建机制,不能重载,我们常写的 new T 就是这个,它返回有类型的指针 T*。new T 做两件固定的事,第...
  • 第30条 proxy class 代理类
    其它关于 proxy class 代理类的资料: 《More Exceptional C++》第32条 函数指针类型的递归声明 。在如何构造一个返回指向自身类型地址的函数指针类型问题上,演示了代理类的隐式转换中间层的作用。 ---------- p...
  • 第26条 限制某个 class 所能产生的对象数量
    单例模式 (Singleton) 是这个主题的一个特例,即限定只能产生一个对象。 在讲到用局部静态对象实现单例模式时(该实现手法通常称为 Meyers Singleton),即: Printter& thePrinter() { static Printer p; re...

C++编程规范 (4)

  • 如何阅读《C++ 编程规范》
    本书是一本关于 C++ 最佳实践与 C++ 程序设计风格的指南。这本书涵盖了以往关于 C++98/03 的最佳实践类书籍所涉及的大部分要点,例如 Effective C++ 系列和 Exceptional C++ 系列,但是厚度却很薄。 然而,由于本...
  • 第68条 使用断言检查假设条件
    使用断言 assert 检查在程序逻辑中被认为是理所应当满足的假设条件 assumption,包括前置条件 pre-condition、后置条件 post-condition 和不变式 invariants。注意,断言检查的性质不同于错误检查所用的条件分支...
  • 我对 OOD 中封装和抽象的思考
    前言 这篇文章原来写在《C++ 编程规范》的书评里,因为豆瓣书评的文本格式化要比笔记丰富,但其实本文目的还是自用参考和总结,当时考虑文章段落较多、又多引文,就写在了书评里。现在把这篇文章移到笔记里,是因...
  • 第41条 将数据成员设为私有的,无行为的聚合(C 语言形式的 struct)除外
    本条款讨论的是 C++ 类设计的封装、抽象 和 聚合类。 在设计组件可配置和非侵入的容器类时(就是 STL 容器的风格),决策哪些结构该隐藏,哪些该暴露时,本条款的叙述很好地启示了我,因此在这里摘录要点。 -----...

More Exceptional C++(中文版) (1)

  • 第32条 函数指针类型的递归声明
    其它关于 proxy class 代理类的资料: 《More Effective C++》第30条 proxy class 代理类 ,系统地讲述了代理类的用途和一些限制。 ---------- 我们需要定义一个函数指针类型,它接收什么参数先无所谓,但是它返...
<前页 1 2 3 4 5 6 后页>