首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何决定:从头开始构建或对现成的解决方案进行逆向工程

在决定是从头开始构建还是对现成的解决方案进行逆向工程时,需要考虑以下几个因素:

  1. 预算和时间限制:如果预算和时间限制相对较紧,那么选择现成的解决方案可能更加实际。从头开始构建可能需要更多的时间和资源,而现成的解决方案可以节省这些资源。
  2. 功能需求:如果需要的功能已经在现成的解决方案中提供,那么选择现成的解决方案可能更加方便。从头开始构建可能需要花费更多的时间和精力来实现相同的功能。
  3. 可定制性和可扩展性:如果需要对系统进行大量的定制和扩展,那么从头开始构建可能更加灵活。现成的解决方案可能存在一定的限制,需要进行额外的定制和开发工作。
  4. 技术支持和维护:如果需要长期的技术支持和维护,那么选择现成的解决方案可能更加方便。现成的解决方案通常有完善的技术支持和维护机制,可以减少自己开发和维护的成本和风险。

综上所述,决定是从头开始构建还是对现成的解决方案进行逆向工程需要综合考虑多个因素,并且需要权衡各种选择的优缺点。在做出决定之前,建议进行充分的调查和分析,以便做出最佳的选择。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

软考高级:逆向工程相关概念和例题

设计恢复(Design Recovery) 设计恢复是指从现有的产品中提取和重新构建系统设计信息过程。这通常涉及到理解系统结构和行为,以及它们是如何协作。...设计恢复目的是为了理解旧系统设计,以便于维护、评估复用系统某些部分。 例子:分析一个遗留系统,提取其架构设计文档,以便系统进行升级或者迁移到新技术平台。...再工程(Reengineering) 再工程是指现有的系统进行深入分析和修改过程,目的是在保留其核心功能同时,通过重新设计和实现来提升系统性能、改善结构适应新技术环境。...逆向工程目的并不在于从头开始创建新软件(选项A,描述是正向工程),也不是直接修改竞争对手软件产品(选项C),更不是直接为现有系统增加新功能(选项D)。...而是通过现有软件产品深入分析,来达到理解、维护改进软件目的。 答案:C。设计恢复在软件维护中作用是理解系统设计,以便于系统进行复用或者升级。

13300

停止从头开始编写机器学习算法

从头开始实现算法是我看到初学者犯最大错误之一。 在这篇文章中,你会发现: 初学者陷入算法实现陷阱。 世界级工程机器学习算法实现起来非常困难。 为什么你应该使用现成实现。 让我们开始吧。...(Quora) 为什么你和其他人有时候会从头开始实现机器学习算法?(GitHub) 你可能做错了 您不必从头开始实现机器学习算法。 这是传统上用于教授机器学习自下而上方法一部分。 学习数学。...这不仅仅是单元测试问题,而是技术有深入了解,并设计案例来证明实现如预期一样,并处理边缘案例。 使用现成实现 你可能是一个优秀工程师。...开源库中现成实现是为了速度和/健壮性而构建。 你怎么能不使用标准机器学习库? 它们可能是为了尽可能快地适应狭窄问题类型而设计。...非常适合将解决方案拼接到开发中机器学习问题,这个方案已经足够强大,也可以部署到操作中。 R 。更先进平台,虽然有一个深奥语言,有时还有一些错误软件包,可以使用学术界直接编写最先进方法。

