怎样才是好的API设计,让我们先来想想什么是糟糕的API,
糟糕的API有很多你不理解的参数
糟糕的API设计让你维护很多状态
第一种情况,查各种参数意义,并需要例子参考之,这些例子作为你使用的模板,
第二种情况,你call 一个个api的流程,你写很多状态处理,大多数情况大同小异,也作为模板,
模板就是在体现在代码里的一些选项参数,结构参数,所以能被进一步抽象,
我们不是有了 interface, function,那么就在API的设计体现出这种模式化,
比如说 IO的C的API,
open/close, read/write, iostate,
你容易忘记在某个异常里close, 你可能在某个状态时没有调用对API,read mode下call write, 在IO关闭后继续读写,还有考虑,读异常,写异常发生时,你要做的事情
那么如下设计是否更加结构化了呢
withfile_read(fn, option, reader:(Either String Ex)->() );
withfile_write(fn, option, writer: ()->(String, Ex->() ) );