<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Architecture on TinyChen's Blog</title><link>https://tinychen.com/tags/architecture/</link><description>Recent content in Architecture on TinyChen's Blog</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Thu, 23 Jul 2026 12:00:00 +0800</lastBuildDate><atom:link href="https://tinychen.com/tags/architecture/index.xml" rel="self" type="application/rss+xml"/><item><title>Octans-Web电视壳信息架构与焦点模型</title><link>https://tinychen.com/20260721-octans-web-tv-shell-focus/</link><pubDate>Tue, 21 Jul 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260721-octans-web-tv-shell-focus/</guid><description>&lt;p&gt;本文主要介绍媒体库 Web 端在「电视显示模式」上的两层决策：一是&lt;strong&gt;信息架构必须换壳&lt;/strong&gt;——独立 TV Shell（唯一首页 + 顶栏 + overlay），而不是给桌面侧栏多 tab 放大字号、补方向键；二是&lt;strong&gt;焦点必须有 Section 模型&lt;/strong&gt;——区内策略 + 进区 / 出区声明，而不是扁平全局几何再叠业务特例。&lt;/p&gt;</description></item><item><title>Octans-Android单应用双Shell与TV界面选型</title><link>https://tinychen.com/20260606-octans-android-shell-and-tv-compose/</link><pubDate>Sat, 06 Jun 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260606-octans-android-shell-and-tv-compose/</guid><description>&lt;p&gt;本文主要介绍 Android 媒体库客户端的两层结构决策：工程上为何坚持&lt;strong&gt;单一 App 产物 + 双 Interaction Shell&lt;/strong&gt;；TV 界面上为何在行业仍以 Leanback 为主时，继续选择 &lt;strong&gt;Compose for TV&lt;/strong&gt; 并拒绝把 Leanback 接回主线。&lt;/p&gt;</description></item><item><title>Octans-跨端客户端Web基线与原生播放</title><link>https://tinychen.com/20260601-octans-cross-platform-ui-playback/</link><pubDate>Mon, 01 Jun 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260601-octans-cross-platform-ui-playback/</guid><description>&lt;p&gt;本文主要介绍一类媒体库产品在多端客户端上的总路线：为什么&lt;strong&gt;不能&lt;/strong&gt;把「跨平台 UI 框架是否足够好」当成顶层问题；为何应坚持 &lt;strong&gt;Web 做基线、各端原生 UI、各端 native 播放&lt;/strong&gt;；以及协议、能力上报与服务端 fallback 哪些可以共享、哪些必须按平台落地。&lt;/p&gt;</description></item><item><title>Octans-win客户端UI路线演进</title><link>https://tinychen.com/20260531-octans-windows-desktop-ui-route/</link><pubDate>Sun, 31 May 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260531-octans-windows-desktop-ui-route/</guid><description>&lt;p&gt;本文主要介绍一类 Windows 桌面媒体客户端在 UI 路线上的演进：何时用 WebView2 复用主 Web 前端换速度，为何一度把 WinUI 3 写成长期正式方向，以及如何在「两条都重要」时明确&lt;strong&gt;当前产品主线&lt;/strong&gt;，避免文档与开发默认值互相打架。&lt;/p&gt;</description></item><item><title>Octans-Android播放内核从libmpv到双内核</title><link>https://tinychen.com/20260526-octans-android-playback-engine-evolution/</link><pubDate>Tue, 26 May 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260526-octans-android-playback-engine-evolution/</guid><description>&lt;p&gt;本文主要介绍 Octans Android 客户端播放内核从「LGPL libmpv 单内核」到「默认 libmpv + Media3 ExoPlayer 本地实验」的选型与演进过程，以及 HTTPFILE / HLS、字幕、硬解等有证据支撑的能力边界。讨论的是决策可被 supersede 的工程取舍，而不是一套永恒正确的播放器教条。&lt;/p&gt;</description></item><item><title>Octans-联网字幕搜索匹配与同步</title><link>https://tinychen.com/20260526-octans-network-subtitle-search/</link><pubDate>Tue, 26 May 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260526-octans-network-subtitle-search/</guid><description>&lt;p&gt;本文主要说明自托管媒体库（以 Octans 联网字幕搜索 / 下载 / 同步方案为例）在接入第三方字幕站时，如何把 Provider 检索、候选评分、下载后校验与自动时间轴修正分层，并划清 hash 匹配、速率配额与隐私安全的职责边界。讨论的是可落地的架构取舍，不是某一版已发布 API 清单。&lt;/p&gt;</description></item><item><title>Octans-媒体库后端结果契约与配置可视化</title><link>https://tinychen.com/20260430-octans-backend-result-config-viz/</link><pubDate>Thu, 30 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260430-octans-backend-result-config-viz/</guid><description>&lt;p&gt;本文主要介绍一类自托管媒体库（以 Octans 后端为例）在两件看似无关、实则都决定「长期可维护性」的决策上如何收口：一是&lt;strong&gt;内部结果模型与错误契约统一&lt;/strong&gt;，二是&lt;strong&gt;配置可视化首版的边界&lt;/strong&gt;。前者解决 Controller / Service 各造一套 &lt;code&gt;*ServiceResult&lt;/code&gt; 的分裂；后者解决「配置能改、能看、能审计」与「部署覆盖、启动链路、权限面」之间的张力。讨论的是可被 supersede 的工程边界，不是某一版本的接口字段全集。&lt;/p&gt;</description></item><item><title>Octans-媒体库播放架构总览</title><link>https://tinychen.com/20260425-octans-playback-architecture-overview/</link><pubDate>Sat, 25 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260425-octans-playback-architecture-overview/</guid><description>&lt;p&gt;本文主要从&lt;strong&gt;架构边界&lt;/strong&gt;角度梳理一类自托管媒体库（以 Octans 播放子系统为例）：播放为何从 Catalog / 任务系统里拆出来，服务端与客户端各管什么，以及 PlaybackSession、Planner、DirectPlay / HLS 交付如何构成当前 Web 主链。重点是职责与名词，而不是接口字段大全。&lt;/p&gt;</description></item><item><title>Octans-媒体库扫描刮削重命名与删除边界</title><link>https://tinychen.com/20260412-octans-scanner-scraper-renamer/</link><pubDate>Sun, 12 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260412-octans-scanner-scraper-renamer/</guid><description>&lt;p&gt;本文主要从&lt;strong&gt;职责边界&lt;/strong&gt;角度梳理一类自托管媒体库后端（以 Octans 扫描 / 刮削 / 重命名 / 删除子系统为例）：为什么必须从物理文件出发，如何把「文件事实」升维成「逻辑身份」，以及重命名与删除为何都要 Preview-first，并和扫描前自愈拆开。重点是主链怎么切、各段做什么与不做什么，而不是任务 DTO、正则细节或某次 API 字段表。&lt;/p&gt;</description></item><item><title>Octans-自托管媒体库全局架构原则</title><link>https://tinychen.com/20260412-octans-global-architecture-whitepaper/</link><pubDate>Sun, 12 Apr 2026 12:00:00 +0800</pubDate><guid>https://tinychen.com/20260412-octans-global-architecture-whitepaper/</guid><description>&lt;p&gt;本文主要介绍一类自托管媒体库（以 Octans 为演进样本）在全局架构上的稳定原则：它要同时做「本地资产治理」与「可持续运行的播放服务」，因此必须在物理文件事实、逻辑实体、后台任务与多端客户端之间划清边界。文中对照早期白皮书思路与当前架构总览，&lt;strong&gt;历史口号若与现行决策冲突，以现行系列文为准&lt;/strong&gt;。&lt;/p&gt;</description></item></channel></rss>