Skip to main content

架构设计之Single source of truth

· 12 min read

本文探讨在设计 GUI 客户端的架构模式时遇到的问题以及解决方案。

所有带图形交互的客户端都可以叫 GUI 客户端,包含但不限于:Windows/Mac/Linux 客户端,Web 页面,Android/iOS App,小程序,快应用,KFC 点餐台等各种显示屏等。

SIP协议入门指南

· 59 min read

前置声明:本文是本人关于 SIP 资料的一个梳理结果,80%的内容都是摘自各个参考资料的一部分,20%是自己在 12-14 年间 SIP 相关工作的理解感悟,然后根据自己拟定的目录大纲进行整合。本文所有版权不归我,如有侵权,请告知,必删。

为什么要写这么一篇文章?

我司(Legrand)核心产品是楼宇视频对讲设备,在业界的名气还不错。

视频通话或者视频会议技术栈通常是 SIP 标准协议,我们当然也不例外。

自从我专做 iOS 开发之后,我就很久不玩 SIP 了,但是这些 SIP 的东西还是没有完全忘记。最近领导给我们开了 Q2 业绩会,提出老旧系统改造,包括 SIP Server 升级,NAT 打洞啊,目的是为了提高系统的稳定性,节省服务器的资源开销。

这些工作跟我没啥关系,因为我不做服务器,但是勾起了我多年的回忆。随即产生一个想法,就是给当年完全不懂 SIP 的自己写一篇入门文章,当做是对自己过去工作、技术的一个总结。

OK,废话不多数,正文开始。

做技术需要探索精神

· 5 min read

最近在看一篇文章,美国计算机学会通讯(Communications of the ACM)期刊 2022 年 5 月第 65 卷第 5 期将发表一篇有关 Go 语言的综述类 Paper:《The Go Programming Language and Environment》。这篇文章的作者是 Go 核心团队,复盘了 10 多年来 Go 的演化发展,深入分析了那些对 Go 的成功最具决定性的设计哲学与决策。

这篇文章解答了我下面几个疑问:

  • Go 的设计起源是什么?
  • 在 Google 各种 C++、Java 大神存在的场景下,为什么还需要从语言层面去设计这么一个工具?
  • Go 对大规模分布式系统究竟有什么好处,付出这么大努力获得的回报值得吗?

强烈推荐大家都看一遍,英文不好的可以看中文版

设计语言

· 23 min read

最近大半年,随着字节跳动、腾讯相继开源了自己的设计语言,又让“Design Language”这个词在业界火了一把。

有的厂商也用"Design System"这个词,都是一个意思,我个人认为"Language"比"System"更好。

关于设计语言的鼻祖,应该就是 Apple 的 Human Interface Guidelines。我查了一下资料发现,早在 1987 年,Apple 发布 "Macintosh II" 型号个人电脑的时候,Human Interface Guidelines 就诞生了。

现在的业界老二是 Google 的 Material Design , 2014 年才发布,纯纯的后生。

Flutter App 架构的 Domain 层

· 6 min read

Flutter App 架构的 Domain 层

在现代 Flutter 应用开发中,架构设计的清晰性和可维护性至关重要。Domain 层作为架构的核心部分,负责封装业务逻辑和数据模型,是实现良好架构的关键。本文将深入探讨 Flutter 应用中的 Domain 层,包括其定义、组成部分以及如何有效地实现和测试。

Flutter App 架构的 Presentation 层

· 5 min read

在 Flutter 应用开发中,Presentation 层是用户界面与业务逻辑之间的桥梁。它负责展示数据并处理用户输入,同时确保业务逻辑与 UI 代码的分离。这种分离使得代码更加可测试和易于维护,尤其是在应用变得复杂时。本文将深入探讨 Flutter 应用中的 Presentation 层,包括其结构、功能以及如何有效实现。

Flutter App 架构之 Repository 模式

· 10 min read
info

2024.10.20 更新: 补充 Repository 与状态管理结合的解决方案

在 Flutter 应用开发中,Repository 模式是一种重要的架构设计模式,它帮助我们有效地管理和访问不同数据源的数据。通过将数据访问逻辑与业务逻辑和用户界面分离,Repository 模式能够提高代码的可维护性和可测试性。本文将深入探讨 Repository 模式的定义、使用场景、实现细节以及如何进行测试。

Flutter App 架构图

Flutter App 架构之 Riverpod 库介绍

· 8 min read

Riverpod 是一个强大的状态管理库,旨在简化 Flutter 应用程序中的状态管理。作为 Provider 的演进版,Riverpod 提供了更灵活和可扩展的方式来处理应用程序的状态。本文将介绍 Riverpod 的基本使用,包括各种 Provider 类型的使用,以及与 Provider 的对比,并展示在真实开发场景中的应用。