PHP程序员提到OOP是为了可伸缩性,但在OOP之前发生了什么?

PHP程序员提到OOP是为了可伸缩性,但在OOP之前发生了什么?,php,oop,Php,Oop,有人告诉我,由于可伸缩性,OOP将取代PHP中的过程编程。我的问题是,在OOP之前发生了什么?在OOP之前没有可伸缩的PHP程序吗?是否可以使用过程代码在PHP中构建一个可以扩展的程序 OOP之前发生了什么 是否可以使用过程代码在PHP中构建一个可以扩展的程序 为什么痴迷于OOP?和或框架(codeigniter、laravel等) 为什么不主要使用函数或其他方法,这不是让学习曲线 新程序员的年复一年 为什么我听到很多关于关系数据库的负面消息?为什么会有关于非关系数据库的炒作 你对此有什么想法

有人告诉我,由于可伸缩性,OOP将取代PHP中的过程编程。我的问题是,在OOP之前发生了什么?在OOP之前没有可伸缩的PHP程序吗?是否可以使用过程代码在PHP中构建一个可以扩展的程序

  • OOP之前发生了什么
  • 是否可以使用过程代码在PHP中构建一个可以扩展的程序
  • 为什么痴迷于OOP?和或框架(codeigniter、laravel等)
  • 为什么不主要使用函数或其他方法,这不是让学习曲线 新程序员的年复一年
  • 为什么我听到很多关于关系数据库的负面消息?为什么会有关于非关系数据库的炒作

  • 你对此有什么想法

    这不是一个特定的PHP问题,PHP只是稍微慢了一点//做出了不同的改变

    在OOP之前,有过程代码。然后有人想到了一种不同的方式来看待程序,这被认为是“更好的”某些任务/程序。你可以阅读很多关于“如何”和“为什么”的内容,但底线并不是说没有OOP很多事情都是不可能的,只是可能会更难。所以在OOP之前,这是一个正常的业务,但没有这个“把戏”

    正如你的其他问题:更大的问题需要一种与较小问题不同的工作方式。当然,这可能会给你一些学习曲线,但你猜怎么着:困难的事情需要时间去学习。就像一个仓库:你为什么要使用亚马逊用来把东西放进仓库的复杂方案,为什么不把它堆叠起来呢?好吧,答案是这对一个大仓库更有效。但是制造这样的自动化仓库真的很难!难道这不意味着你要花很多年才能做出这样的东西吗?当然有。这并不意味着这是一件坏事,它只是意味着你可能不希望你的车库以这种方式订购

    关键是,当您正在进行更大的项目时,您将寻找更多的结构和方法来处理旧代码:使更改更容易(例如:如果您更改数据库中的此字段,您的大型函数列表中哪些必须更改?),使testin更容易,等等


    我不知道关系数据库与此有什么关系。也许可以打开第二个问题,。

    首先,请注意,这并不是PHP特有的问题。面向对象编程是编程领域的一场革命

    但对于您的具体问题:

  • 在面向对象编程之前,程序员在代码中更难保持概念上的独立。如果您希望将所有与狗相关的代码都放在一个地方,那么使用OOP就更容易做到这一点。如果你很小心并且有很好的代码结构,这可以通过过程编程来完成,但是它肯定会更混乱,更难处理
  • 是的,可以编写可伸缩的过程代码。不过,这在一定程度上取决于您所说的可伸缩性。如果您的意思是扩展到大量数据,那么就没有真正的问题。如果你的意思是扩展到越来越大的程序和越来越多的功能,那么没有OOP就很难了,但这是可以做到的(而且必须在OOP出现之前做到)。这实际上是关于可扩展性和可维护性,而不是可伸缩性
  • 对OOP的痴迷是因为它更符合我们的思维方式。您编写了一个
    Dog
    类,它封装了所有doggy数据和所有doggy功能。没有OOP,您必须将数据和代码分开;但这在某些方面是人为的。当我们想到一只狗时,我们会想到它拥有什么样的数据(颜色、大小、品种)以及它能做什么(汪汪、奔跑)。OOP支持这一点。框架有点不同:它们处理许多程序需要做的事情,如果没有框架,它们就必须自己做。这是一种节省程序员大量时间、精力和调试的方法,为他们做大量的工作,并允许他们专注于特定于他们的应用程序的内容
  • 对于是最好从一开始就教授OOP,还是在教授过程编程之后再添加OOP,这里存在不同的观点。支持早期对象的论点是,它更具概念性;但另一方面,这确实意味着从一开始就要教授更多的语言特征
  • 对于任何事情,任何地方,任何环境,都会有人对此持否定态度!这样我就不会对这件事太激动了。当然,关系数据库也有其局限性:例如,它们不能很好地捕获对象,而最终的框架的全部目的是在对象世界和关系数据库世界(ORM或对象关系映射)之间进行转换。但不要被消极因素所愚弄:关系数据库仍然是所有类型编程的标准工具,而且它们不会很快消失

  • “堆栈溢出的标记是什么?”它们用于“与您的问题相关”的主题,并且仅用于这些主题。请尽量用当前“项目”包含的所有内容来标记问题,除非问题与该标记相关。也不要仅仅为了引起人们对你的问题的注意而“标记”你认为“现在很酷”的每件事。但老实说,为什么要面向对象编程?你得到的每一个糟糕的答案都是你应得的。我不会屏息以待一个好的。欢迎来到21世纪。这里有这么多完全不相关的问题,你真的应该把它们作为单独的问题来问。我不认为OOP直接涉及到可伸缩性。“我听说OOP将取代PHP中的过程编程”——PHP中的过程编程就像石器时代。PHP中的OOP在PHP4中可用,自从PHP5以来,它得到了很好的改进。
    为什么我听到很多关于rel的负面消息