72480
  • Bechtle平台工程重塑软件开发

    此外,我无法保证这些环境治理和合规性。我们工程实践认知负荷非常大。”...平台工程带来了必要改变 为了解决这些棘手问题,大约 18 个月前,Alfter 决定采用平台工程 方法,对公司开发策略和流程进行必要改变。...在创建新平台工程生态系统后,Alfter 走出去与客户交谈,告诉他们公司正在进行改变将如何使他们受益。Alfter 很快就有信心, Bechtle AVS 客户会接受这种改进策略,他说。...“我们看到,当然,并非所有客户都会立即购买东西并……进行平台工程。但你会建立品牌信任。人们会听你我们来说,这是一个加强品牌好方法。”...Bechtle AVS 如何选择其平台工程工具 为了快速将平台工程引入组织,Alfter 引入了平台工程供应商 Humanitec,以提供其可立即部署平台编排器和开源构建块,例如 Score,以帮助他公司实现其目标

    10210

    2022年面向前端开发人员9个最佳UI组件库框架

    如果你客户老板喜欢他们所看到,但希望进行一些小更改,这可以通过实时进行调整来快速完成,而不是每次出错时都必须从头开始(就像根本没有使用原型一样)。...节省时间:如果你想建立一个新网站,需要一些时间来自己创建所有必要元素——这就是为什么大多数人使用现成解决方案。UI组件库为您节省时间,因为所有元素都已由专家创建和测试。...如果你如何使用特定组件有疑问需要自定义它帮助,创建者可能没有官方支持渠道,如文档教程。 谁是UI组件库目标用户?...这是一个开源库,因此你可以根据你特定要求进行自定义。...它提供了跨浏览器一致性,并使用Sass构建,这意味着你可以根据自己内心内容进行修改。标记是语义,类名被仔细选择为有意义和描述性。

    16.8K73

    软考高级:软件工程构建组装模型概念和例题

    一、AI 讲解 构建组装模型是在软件工程中使用一种开发模型,特别是在面向对象和组件化编程中。 它核心思想是利用现有的软件组件或者模块来构建应用程序系统,而不是从头开始编写所有的代码。...下面是构建组装模型相关概念、特点、优点和缺点详细解释。 概念 详细说明 构建组装模型 一种软件开发模式,通过组合现有的软件组件(如库、框架、模块等)来构建应用程序系统。...增加项目成本 如何解决构建组装模型中兼容性问题? A. 增加更多组件 B. 完全避免使用第三方组件 C. 仔细选择组件并进行适当集成测试 D....只使用一个大型组件来完成所有任务 构建组装模型项目管理有何影响? A. 使项目管理变得更加困难 B. 没有任何影响 C. 使项目管理更加容易 D....组件选择和组合。构建组装模型灵活性主要体现在选择和组合不同组件以满足特定需求上。 C. 仔细选择组件并进行适当集成测试。

    9100

    如何选择合适物联网平台

    购买与构建物联网平台:如何做出正确决定 是否从头开始构建购买现成物联网平台以满足企业需求,将在很长一段时间成为一个无解难题。在做出这个关键项目决策之前,您需要按部就班完成以下要求。...步骤1:验证物联网平台需求 ——确认是否存在业务需求,并估算投资回报率(ROI)附加价值。 步骤2:确定核心业务需求——选择合适业务人员将决定流程是否成功。...步骤3:确定体系结构要求 ——在确定现成定制解决方案是否是最佳选择之前,确定任何体系结构需求并遵循易混淆物联网标准世界状态非常重要。...垂直物联网平台与水平物联网平台 我认为,只有科技巨头工业巨头才能够​​维持水平物联网平台;对于中型企业来说,最好方法是在垂直领域进行差异化。...这一重要步骤将会表明您对不同标准相对重要性,从而有助于您集中精力去做一个更有针对性决定。 预先感谢您喜欢和分享! 所有物联网议程网络贡献者均其帖子内容和准确性负责。

    1.9K80

    软考高级:逆向工程、重构、设计恢复、再工程、正向工程概念和例题

    一、AI 讲解 逆向工程(Reverse Engineering) 逆向工程是指已有的产品、设备软件代码进行分析,以确定其构成、运作原理代码逻辑过程。...在软件开发中,逆向工程通常用于理解没有文档源代码旧系统,以便于维护、升级复制功能。 重构(Refactoring) 重构是指在不改变代码外在行为前提下,重新组织代码结构过程。...下面是一个表格,总结了上述概念主要特点: 概念 定义 应用场景 逆向工程 分析已有产品代码,确定其构成、原理 理解无文档源码系统;复制改进功能 重构 重新组织代码结构,提高代码质量 提高系统可读性...构建新软件系统 二、AI 出题 2.1 选择题 下列哪项是逆向工程典型应用场景?...从零开始构建一个新系统 逆向工程适用于分析和理解已有系统,对于从头开始构建系统,正向工程更为适用。 B.

    34000

    构建平台即产品5个教训

    在 我与 Joe Fitzgerald 共同撰写一篇关于平台即产品白皮书 中,我们定义了关于平台“产品化”思考方式,它可以重塑我们平台构建看法: “您平台不是现成软件;它是一组不断发展可重用服务...一种常见方法是经典糟糕 DevOps“你写它,你运行它”心态,在这种心态中,各个团队决定构建自己平台,结果发现其他多个内部团队也投资创建了他们平台。...它将如何为组织提供最大效率、安全性和生产力?实现这一点需要查看组织中团队 期望,但 业务来说是独一无二。...如果某件事行业来说并不独特,那么购买现成产品可能更有意义,或者获得现有的云服务来满足需求,而不是试图自己构建它。 决定正确抽象一种方法是了解错误抽象。...这种现实告诉我们必须以诚实方式思考我们平台以及它们如何以及是否能够适应这种环境,而不是试图进行支配。 在大多数组织中,底层只有一个基础设施层。

    8210

    赠书 | 开发者思维:优势来自于自主构建

    他表示:“我认为,你选择不自己构建东西和你所构建东西一样重要。公司唯一应该自行构建,是其业务核心。很多时候,人们最终选择构建系统在市场上已经有现成产品,并可以用相对较低成本购买获得许可。...回到过去,在软件供应链成熟之前,你面临答案通常是购买解决方案,因为构建需要花太大精力。你必须像微软甲骨文一样精通软件,才能自行构建软件。...但现在,得益于我们进入了软件第三纪元,数字供应链使企业能够以前所未有的轻松和速度构建软件,因此企业不仅可以,而且必须构建自己软件。激烈竞争形势决定了这一点。...今天,仍然有许多领域开发人员别无选择,只能从头开始构建微服务,因为现成替代品还不存在。但微服务模式优点在于,你可以在不干扰应用程序中其余代码情况下更换某个微服务。...苹果成功秘诀在于知道它需要购买什么和构建什么;知道如何以独特方式整合这些部分;最重要是,它还雇用了全世界最好开发人员来编写优秀软件。

    31810

    管好云安全,走这3步很关键

    这也意味着DevOps和安全团队必须知道如何使他们过程从一开始就可以确保他们继续以云计算速度构建和操作,同时保持安全性和合规性(如果需要的话)。   ...DevOps高级工程师Ilya Kalinin拥有云基础设施,DevOps工作流,自动化和云安全深厚背景,以及云安全专题现实经验。   ...(3)决定是建立还是购买   企业可能会感到惊讶是,自己投入建设云安全设施是多么昂贵,因此这意味着拼凑在一起解决方案从头开始构建。...与现成SaaS产品(成本和特性)如何比较?   是否有足够安全专业知识来建立一个系统?   将其整合在一起   可见性是公共云基础设施运行安全重要组成部分。...另外,在做出任何补救决定之前,建立基本规则,监控行为并根据内容进行调查。最后,当企业正在向云计算迁移时,请耐心等待这个过程,不要害怕要求外部输入,而是做出明智决定是否建立购买。

    87270

    使用Flink进行实时日志聚合:第一部分

    更具体地说,我们将: a) 讨论流式应用程序日志记录要求 b) 检查通用日志聚合系统组件 c) 从头开始构建可扩展日志聚合框架 d) 将我们定制解决方案现成工具进行比较 记录流应用程序 在进入分布式流应用程序日志记录需求之前...这些应用程序定期运行,处理大量数据,并产生关键输出。在处理期间出现错误时,我们需要能够进行调试,并且我们日志记录堆栈应始终为解决方案提供支持。...使用Flink、Kafka和Solr进行日志聚合 在此初始解决方案中,让我们使用Cloudera平台中可用处理框架来构建可伸缩且完全可自定义日志聚合堆栈。...此摄取器流作业将接收传入日志消息、进行解析、然后通过我们Solr搜索引擎进行索引。...在第2部分中,我们将使用摄取和仪表板组件来完善日志聚合管道,并研究如何现成框架与我们自定义解决方案进行比较。

    2.3K10

    AI版进化论上演?遵循适者生存,几天内复现数十年AI研究轨迹

    设计者认为,有一天,它可能会发现研究AI新方法。 构建AI算法需要时间 以神经网络为例,它是一种常见机器学习方法,用于翻译语言和驾驶汽车。...更小神经亚回路执行特定任务——例如识别路标——研究人员可以花几个月时间研究如何将它们连接起来,使它们无缝地工作。 近年来,科学家们通过将一些步骤自动化而加快了这一过程。...但这些程序仍然依赖于将人类设计现成电路拼接在一起。这意味着输出仍然受到工程想象力和他们现有偏见限制。 ?...然后在一个简单任务上测试他们,比如一个图像识别问题,在这个问题上,它必须决定一幅画上是猫还是卡车。 在每个循环中,程序将算法性能与手工设计算法进行比较。...通过随机替换、编辑删除一些代码来“突变”顶级算法副本,从而创建最佳算法细微变化。这些“儿童”被添加到人口中,而较老项目被淘汰。一个循环圆不断重复着。

    36440

    选择正确生成式 AI 方法指南

    原封不动地使用基础大模型可以很好地用于一般搜索,但如果要做好特定业务,则需要考虑上述选项之一。 二、主要内容 比较是如何进行?分析是基于以下指标进行: 准确性(回答准确程度如何?)...假设:我们将根据这些指标每种解决方案进行评估,并且分析仅适用于比较,而不是普遍适用。...请注意,我们不仅仅谈论是服务 组件费用,而是完全拥有解决方案所需成本,包括构建和维护解决方案所花费熟练工程师时间、自行维护基础设施成本、为执行补丁和更新而进行停机时间、设置支持渠道、招聘、...特别是,由于每次基础模型版本更新新批次数据进来时都需要进行调优,维护这样解决方案成本较高,并携带有关用例最新信息。...因为在这种情况下,模型是从头构建模型进行更新会触发另一个重新训练周期。可以说,我们也可以对模型进行微调而不是从头重新训练,但准确性会有所变化。

    3.2K30

    平台工程应知应会

    然而,许多企业正在将他们资源投入到针对特定用途构建有效解决方案。为了解决各种各样问题,工具领域正在快速发展。只要有可能,平台团队就可以通过裁剪现成解决方案来节省时间并创造更多价值。...如何确定哪些最适合你组织? 构建平台方法有很多种,没有通用解决方案,尽管有些供应商可能会做出这样承诺。...也就是说,你不一定要从头开始。现在有很多平台工具产品,其中许多是开源,也有一部分是专有的。为了节省组织时间和金钱,只要可能,就要考虑购买和定制预构建解决方案。...这就为平台团队留出了时间和资源,让他们专注于定制组织需要特性。 为了更好地理解所有选项,平台工程现状报告设法平台工具生态进行了划分。...平台工程现状报告发现,大多数正在构建组织平台受访者都拥有像高级软件工程师、IT 架构师、首席工程高级 DevOps 工程师等职位。

    38710

    亚马逊实践领域驱动设计之道

    客户普遍反馈最大挑战:如何拆分业务定义边界? ? 疑问一:是否可以直接购买现成业务领域模型?...再举一个例子就是涂鸦智能,他们提供了设备智能化全套解决方案,可以快速帮助小家电、大家电等设备制造商,构建智能互联解决方案:https://aws.amazon.com/cn/solutions/case-studies...疑问二:类似 AWS 这样云服务有提供现成行业化解决方案吗? AWS技术平台一直以来口号就是Go Build!赋能开发人员创造创新自由。...神奇逆向工作法,就是想象有一天你成功发布了你产品服务,你要如何跟你客户说?...,实施代价要有清醒认识,如果无法估算,就走一步看一步再走一步:) 归根结底是研发团队赋能 我们最后总结下,领域驱动设计还结合事件风暴或者亚马逊逆向工作法,才能更好地抽象业务领域,而这块抽象更多是人员和沟通问题

    1.2K21

    从初创到顶级技术公司,都在用哪些数据科学技术栈?

    但也存在一些趋势,如果你正在组建一个新团队、组织公司时候,一开始你可能需要效仿某个现成技术栈,再依据需求来构建自己技术栈,还需要对一些过时技术进行升级。...medium上一位博主最近与数据工程师、数据科学家和分析师交流后,总结了技术栈信息,并分享了每个部分都有哪些最常使用栈,至于云服务选择、容器、CI/CD工具等应用和模型部署相关技术,就留给工程师和...人工智能/机器学习:什么都有,看用户偏好 公司G—技术公司(顶尖数据文化) 数据库:MySQL, Cassandra (NoSQL), 定制其他数据库 数据仓库:Hadoop&定制/从头开始构建 ETL...:各种用例所需栈都不同,该公司技术栈选型所考虑因素比较多……最终自己开发了不少ETL工具,使用现成工具 可视化:常用有Python库、R和Tableau,但也会自己开发一些工具,并将工具开源...如果你和我一样,远没有詹姆斯那样超能力,也不能跳过天花板,你就需要研究如何在比赛中表现得更好,变得更加优秀。

    1.3K20

    软件工程如何抵御低代码冲击

    你和你团队负责构建、部署和维护公司使用各种应用程序。有些应用程序是你们自己开发,有些是现成,需要定制集成。 突然间,你发现有很多用户在开发自己低代码应用程序。你应该担心这个吗?...构建阶段 这是低代码软件可以发挥核心作用阶段。在进行整体设计之后,你团队业务用户就可以用低代码软件很快地做出应用程序。...在这个阶段,低代码软件关键优势是它们可以帮助你用户决定什么才是他们真正需要。他们不用画草稿和沟通需求细节,而是不断迭代解决方案,直到获得他们想要东西。...如何在没有标准访问接口情况下访问某些政府数据集?如何构建可以基于风险索赔进行分类机器学习模型?...如果你是一个负责写代码和构建 ETL 管道初级中级工程师,看一下你周围,如果你周围有很多同事做着同样事情,那么是时候考虑一下该如何增强你沟通和面对客户技能了。

    27820

    什么是“好”平台工程

    表面上看,这可能使平台工程方法看起来像是对生产力限制,但它实际上可以释放开发人员创造力,并显著减少日常繁琐工作。 构建与购买:组织如何实施? 平台工程要取得成功,必须正确实施平台。...由于组织其平台需要定制化,因此不可能简单地购买现成产品。同时,有大量点产品和开源项目可用于解决在生产中部署和运行软件时出现无数基础设施、CI/CD、安全性和其他“待完成工作”。...这意味着组织反而需要对其购买产品已采用开源软件进行一些工程工作。但问题是:自己设计多少才是合适?平台工程可能会分散业务目标的注意力,而不是推动这些组织与众不同之处。...解决此问题办法是让组织构建尽可能精简平台。平台工程团队不应从头开始构建;平台应构建在其他平台之上。...面向未来平台工程 最终,平台工程目标是鼓励开发人员(无论其团队职能如何)使用平台,而不是在平台之外进行试验。

    12210

    从用户注册开始(上)

    前言 接上一篇《大型网站架构演变》,从本篇开始,将从0到1构建一个单体电商项目,并以此为基础,从集群到分布式,再到微服务,进行逐步演变。我们先从用户注册入手,从头开始分析,并搭建项目。...Maven构建聚合工程 我们将采用主流方式,通过Maven来管理项目,并项目进行分层设计,构建聚合工程。 ?...Mybatis 数据库逆向生成工具 为了进一步提高效率,当我们数据库表设计好了之后,我们可以利用MyBatis数据库逆向生成工具来帮助我们自动生成一些文件,比如数据库对应实体entity,与之对应...通俗点说,通用Mapper是单表CRUD操作进行了较为详细实现,使得我们可以按照自己需求选择通用方法。 ? 整合SpringBoot 依赖 ? 启动类 ? 配置 ?...小结 到这里,咱们已经讲述了前后端开发模式、Maven构建聚合工程、数据库建模、MyBatis逆向生成工具以及SpringBoot整合等相关话题。

    1.2K30

    开发者自助服务五大挑战(及解决方案

    如何让开发者实现自助服务? 这是越来越多企业正在寻求答案问题,因为它们正在拥抱开发者自助服务,或者有时被称为平台工程,以最大化提高软件工程生产力和工作满意度。...简而言之,开发者自助服务是一种模式,其中软件工程师可以创建所需服务和环境,而无需等待请求 IT 部门设置解决方案。...如果企业允许开发者自助服务并提供现成开发者解决方案,软件工程师就不再需要创建符合企业 IT 政策定制服务和环境,而且这些定制服务通常未经管理和安全措施,因为 IT 部门不知道它们存在。...然而,与任何其他 IT 资源一样,平台本身建设和运行都需要成本,如果您不对如何优化成本进行战略性考虑,可能会发现自助服务解决方案超出预算。...结论:从开发者自助服务中获得更多 决定为开发人员提供自助服务解决方案是提升开发工作流程第一步。

    11410
    领券