姬長信(Redy)

谁设计/设计了C的IOStreams,它仍然被认为是按…


首先,似乎我要求主观意见,但这不是我所追求的.我很想听听关于这个话题的一些有根据的论点.

为了能够深入了解现代流/序列化框架应该如何设计,我最近得到了一本书Standard C++ IOStreams and Locales by Angelika Langer and Klaus Kreft的副本.我想如果IOStreams没有精心设计,它就不会成功首先进入C标准库.

在阅读了本书的各个部分之后,我开始怀疑IOStream是否可以与例如IOStream进行比较.从整体架构的角度来看STL.阅读例如this interview with Alexander Stepanov (the STL’s “inventor”)了解进入STL的一些设计决策.

特别令我惊讶的是:

>似乎不知道谁负责IOStreams的整体设计(我很想阅读一些关于此的背景信息 – 有谁知道好的资源?);
>一旦你钻研了IOStream的直接表面,例如如果你想用你自己的类扩展IOStreams,你会得到一个界面,它具有相当神秘和令人困惑的成员函数名,例如: getloc / imbue,uflow / underflow,snextc / sbumpc / sgetc / sgetn,pbase / pptr / epptr(可能还有更糟糕的例子).这使得理解整体设计以及单个部件如何合作变得更加困难.即使是我上面提到的这本书也没有那么多帮助(恕我直言).

因此我的问题:

如果你必须根据今天的软件工程标准判断(如果对这些标准实际上有任何普遍的一致意见),那么C的IOStreams仍然会被认为是精心设计的吗? (我不想从通常被认为过时的东西中提高我的软件设计技能.)