代码之家  ›  专栏  ›  技术社区  ›  Ferdeen

为什么应用程序开发人员可以做数据库的工作,而数据库开发人员却试图避开应用程序的工作?

  •  4
  • Ferdeen  · 技术社区  · 17 年前

    根据我的经验,“后端”(数据库开发人员)和“前端”(应用程序开发人员、客户端和服务器端)之间一直存在争议。

    有很多

    我只是想知道,是因为人们有不同的思维方式,还是懒得学更多的东西,对自己所知道的感到舒服,还是其他什么。

    12 回复  |  直到 17 年前
        1
  •  20
  •   Tony Andrews    17 年前

    我可能会重新表述这个问题:为什么(一些)应用程序开发人员 认为

        2
  •  10
  •   Andrew Hare    17 年前

    这是因为当抽象的内层不知道依赖它们的外层时,它们的性能最好。

    因此,网站表示层中的设计师可能知道一些他们所依赖的服务器端代码,因为他们与之交互。但是在服务器上工作的开发人员根本不需要了解任何有关设计的知识。

        3
  •  4
  •   cyberbobcat    17 年前

    另一方面,数据库开发人员只需要知道如何编写数据库查询,因为这是他们的工作,可能不需要担心应用程序级别的代码。

        4
  •  2
  •   mbeckish    17 年前

    因为程序员通常必须理解数据库并与之交互才能完成他们的工作,但是DBA通常不需要(在DBMS之外)进行任何编程来完成他们的工作。

        5
  •  1
  •   kemiller2002    17 年前

    我相信这是因为用sql编程看起来很容易,而且要开始,你必须有少量的知识(实际上是程序员要学习的) SELECT * FROM Table 这很容易)。应用程序编程的方式不同。它在很短的时间内变得非常复杂,这让很多人感到气馁。现在我并不是说数据库人员的智能有所下降,只是他们所做的看起来比构建应用程序更容易。

        6
  •  1
  •   Galwegian    17 年前

    事实并非如此。

        7
  •  1
  •   keithwarren7    17 年前

        8
  •  1
  •   Joao da Silva    17 年前

    根据我的经验,在开发了“数据库”和“应用程序”(按照你的命名法…)之后,我想在状态管理方面会有很大的不同。

    正确设计的数据库始终处于“干净”状态,并且每个事务都保持这种一致性。因此,在开发数据库时,必须非常清楚地将数据抽象指定为表,以及哪些更新是合法的等等。

    我发现大多数应用程序开发人员(包括我自己:)在保持应用程序中的一致状态方面做得非常草率。任何一个非平凡的接口都比一个普通的数据库有更多的可能状态需要管理,而且要确保它始终处于干净状态并不容易。分析用户将执行的每一个可能的步骤序列也很困难。

        9
  •  1
  •   david a.    17 年前

    根据我的经验,应用程序开发人员不会这样做 数据库的东西。考虑与数据库、备份、复制等相关的所有管理。

    那么,仅仅从应用程序开发人员的角度来看,数据库人员不是“懒惰”吗,或者“对他们已经知道的一切都很好”吗?我自己也是一名应用程序开发人员,对于我们在项目中使用的DBs,有很多事情我都不知道。

        10
  •  1
  •   peacedog    17 年前

    我所受的部分教育确保了我对数据库的工作原理有了相当的了解。我进入这个领域是希望做数据库工作,而且很多。我是一个网络应用的家伙;我想这是一片领土。

    作为一名开发人员,我的两份工作是在两家商店,最好用tiny(包括我自己两人,然后只有我)和tiny(3名开发人员,短暂地拥有第四名)来形容。我没有观察到立即的业务需求,也没有在任何有资源雇佣专门的DB人员的地方工作过。我可以设想一些情况下会发生变化(包括一份新工作:P)。

    我要补充的是,我将数据库端视为自己的字段。有一些技能可以在两者之间转换,但是我需要掌握很多专业知识才能更好地使用它,而且作为一个好的程序员并不一定意味着我在后端也做得很好(幸运的是,我不是一个好的程序员;)。还有,我很确定她是这么说的。

        11
  •  1
  •   mwigdahl    17 年前

    2个原因:

    • DB供应商促进了坏SQL,并且
    • SQL在运行时从视图中隐藏

    大多数天真的开发人员认为SQL是一种过程语言,并将其编写为过程语言,因为供应商确保工具的存在,以便他们能够这样做。DBA知道好的SQL是面向集合的,其优化原则与应用程序编程中涉及的原则完全不同。

    可见性方面使得应用程序开发人员能够针对数据库编写糟糕的SQL,并使其以一种边缘化的方式执行,而没有人看到它有多糟糕。DBA编写应用程序时,会立即对其外观和行为提出批评,因为最终用户可以直接看到它。

        12
  •  1
  •   Kashif Hameed    17 年前

    好问题。实际上,为什么开发人员要做数据库工作,因为没有专门的数据库人员,那么开发人员就必须这样做。但是一家公司有数据库人员也有开发人员。