展开讨论

经验与复盘经验摘录 · 机器翻译

我的意思是,我认为这很可能是事实

… 我的意思是,我认为这很可能是事实。例如,我在Go语言中尝试过,我认为它并不是一种真正的函数式编程语言,但肯定不是面向对象的。因此,对于我的使用场景,我想要能够根据数据库模式程序化地创建一组CRUD终端接口。根据我对Go语言有限的了解,我发现这相当具有挑战性。一开始,我使用了Soda/Pop,这是Buffalo框架的ORM。它运行得还不错。然后我对在Buffalo之外使用Soda感到沮丧,于是把ORM拿过来尝试去掉一层。使用原生的Go语言,似乎公认的做法是为C、R、U和D分别创建函数,如你所提到的。然而,似乎这种做法在程序化处理时相当具有挑战性,特别是如果没有复杂的元编程的话,即使你有一个具有复杂宏的语言,这也明显比object.get()和object.save()要困难得多。最后,我又重新使用了GORM,这工作得不错。…

源讨论面向对象编程正在不同领域之间转移,而不是消失原帖 162 条评论 · 导入时统计
2

这条内容在回应什么?

父级讨论 · 节选

WO

> 作为函数式编程世界的完全新手,我从未看到过长时间的讨论是关于面向对象编程实际上对CRUD和数据库操作非常有意义。 在我的职业生涯中,我经常听到这个观点。我可以同意大多数面向对象的语言为了使CRUD和数据库操作变得容易而做了很多工作,因为这是常见的需求。ORM库很常见,因为将对象和关系(SQL)之间进行映射是一个常见的需求。 这并不一定意味着面向对象编程是CRUD的最佳选择,因为存在ORM。你可以找到同样多的抱怨说ORM使数据库操作的真实工作方式变得模糊。你需要从关系世界映射到对象世界的原因是因为它们是不同的世界。SQL不是面向对象的语言,也不遵循面向对象的理想。(至少,不是开箱即用的。)…

完整原文

社区评论 0

还没有社区评论,来聊聊你的看法。

原讨论中的回复 2

仅展示本次导入中包含的直接回复。中文为机器翻译,可查看英文原文。

WO

> 我当然不认为所有这些都需要疯狂的类继承,也许这就是人们谈论面向对象编程时所指的。但我仍然认为方法在这个场景中非常有用。 任何方法都使一种语言成为面向对象的。类继承几乎是面向对象编程中的一个次要任务。(有些面向对象的语言根本没有类继承。) 我觉得Go语言相当面向对象。我肯定会认为在Go中使用ORM比不使用ORM更容易。 我很少使用Go,所以无法就所谓的"正确的Go"做法发表任何意见。 我可以尝试描述一些非ORM、函数式编程处理数据库的方式,如我在F#、Haskell或Lisp等语言中看到的那样,但我不确定这是否有助于说明在函数式编程中CRUD并不"非常困难",尤其是因为你可能不熟悉这些语言。 我从你的帖子中主要感受到的是…

完整原文
GL

> 但肯定不是面向对象的。 我认为Go几乎是一种类似面向对象的编程语言。虽然它可能“看起来不像”面向对象的语言,但似乎允许从面向对象中获得广泛的结构和概念。 我不是Go程序员,只是在了解它,所以我可能错了。

完整原文
在 Hacker News 阅读

尊重不同观点,分享具体经验。

登录后即可发帖、评论、转发和引用。