当前位置:首页 > 科技  > 软件

停止过度设计中等规模的前端应用程序

来源: 责编: 时间:2023-08-14 22:01:07 207观看
导读开发一个小型应用程序很简单。另一方面,开发大规模应用程序极其困难,但至少有大量可用的资源可以指导你。然而,大多数实际应用存在的中间地带,却鲜少受到关注。在软件开发领域,不陷入过度工程化的陷阱,写出可维护的代码的做

开发一个小型应用程序很简单。另一方面,开发大规模应用程序极其困难,但至少有大量可用的资源可以指导你。36F28资讯网——每日最新资讯28at.com

然而,大多数实际应用存在的中间地带,却鲜少受到关注。在软件开发领域,不陷入过度工程化的陷阱,写出可维护的代码的做法,已经越来越少见了。36F28资讯网——每日最新资讯28at.com

让我们探索哪些流行的成分可能对中型应用有益,并评估它们是否会帮助你管理复杂性,或者是否会制造出比解决的问题更多的问题。36F28资讯网——每日最新资讯28at.com

Typescript

YES ✅36F28资讯网——每日最新资讯28at.com

首先,我们来解决这个问题。现在是2023年,对于不在你的开发流程中使用TypeScript,实在没有任何借口。所有顶级的前端框架都推荐使用它,而且它们的构建过程使得开始使用变得非常容易。36F28资讯网——每日最新资讯28at.com

Typescript是JavaScript的超集,它增加了类型注解、接口以及其他功能,使编写可维护和可扩展的代码变得更加容易。它可以帮助在开发过程的早期捕捉错误,并且可以使得随着应用程序的增长,重构代码变得更加容易。36F28资讯网——每日最新资讯28at.com

状态管理

YES ✅36F28资讯网——每日最新资讯28at.com

状态管理是任何中等规模前端应用的另一个重要考虑因素。随着你的应用复杂度的增长,管理状态变得越来越困难。有许多库和框架可以帮助解决这个问题,例如Redux,MobX,Vuex和Pinia。这些工具可以帮助你维护一个一致的应用状态,并使添加新的功能和特性变得更容易。然而,要注意全局状态会产生耦合,你应该强烈考虑将你的存储分割成多个模块。另外,避免滥用它来处理那些不应全局可用的事物,如组件状态。36F28资讯网——每日最新资讯28at.com

功能标志

YES ✅36F28资讯网——每日最新资讯28at.com

功能标志,也被称为功能切换,允许我们在运行时和无需新的部署中切换代码库中的特定功能。这是一种强大的技术,有助于发布新功能,进行A/B测试,并有效管理开发和部署过程。它们可以带来更大的灵活性,更快的发布,以及与部署新功能相关的风险降低。有各种库和工具可用于在不同的语言和框架中实现功能标志。36F28资讯网——每日最新资讯28at.com

测试

YES & NO ❓36F28资讯网——每日最新资讯28at.com

测试是任何应用程序开发过程的重要部分。单元测试、集成测试和端到端测试是一些常用的测试方法,它们可以提高代码质量,并在长期内节省时间。可测试的代码通常是更好的代码,而在开发早期创建测试用例可以确保应用程序会有更少的错误,并且在新人加入时会更容易。36F28资讯网——每日最新资讯28at.com

另一方面,在大规模应用中,你可能会遇到许多在较小代码库中可能并不必要的测试类型。其中包括变异测试、负载测试、压力测试、性能测试、视觉测试、快照测试等等。36F28资讯网——每日最新资讯28at.com

在处理中等规模的应用程序时,找到在编写足够的测试以确保稳定性和不过度工程化测试过程之间的平衡非常重要。我们应该专注于创建一个坚实的单元测试和集成测试基础来覆盖应用程序。36F28资讯网——每日最新资讯28at.com

CI/CD

YES ✅36F28资讯网——每日最新资讯28at.com

现代软件开发的另一个重要部分是持续集成和交付。通过CI/CD,我们可以自动化构建、测试和部署过程,节省时间并减少错误。使用一个好的CI/CD工具可以使我们的开发过程更高效,并确保我们的应用程序始终准备好进行部署。36F28资讯网——每日最新资讯28at.com

