- 项目落地 - 《选择项目工具的方法论》

这篇具有很好参考价值的文章主要介绍了- 项目落地 - 《选择项目工具的方法论》。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

        本文属于专栏《构建工业级QPS百万级服务》


        提纲:

  • 选择大概率能完成业务目标的工具
  • 选择最适合的工具
  • 制作最适合的工具

        本文所说的项目工具,泛指业务软件开发,所依赖的第三方提供的成熟的资源。包括但不限于开发语言、编辑工具、编译工具、三方库、方法论。使用项目工具的目的是为了按时高质量完成项目。

        第一阶段:选择大概率能完成业务目标的工具。这里为什么不是选择每个环节都用最优的工具,如果能做到,当然最好。但是一个人的知识是有局限的,而环境是不断变化的,做到每个环节最优,是需要大量精力,且需要承担风险的,另外不同的工具最擅长解决不同的问题,在工程初期,我们很难预估所有的关键问题在哪里。

        一个实践的例子是。在2020年的时候,我负责设计搭建一个新的服务,其中json解析的工具,我选择了RapidJson,而实际上性能显著提升的simdjson、yyjson在2019年、2020年相继出现了,从今天的角度回看,似乎我的选型是错误的。但是引入没有经过大量使用和验证的三方库,是有风险的,比如稳定性是否足够,在极端情况下的性能和正确性。这些都是需要花精力去验证的,项目中有很多依赖项,我的资源和时间不足以去做这么详细的论证,在大部分的工业软件中,我们也没法做到完美。选择大概率没问题的工具,适用于项目中大部分的环节。

        站在2024年2月的时间点,如果现在需要开发一个同样的服务,我是如何选择用什么库解析呢。首先目前各自的官网上,simdjson给的性能测试如图1,yyjson给的性能测试如图2。处于一个各自说自己好的情况,我相信测试结论,但是得到结论所使用的各自的应用版本和输入数据集不同,所以是各自有擅长的场景。截止2024年2月17日,simdjson在github的🌟是18.1k,而yyjson是2.8k,当然这不能说明simdjson比yyjson好,但是这能说明,大概率,在大部分场景simdjson比yyjson更好。

- 项目落地 - 《选择项目工具的方法论》,构建工业级QPS百万级服务,架构

图1 

- 项目落地 - 《选择项目工具的方法论》,构建工业级QPS百万级服务,架构

图2

        第二阶段:选择最适合的工具。选择大概率正确的工具,核心原因是因为资源和时间不够。但如果,我的服务大部分CPU都用在了json解析上,那大概率正确就不够了,在关键的环节,我们应该显著倾斜更多的资源。这个时候我们需要依赖我们的业务特性做详细的验证和测试,对含有大量的数字的json数据,与含有大量字符的json数据,不同库表现是不一样的。最好的办法是,积累大量的线上数据,做离线的情况下,做验证。有时候这种验证没有办法做,因为前置链路在架构设计初期,还没有数据,所以我们只能被迫回退到选择大概率能完成项目目标的工具。

        第三阶段:制作最适合的工具。市面上工具,是针对大部分问题的通用解决方案。不一定是每个业务的最优解,在深入解决业务关键问题的时候,认识到问题的本质,才能找到最合适的办法。比如在业务中,数据协议的作用是让上下游通过确定的协议解析网络的二进制数据,那就不要把视野局限在json协议上,自定义的二进制协议获取更快。比如业务中传输的一连串id,json格式为:{"UserIDs": "123,232,4434,2342"}。为了极致的性能我们的数据规格可以改为"4,123,232,4434,2342",代表着,有4个id,分别是123,232,4434,2342。这里一共是1个2字节的数字,加上4个4字节的数字,解析的时候按字节解析。虽然我们自己设计的协议不通用,不易读,但是性能好,也就是在业务中,我们增加了程序复杂度,减少了资源成本。而这里没有最优,只有最适合。文章来源地址https://www.toymoban.com/news/detail-826092.html

