我问过这个关于Microsoft .NET库及其源代码复杂性的问题.从我正在阅读的内容来看,编写通用库和编写应用程序可能是两回事.在编写库时,您必须考虑可以成为每个人的客户端(假设我发布库以供普通公众使用).
学习编写图书馆时,有哪些实践或理论或技术有用?你在哪里学习编写像.NET库中的代码?这看起来像一个我不太了解的"黑色艺术".
这是一个非常主观的问题,但这是客观答案.该框架设计指南书(一定要得到第2版)是关于如何编写有效的类库非常好的一本书.内容非常好,经常不同的注释是发人深省的.每个商店都应该有这本书的副本.
你肯定需要在他的演讲中如何设计一个好的API及其重要性(1小时9米长)观看Josh Bloch .他是Java大师,但是图书馆设计和面向对象是普遍的.
图书馆作者经常忽略的一条建议是将成本内部化.如果有些事情很难做,那么图书馆应该这样做.我经常看到图书馆的作者向API的消费者推送一些东西,而不是自己解决它.相反,寻找最困难的东西,并确保图书馆做到这一点,或至少使他们很容易.