代码大全 - Chapter18 - 表驱动法 表驱动法是一种编程模式(scheme),从表里面查找信息而不使用逻辑语句(if 和 case)。事实上,凡是能够通过逻辑语句来选择的事务,都可以通过查表来选择。对简单的情况而言,使用逻辑语句更为容易和直白。但随着逻辑链的越来越复杂,查表法也就愈发显得更具有吸引力。 18.1 General Considerations in Using Table-Driven Methods在适当的环境下,采用 2020-02-10 代码大全 代码大全 软件构建
代码大全 - Chapter4 - 关键的“构建”决策 4.3 Your Location on the Technology Wave理解“在一种语言上编程”和“深入一种语言去编程”的区别,对于理解本书是至关重要的。大多数重要的编程原则并不依赖特定的语言,而依赖于你使用语言的方式。如果你使用的语言缺乏你希望用的构件,或者倾向于出现其他种类的问题,那就应该试着去弥补他。发明你自己的编码约定、标准、类库以及其他改进措施。 CHECKLIST“构建”有一部 2020-02-09 代码大全 代码大全 软件构建
Go 语言圣经 - 7. 接口 接口类型是对其它类型行为的抽象和概括;因为接口类型不会和特定的实现细节绑定在一起,通过这种抽象的方式我们可以让我们的函数更加灵活和更具有适应能力。 7.1. 接口是合约我们一直使用两个相似的函数来进行字符串的格式化:fmt.Printf,它会把结果写到标准输出,和 fmt.Sprintf,它会把结果以字符串的形式返回。得益于使用接口,我们不必可悲的因为返回结果在使用方式上的一些浅显不同就必需把格式 2019-12-30 Go 语言圣经 Go
python asyncio High-level APIs asyncio 是 Python 官方提供的用于编写并发程序的库,特别是在 Python 3.6 之后,官方通过添加 async/await 关键字来支持了原生的协程,这使得我们不需要再使用传统的生成器来编写协程,而在 Python 3.7 之后,官方对 asyncio 库进行了调整,提供了更为抽象的高层接口,使得这个库的易用程度大大提高,通过这些上层接口,我们能够: 并发的执行 Python 2019-11-25 Fluent Python Python
Chapter 21 - 类元编程 21.1 类工厂函数其实我们经常使用的 collections.namedtuple 就是一个类工厂函数,我们把类名和几个属性名传给这个函数,它就会创建一个 tuple 的子类。 def record_factory(cls_name, field_names): try: field_names = field_names.replace(',', & 2019-11-03 Fluent Python Python
Chapter 20 - 属性描述符 描述符是对多个属性运用相同存取逻辑的一种方式,是实现了特定协议的类,这个协议包括 __get__、__set__ 和 __delete__ 方法。 20.1 描述符示例:验证属性20.1.1 一个简单的描述符实现了 __get__、__set__ 或 __delete__ 方法的类是描述符。描述符的用法是,创建一个实例,作为另一个类的类属性。 在学习使用描述符前,需要先清除以下概念: 描述符类: 2019-11-03 Fluent Python Python
Chapter 19 - 动态属性和特性 特性至关重要的地方在于,特性的存在使得开发者可以非常安全并且确定可行地将公共数据属性作为类的公共接口的一部分开放出来。 19.1.3 使用 __new__ 方法以灵活的方式创建对象我们通常把 __init__ 称为构造方法,这是从其他语言借鉴过来的术语。其实,用于构建实例的是特殊方法 __new__:这是个类方法(使用特殊方式处理,因此不必使用 @classmethod 装饰器),必须返回一个 2019-10-17 Fluent Python Python
Chapter 18 - 使用 asyncio 包处理并发 并发是指同时处理多件事 并行是指同时做多件事 二者不同,但是有联系 一个关于结构,一个关于执行 并发用于指定方案,用来解决可能(但未必)并行的问题 —— Rob Pike(Go 语言创造者之一) 18.1 线程与协程对比在编写使用线程来编写程序时,我们需要使用锁来保护程序中重要的部分。而协程默认会做好全方位保护,以防止中断。我们必须显式产出才能让程序的余下部分运行。对协程来说,无需保留锁,在多 2019-10-08 Fluent Python Python
Chapter 17 - 使用期物处理并发 17.1.2 concurrent.futures 模块concurrent.futures 模块的主要特色是 ThreadPoolExecutor 和 ProcessPoolExecutor 类,这两个类实现的接口能分别在不同的线程或进程中执行可调用的对象。这两个类在内部维护着一个工作线程或进程池,以及要执行的任务队列。 from concurrent import futures with 2019-10-06 Fluent Python Python