到了这里,关于- 项目落地 - 《选择项目工具的方法论》的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据仓库性能测试方法论与工具集

    目录 目录 数据仓库 v.s. 传统数据库 数据仓库性能测试案例 性能指标 测试方案 测试场景 测试数据集 测试用例 性能指标 测试脚本工具 基准环境准备 硬件环境 软件环境 测试操作步骤 Cloudwave 执行步骤 导入数据集 TestCase 1. 执行 13 条标准 SQL 测试语句 TestCase 2. 执行多表联合

    2024年02月12日
    浏览(42)
  • 数仓建模方法论

    1.数仓建模的理由 数据建模的主要目的是降低成本,提高数据的利用效率。尤其是大数据时代的到来,数据的多样化,巨量,更需要有效的有针对性数据建模方法。 大数据的数仓建模正是通过建模的方法,更好的组织、存储数据,以便在性能、成本、效率和数据质量之间找到

    2024年02月05日
    浏览(41)
  • 搜索方法论

    搜索技巧: 1. “”:不拆分。当我们查找的内容为一个词组或者多个汉字,那么我们用双引号把他们括起来再进行查找,此时搜索到的结果最少也最精确。 2. -干扰词(中间有个空格) 3. +确定词(中间有个空格)  4. filetype:文件格式 效果就是寻

    2024年02月12日
    浏览(36)
  • OneData方法论-概述

    OneData概述 OneData是阿里巴巴数据整合及管理体系,其方法论的核心在于:从业务架构设计到模型设计,从数据研发到数据服务,做到数据可管理 、可追溯、可规避重复建设。即数据只建设一次。 OneData体系架构 Onedata方法论分为三个阶段:业务板块、规范定义、模型设计。 业

    2024年02月05日
    浏览(46)
  • SQL-方法论

    写SQL时可以考虑的手段: 行转列 先分为多个临时表,然后JOIN到一起 用sum(if()) 列转行 先分为多个临时表,然后UNION到一起

    2024年02月14日
    浏览(45)
  • 渗透测试方法论

    攻击与防御,攻击典型代表就是黑客入侵,非法的和渗透测试,合法的等工作。防御的典型代表等级保护、安全基线检查与加固、安全设备等。 渗透测试(penetration testing,pentest)是模拟黑客攻击,实施安全评估(即审计)的具体手段。方法论是在制定、实施信息安全审计方案时

    2024年02月11日
    浏览(52)
  • SOA认知和方法论

    在软件设计领域,企业架构通常被划分为如下五种分类: 如何理解架构分类依据及其彼此之间的关系?业务是企业赖以生存之本,因此业务架构是基础、是灵魂,其他一切均是对业务架构的支撑;根据业务架构形成与之相应的产品架构和数据架构;最后通过技术架构落地实施

    2024年02月08日
    浏览(48)
  • 论文阅读与管理方法论

    构建知识体系 通过Related Works快速了解该方向研究现状,追踪经典论文。 紧跟前沿技术 了解领域内新技术及效果,快速借鉴到自身项目。 培养科研逻辑 熟悉论文体系,了解如何快速创造新事物,培养良好的科研习惯。 写论文 面试找工作 快速熟悉某领域 发展历程 、 现状及

    2024年02月15日
    浏览(43)
  • 性能分析方法论简介

    限于作者能力水平,本文可能存在谬误,因此而给读者带来的损失,作者不做任何承诺。 通常,我们是通过理论指导实践,而实践又反哺完善理论,二者缺一不可。 总的来说,性能优化是 从 时间 和 空间 两方面做出优化 ,然后取得一个可接受的平衡点。记住,无论怎么优

    2023年04月19日
    浏览(51)
  • MySQL的性能优化方法论

    作者:禅与计算机程序设计艺术 MySQL是一个开源的关系型数据库管理系统,由瑞典MySQL AB开发并发布。它的目的是为了快速、可靠地处理复杂的事务处理,支持多种编程语言,包括C、C++、Java、PHP、Python等。它是一个高效、可伸缩的数据库服务器,在Web应用方面也经常被应用到

    2024年02月06日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包