这是我的技术BLOG的2023年回顾篇,让我们重新回顾,温顾而知新。对每一篇文章,再次做了介绍 架构设计:  基于AWS云SaaS多租户架构设计      多租户架构设计是一种软件架构模式,主要应用于云计算环境中的软件即服务(SaaS)产品开发。在多租户架构中,一个单一的应用程序实例能够为多个不同用户(称为“租户”)提供服务,每个租户都有其专属的、独立的业务数据和配置,尽管他们共享的是同一套基础架构、平台或应用程序代码。 多租户架构的核心挑战在于如何...

  HJM7RbKj596p   2024年01月01日   15   0   0 企业信息化其他

何时使用GraphQL、gRPC和REST      在设计应用程序时,开发人员可以从各种客户端-服务器通信协议中进行选择。使用GraphQL、gRPC和REST在当代项目中相对常见。每种协议都可以提供各种优势,具体取决于您的应用需求。       一.GraphQL是一种灵活的数据请求方法,它专注于特定请求并仅提供必要的请求。GraphQL是客户端驱动的,这一事实将其与其他API区分开来,而不是以标准方式处理它,由客户端做出所有决策。它的优点是它与语言无关,请求是通过单个终结点发出...

  HJM7RbKj596p   2023年12月16日   47   0   0 软件工程其他

     简而言之,"金丝雀"发布CanaryReleases的理念就是只向一部分用户发布新的软件版本,分析结果,然后决定是否继续发布。如果结果与预期不符,就退回;如果结果与预期相符,就增加用户数量,直到所有用户都从新版本中受益。在这篇文章中,我将简要介绍这一介绍的细节,解释定义分数的不同方法,并展示如何使用ApacheAPISIX执行该操作。     "金丝雀"发布简介    金丝雀"一词源于煤炭开采业。采矿时,释放有毒气体的情况并不少见。在狭小的封闭空间内,这可...

  HJM7RbKj596p   2023年12月09日   77   0   0 开源研究

API成批分配漏洞介绍 API特定:可利用性2     利用通常需要了解业务逻辑、对象关系和API结构。在API中利用批量分配更容易,因为按照设计,它们公开了应用程序的底层实现以及属性名称。 安全弱点:      现代框架鼓励开发人员使用自动将客户端输入绑定到代码变量和内部对象的函数。攻击者可以使用这种方法来更新或覆盖开发人员从未打算公开的敏感对象的属性。 影响:      利用该漏洞可能会导致权限升级、数据篡改、绕过安全机制等。 API是否容易受到攻击?...

  HJM7RbKj596p   2023年11月26日   30   0   0 Java

     Kiota是一个命令行工具,用于生成API客户端,以调用您感兴趣的任何OpenAPI描述的API。目标是消除您需要调用的每个API对不同的APISDK的依赖。KiotaAPI客户端提供了高质量APISDK提供的所有功能的强类型体验,但无需为每个HTTPAPI学习新类库。 功能特点 支持多种语言:C、CLI、Go、Java、PHP、Python、Ruby、Swift和TypeScript充分利用OpenAPI描述的全部功能能够轻松实现新的语言支持仅通过构建核心库生成所需的源代码最大限度地减少外部依赖性利用JSONSchema描述生成...

  HJM7RbKj596p   2023年11月19日   16   0   0 开源研究

   清晰架构原则对于任何希望创建健壮、可维护和可扩展软件的软件开发者来说都至关重要。理解并实施这些概念可以显著提升你的编程技能。以下是对20个基本架构洞见的深入探讨: 依赖规则:清晰架构的核心是依赖规则。它规定源代码的依赖关系应始终指向内部。这种内向的方向确保了一个具有弹性的基础,强调了关注点的分离,并促进了更易维护的结构。像NDepend这样的工具不仅仅是方便的工具,对于那些注重视觉检查和平衡的开发者来说,它们是必不可少的。 实体优先:在考虑数据库或框架之前,专注于业务规则至关重要。通过最初专注于实体,您可以防范软件受到紧密耦合困扰的风险。这种优先级确保业务...

  HJM7RbKj596p   2023年11月17日   17   0   0 架构设计

项目管理之干系人立方体分析 我们常见干系人 权力利益方格、权力影响方格,或作用影响方格:基于干系人的职权级别(权力)、对项目成果的关心程度(利益)、对项目成果的影响能力(影响),或改变项目计划或执行的能力,每一种方格都可用于对干系人进行分类。对于小型项目、干系人与项目的关系很简单的项目,或干系人之间的关系很简单的项目,这些分类模型非常实用。 干系人立方体StakeholderCube:上述方格模型的改良形式。立方体把上述方格中的要素组合成三维模型,项目经理和团队可据此分析干系人并引导干系人参与项目。作为一个多维模型,它将干系人视为一个多维实体,便于分析,从而有助于沟通策略的制定。 S...

  HJM7RbKj596p   2023年11月05日   51   0   0 企业信息化其他

