我最近看到很多关于函数式编程的东西,而Clojure看起来特别有趣.虽然我"理解"它的基本描述,但是如果我可以的话,我无法弄清楚如何在日常工作中使用它作为Web开发人员.我所阅读的很多内容都集中在函数式编程的数学方面,而不是常规OO中的典型编程情况.
我有错误的结束吗?函数式编程与Web开发完全无关吗?如果没有,是否有任何关于它'用于网络'的例子?
已经很好地讨论了对象关系映射,包括在这里.我有一些方法的经验,陷阱和妥协.真正的分辨率似乎需要更改OO或关系模型本身.
如果使用功能语言,是否会出现同样的问题?在我看来,这两种范式应该比OO和RDBMS更好地融合在一起.在RDBMS中进行思考的想法似乎与功能方法似乎承诺的自动并行性相匹配.
有没有人有任何有趣的意见或见解?这个行业的状况如何?
有没有办法模块化SQL代码,以便更具可读性和可测试性?
我的SQL代码经常变成一系列复杂的嵌套连接,内部连接等,难以编写且难以调试.相比之下,在诸如Javascript或Java之类的过程语言中,人们会将离散元素作为单独的函数来捏合,这些函数将按名称调用.
是的,可以将每个查询作为完全独立的查询,存储在数据库中或作为存储过程编写,但通常我不想更改/混乱数据库,只是查询它很好,特别是如果DBA不希望授予所有用户写入权限.
例如,从概念上讲,复杂查询可能很容易用伪代码描述,如下所示:
(getCustomerProfile)
left join
(getSummarizedCustomerTransactionHistory)
using (customerId)
left join
(getGeographicalSummaries)
using (region, vendor)
...
Run Code Online (Sandbox Code Playgroud)
我意识到从理论上看有很多关于这个主题的文章(下面的几个链接),但我只是想找到一种方法来使代码更容易正确编写,并且一旦编写就更容易阅读.也许只是语法糖来从视觉中抽象出复杂性,如果不是从执行中,那么在我试图不看的文字SQL中编译.类推...
如果特定的SQL风格很重要,我的大部分工作都在PostgresQL中.
我知道SQL约束可以强制数据满足有效性标准.但是,诸如"学生成绩只能在'最终'标志为假"时才能更新标准呢?这样的更新标准是否必须由应用程序处理?
我正在观看关于功能编程和主要"数据结构"的一些讲座,但是在FP中确实没有一个是列表,所以我的问题是:当一个人处理很多数据库和'列表'时数据,那么功能编程是不是优于OOP?