为什么应用程序开发人员可以执行数据库工作,但数据库开发人员试图避开应用程序?

时间:2009-02-05 13:45:39

标签: database database-design oop

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

有很多关于这个主题的加热酒吧讨论。

我只是想知道,只是人们有不同的心态,或者懒得学习更多,并对自己所知道的东西感到舒服,或者别的什么。

12 个答案:

答案 0 :(得分:20)

我可能会重新提出这样的问题:为什么(某些)应用程序开发人员认为他们可以做“数据库内容”而不必真正理解它?而数据库开发人员(通常)认为他们可以在没有一些培训和经验的情况下编写好的应用程序!

答案 1 :(得分:10)

这是关于抽象的层次。数据库是典型业务应用程序中最低级别的抽象(软件方式)。处理抽象外层的开发人员更有可能知道内层知识而不是内层开发人员知道外层。

这是因为内部抽象层在他们不了解依赖它们的外层时最能表现出来。

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

答案 2 :(得分:4)

我想说的是需要了解基础。应用程序开发人员通常需要知道如何连接到数据库,添加记录,删除记录等......这是LINQ等新技术的进一步发展,开发人员可以在实际代码中编写数据库查询。

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

答案 3 :(得分:2)

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

答案 4 :(得分:1)

我认为这源于sql中的编程看起来很简单,并且要开始使用,你必须掌握少量知识(真正让程序员学习SELECT * FROM Table非常简单)。应用程序编程的方式不一样。它会在很短的时间内变得非常复杂,并且会使很多人望而却步。现在我并不是说数据库人员不那么聪明,他们所做的事情看起来比构建应用程序更容易。

答案 5 :(得分:1)

如果您开发应用程序,那么迟早您可能需要将应用程序连接到后端。

反之则并非如此。

答案 6 :(得分:1)

我认为这源于必要性。如果你考虑每个人的角色,程序员需要的数据库相关的东西远远超过数据库工作者需要做的编程任务。

答案 7 :(得分:1)

根据我的经验,开发了“数据库”和“应用程序”(遵循您的命名法......),我认为在州管理方面存在很大差异。

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

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

答案 8 :(得分:1)

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

典型的DBA(至少在我参与过的大多数项目中)都会关注与项目数据库相关的所有内容 - 所有管理,与应用程序开发人员合作进行性能调优,提供有关SQL使用的SQL的建议。 app,做一些存储过程编码,创建(或至少评论和咨询)物理数据库设计等。

那么,从应用程序开发人员的角度来看,数据库人员不是“懒惰”,还是“他们已经知道的很好”?我自己是一名应用程序开发人员,我对我们项目中使用的数据库有很多不了解的事情。

答案 9 :(得分:1)

我的部分教育确保了我对数据库工作方式的理解。我进入该领域期待做数据库工作,以及很多。我是一个网络应用程序的人;它来自我认为的领域。

我作为开发人员的两份工作一直在两家商店,最好被描述为很小(我自己包括2个人,然后只有我)和小型(3个开发人员,简要地有第四个)。我没有观察到直接的业务需求,也没有在任何有资源聘请专职数据库人员的地方工作。我可以设想一些会发生变化的场景(包括新工作:P)。

至于其他方面,我同意抽象也是一个因素,作为开发人员,我们可以在顶部/外部查看。我无法想象在没有DB技能的情况下进行Web应用程序开发,我认为是Sql / DB管理既是一个重要的工具,也是我需要保持敏锐的领域。

我将补充一点,我将数据库端视为自己的字段。有两种技能可以在两者之间进行转换,但是我需要获得很多专业知识以获得更好的知识,并且作为一名优秀的程序员并不一定意味着我在后端也做得很好(幸运的是) ,我不是一个优秀的程序员;))。而且,我很确定这就是她所说的。

答案 10 :(得分:1)

2个原因:

  • 数据库供应商促成了错误的SQL,
  • SQL在视图中隐藏 应用程序UI是前端和中心。

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

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

答案 11 :(得分:1)

好问题。实际上为什么开发人员会使用Database Stuff,因为没有专门的数据库人员,那么开发人员必须这样做。但是一家公司的数据库伙伴也有开发人员。

:)你的想法是什么?