【问题标题】:Getting out of CRUD [closed]摆脱 CRUD [关闭]
【发布时间】:2010-10-12 22:30:35
【问题描述】:

定义:
CRUD - Create, Read, Update, Delete; The four basic functions of persistent storage. In the context of this question, specifically related to business applications.

老实说,当我开始编程时,我的目标并不包括成为一名终生的 CRUD 程序员。财务数据只有这么长时间才如此有趣。对我来说,这似乎是大多数编程演出。

我刚从学校毕业,所以任何经验仍然非常有益,但最终我想转向“不那么像 CRUD”的东西。目前,我关注一些机器控制类型的工作。但是,我只是不确定如何朝那个方向发展。

所以我想了解一下其他开发者对这个话题的看法。

  • 您喜欢 CRUD,为什么?
  • 您在 CRUD 中的经历是怎样的?
  • 您是如何从 CRUD 转到非 CRUD 工作的?
  • 如果你搬家了,你喜欢和讨厌什么?
  • 如果您已经搬家,哪些技能有利于/加速过渡?

编辑:
我以解决问题的态度接近 CRUD,而不是为十几个不同的表重新创建具有不同字段的相同表单。

【问题讨论】:

  • 找一份从事嵌入式编程的工作或者在一家软件公司找一份工作会给你带来一些有趣的转折。如果您对稳定性感兴趣,CRUD 可能没问题。其他类型的应用程序会来来去去,但您可以确定它们需要维护。
  • 根据我的经验,CRUD 是程序员必不可少的邪恶。好消息是大多数 CRUD 是“一次编写”代码。如果 CRUD 是您正在做的全部,那么您的公司肯定出了问题。
  • Crud 没什么好摆脱的,你的应用越是 crud,就越容易开发和理解。 Crud 并不意味着没有复杂的逻辑。以 Docker 或 Kubernetes Rest apis 为例。它们是创建对象(图像、容器、pod、部署)的 crud,并且在 POST / PUT 期间或在后台某处附加了一些复杂的逻辑。

标签: crud


【解决方案1】:

我很好奇这里没有人提到基于任务的 UI 和 CQRS。 事实上,回答你的问题:

  • 我不喜欢 CRUD...为什么?请参阅以下对您的问题的回答
  • 我对 CRUD 的体验是编写 CRUD 很痛苦(我认为全栈框架充其量是一种解决方法),而且对用户来说也常常很痛苦
  • 当我了解到构建软件是为用户提供强大的工具,而不是具有某些业务规则的数据库编辑器时,我开始从事非 CRUD 工作
  • 我喜欢构建与全栈框架(Symfony2、ASP.NET 和 cie...)耦合较少的软件,更完全面向对象,但我越来越讨厌 RDBMS CRUD 方向,越来越被 RDBMS CRUD 所吸引EventStore(事件溯源)
  • 让我们从task based UI、CQRS 和事件溯源中获得灵感(搜索 Google,我没有足够的声誉来添加更多链接...)=> all together

但是,我希望不要那么固执己见:有些要点不会让您摆脱 CRUD。一些用户喜欢 CRUD,他们感觉就像在 Excel 中一样......而且可能有一些应用程序 CRUD 可以满足所有需求......

【讨论】:

  • 我希望我能像 medium.com 一样突出显示第三个元素...
  • 事件溯源和 cqrs 不是 crud 的“敌人”。它们也可以一起使用。
【解决方案2】:

用于在 c# .net 中开发的基于 windows FORM 的应用程序的 CRUD

RocketFramework 就是答案

