The Art of UNIX Programming
[TOC]
列举几个例子加以理解.
设计原则
Modularity 模块性
如何能够真正实现 “不会直接调用其他模块的实现码” ?
实现模块化与解耦合是实际上不是一件那么容易的事情. 在面向对象编程中, 就目前的经验来看, 我会把API分成两大类:
一类是提供给他人使用, 不会对自身的状态产生影响. 这类比较简单, 直接提供接口即可.
另外一类是上希望对方在特定的地方调用, 或者是会对自身状态的产业影响的. 这些需要自己把API注册到对方的函数表上, 对方不知道这个函数是什么, 只需要知道在特定的事件调用的即可, 表现在汇编语言上即为间接跳转, 另一方面也体现着 把知识叠入数据的表示原则.
最佳模块大小是多少?
400-800物理行, 过多过...
Effective C++ Memorandum
[TOC]
Reference
Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)
Effective Modern C++: 42 Specific Ways to Improve Your Use of C++11 and C++14
为了充分利用C++的特性, 如何看待今天的C++的编程范式?
今天C++以及是一个强大的多重范式编程语言(multiparadigm programming language), 可以同时支持过程形式(procedural), 面向对象形式(object-oriented), 函数形式(functional), 范式形式...
Chisel Memorandum
最近看了一下Chisel Bootcamp,这里记录一下心得体会.
[TOC]
Scala Primer
Chisel是一种基于Scala的高层次硬件描述语言. 而Scala的设计哲学即为集成面向对象编程和函数式编程, 非常适合用来作为硬件描述语言. Scala 运行在Java虚拟机上, 并兼容现有的Java程序. 作为基础我们必须先了解一些Scala的一些语法以及编程特性.
Scala一门面向对象语言, 可以认为Scala程序是Object对象的集合. 顺便复习一下下面几个概念的关系:
Object对象: 对象是类的实例
Class类: 类是对象的抽象
Method方法: 一个类可以包括多个方法
Field字段: 每个对象都有其唯一的实例化的变量集合, 即...
12 post articles, 2 pages.