在阅读 Python 3.4 引入的 ssl.create_default_context() 函数时,我遇到了术语“Opinionated API”,它是什么意思?这种API的风格是什么?为什么我们称其为“有主见的人”?
这意味着API的创建者为您做出了一些她认为最好的选择。
例如,Web 应用程序框架可以选择与一组较低级别的库(例如日志记录、数据库访问、会话管理等)最好地配合(甚至捆绑或专门配合),而不是让您选择(然后必须配置)你自己的。
在
ssl.create_default_context
的情况下,一些安全专家考虑了合理安全的默认值来配置 SSL 连接。特别是,它将可用算法限制为那些仍然被认为安全的算法,以牺牲与遗留系统的完全兼容性为代价,在他们(和我)看来,这种权衡是有利的。
本质上他们是在说“我们在这个领域有很多经验,我们真的认为你应该按照以下方式做事”。
我想这是对“企业”API 的回应,该 API 声称可以与尽可能多的标准接口的每个实现一起使用(以配置和组合的复杂性为代价,需要昂贵的顾问来设置所有内容)。
或者是“约定优于配置”的自然延伸。
开箱即用,因此您只需在特殊情况下使用专家设置即可(到那时您应该知道自己在做什么),而不是即使是初学者也必须做出关于应用程序各个方面的明智决策(可能以灾难告终)。