一些研发工程师在Springboot注意点 1.正确设计代码目录结构 虽然您有很大的自由度,但有一些基本规则值得遵循来设计您的源代码结构。 避免使用默认包。确保所有内容(包括入口点)都在命名良好的包中,这样您就可以避免与组装和组件扫描相关的意外情况; 将Application.java(应用程序的入口类)放在顶级源目录中; 建议将控制器和服务放在面向功能的模块中,但这是可选的。一些非常优秀的开发人员建议将所有控制器放在一起。无论如何,坚持一种风格! 2.保持@Controller简洁和专注控制器应该非常简单。 可以在这里阅读GRASP中的控制器模式部分。希望控制器充当协调员和委托者,而不是...

  HJM7RbKj596p   2023年11月02日   21   0   0 Java

ServiceA不应该直接调用ServiceB派生的Dao方法 背景     服务层单元测试是指针对应用程序中服务层代码的测试。服务层通常包含业务逻辑和数据处理代码,因此服务层单元测试的目标是验证这些代码的正确性和可靠性。通过编写针对服务层方法的测试用例,并模拟服务层的依赖项,我们可以在隔离环境中对服务层代码进行测试,以确保它的功能符合预期。这种测试方法有助于提高整个应用程序的代码质量和稳定性。 我们在ServiceA中直接调用ServiceB.lambdaQuery()进行数据DAO访问 MybatisPlus的官方“链式调用lambda式” 我们在单...

  HJM7RbKj596p   2023年11月02日   62   0   0 企业信息化其他

     在当今瞬息万变的数字生态系统中,Web开发对于全球企业和组织而言已变得至关重要。紧跟Web开发领域的新兴发展,其意义怎么强调都不为过。网络开发行业不断发展,经常会引入新的框架、语言和方法。通过紧跟这些变化,开发人员可以应用最新的工具和技术来提升用户体验、加快网站速度,并在竞争中领先一步。移动设备的兴起也得益于技术的发展,这就要求网站采用响应式设计和移动友好型设计。由于语音搜索和虚拟助手的日益普及,开发人员正在将语音识别和自然语言处理纳入在线应用程序。由于无服务器架构和云计算的改进,网站现在更具可扩展性、安全性和有效性。 移动优先的开发...

  HJM7RbKj596p   2023年11月02日   36   0   0 云计算

     软件开发的生产力一直是很难衡量的。与其他行业不同,编程行为并不容易并行化。开发过程是独特的,因为它需要技术和沟通技能的多样化组合,这就要求有一套专门的指标来跟踪团队的生命力。 软件开发的脉搏     并非所有的衡量标准都是平等的。根据不同的环境,有些比其他的更有用。我们选择测量的东西可以帮助我们发现问题,也可以把问题掩盖在不相关的数据和非生产性的目标后面。 在决定要跟踪哪些指标时,我们应该考虑几点: 当人们感到被观察时,他们的行为是不一样的。这被称为霍桑效应,它可能会造成不适当的...

  HJM7RbKj596p   2023年11月01日   43   0   0 软件工程其他

代码审阅CodeReview金字塔      当涉及到代码审查CodeReview时,一个普遍的现象是,围绕着代码格式和风格等平凡的方面有很多关注和冗长的讨论,而重要的方面(代码修改是否做了它应该做的事情,它是否具有性能,它是否向后兼容现有的客户端,以及其他许多方面)往往不太受关注。 此图原出处. 自动化检查:代码风格和单元测试,这个可以在代码提交时进行、并由SonarQube定期检查,着重于代码的简洁、可测试,可维护 人工代码检查:主要关注文档、实现语义及API语义,着重于代码的性能、可扩展性、可靠性。   &nbs...

  HJM7RbKj596p   2023年11月01日   64   0   0 软件工程其他

    2022年写的BLOG我们来回顾下,合计48篇,总结概要如下:      架构篇       1.《农产品供应链基于区块链架构设计》,属于智慧农业其中一部分。新冠肺炎疫情突然暴发后,以传统农贸市场为主导的农产品“生产—采购—销售”模式被暂停,供销渠道不稳定导致农副产品供应质量波动剧烈、供应品种单调。加上城乡道路封闭、物流停运以及供货商停产造成农副产品销售受阻,生产资料、服务供应难以及时获取,严重干扰了农业的正常生产。尽管中国是新冠肺炎疫情...

  HJM7RbKj596p   2023年11月01日   50   0   0 软件工程其他

