当您计划使用 Haskell 等函数式编程语言开发系统时,您如何处理分析和设计阶段?
我的背景是命令式/面向对象编程语言,因此,我习惯于用例分析和使用 UML 来记录程序的设计。但问题是 UML 本质上与面向对象的软件开发方式相关。
我很好奇什么是为将使用函数式编程开发的系统开发文档和定义软件设计的最佳方式。
- 你还会用吗用例分析 http://en.wikipedia.org/wiki/Use-case_analysis也许结构化分析与设计 http://en.wikipedia.org/wiki/Structured_Analysis_and_Design_Technique反而?
- 软件架构师如何定义系统的高层设计以便开发人员遵循它?
- 当您需要展示解决方案的设计时,您会向客户或新开发人员展示什么?
- 如何在不先把所有内容都写下来的情况下记录整个事情的图片?
- 有什么可以媲美的UML http://en.wikipedia.org/wiki/Unified_Modeling_Language在函数世界中?
我不是专业人士,但我会尝试回答其中一些问题。
您还会使用用例分析吗[?]
我不明白为什么不。收集用例,并设计一个您希望公开的满足用例的模块 API。确定用例是否需要类型类,或者只是简单的函数。
或者也许是结构化分析和设计?
我不熟悉这种方法,但从我从 wiki 文章中收集到的信息来看,它看起来效果很好。
软件架构师如何定义系统的高层设计以便开发人员遵循它?
我假设他们指定了一个模块以及该模块每个部分应具有的类型。再说一次,我不是专业人士,所以我不太确定实践中做了什么。
当您需要展示解决方案的设计时,您会向客户或新开发人员展示什么?
您向客户展示一些对他们有意义的东西。如果您的客户足够精明,只需向他们展示类型签名并解释重要的功能即可。如果他们不太懂事,那就画漂亮的图画,或者做任何你必须做的事情。 OOP 与现实世界的对象进行比较,而 FP 与……嗯……函数进行比较。向新手说明功能的典型方法是将其描述为一台机器,您将某些东西放入其中,然后其他东西就会出来。
如何在不先把所有内容都写下来的情况下记录整个事情的图片?
照片”?只需定义重要函数的类型签名,然后将实现保留为undefined
。某个地方有一个包可以为您提供更好的存根,它会在编译时提醒您仍需要实现哪些部分。
函数世界里有什么可以与UML相媲美的吗?
Um...no?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)