Scala语言本身大而庞杂,它提供了各种各样的工具,开发人员可以使用这些工具以不同的方式完成同一种任务.对于一个问题的多种解决方案,开发任务又如何去选择使用哪一种呢? 这是第一次在一系列博客文章中提供战略风格指南.
关于Scala战略风格指南
这些指导方针都来源于我在一些Scala开源或闭源的实际项目经验.尽管如此,他们都基于一个连贯的基本原则,希望提供一些超越于普通的”你喜欢或者我喜欢”这样的讨论.
这些指南都会假设你已经知道大多数Scala语言特点,并且知道能够用他们来做什么,并将完全专注于如何选择你的解决方案.这将基于纯粹的Scala及其标准库/接口:你不会在这里找到关于Akka或Scalaz的讨论.
毫无疑问,一些使用过”Monadic”, “Reactive”, “Type-level”, “Scala.js”的人或许不会认同一些方针.
哲学:最小权力原则
在这一节中,这一原则可以这样去应用:
选择一个解决方案时,选择能够解决你实际问题的最不强大的方案.
开发商把精力投入到努力打造强大、灵活的解决方案.然而,一个强大灵活,能过做任何事的解决方案同时难于分析,而有限的解决方案做更少的事情,或者事实上只做非常少的事,更易于检查分析和处理.
这条原则同样适用于编程语言:
选择一个编程语言是,选择能够解决你实际问题的最不强大的语言.