问题标签 [paradigms]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
paradigms - 声明式编程和命令式编程
我正在研究两种主要的编程范式,声明式范式和命令式范式。我很难理解我的教科书和维基百科上的模棱两可的陈述,例如:
声明式: - 关注计算机要做什么。- 没有“副作用” - 没有控制流
命令式: - 专注于计算机应该“如何”做到这一点。- 如何在动作序列方面做到这一点
您将如何区分这两种编程范式?如果您可以扩展上述陈述,那将非常有帮助。
windows - OO问题的新手
我的问题与 Windows 窗体有关
假设我有一个用于客户和订单的组合框,并且根据对这些组合框所做的选择,我为所有订单详细信息填充了一个数据网格。
我对数据网格行中的双击事件感兴趣。
事件发生后,可能会发生 2 件事:
- 记录被删除。
- 一个或两个组合框已更改。
由于没有 OO 经验,我在代码隐藏中处理所有这些逻辑。
这是错误的做法吗?如果满足所有条件,我是否应该创建一个返回布尔值的类是取消事件还是执行其他操作?
如果我创建一个处理该逻辑的类,那么该类需要引用数据网格和所有关联的控件以及它们的先前值和当前值。
我只是困惑。
programming-languages - 成为程序员需要什么?
为了成为一名程序员,我应该学习什么。(编程语言除外:))
我知道一些C/C++和一些Java(,但是我没有程序员的思维。我可能需要学习一些算法。你的意见是什么?
design-patterns - 如何在不过度设计的情况下开始在纸上设计我的程序?
我有兴趣在开始编码之前开始在纸上正确设计我的软件。这个的标准方法是什么?
我在想一些类似 UML 的东西,但我觉得这对于一个人的项目来说有点矫枉过正。
专业人士认为在开发业余爱好项目时最好做哪些事情?
预计投票将像往常一样结束,这没有争议。这是一个明确的答案,我期待一些确定的东西。:P
php - 布尔值的 PHP IF 语句:$var === true vs $var
我知道这个问题并不重要..但是我一直在想:
以下哪个 IF 语句使用起来最好且最快?
我知道 === 是完全匹配布尔值。然而,真的有任何改善吗?
f# - “面向语言的编程”与现实世界中的 OOP/Functional 相比如何
我最近开始阅读一些与 F# 相关的文献,谈到“Real World Functional Programming”和“Expert F#”,例如。一开始很容易,因为我有一些 Haskell 的背景,并且知道 C#。但是当谈到“面向语言的编程”时,我就是不明白。- 我读了一些解释,就像读了一篇每一句话都变得更加抽象和奇怪的学术论文。
有没有人有一个简单的例子来说明这种东西,以及它与现有范式的比较?这不仅仅是学术幻想,不是吗?;)
谢谢,希望
oop - OOP 的实际使用
我最近与一位不喜欢OOP的同事进行了辩论。引起我注意的是他说的话:
“在对象中进行编码有什么意义?如果它是重用,那么我可以创建一个库并为手头的任何任务调用我需要的任何函数。我是否需要这些多态性、继承、接口、模式或其他概念? "
我们在一家小公司为电子商务网站和房地产开发小项目。
如何在“日常、现实世界”设置中利用 OOP?还是 OOP 真的是为了解决复杂的问题而不是为了“日常”开发?
c# - 编程中的声明式范式和命令式范式有什么区别?
我一直在网上搜索声明式和命令式编程的定义,这将为我带来一些启发。但是,我发现的一些资源中使用的语言令人生畏——例如在Wikipedia中。有没有人有一个真实的例子,他们可以向我展示这可能会给这个主题带来一些观点(也许在 C# 中)?
functional-programming - 函数式编程的陷阱/缺点
你什么时候不想使用函数式编程?它有什么不擅长的?
我更多的是寻找整个范式的缺点,而不是“没有广泛使用”或“没有好的调试器可用”之类的东西。到目前为止,这些答案可能是正确的,但它们处理的 FP 是一个新概念(一个不可避免的问题),而不是任何固有的品质。
有关的:
java - 你能在动态语言中有太多的“动态”吗?
在过去的几个月里,我一直在从 Java 过渡到 Groovy,我可以体会到它带来的许多好处:更少的代码、闭包、构建器、最终使 Grails 之类的框架成为可能的 MOP、编写测试时易于模拟等.
然而,我的同事“指责”我的代码不够时髦。也就是说,我仍然为我的参数和字段声明类型,倾向于使用继承和多态而不是鸭子类型等。在我看来,在这些情况下,它不仅是动态与静态的,而且是动态与面向对象的范例一种困境。在这些情况下,我仍然倾向于选择 OO。我觉得 OO 范式在它的基本前提中具有很大的价值,它允许您将代码构造抽象和关联到特定的现实世界概念。
所以,这里有一些我需要帮助的特殊问题:
我应该为我的参数、字段等声明类型吗?
当简单方法可以时,我应该将代码块声明为闭包吗?
我什么时候应该使用鸭子类型而不是多态动态调度。例如,在 groovy 中我可以做 animal."$action"() 或 def animal; animal.action() ,而不是 Animal animal = new Dog(); 动物.action()。我可以在 Open-Closed 原则的上下文中看到问题,但还有其他原因更喜欢 OO 风格的多态性吗?
我什么时候应该在 groovy 中使用接口(如果有的话)?
我确信还有一些其他类似的困境我没有写下来。我还认为这些问题不仅适用于 groovy,而且适用于任何其他动态语言。你有什么意见?