当前位置: 首页 > news >正文

贵州做旅游的网站哈尔滨市建设工程交易中心

贵州做旅游的网站,哈尔滨市建设工程交易中心,公司的官网建设,wordpress菜单加粗开源之夏经验分享#xff5c;Koupleless 社区黄兴抗#xff1a;在开源中培养工程思维 文|黄兴抗 电子信息工程专业 Koupleless 社区贡献者 就读于南昌师范学院#xff0c;电子信息工程专业的大三学生。 本文 2634 字#xff0c;预计阅读 7​ 分钟​ 今天 SOFAStack 邀…开源之夏经验分享Koupleless 社区黄兴抗在开源中培养工程思维 文|黄兴抗 电子信息工程专业 Koupleless 社区贡献者 就读于南昌师范学院电子信息工程专业的大三学生。 本文 2634 字预计阅读 7​ 分钟​ 今天 SOFAStack 邀请到了开源之夏 2024 Koupleless 社区的中选学生黄兴抗同学在本项目中他参与完成了​存量应用自动改造成模块​。希望他分享的这段经历能让更多人了解到 Koupleless 开源社区感受开源的魅力 ​项目链接​https://summer-ospp.ac.cn/org/prodetail/2495a0376?langzhlistpro 项目信息 ​项目名称​存量应用自动改造成模块 ​项目导师​赵真灵 ​项目背景​在参与 Koupleless 社区项目之前我就在社区文章中了解到当前企业在向云原生转型的过程中往往面临着一个重要痛点——​存量应用改造成本高​。特别是对于大量已经运行的 SpringBoot/SOFABoot 应用「如何低成本地实现模块化改造」成为一个急需解决的问题。 ​项目目的​本项目的核心目标是建设存量应用的自动化模块改造工具使得应用能够实现传统应用向模块化的低成本升级兼顾代码兼容性同时支持独立启动与合并部署。 技术方案设计 ​ 整体架构 为了实现目标我们通过 spanarkctl/span 命令行工具提供简单易用的入口将核心逻辑封装在一个包含以下 4 个主要组件的 JAR 包中 Launcher—作为整个工具的统一入口ApplicationPropertiesModifier—用于扫描并修改应用配置SlimmingConfiguration—负责模块瘦身和依赖管理PomModifier—专门处理 Maven 配置相关的逻辑 ​ 关键技术点 1. 配置文件自动化处理 自动扫描和修改配置文件支持多环境配置合并确保改造过程安全、可回滚。 2. POM 文件智能改造​ 自动添加必要的依赖和插件实现版本兼容检测和适配。 3. 模块瘦身方案 实现依赖隔离优化模块体积保证改造后的应用在运行时的兼容性。 模块改造的核心要素​ 1. 模块打包插件的引入 POM 文件中的关键配置如下 plugin groupIdcom.alipay.sofa/groupId artifactIdsofa-ark-maven-plugin/artifactId configuration skipArkExecutabletrue/skipArkExecutable declaredModetrue/declaredMode /configuration /pluginQ为什么需要引入模块打包插件 传统的 Spring Boot 应用打包后是一个可独立运行的 JARsofa-ark-maven-plugin 能够将应用打包成符合模块规范的格式模块化部署需要特殊的类加载隔离机制通过 declaredMode 实现精确的类隔离避免多模块间的冲突。 2. 模块瘦身的必要性 模块瘦身配置示例 slimming.excludeGroupIdsorg.springframework,org.apache.commons slimming.excludeArtifactIdscommons-lang,commons-ioQ为什么需要模块瘦身 基座已包含大量公共依赖模块无需重复打包。重复依赖会导致类加载冲突模块体积过大影响启动性能和资源利用通过瘦身可以优化模块大小提高部署效率。 3. 配置文件改造的意义 配置文件处理的核心逻辑如下 public static void modifyApplicationProperties(String directoryPath, String applicationName) { Properties props new Properties(); props.setProperty(spring.application.name, applicationName); }Q为什么需要改造配置文件 模块需要独立的应用名称和上下文路径避免多模块间的配置冲突确保模块能够在合并部署环境中正确运行支持模块的动态部署和热更新。 项目实现思路 针对传统的存量应用手动改造成模块的方式对其相关步骤进行拆解和分析后可感知到三个挑战配置文件改造、依赖管理和构建适配。 配置文件改造​方面挑战主要在于配置文件分散在不同目录、多环境*如开发、测试、生产*配置的复杂性以及可能存在的配置冲突。为了解决这些问题我们通过递归扫描定位所有配置文件利用 Java Properties API 确保读写的安全性同时采用追加写入的方式避免覆盖已有配置内容。依赖管理方面我们需要处理模块与基座依赖的重复问题、版本冲突的风险以及模块体积过大导致加载性能下降的情况。针对这些问题我们设计了预设排除规则精确分析依赖关系添加必要依赖并将有冲突的模块默认调整为经过测试的稳定版本。此外我们在配置文件中增加了黑白名单规则以实现模块瘦身。构建适配方面主要难点在于多模块项目复杂的依赖关系以及构建效率的优化。我们通过 spandeclaredMode/span 实现类加载隔离统一管理版本号并合理配置构建参数优化插件的执行顺序减少了不必要的构建步骤。 开源之夏个人随访 ​ 自我介绍 大家好我是​黄兴抗​目前就读于南昌师范学院电子信息工程专业大三学生。虽然我的专业和计算机软件领域并不完全对口但我对软件开发也颇感兴趣因此也十分向往接触云原生技术、微服务架构等前沿技术领域。接触开源是大二下学期时开始自那之后我就经常关注开源社区的技术动态。 参与该项目的原因​ 选择 SOFAStack 社区主要有基于以下几点的考虑 1. 技术积累 SOFAStack 作为蚂蚁集团开源的金融级云原生架构拥有丰富的企业级实践经验。社区项目涵盖了微服务、云原生等热门技术领域与我未来想从事的就业发展方向高度契合。 2. 社区氛围 SOFAStack 社区有着完善的新人引导机制,仓库所有者也会为新人提供适合入手的 issue 作为开始。使得我在相关课题正式开发之前就可以对其中的模块瘦身白名单实现的相关 issue 做一定贡献让我能够切身感受到解决问题过程中完善的反馈机制。同时社区维护者积极响应使我能够及时获得技术指导。 3. 项目价值 Koupleless 项目致力于解决企业实际痛点具有明确的商业价值。自动化改造工具的开发也能够帮助我积累工程化经验。此外项目涉及多个技术领域有助于拓展技术视野。 ​如何克服项目过程中的困难与挑战 在开发过程中少不了各种大大小小的困难与挑战其中不仅有代码实现部分也有许多非代码要求的项目流程如文档编写、工作流的设计、测试用例等工作。这些实际面向企业的开发流程规范让尚未就业的我时常感到困惑和阻碍。在这一情况下导师给到我很多指导和建议如参考一些优秀的活跃社区这让我收获颇多。 在项目开发的初期阶段导师会细心引导我深入了解项目的愿景、业务背景以及代码的整体架构帮助我整体紧抓课题的方向为后续开发奠定了坚实的基础。 在实际开发过程中每当我遇到困难或卡点时导师总是耐心地为我提供具体的建议和可行的改进方向帮助我快速找到解决问题的思路。此外社区还定期举办双周例会大家在会上同步开发进展、交流心得针对开发中遇到的难题展开讨论并集思广益寻找高效的解决方案。这种机制不仅增强了团队协作也让我更好地在学习中成长。 最让我印象深刻的挑战之一是如何处理各种不同项目的配置文件差异和版本兼容性问题。针对前者我采用了递归扫描的方式并实现了智能合并策略确保改造过程不会破坏原有配置。针对后者面对不同版本的 Spring Boot 和 SOFABoot 应用需要确保工具的通用性最终通过实现版本检测和适配机制解决了这个问题。 有哪些收获 1. 技术积累 通过这个项目我锻炼了编码能力更重要的是学会了如何设计一个自动化工具来解决实际问题。尤其是在处理配置文件、管理依赖等方面积累了宝贵经验。 2. 开源精神 参与社区让我深刻体会到开源的协作精神。从社区成员的热情帮助到积极的反馈机制都让我在解决问题的同时感受到了团队合作的力量。 3. 工程思维 项目让我开始从更全面的角度看问题功能的实现只是第一步如何保证工具的可维护性、扩展性甚至用户体验都是需要考虑的重要因素。
http://www.zqtcl.cn/news/45676/

