Oop 如何说服同事不要将数据集用于企业开发(.NET 2.0+;)

Oop 如何说服同事不要将数据集用于企业开发(.NET 2.0+;),oop,Oop,与我一起工作的每个人都痴迷于以数据为中心的企业开发方法,并且讨厌使用自定义集合/对象的想法。让他们信服的最好方法是什么?数据集/表格并没有那么糟糕,是吗 我能给出的最好建议是在自己的代码中尽可能多地使用它,希望通过同行评审和错误修复,其他开发人员将看到代码如何变得更具可读性。(发生这些情况时,请确保推动该点) 最终,如果代码有效,那么剩下的就是语义,这是我的观点。通过示例来做,轻描淡写。任何更强大的东西都会让你与团队其他成员疏远 记住要考虑到他们可能错过了一些事情。作为团队的一员意味着轮流学习和

与我一起工作的每个人都痴迷于以数据为中心的企业开发方法,并且讨厌使用自定义集合/对象的想法。让他们信服的最好方法是什么?

数据集/表格并没有那么糟糕,是吗

我能给出的最好建议是在自己的代码中尽可能多地使用它,希望通过同行评审和错误修复,其他开发人员将看到代码如何变得更具可读性。(发生这些情况时,请确保推动该点)


最终,如果代码有效,那么剩下的就是语义,这是我的观点。

通过示例来做,轻描淡写。任何更强大的东西都会让你与团队其他成员疏远

记住要考虑到他们可能错过了一些事情。作为团队的一员意味着轮流学习和教学


没有一个人能给出所有的答案。

我想你可以尝试推销O/R映射和映射工具的想法。将行视为对象的好处非常强大

记住要考虑到他们可能错过了一些事情。作为团队的一员意味着轮流学习和教学

附议。“企业发展”与正常发展不同(通常其含义“比正常发展更重要”)的整个想法真让我恼火

如果使用某些技术确实有好处,那么您需要列出一份经过深思熟虑的列表,列出切换后可能出现的所有利弊。
向你的同事展示这份清单,并附上每一份清单的解释和示例

创建此列表时必须现实。你不能只说“节省了我们很多时间!!!赢!!”,而不考虑这样一个事实,即有时需要更多的时间,需要X个月才能跟上新技术的发展速度,等等。你必须展示具体的例子,说明在哪些方面可以节省时间,以及具体的方法

同样地,你不能像他们不重要一样回避这些缺点,你的同事会打电话给你。
如果你不去做这些事情,或者你觉得自己只是在推销自己喜欢的东西,没有人会把你当回事,你会因为是一个充满热情和活力但对任何事情都一无所知的人而名声大噪

顺便说一句,注意这个特殊的骗局。它将压倒一切,除非你对所有其他东西有很多强有力的理由:

  • 需要12个月以上的工作来移植我们现有的代码。你输了

如果您正在处理遗留代码(例如,从.NET 1.x移植到2.0或3.5的应用程序),那么离开数据集将是一个坏主意。为什么要改变一些已经有效的东西

但是,如果您正在创建一个新的应用程序,您可以引用以下几点:

  • 呼吁在维护与数据集保持一致的应用程序时体验痛苦
  • 列举新方法的性能优势
  • 用一个好的中间地带引诱他们。移动到.NET3.5,并将LINQ升级为SQL,例如:虽然仍然坚持数据驱动的体系结构,但这是对字符串索引数据集的巨大背离,并强制执行。。。瞧!自定义集合--以对其隐藏的方式
重要的是,无论你使用什么方法,你都要保持一致,并且对你的方法的优缺点完全诚实

如果所有其他方面都失败了(例如,您的开发团队完全拒绝改变旧做法,对学习新事物持怀疑态度),这是一个非常非常明显的迹象,表明您的团队已经发展壮大,是时候离开您的公司了

当然,“这取决于”情况。有时数据集或数据表更适合,比如它是否真的是非常轻的业务逻辑、实体/记录的扁平层次结构,或者具有一些版本控制功能

当您想要实现无法在平面2D表中有效表示的对象的深层层次/图形时,自定义对象集合将大放异彩。您可以演示的是一个大型对象图,并使某些事件沿着正确的分支传播,而不调用其他分支中不适当的对象。这样就不需要循环或选择每个数据表来获取子记录

例如,在我两年半前参与的一个项目中,有一个UI模块,它应该在一个WinForms数据网格中显示问题和答案控件(更具体地说,它是Infragistics的UltraGrid)。一些更棘手的要求

  • 问题的答案控件可以是任何内容—文本框、复选框选项、单选按钮选项、下拉列表,甚至可以弹出一个自定义对话框,从web服务中提取更多数据
  • 根据用户回答的内容,它可以触发更多子问题直接出现在父问题下。如果稍后给出了不同的答案,则应公开与该答案相关的另一组子问题(如果有)
最初的实现完全是在数据集、数据表和数组中编写的。在多个表的数百行中循环的数量纯粹是令人费解的。它没有帮助程序员从C++背景中尝试一切(hello,对象在堆中使用引用变量,比如指针!)。没有人,甚至连最初的程序员都无法解释为什么代码会这样做。六个多月后我来到了现场,那里仍然充斥着虫子。难怪我接手的第二代开发者决定辞职

为了修复混乱局面,我花了两个月的时间,把整个模块重新设计成一个新的模块。yeap,带有抽象类(根据问题类型在网格单元上呈现不同的答案控件),委托