领域驱动设计

NO ⛔️36F28资讯网——每日最新资讯28at.com

领域驱动设计是一种软件开发方法,强调对核心业务领域的建模,构建开发人员和利益相关者共享的普遍语言,并根据领域的复杂性设计软件组件。虽然在具有复杂业务逻辑和多个团队协作的大型应用程序中,DDD可能非常有用,但对于中型应用程序来说,可能会过度。36F28资讯网——每日最新资讯28at.com

对于中等规模的应用程序,简洁的架构和注重清晰、模块化代码的重点往往足以确保可维护性和可扩展性。DDD可能会增加不必要的开销和复杂性,这可能不会为项目带来显著的好处。相反,考虑采用更简单的架构模式和实践,以促进代码组织、关注点分离和可重用性。36F28资讯网——每日最新资讯28at.com

Hexagonal Architecture 六边形架构

NO ⛔️36F28资讯网——每日最新资讯28at.com

六边形架构,也被称为端口和适配器,是另一种旨在在应用程序的核心业务逻辑和其外部依赖(如数据库、API和用户界面)之间创建清晰分离的架构模式。这种分离允许更大的灵活性、可测试性和可维护性。36F28资讯网——每日最新资讯28at.com

与DDD类似,实施六边形架构对于具有复杂业务逻辑和众多外部依赖的大型应用程序可能是有益的,但对于中型应用程序来说,这绝对是过度设计。36F28资讯网——每日最新资讯28at.com

微前端

NO ⛔️36F28资讯网——每日最新资讯28at.com

微前端是一种流行的架构模式,它将大型应用程序分割成基于特性或领域的较小、独立的应用程序。这些较小的应用程序可以独立开发、测试和部署,从而实现更大的可扩展性和灵活性。36F28资讯网——每日最新资讯28at.com

然而,对于中等规模的应用程序,引入微前端可能并不必要,反而可能增加复杂性和开销,超过其带来的好处。更传统的单体架构,结合良好组织的代码库和适当的组件使用,可能更适合大多数中等规模的应用程序。如果将来有需要,可以重新考虑过渡到微前端的决定。36F28资讯网——每日最新资讯28at.com

CDN

YES ✅36F28资讯网——每日最新资讯28at.com

使用CDN是一种快速、简单且成本效益高的方法,通过缓存内容并从离终端用户更近的服务器提供服务,可以提高您的应用程序的性能和可靠性。36F28资讯网——每日最新资讯28at.com

Linting

YES ✅36F28资讯网——每日最新资讯28at.com

Linting是一种分析代码以检测潜在错误、不一致性和偏离已建立编码标准的过程。这是一种维护代码质量、提前捕获问题以及提高整体可读性和可维护性的简单快速的方法。36F28资讯网——每日最新资讯28at.com

Observability  可观察性

YES ✅36F28资讯网——每日最新资讯28at.com

中等规模的应用程序是观察性开始变得至关重要,并可能节省大量时间和金钱的时候。通过在您的应用程序中设置观察性,我们可以轻松监控、理解并排除系统性能和整体健康状况的问题。36F28资讯网——每日最新资讯28at.com

有多种工具和技术可用于在你的应用程序中构建可观察性,例如日志记录、度量收集和分布式追踪。目标是快速识别并解决问题,保持应用程序的性能,并尽量减少停机时间。36F28资讯网——每日最新资讯28at.com

Accessibility 无障碍性

YES ✅36F28资讯网——每日最新资讯28at.com

无障碍并不仅仅是一个选项,它更是一项责任!确保你的应用程序对所有用户,包括那些有残疾的用户,都是可访问的,这不仅是正确的做法,而且在某些国家,这也是法律要求。作为前端工程师,我们有责任创建无障碍的网站,并且我们应该将其作为我们工作流程的一部分,纳入我们的完成定义中。36F28资讯网——每日最新资讯28at.com

Design system 设计系统

NO ⛔️36F28资讯网——每日最新资讯28at.com

设计系统是一套可复用的组件、指南和设计原则的集合,用于在多个应用程序或平台上设计一致的用户界面。虽然对于拥有多个产品和团队的大型组织来说,实施设计系统可能非常有益,但对于中等规模的应用程序来说,这可能是不必要的。36F28资讯网——每日最新资讯28at.com

