许式伟的架构课
许式伟
七牛云 CEO
84945 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 89 讲
许式伟的架构课
15
15
1.0x
00:00/00:00
登录|注册

24 | 跨平台与 Web 开发的建议

Session-based ViewModel
Session-based Model
Web 层
Multi-User Model 层
小屏
中屏
大屏
Mobile Web
Mobile 本地
PC Web
PC 本地
架构概要
二次开发接口
MVC 模式变成 MVMP 模式
HTML+CSS 的作用
分工安排
数据可靠性要求
多用户
屏幕尺寸的差异性
操作系统的差异性
服务端
浏览器端
B/S 架构的复杂性
跨平台解决方案
桌面程序本身的范畴在变
结语
Web 开发
跨平台桌面程序开发
跨平台与 Web 开发的建议
参考文章

该思维导图由 AI 生成,仅供参考

你好,我是七牛云许式伟。
上一讲我们聊了浏览器,以及移动浏览器之争:小程序与 PWA。
当我们思考浏览器从技术上带来了什么的时候,我们可以把它分为两点。
跨平台桌面程序开发;
Web 开发(B/S 架构的新型应用)。
今天我们分别就跨平台桌面程序和 Web 开发展开来聊一聊。

跨平台桌面程序开发

跨平台的桌面程序开发是一个超级难题。无数人前仆后继,各种方案层出不穷,但至今为止,仍然没有称得上真正深入人心的解决方案。
原因很简单,因为桌面程序本身的范畴在变。有两个关键的因素会导致桌面开发产生巨大的差异性。
一个因素自然是操作系统。不同的操作系统抽象的界面程序框架并不一致。这些不一致必然导致开发工作量的增加。
放弃某个操作系统,就意味着放弃某个流量入口,也就意味着放弃这些用户。所以虽然很麻烦,我们还是不得不支持着每一个主流的操作系统。
另一个因素是屏幕尺寸。就算相同的操作系统,在不同尺寸的屏幕上,交互的范式也会存在很大的差异性,这也会导致不低的跨平台工作量。
首先我们看下操作系统。
PC 本地:Windows,macOS,Linux 等等;
PC Web:Chrome,Safari,FireFox 等等;
Mobile 本地:Android,iOS 等等;
Mobile Web:小程序,PWA 等等。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

这篇文章主要讨论了跨平台桌面程序开发和Web开发两个方面。在跨平台桌面程序开发方面,作者指出了不同操作系统和屏幕尺寸带来的挑战,以及当前存在的跨平台解决方案。作者认为跨平台开发仍然是一个困难的问题,但跨平台的梦想仍将继续。在Web开发方面,作者强调了B/S架构下的复杂性,包括多用户、数据可靠性要求和不同的分工安排。此外,文章还介绍了浏览器端和服务端的架构特点,以及MVC模式在浏览器下的变化。总的来说,文章强调了跨平台和Web开发带来的重要改变,以及对开发者的思考和建议。 文章深入探讨了跨平台桌面程序开发和Web开发的技术挑战和变化,对于想要了解这两个领域发展趋势和解决方案的读者来说,是一篇值得阅读的文章。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《许式伟的架构课》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(25)

  • 最新
  • 精选
  • eletarior
    因为工作的原因,莫名其妙的成为了大前端的一员,从Windows原生直绘界面到基于Qt的Web混合开发,再到Flutter移动跨平台,一路走来是越来越惊讶,前端的知识体系气泡越吹越大,突发学海无涯之感。不过我也一直在思考那么不变的东西,从框架的架构角度理解,它们其实是借鉴和传承的,因此不论是使用C++还是JS或者Dart,貌似都不再是难题了。学习架构课不一定就是奔着学完做架构师去的,也是为了更好的把自己的知识体系串通组建起来,没必要在开发语言的细节泥潭里无法自拔

    作者回复: 👍

    2019-07-13
    3
    43
  • 笛神
    关于model层,一直认为使用spring框架的开发人员把service+dao用的太狭隘了,service堆满了业务处理,定义各种方法,感觉完全变回面向过程编程,丢掉了业务实体类,丢掉了数据行为封装,存在很多的耦合和重复。。一直想灌输将行为封装回业务实体里,service驱动业务实体来实现业务,而不是把所有业务逻辑在service层来实现掉。这样model层才会丰满,才是对现实世界的抽象,不知这个理解是否正确?

    作者回复: 是这样

    2019-07-16
    6
    21
  • 秋天
    model和viewmodel的本质区别是什么?老师

    作者回复: model是业务数据,viewmodel是界面数据。因为界面体现业务,所以viewmodel和model的数据是有对应关系的,只不过数据结构不同

    2019-07-16
    3
    18
  • 黄强
    认真对待Model层,将其做厚,相应的前端会更薄,更能适应变化的可能,再次体现架构师对稳定点,变化点的抉择

    作者回复: 是的,本质就是这样

    2019-07-12
    2
    15
  • 杨洪林
    server 架构下的automation 具体指那些动作?

    作者回复: 这个是指外部系统对我们业务的api请求。我们的业务提供可视化的界面提供只是一种可能性,更重要的其实是如何让更多人使用我们的核心业务。

    2019-07-12
    8
  • ANYI
    “”Model 层做厚”,老师,这个应该怎样去理解处理,很多现在项目都固化了,model就是对应了数据库表,通过service来处理业务,就是spring mvc这种分层,怎样去把这个model做厚呢?

    作者回复: 我理解spring中把model分成了service+DAO,然后很多人认为model=DAO

    2019-07-15
    2
    4
  • 不温暖啊不纯良
    是不是mvc的设计思想,在前后端都有应用。 前端的mvmc中的model指的是将用户行为产生的数据抽象成业务数据,比如说表单的填写就是,提前给用户设计好了业务模型,然后用户将数据输入这个模型,viewModel负责窗口的渲染,presenter是负责数据的存取。 后端的mvc中的model指的是实体类,实体类是对业务的封装和模型化……只能编到这里了, 重新理解一下,原来的桌面应用开发,在以前还没有前后端分离这一说,所以mvc应该涵盖整个开发流流程……哦,我明白了,整个mvc应该是从业务架构的角度出发去理解它,那么任何应用的架构都是从业务需求开始的,有了业务需求之后,第1个产生的应该就是业务模型,也就是model层,m排第一,然后是我们必须要把业务数据和代码可视化,于是有了view 层,让用户在特定的业务框架中去交互,实行业务操作,生产业务数据,最后把用户这些数据处理和存储,也就是我们的controller 层。 原来mvc架构思想,是对需求的一种抽象的模板。 好了老师,我编完了。

    作者回复: 后端不需要mvc,后端整体就是一个多租户的m

    2021-04-10
    2
    3
  • Linuxer
    理解起来还是有些吃力,请问能结合一下具体项目吗?最好是某个开源项目

    作者回复: 开源项目可能过大,我下一讲是打算做一个小例子

    2019-07-12
    3
  • Eternal
    被MVC,MVP,MVMP绕晕了

    作者回复: 名词其实不重要,重要的是逻辑。我背后想说的意思其实是,这些一堆堆的模式,本质上是同一个模式,只是一些细节选择上不同形成的变种。这些细节差异并不那么重要。

    2019-07-29
    2
  • 木瓜777
    您好,对model层的理解还是不够,我原先最早认为就是数据结构层,您说把model层做厚的含义是什么?

    作者回复: 业务逻辑层,也是整个系统的核心

    2019-07-13
    3
    2
收起评论
显示
设置
留言
25
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部