【讨论】:

    【解决方案3】:

    拥有广泛的经验,我的解决方案是create my perfect product 并围绕它开始a business。我面临着各种有趣的挑战,比如how to stream realtime data from an embedded device to a browser。这些东西让我的编程热情源源不断,我还有一系列重要的有趣功能要添加。

    构想您的完美产品领域,找到一些可以从中受益的人,并询问他们有什么问题。一旦你找到一个你感兴趣的共同主题(我的主题是自动化和电源监控),就开始黑客攻击。当然对我来说,我父亲在过去 30 年里经营electronics company Technman 并希望与我一起创造这个产品是有帮助的。

    【讨论】:

    • 谢谢汤姆,这是一个非常精彩的故事。
    【解决方案4】:

    这里是关于 CRUD 如何以及为什么仍然可以鼓舞人心的精彩演示:

    http://www.scribemedia.org/2006/07/09/dhh/

    【讨论】:

    • +1 精彩的演讲,谢谢!
    【解决方案5】:

    是的,很多商业软件都是 CRUD。我曾经在这方面工作过。

    在机器控制中,其中一部分也可以是 CRUD。例如,记录传感器数据并在某处报告。基本上是 CRUD。

    但我承认 - 在机器控制中,它主要是非 CRUD。您可能会喜欢做一些真正使装配线移动、制造汽车或使电机以一定速度旋转的事情。我知道我知道。在金融机构,它实际上只是数字。没有什么比马达或汽车更“真实”的了。

    【讨论】:

      【解决方案6】:

      现代框架可以为您完成所有工作。从 GRAILS 项目中签出独立的 GORM。

      【讨论】:

        【解决方案7】:

        看看 Django 并继续有趣的编码吧!!!

        (或 RoR,或 Grails,或任何最适合您的,但 CRUDS 不应该仍然从头开始手工编码)

        【讨论】:

          【解决方案8】:

          进入网络开发?说真的,即使有数据库,我构建 Web 应用程序所需的基本杂物水平也很低。

          【讨论】:

            【解决方案9】:

            在这种经济环境下,您可能很难再找到另一份工作,但这并不意味着您不应该尝试。找到一些你认为你会喜欢的工作,去学习它并寻找工作机会。即使您认为自己不太可能得到这份工作,打几个电话并进行几次面试也没有什么坏处。更好的是,您可以想办法创办自己的公司。

            【讨论】:

              【解决方案10】:

              开发一个框架,以便在您的工作中轻松创建 CRUD。完成此操作后,请利用空闲时间在可用性、安全性、性能等方面进行改进。这应该会让您的工作在一段时间内保持有趣。

              【讨论】:

              • 这正是我们所需要的:每个程序员一个框架!不要误会我的意思,框架很有用,但大多数时候,编写自己的框架并不是解决方案。
              • 已经有很多框架了。例如有 orm 工具(如 Java 的 Hibernate),也有基于 json-schema 的工具来自动在前端显示这些数据。
              【解决方案11】:

              首先,您是否了解了有关持久性存储的大部分知识?值得弄清楚如何在您当前的工作中实际应用数据库理论等。一旦你已经这样做了几年并弄清楚了这一切,你绝对应该考虑扩大你的视野。我同意你的看法 - 除非你自己构建 DBMS - 我发现工作的持久性存储部分变得相当无聊。

              在新领域找到工作的最佳方法之一是制作与工作相关的原型,以便在面试中展示。这是一个令人难以置信的有力声明。

              嵌入式软件确实是我的菜,但它的市场在北美正在慢慢萎缩并转移到发展中国家,这是一个相当专业的入门领域。

              在我看来,应用空间仍在增长。以 iPhone、J2ME 或 Windows Mobile 开发为例。您可以通过相对较少的设备投资学习自己完成这些操作。

              如果您还没有这样做,还有网络应用程序空间。 JBOSS 和 Glassfish 等应用服务器平台是免费的,而且相当容易学习。此外,它们还提供了指向您已经知道的 CRUD 的链接。

              【讨论】:

                【解决方案12】:

                寻找或编写一种方法来更快地执行应用程序的 CRUD 部分。这样做,告诉您的经理您已完成分配的任务(确保它们已完成;测试、记录等),并询问您下一步应该做什么。

                【讨论】:

                  【解决方案13】:

                  几乎每个程序都必须创建、读取、更新和删除某种数据。在某些系统中,这提出了自己的挑战。

                  然而,大多数时候读写数据库相当容易(这就是他们制作数据库的原因)。获得数据后,您会如何处理这些数据,这很有趣,而且通常对企业来说是独一无二的,并且可以让您继续工作。

                  This article我同意,基本上很多编程都很无聊。

                  但是,如果您足够优秀并且足够坚定,您最终会做一些有趣的事情。

                  【讨论】:

                    【解决方案14】:

                    我同意 CRUD 很无聊。但我不认为这是财务数据造成的。例如,如果财务数据流入您编写的基于神经网络的专家系统中,以找出如何最好地进行投资,也许您会发现这些数据更有趣?

                    编程肯定比 CRUD 多得多。找到一个你感兴趣的方面,然后去追求它。

                    【讨论】:

                      【解决方案15】:

                      CRUD - 是的,最终我们正在存储、读取和更新数据。但那又怎样?这只是等式的一部分,至少在我的世界里是这样。

                      在业务中,数据是必不可少的,但重要的是业务逻辑和根据该数据做出的决策。我发现获取原始数据并使用它来帮助企业做出决策是非常有益的。我们在代码中使用业务逻辑来做到这一点,更不用说在表示层中呈现数据的无穷无尽的方式了。

                      是的,最终涉及到 CRUD,但远不止这些,不是吗?

                      只是我的意见。

                      【讨论】:

                      • "是的,最终涉及到 CRUD,但远不止这些,不是吗?"好吧,不适合所有人。我生病了,因为我的工作是 90% 的 CRUD。简直不能再忍受了。大多数时候,我的工作是显示输入和管理数据,虽然我必须处理一些数据之间的复杂关系,但仅此而已。
                      【解决方案16】:

                      换一份工作。说真的,并不是所有的软件开发都在开发业务应用程序。我认为开发运输软件会让你更快乐。尝试在 software 公司找一份工作,然后写一些要发给客户的东西。此外,如果您想了解一些低级硬件风格的东西,只需开始研究一些基本的微控制器,这样您至少有一些背景知识。

                      【讨论】:

                        【解决方案17】:

                        我认为没有人真正喜欢做 CRUD(至少任何人理智)。这是网络编程中最乏味的部分。我的建议是找到或编写一个框架来为您自动执行此操作。

                        但是,如果这是您的大部分工作,那么您绝对应该考虑换工作。

                        【讨论】:

                          【解决方案18】:

                          当我还是一名本科生时,我将我的专业从电气工程改为计算机科学,因为我想写电子游戏。后来,当我开始为真钱开发业务应用程序时,我了解到我只是喜欢用代码解决问题

                          你可能做错了。

                          【讨论】:

                          • CRUD 几乎是一个已解决的问题。我认为这就是OP所抱怨的。他想解决问题,而不是为十几个不同的表重新创建具有不同字段的相同表单。
                          • @Adam - 说得好 - 这就是我要找的东西
                          • 恐怕@Adam 是对的。我不明白我们通过使用现有框架连接到数据库并获取数据以序列化为 JSON 来“解决”什么问题,所有这些都是在文档类和方法的帮助下完成的。
                          猜你喜欢
                          • 2013-06-14
                          • 1970-01-01
                          • 1970-01-01
                          • 1970-01-01
                          • 2020-06-25
                          • 2013-12-12
                          • 2020-04-08
                          • 1970-01-01
                          • 1970-01-01
                          相关资源
                          最近更新 更多