”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > Dev、Oops 和 WEBAPP 故事

Dev、Oops 和 WEBAPP 故事

发布于2024-11-02
浏览:958

The Dev , the Oops, and the WEBAPP story

作为 DevOps 专业人员开发桌面 Web 应用程序感觉就像在广阔而复杂的海洋中航行。随着技术融合,Web、桌面和基于云的应用程序之间的界限变得模糊,迫使 DevOps 深入传统上由前端占据的领域
终端开发商。选择正确的框架变得至关重要,但挑战往往在于筛选当今可用的众多选项。例如,Vite、React、Electron、Tauri 和 Auth0 都是流行的选择,但知道如何有效地将它们拼接在一起才是斗争的开始。

框架之争:Vite、React 和 Beyond

Vite 已成为一种现代构建工具,提供快速、精益的开发环境,特别是对于 React 应用程序。它的简单性和速度使其成为理想的选择,但当与 Electron 或 Tauri 等工具一起打包桌面使用的应用程序时,事情开始变得复杂。 Electron 已经存在多年,为 Slack 和 VSCode 等流行应用程序提供支持,但它因其占用大量资源而臭名昭著。另一方面,Tauri 是新来的,通过利用本机系统功能提供更轻的占用空间。虽然很有希望,但 Tauri 的相对新颖性意味着资源、插件和社区支持较少,需要开发人员依赖有限的文档。

平衡 Electron 和 Tauri:性能与稳定性

在 Electron 和 Tauri 之间进行选择时,DevOps 专业人员被迫进行权衡。 Electron 的成熟度提供了对无数插件和集成的访问,使其可以轻松地使用复杂的 Web 技术,但这是以性能为代价的,有时甚至是用户体验的代价。 Tauri 虽然更快、更轻,但在处理大型应用程序时可能会受到限制,从而使学习曲线变得陡峭。 DevOps 团队通常会花费更多的时间来集成工具,而不是专注于他们最擅长的领域——自动化、部署管道和云基础设施。

安全和身份验证:输入 Auth0

向这种组合添加安全性和身份验证是另一个挑战。 Auth0 是一种广泛使用的处理用户身份验证的解决方案,与 React 无缝集成,但需要针对桌面应用程序进行额外设置。无论您使用 Electron 还是 Tauri,确保安全的令牌处理和用户数据管理都需要配置本机 API 甚至自定义脚本。随之而来的是保护桌面应用程序和后端基础设施之间的通信的额外复杂性。

知识差距:信息的海洋

作为一名 DevOps 工程师,困难不仅在于理解这些工具,还在于跟上它们的快速发展步伐。每周似乎都会有新的库、工具或集成有望让生活变得更轻松。问题是,在信息湖中,了解​​哪些资源值得信赖至关重要。在线教程和论坛通常缺乏强大的生产级应用程序所需的深度,导致开发人员在整个过程中不断试错。即使技术很有前景,学习、实验和调试所花费的时间也会压垮那些具有 DevOps 背景的人。

结论:应对复杂性

对于涉足桌面 Web 应用程序开发的 DevOps 专业人士来说,困难是真实存在的。选择 Vite、React、Electron、Tauri 和 Auth0 等框架的正确组合的过程是性能、可扩展性和易用性之间的微妙平衡。在这个庞大的工具生态系统中,关键是优先学习基础知识,牢记可扩展性,并了解适合您的特定用例的工具可能不是最受欢迎的工具。这是一条 DevOps 社区中的许多人刚刚开始攀登的学习曲线,前方的道路充满希望和挑战。

当我们在这个不断发展的空间中航行时,让我们保持联系,分享我们的经验,并共同从这片信息海洋中学习。

DevOps #WebDevelopment #DesktopApps #React #Electron #Tauri #Vite #Auth0 #LinkedIn