相关文章:

  • 网站开发与维护视频教程wordpress 招聘网站模板
  • 自己做头像的网站asp网站镜像代码
  • 网站开发者的设计构想响应式网站建设定制
  • 给网站做rss网站建设包括哪些流程
  • 动漫做的游戏 迅雷下载网站抖音代运营服务内容明细
  • 建设网站的目的以及意义珠海网络推广
  • 坑梓做网站家居企业网站建设报价
  • 做商城网站建设肇庆网站优化建设
  • 网站模版开发天津网站建设渠道
  • 网站开发课程知识点总结哈尔滨住房和城乡建设局网站首页
  • 国内联盟wordpress插件网站建站 seo
  • 网站icp备案费用网站 改版 方案
  • 接go语言网站开发宁波seo哪家最便宜
  • 淘宝网站建设的公司网站效果图可以做动态的嘛
  • 寿光网站建设定制seo服务商
  • it公司网站模板职业生涯规划网站开发背景
  • 简单大方的网站如何开发一个app建设一个网站
  • 安徽工建设信息网站公司创建流程
  • 网站建设 有聊天工具的吗网页制作基础教程免费
  • 使用wordpress的购物网站网站建设大概多少钱
  • 鲅鱼圈企业网站建设沐风seo
  • 怎么做有趣的视频网站免费咨询在线医生问答
  • 视频网站建设多少钱一个简单的网站搭建教程
  • 卫龙的网站是谁做的高端网站有哪些优势
  • 网站建设linux大数据网站开发工程师
  • 泸州建设工程质量监督网站dz转wordpress
  • 2018淘宝客网站开发服装设计就业前景
  • 如何做网站的内链优化公众平台安全助手官网
  • 全景网站如何建设外包网站
  • 青岛网站制作曹鹏的wordpress教程