而不是投入时间和资源去创建一个全面的设计系统,你应该专注于根据你的需求配置现有的组件库,并在你的应用程序中建立一套指南和可重复使用的组件,以保持一致性并提高开发者的效率。36F28资讯网——每日最新资讯28at.com

总结

过度工程化是所有恶的根源。当涉及到中等规模的应用开发时,我们大多数人都有罪。有些工具和技术是至关重要的,而有些则不值得投入,但重要的是要设定并维持一种通用的编码风格,利用自动化防止错误进入生产环节,并保持技术债务的低水平。36F28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-5717-0.html停止过度设计中等规模的前端应用程序

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 计算机底层原理~CPU缓存一致性

下一篇: SpringBoot使用WebSocket实现即时消息

标签:
  • 热门焦点
  • K60 Pro官方停产 第三方瞬间涨价

    K60 Pro官方停产 第三方瞬间涨价

    虽然没有官方宣布,但Redmi的一些高管也已经透露了,Redmi K60 Pro已经停产且不会补货,这一切都是为了即将到来的K60 Ultra铺路,属于厂家的正常操作。但有意思的是该机在停产之后
  • Flowable工作流引擎的科普与实践

    Flowable工作流引擎的科普与实践

    一.引言当我们在日常工作和业务中需要进行各种审批流程时,可能会面临一系列技术和业务上的挑战。手动处理这些审批流程可能会导致开发成本的增加以及业务复杂度的上升。在这
  • 使用LLM插件从命令行访问Llama 2

    使用LLM插件从命令行访问Llama 2

    最近的一个大新闻是Meta AI推出了新的开源授权的大型语言模型Llama 2。这是一项非常重要的进展:Llama 2可免费用于研究和商业用途。(几小时前,swyy发现它已从LLaMA 2更名为Lla
  • 腾讯VS网易,最卷游戏暑期档,谁能笑到最后?

    腾讯VS网易,最卷游戏暑期档,谁能笑到最后?

    作者:无锈钵来源:财经无忌7月16日晚,上海1862时尚艺术中心。伴随着幻象的精准命中,硕大的荧幕之上,比分被定格在了14:12,被寄予厚望的EDG战队以绝对的优势战胜了BLG战队,拿下了总决
  • 阿里大调整

    阿里大调整

    来源:产品刘有媒体报道称,近期淘宝天猫集团启动了近年来最大的人力制度改革,涉及员工绩效、层级体系等多个核心事项,目前已形成一个初步的“征求意见版”:1、取消P序列
  • Android 14发布:首批适配机型公布

    Android 14发布:首批适配机型公布

    5月11日消息,谷歌在今天凌晨举行了I/O大会,本次发布会谷歌带来了自家的AI语言模型PaLM 2、谷歌Pixel Fold折叠屏、谷歌Pixel 7a手机,同时发布了Androi
  • OPPO K11搭载长寿版100W超级闪充:26分钟充满100%

    OPPO K11搭载长寿版100W超级闪充:26分钟充满100%

    据此前官方宣布,OPPO将于7月25日也就是今天下午14:30举办新品发布会,届时全新的OPPO K11将正式与大家见面,将主打旗舰影像,和同档位竞品相比,其最大的卖
  • 联想YOGA 16s 2022笔记本将要推出,屏幕支持触控功能

    联想YOGA 16s 2022笔记本将要推出,屏幕支持触控功能

    联想此前宣布,将于11月2日19:30召开联想秋季轻薄新品发布会,推出联想 YOGA 16s 2022 笔记本等新品。官方称,YOGA 16s 2022 笔记本将搭载 16 英寸屏幕,并且是一
  • 2021中国国际消费电子博览会与青岛国际软件融合创新博览会新闻发布会隆重举行

    2021中国国际消费电子博览会与青岛国际软件融合创新博览会新闻发布会隆重举行

    9月18日,2021中国国际消费电子博览会与青岛国际软件融合创新博览会新闻发布会在青岛国际新闻中心隆重举行。发布会上青岛市政府领导联袂出席,对本次双展会情
Top