轻量级实时容器Docker查看日志工具实践     介绍一款使用了几个月的开源小工具,Dozzle。基于MIT许可,它是一款轻量、简单的容器日志查看工具。其源代码基于GOLANG开发的,适合单机环境,如本地开发环境,测试环境。如下示例: 部署 直接单实例部署 dockerrun--namedozzle-d--volume=/var/run/docker.sock:/var/run/docker.sock-p16666:8080amir20/dozzle:latest--username=logman--password=yingji 健...

  HJM7RbKj596p   2023年11月01日   48   0   0 软件工程其他

     ChatGPT已经彻底改变了DevOps领域,并改变了行业内年轻专业人士的生活。凭借其先进的自然语言处理能力,GPT-3语言模型使创建智能聊天机器人和虚拟助手成为可能,它们可以处理复杂的任务,并以更像人类的方式与用户互动。这为实现DevOps工作流程的自动化和提高软件开发过程的整体效率提供了新的可能性。在这篇文章中,我们将探讨ChatGPT与DevOps工作流程的整合如何改变了年轻的DevOps专业人士的工作方式,以及对他们的职业发展产生的影响。         &...

  HJM7RbKj596p   2023年11月01日   52   0   0 软件工程其他

WebSocket连接      WebSocket是一种在单个TCP连接上进行全双工通信的协议。WebSocket通信协议于2011年被IETF定为标准RFC6455,并由RFC7936补充规范。WebSocketAPI也被W3C定为标准。WebSocket使得客户端和服务器之间的数据交换变得更加简单,允许服务端主动向客户端推送数据。在WebSocketAPI中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输。 兼容浏览器 握手与建立连接 抓包如下 以下是一些重要的参数,包括:头信息中的一些...

  HJM7RbKj596p   2023年11月01日   23   0   0 软件工程其他

软件工程师能力模型探讨 高级JAVA工程师通用技能 ExpertJavaknowledge  JAVA知识专家级 Object-OrientedDesignPatterns  面向对象与设计模式 High-leveldesignskills  高层模块设计 Designingforspecificrequirements(e.g.security,scalability,optimization) 安全,伸缩,优化设计 DevOps 开发测试运维 Distributed/parallelprogramming&n...

  HJM7RbKj596p   2023年11月01日   18   0   0 软件工程其他

开发工程师应该自己做测试吗?        首先要说明的是,大多数开发人员并不完全测试他们自己的代码,通常是因为他们有QA测试人员的支持。让QA测试人员利用他们的时间来发现缺陷,而不是自己花时间去测试,这样更容易。也许他们太忙了,或者公司更喜欢这种方法,喜欢让他们的开发团队来完成任务。还有一个潜在的傲慢的方面,因为一些开发人员认为他们的工作是没有缺陷的,但这可能(而且已经)导致影响业务的严重问题。      随着许多开发团队测试他们自己的工作,不使用QA测试人员,这个话题激...

  HJM7RbKj596p   2023年11月01日   53   0   0 软件工程其他

源代码质量对程序竞争力的重要性      在当今快节奏的软件开发领域,源代码质量直接关系到一个企业或个人在市场竞争中的地位和竞争力。本文将探讨源代码质量对程序竞争力的重要性,并阐述如何通过优化源代码质量来增强程序竞争力。 我个人也经常对初级软件工程师的建议能写好高质量代码就是其中竞争力之一。 1.引言:源代码质量的背景和意义 源代码质量是指代码的可读性、可维护性、稳定性以及性能等方面的指标。优秀的源代码质量能够提升开发效率、降低维护成本,并且有助于提供稳定可靠的软件产品。在激烈的市场竞争中,高质量的软件产品能够更快速地满足用户需求,增强用户满意...

  HJM7RbKj596p   2023年11月01日   33   0   0 软件工程其他

Maven多模块构建加速方案           拥有大量Maven模块会减慢项目构建和测试运行速度。为了维护多模块项目结构并快速运行测试,我们开发了一个新工具--Maven模块合并器,它帮助我们将某些构建时间从50分钟缩短到12分钟。在本文中,我将详细介绍Maven模块合并器帮助我们解决了哪些问题,并分享一些有关其创建的细节。      通过Autotests项目中的53,000多个测试,我们确保了我们的产品是一流的。其中16,000个是RES...

  HJM7RbKj596p   2023年11月01日   64   0   0 软件工程其他
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~