版本声明 本文转载于:https://dev.to/target-ops/the-dev-the-oops-and-the-webapp-story-45hg?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何将PANDAS DataFrame列转换为DateTime格式并按日期过滤?
    如何将PANDAS DataFrame列转换为DateTime格式并按日期过滤?
    将pandas dataframe列转换为dateTime格式示例:使用column(mycol)包含以下格式的以下dataframe,以自定义格式:})指定的格式参数匹配给定的字符串格式。转换后,MyCol列现在将包含DateTime对象。 date date filtering > = p...
    编程 发布于2025-04-03
  • 如何使用“ JSON”软件包解析JSON阵列?
    如何使用“ JSON”软件包解析JSON阵列?
    parsing JSON与JSON软件包 QUALDALS:考虑以下go代码:字符串 } func main(){ datajson:=`[“ 1”,“ 2”,“ 3”]`` arr:= jsontype {} 摘要:= = json.unmarshal([] byte(...
    编程 发布于2025-04-03
  • 如何在GO编译器中自定义编译优化?
    如何在GO编译器中自定义编译优化?
    在GO编译器中自定义编译优化 GO中的默认编译过程遵循特定的优化策略。 However, users may need to adjust these optimizations for specific requirements.Optimization Control in Go Compi...
    编程 发布于2025-04-03
  • 您如何在Laravel Blade模板中定义变量?
    您如何在Laravel Blade模板中定义变量?
    在Laravel Blade模板中使用Elegance 在blade模板中如何分配变量对于存储以后使用的数据至关重要。在使用“ {{}}”分配变量的同时,它可能并不总是最优雅的解决方案。幸运的是,Blade通过@php Directive提供了更优雅的方法: $ old_section =“...
    编程 发布于2025-04-03
  • 如何使用Python理解有效地创建字典?
    如何使用Python理解有效地创建字典?
    在python中,词典综合提供了一种生成新词典的简洁方法。尽管它们与列表综合相似,但存在一些显着差异。与问题所暗示的不同,您无法为钥匙创建字典理解。您必须明确指定键和值。 For example:d = {n: n**2 for n in range(5)}This creates a dicti...
    编程 发布于2025-04-03
  • 在Ubuntu/linux上安装mysql-python时,如何修复\“ mysql_config \”错误?
    在Ubuntu/linux上安装mysql-python时,如何修复\“ mysql_config \”错误?
    mysql-python安装错误:“ mysql_config找不到”“ 由于缺少MySQL开发库而出现此错误。解决此问题,建议在Ubuntu上使用该分发的存储库。使用以下命令安装Python-MysqldB: sudo apt-get安装python-mysqldb sudo pip in...
    编程 发布于2025-04-03
  • 可以在纯CS中将多个粘性元素彼此堆叠在一起吗?
    可以在纯CS中将多个粘性元素彼此堆叠在一起吗?
    [2这里: https://webthemez.com/demo/sticky-multi-header-scroll/index.html </main> <section> { display:grid; grid-template-...
    编程 发布于2025-04-03
  • 如何在Java中执行命令提示命令,包括目录更改,包括目录更改?
    如何在Java中执行命令提示命令,包括目录更改,包括目录更改?
    在java 通过Java通过Java运行命令命令可能很具有挑战性。尽管您可能会找到打开命令提示符的代码段,但他们通常缺乏更改目录并执行其他命令的能力。 solution:使用Java使用Java,使用processBuilder。这种方法允许您:启动一个过程,然后将其标准错误重定向到其标准输出。...
    编程 发布于2025-04-03
  • 如何在Java的全屏独家模式下处理用户输入?
    如何在Java的全屏独家模式下处理用户输入?
    Handling User Input in Full Screen Exclusive Mode in JavaIntroductionWhen running a Java application in full screen exclusive mode, the usual event ha...
    编程 发布于2025-04-03
  • 在程序退出之前,我需要在C ++中明确删除堆的堆分配吗?
    在程序退出之前,我需要在C ++中明确删除堆的堆分配吗?
    在C中的显式删除 在C中的动态内存分配时,开发人员通常会想知道是否有必要在heap-procal extrable exit exit上进行手动调用“ delete”操作员,但开发人员通常会想知道是否需要手动调用“ delete”操作员。本文深入研究了这个主题。 在C主函数中,使用了动态分配变量(H...
    编程 发布于2025-04-03
  • 如何修复\“常规错误:2006 MySQL Server在插入数据时已经消失\”?
    如何修复\“常规错误:2006 MySQL Server在插入数据时已经消失\”?
    How to Resolve "General error: 2006 MySQL server has gone away" While Inserting RecordsIntroduction:Inserting data into a MySQL database can...
    编程 发布于2025-04-03
  • Python读取CSV文件UnicodeDecodeError终极解决方法
    Python读取CSV文件UnicodeDecodeError终极解决方法
    在试图使用已内置的CSV模块读取Python中时,CSV文件中的Unicode Decode Decode Decode Decode decode Error读取,您可能会遇到错误的错误:无法解码字节 在位置2-3中:截断\ uxxxxxxxx逃脱当CSV文件包含特殊字符或Unicode的路径逃...
    编程 发布于2025-04-03
  • 为什么尽管有效代码,为什么在PHP中捕获输入?
    为什么尽管有效代码,为什么在PHP中捕获输入?
    在php ;?>" method="post">The intention is to capture the input from the text box and display it when the submit button is clicked.但是,输出...
    编程 发布于2025-04-03
  • 如何在其容器中为DIV创建平滑的左右CSS动画?
    如何在其容器中为DIV创建平滑的左右CSS动画?
    通用CSS动画,用于左右运动 ,我们将探索创建一个通用的CSS动画,以向左和右移动DIV,从而到达其容器的边缘。该动画可以应用于具有绝对定位的任何div,无论其未知长度如何。问题:使用左直接导致瞬时消失 更加流畅的解决方案:混合转换和左 [并实现平稳的,线性的运动,我们介绍了线性的转换。这...
    编程 发布于2025-04-03
  • 为什么PYTZ最初显示出意外的时区偏移?
    为什么PYTZ最初显示出意外的时区偏移?
    与pytz 最初从pytz获得特定的偏移。例如,亚洲/hong_kong最初显示一个七个小时37分钟的偏移: 差异源利用本地化将时区分配给日期,使用了适当的时区名称和偏移量。但是,直接使用DateTime构造器分配时区不允许进行正确的调整。 example pytz.timezone(...
    编程 发布于2025-04-03

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3