Gar*_*ary 7 f# haskell functional-programming
我一直在使用f#和Haskell来学习函数式编程.直到我能在我们公司获得f#批准,我仍然必须使用c#.我仍然在努力保持功能风格,因为我注意到了几个好处.
这是一个典型的问题.
我必须使用上述所有数据来计算一个值,并将其与每个键集行相关联,然后将其发送回数据库.其他4个表有很多查找.出于性能考虑,这一切都是在内存中完成的.
我确切地知道如何使用静态字典,对象模型,策略模式等在OO中进行操作,但是在功能性方面我无法摆脱使用这些结构的难闻气味.
我目前正在为功能解决方案做出以下假设.
静态词典很糟糕.看起来这个功能可能有副作用.
我需要一个Calculate函数,它接受一个不可变的对象,并返回一个带有三个键和计算值的不可变对象.在这个函数里面可能有相同风格的另一个函数.
传统的OO模式可能不会起作用.
你会如何在高水平上设计它?
我错了吗?我错过了什么吗?
不,你没错.OOP和函数式编程都有其优点和缺点.
开发人员需要知道如何以及何时使用每种开发风格.幸运的是,C#支持两种开发方式.
在我看来,我每天都使用函数和oop编程风格,oop在处理各种抽象工件(实体,名词等)之间的复杂交互和相互依赖时最好.在处理算法,数据转换等时最好使用函数式编程.例如,解决给定问题所需的语句复杂性很大的情况.
我通常在我的域(实体,聚合,值对象,存储库和事件)上使用面向对象的编程,并为我的服务对象保留函数式编程.
大多数情况下,它是一种气味,或者是最好的感觉,因为在软件开发中,无论是哪种方式都不是明确的案例,而经验和实践往往是给定选择的最佳判断.
| 归档时间: |
|
| 查看次数: |
1193 次 |
| 最近记录: |