【平台开发】技术整合思考(四)前后端不分离

简介: 【平台开发】技术整合思考(四)前后端不分离

一、背景


七镜近半年来非常热衷于写小程序,可能是linux操作比较多的关系(数仓运维),对于自动化研究越发得多。想一想:花点时间,写个小程序,去替代重复性的工作,用的时候,心情要多美就有多美!


linux大多都是黑窗口操作,黑窗口中执行命令,黑窗口中输出结果,对于经常使用的程序员来说,用起来非常便捷,很适合把一连串的命令组合起来去完成一个复杂的任务。


但是,七镜的技术方向是应用开发(准确的说,是廉价快速的应用开发),意味着,七镜做的软件单单方便自己用还不够,七镜还需要降低所做的应用的使用门槛,这样才能让更多的人使用。



二、谈及前后端分离


作为一个大项目来说,现在都2023年了,肯定选择前后端分离,七镜的客户端技术栈主要是react,服务端技术栈主要是Gin,那么做大型项目时,定义好前后端交互的接口规范,就可以前后端分开开发了,也能把工作任务分配给其他人。


但是作为一个小项目来说(尤其是七镜其近半年来写的小程序),功能比较单一,很多时候,我的用户需要界面的地方只是几个参数的配置,七镜写一个客户端界面,即可把小项目完完整整的跑下来。比如说:一个文字转语音的小程序,用户配置一下发音人,上传一个文本文件,程序输出一个语音文件,整个流程就跑完了。


这种场景,如果七镜为了实现一个客户端界面,去使用前后端分离的架构,引入前端的各种技术栈(webpack、typescript、scss、react),简直就是大炮打蚊子了!不但增加了项目开发的复杂性,还使得最终使用的时候,增加了部署成本(毕竟前后端分离的项目,需要一个单独的web服务,比如nginx、apache、tomcat),可能由于这众多技术栈的原因,还需要下载安装其他的依赖(比如,jdk、gcc等等)。



三、引入前后端不分离


七镜想起来在最开始的时候学习java时,接触过jsp;在学python的时候,接触过jinja2;在学习golang的时候,也了解过html/template标准库。这是都是前后端不分离的技术,虽然增加了代码的耦合度,项目复杂了之后,不利于维护,但是七镜的使用场景是小项目。一个小项目,只有一个页面,总共就1000行代码,维护起来完全没问题。


而且引入开发语言对应的模板引擎之后,比如拿七镜现在最喜欢的golang开发语言来说,我通过使用html/template标准库,就可以实现一个简单的界面,既满足了降低用户使用门槛的需求,又降低了应用部署门槛。


由于golang的跨平台特性,七镜在windows上写的应用,既可以在windows上运行,又可以同时在linux上运行,还可以在mac上运行。而且解压即用,无需安装额外的依赖。


另外golang写的程序编译之后,体积非常小,基本上30M以内的大小,想象一下,这么点大的玩意,能提供一个用户界面,不需要用户安装额外的东西,解压即用,并且完成一个用户的实际需求,简直不要太值——太值啦!



四、写在后头


这个世界不缺少创意,也不缺少想法,发明技术的是一些人,推广出去的是另一些人,七镜在刻意培养一种让空中楼阁落地的能力。


image.png



目录
相关文章
|
自然语言处理 JavaScript 前端开发
一文了解HarmonyOS系统架构
HarmonyOS是一款面向 万物互联时代的、全新分布式操作系统。在传统的单设备系统能力基础上,HarmonyOS提出了基于`同一套系统能力`、`适配多种终端形态`的分布式理念。能够支持手机、平板、智能穿戴、智慧屏、车机等多种终端设备,提供全场景(移动办公、运动健康、社交通信、媒体娱乐等)业务能力。
3337 0
一文了解HarmonyOS系统架构
|
缓存 JavaScript Cloud Native
阿里云发布 Spring Boot 新脚手架,真香
本文,围绕 spring initializr 框架,以 start.spring.io 为例,全面的给大家介绍如何使用和扩展这个框架,以及背后的运行原理。
58260 1
阿里云发布 Spring Boot 新脚手架,真香
|
5月前
|
数据采集 监控 调度
干货分享“用 多线程 爬取数据”:单线程 + 协程的效率反超 3 倍,这才是 Python 异步的正确打开方式
在 Python 爬虫中,多线程因 GIL 和切换开销效率低下,而协程通过用户态调度实现高并发,大幅提升爬取效率。本文详解协程原理、实战对比多线程性能,并提供最佳实践,助你掌握异步爬虫核心技术。
|
JSON 数据可视化 数据挖掘
python数据可视化开发(2):pandas读取Excel的数据格式处理(数据读取、指定列数据、DataFrame转json、数学运算、透视表运算输出)
python数据可视化开发(2):pandas读取Excel的数据格式处理(数据读取、指定列数据、DataFrame转json、数学运算、透视表运算输出)
734 0
|
人工智能 JSON 数据可视化
OpenAI调用接口多轮对话Multi Turn Multi Agent 多轮多角色对话调试和可视化工具Dialogue Visualization
伴随着生成式人工智能技术发展,进2年涌现出大语言模型LLM/Agent系统/AI推理等众多方向的技术项目和论文。其中对话系统,智能体交互是用户通过UX界面和AI系统进行交互,这种交互有时候也是多模态(用户输入文字/语音/图像)等等。在调用OpenAI 的对话接口时候,有时候需要把对话结果打印出来检查是否有bug,JSON数据格式就比较难看出来了,尤其是有多角色的多轮对话。这个时候可以借助一些在线的"对话"可视化的工具 (Online Dialogue Visualization Tool) DeepNLP Dialogue Visualization Tool,方便产品经理,算法研发,学术研究
OpenAI调用接口多轮对话Multi Turn Multi Agent 多轮多角色对话调试和可视化工具Dialogue Visualization
|
缓存 监控 负载均衡
一文讲明Hystrix熔断器
这篇文章详细阐述了Hystrix熔断器的原理和应用,解释了分布式系统中服务雪崩的问题,并展示了如何在Spring Cloud框架中使用Hystrix进行熔断和降级处理。
一文讲明Hystrix熔断器
|
数据库连接 数据库 数据安全/隐私保护
FlaskMigrate使用指南
**Flask-Migrate** 是一个整合 Flask、SQLAlchemy 和 Alembic 的扩展,用于管理数据库迁移。安装所需库:`pip install Flask mysql-connector-python Flask-SQLAlchemy Flask-Migrate`。
718 0
|
缓存 运维 关系型数据库
PostgreSQL技术大讲堂 - 第43讲:流复制原理
PostgreSQL技术大讲堂 - 第43讲:流复制原理
436 2
|
消息中间件 缓存 自然语言处理
一文轻松图解搞懂Elasticsearch原理!
一文轻松图解搞懂Elasticsearch原理!
|
存储 关系型数据库 MySQL