DDComponent:iOS 页面拆分框架的设计与实践
面对日益复杂的业务页面,如何将巨石 ViewController 拆解为可独立开发、独立测试、跨页面复用的功能模块?本文介绍 DDComponent 框架从设计思想到落地实践的全过程,涵盖 MVP 模式重定义、双树架构、状态驱动更新、增量 Diff、自动绑定、通信机制、拆分粒度控制等核心话题。 一、痛点与目标:为什么需要页面拆分?1.1 业务复杂度失控随着业务迭代,一个页面往往承载了多个方向的业务逻辑——点赞、评论、分享、播放、埋点、广告……所有逻辑混在一个 ViewController 或一个巨大的 Presenter 中,所有人都在改同一个文件,导致: 协作冲突频发:多人并行开发同一页面时,Git 冲突几乎不可避免 复杂度线性增长:每新增一个功能,文件的认知负荷就增加一分,最终变得无人能完整理解..
更多用 Skill 给 Claude Code 装上"肌肉记忆"
skill 介绍先对齐一个认知:skill 不是 prompt 模板,也不是命令行脚本,它是一段”按需加载的规程”。 平时我们把规范、流程塞进 CLAUDE.md,结果每次对话都带着一坨上下文跑。skill 的关键区别在于—— CLAUDE.md:常驻上下文,每次都在 skill:描述常驻(很便宜),正文只在被触发时才进上下文 一句话总结:你反复粘贴同一段指令/检查清单/多步流程时,就该把它写成 skill 了。 官方原话也印证这点: Create a skill when you keep pasting the same instructions, checklist, or multi-step procedure into chat, or when a section o..
更多给面试者的一些建议
前言从一个面试者到面试官,然后再到考虑团队建设,很多看法都发生了很大的改变。但是在自己上百场的面试过程中,也看到了很多自己以前的影子。很多时候并不是自己不够优秀,而是在某些方面没有做好。所以这里来聊聊这些问题。 本文并不想传授什么面试技巧,或者刷提指南,个人认为知识永远是无法短时间内补齐的,只要是有经验的面试官,其实很容易拆穿这种小把戏。我更希望能给大家了解招聘和面试中的一些标准和要求,让大家把最好的一面表现出来。当然在这方面我也还没达到特别高的程度,只能聊聊招聘技术开发的角色的一些问题。
更多

微前端笔记
目前很多大型业务随着业务的飞速膨胀,单体结构(monolithic)已经远不能符合当前开发模式了,所以后端有微服务,前端有微前端,客户端有组件化,其主要目标都是一致的,都是为了解决单体结构的问题,但是各端也有各自的一些特色,其中后端的拆分最为复杂,而客户端拆分最难以彻底,而微前端则介于这两者之间。
更多

wakeup in XNU
苹果在iOS13的时候,在内核中加入了一个新的性能衡量指标wakeup,同时由于这个指标而被系统杀死的应用数不胜数,其中也包括我们常用的微信淘宝等。而这个指标完全是由XNU内核统计的,所以我们很难通过日志等普通手段去准确的定位问题,所以这里通过另一种思路去解决这个问题。
更多

Flutter 图片控件适配之路
背景目前大部分应用都会使用大量的图片,图片成为当前应用带宽占比最大的一种资源。在我们接入 Flutter 的时候,发现 Flutter 的图片控件缓存完全由自己管理,同时还没有提供磁盘缓存(1.22版本),所以在性能以及体验上均比较差,所以必须对其进一步优化。
更多谈谈 Flutter、客户端、React 组件的几个区别
Flutter 是 Google 新的一种跨端方案,大家都非常的看好他的上限。但是实际和大家了解下来,却处于一种比较尴尬的地位。客户端开发觉得这个和原生开发相差很大,学习成本陡峭,而前端又觉得这是一个客户端的技术,同时 dart 语言也远没有 js 灵活好用。但技术总是万变不离其宗,很多思想其实都是殊途同归。这里我们就简单讨论一下 Flutter 与 React 之间的一些区别与联系,有 React 开发经验的同学会更容易理解。
更多

RN优化实践之拆包与预热
随着RN技术在业务中广泛的应用,一些比较重要的功能也开始采用RN的方案来进行了,这就给RN页面的打开速度提出了更高的要求,因为打开速度是影响用户跳出率的重要原因之一。
更多

跨端能力平台化建设
跨端能力一直是近些年来的大热门,我们对跨端能力也一直抱有非常高的期望,我从2016年开始就一直关注着跨端能力的发展,经历了其中各个发展阶段,而目前我们团队也将建设整个跨端平台化能力,这里就来讨论下跨端的一些东西,以及我们的平台化会如何建设整个生态。
更多谈谈苹果禁用HTML5应用
苹果在2019年更新了审核条款,其中可能对我们影响最大的就是HTML技术的应用了。 App Updates for HTML5 Apps
更多