浏览器渲染原理

2 月 6 日
阅读 11 分钟
1k
当浏览器的网络线程收到 HTML 文档后,会产生一个渲染任务,并将其传递给渲染主线程的消息队列。在事件循环机制下,渲染主线程取出消息队列中的渲染任务,开启渲染流程。
封面图

设计模式,是程序员成为大宗师必经之路

2023-09-13
阅读 9 分钟
6.7k
业务逻辑千变万化,弹窗优先级不断改变,代码冗余问题和难以维护问题如何解决?本篇文章从设计模式角度出发,讨论责任链设计模式和工厂设计模式2个方式,如何去设计一个校验器,同时解决代码冗余和难以维护的问题
封面图

工作轻松搞定,感觉啥都会?如何职场跃迁

2023-08-23
阅读 3 分钟
1.4k
工作轻松搞定,感觉啥都会?如何职场跃迁技术群聊天的时候,发现不同技术群或者个人也有过的一种现象:每日工作自己现在可以轻松拿捏,接下去如何破局?感觉工作内容也简单,似乎没有很大的挑战性。我该如何突围,跃迁到职场或个人职业生涯下一等级?遇到的另一个问题是,项目协作方面的问题项目内容很简单,感觉工作没...
封面图

深度剖析 Runtime

2023-05-18
阅读 56 分钟
5.1k
做很多需求或者是技术细节验证的时候会用到 Runtime 技术,用了挺久的了,本文就写一些场景和源码分析相关的文章。先问几个小问题:class_rw_t的结构是数组,数组里面的元素是数组,那它是二维数组吗?为什么16字节对齐的?有类对象、为什么设计元类对象?Super 原理的什么?阅读完本文,你会掌握 Runtime 的原理和细节
封面图

iOSer 年度总结|晋升的逻辑是什么

2022-12-31
阅读 3 分钟
2.8k
2022年是疫情3年的一个“小尾巴”,但它一点也不小,因为它是3年内大家感受最深的一年,也是影响最大的一年。身边同事们换工作、周围见闻都可以印证这个结论。
封面图

探究 iOS 内存问题

2022-12-29
阅读 65 分钟
5.6k
本文从 Tagged Pointer、objc 源码、dealloc 原理、AutoreleasePool 原理、野指针探究等技术点展开聊了聊 iOS 内存相关问题。
封面图

几个 iOS 端底层网络问题

2022-03-29
阅读 6 分钟
9.2k
典型案例1. Socket 断开后会收到 SIGPIPE 类型的信号,如果不处理会 crash同事问了我一个问题,说收到一个 crash 信息,去 mpaas 平台看到如下的 crash 信息看了代码,显示在某某文件的313行代码,代码如下Socket 属于网络最底层的实现,一般我们开发不需要用到,但是用到了就需要小心翼翼,比如 Hook 网络层、长链接等...
封面图

APM-监控子线程操作 UI

2022-02-07
阅读 2 分钟
5.8k
一款监控子线程操纵 UI 的能力,也可以添加自定义的 API 进行监控(实现在子线程监控某些 API 的时候捕获具体堆栈信息,帮助定位问题)
封面图

App 质量把控之道

2021-12-19
阅读 3 分钟
2k
技术方案阶体现测试用例对于业务项目来说,会存在测试资源、冒烟用例、精准测试、QA 新业务的业务回归、核心业务的 UI 自动化、高铁阶段的 QA 人工回归等。这里简单讲讲这些词语,对于新的业务项目,一定会有测试资源,简单说就是 QA,新项目在经过 PRD、MRD、需求讨论会、Kick-off 之后,技术方案评审后,会经过测试用...
封面图

微服务平台下基于 GraphQL 构建 BFF 的思考

2021-11-30
阅读 29 分钟
4.2k
写在开头的部分,本文的契机是最近我们组同事在客户端实现了一套 Redux,对某个业务域的功能进行重构设计,iOS、Android 都遵循这套规则,即 Redux。为什么需要客户端去实现一套 Redux?商品模块业务逻辑非常负责,商品基础信息非常多,比如多规格、多单位、价格、库存等信息,还有对应的门店、网店模型,还有各种行业能...
封面图

JS原型链与Objective-C内存布局不能说的秘密

2021-10-07
阅读 1 分钟
3k
Javascript 借鉴了 Self 语言中关于原型的继承,可能会比较陌生,什么是“Self”?看看 JS 的表现:假设从对象 O 中查询属性 X
封面图

打造一套客户端功能最全的 APM 监控系统

2021-07-02
阅读 192 分钟
22.4k
APM 是 Application Performance Monitoring 的缩写,监视和管理软件应用程序的性能和可用性。应用性能管理对一个应用的持续稳定运行至关重要。所以这篇文章就从一个 iOS App 的性能管理的纬度谈谈如何精确监控以及数据如何上报等技术点
封面图

一个 Hybrid SDK 设计与实现

2021-06-28
阅读 17 分钟
14k
随着移动浪潮的兴起,各种 App 层出不穷,极速发展的业务拓展提升了团队对开发效率的要求,这个时候纯粹使用 Native 开发技术成本难免会更高一点。而 H5 的低成本、高效率、跨平台等特性马上被利用起来了,形成一种新的开发模式: Hybrid App
封面图

从 Flutter 和前端角度出发,聊聊单线程模型下如何保证 UI 流畅性

2021-06-20
阅读 9 分钟
9.2k
文章主题是“单线程模型下如何保证 UI 的流畅性”。该话题针对的是 Flutter 性能原理展开的,但是 dart 语言就是 js 的延伸,很多概念和机制都是一样的。具体不细聊。此外 js 也是单线程模型,在界面展示和 IO 等方面和 dart 类似。所以结合对比讲一下,帮助梳理和类比,更加容易掌握本文的主题,和知识的横向拓展。先从前...
封面图

打造一个通用、可配置、多句柄的数据上报 SDK

2020-11-19
阅读 83 分钟
7.4k
一个 App 一般会存在很多场景去上传 App 中产生的数据,比如 APM、埋点统计、开发者自定义的数据等等。所以本篇文章就讲讲如何设计一个通用的、可配置的、多句柄的数据上报 SDK。

写好测试,提升应用质量

2020-11-19
阅读 33 分钟
6k
场景1:每次我们写完代码后都需要编译运行,以查看应用程序的表现是否符合预期。假如改动点、代码量小,那验证成本低一些,假如不符合预期,则说明我们的代码有问,人工去排查问题花费的时间也少一些。假如改动点很多、受影响的地方较多,我们首先要大概猜测受影响的功能,然后去定位问题、排查问题的成本就很高。

写好测试,提升应用质量

2020-07-15
阅读 33 分钟
1.7k
场景1:每次我们写完代码后都需要编译运行,以查看应用程序的表现是否符合预期。假如改动点、代码量小,那验证成本低一些,假如不符合预期,则说明我们的代码有问,人工去排查问题花费的时间也少一些。假如改动点很多、受影响的地方较多,我们首先要大概猜测受影响的功能,然后去定位问题、排查问题的成本就很高。

“Electron” 一个可圈可点的 PC 多端融合方案

2020-05-04
阅读 19 分钟
7.6k
每天都要写第二天的 todoList。有一天在写的时候突然想到,为了让自己清楚知道自己需要做啥、做了多少、还剩多少没做,想写一个电脑端程序,在技术选型的时候就选了 Electron。本篇文章的目的不是讲解 API 如何使用,想知道这些可以直接看官方文档。本文目的旨在讲明如何技术如何选择、如何快速上手、如何调试、Electron...

爬取疫情数据并用 Markdown 预览

2020-04-11
阅读 4 分钟
2.2k
周五不困,无聊写了一个 Python 脚本,功能很简单:获取新浪关于各个国家疫情数据,并写入 md 文件并预览,定时去获取数据,有新数据则生成新的 markdown 内容拼接在文件最后。

数据安全(反爬虫)之「防重放」策略

2020-03-05
阅读 3 分钟
5.5k
在大前端时代的安全性一文中讲了 Web 前端和 Native 客户端如何从数据安全层面做反爬虫策略,本文接着之前的背景,将从 API 数据接口的层面讲一种技术方案,实现数据安全。

App 上架包预检

2020-03-03
阅读 6 分钟
2.7k
一、 iOS 端常见被拒原因汇总 App 内包含分发下载分发功能(引导用户下载 App 等功能)。 提供的测试账号无法查看实际功能 通过接口返回布尔值判断 App 是否升级,但审核期间该接口不请求 审核账号,任何时候在任何 ip 登录看到的都是审核版。 提供的登陆账号和密码不对,登陆不上 运营填写的营销关键字有问题 元数据问...

规范化团队 git 提交信息

2020-03-03
阅读 3 分钟
2k
同一个工程项目,为了方便管理,git 的 commit 信息最好按照一定的格式规范,以便在需要的时候方便使用。什么是方便的时候,比如出现了一个线上 bug,所以需要回滚操作,知道了提交信息可以方便的定位问题。代码 review 的时候也知道了该次 commit 干了什么,所以 commit 标准化好处很多,不再举例。

前端模块化演进之路

2020-02-02
阅读 7 分钟
2.2k
有这样一个场景,客户端运行很久,但是法务部和数据部需要收集用户的一些信息,这些信息收集好之后需要进行相应的数据处理,之后上报到服务端。客户端提供一个纯粹的 JS 执行引擎,不需要 WebView 容器。iOS 端有成熟的 JavaScriptCore、Android 可以使用 V8 引擎。这样一个引擎配套有一个 SDK,访问 Native 的基础能力...

云服务器哪家强

2019-11-26
阅读 1 分钟
2k
首先,我作为一名客户端工程师分析下我购买云服务器的初衷。 我首先是想大搭建自己的博客系统、然后我还会写一些 App 然后自己写 App 的后台服务器,可能是 Node 语言也可能是 PHP 语言。也有可能部署一些定时服务或者 Spider 项目 ?

自定义报头协议

2019-10-07
阅读 2 分钟
3.3k
在学习过计算机网络的课程,我们知道刚开始计算机都是单独脱机工作的,没有联网的情况下计算机的信息共享能力、运算能力都非常有限,后来诞生了计算机网络.有了就是那几网络,计算机 A 的信息和数据可以通过网络传递到计算机 B,同样计算机 A 可以获取到来自计算机 B 的数据. 但是不同计算机之间交换数据的时候就要通过网络来...

Mac 终端效率神技

2019-09-30
阅读 6 分钟
5k
一、 增强各种预览的插件预览查看图片分辨率&大小代码语法高亮快速预览zip压缩包内容快速预览markdown格式内容 {代码...} 二、 iTerm2具体的配置网上一大堆。贴一个本人亲身操刀操作过的教程程序员经常与终端操作打交道,所以很多命令便是做成了命令行模式,在自带的 Terminal 命令都保存在 .bash_profile 文件中,...

你知道字节序吗

2019-09-15
阅读 6 分钟
3k
字节序,字节顺序,又称端序或尾序(Endianness),在计算机科学领域中,指「存储器」中或者「数字通信链路」中,组成多字节的字的字节排列顺序。

1995年的资深工程师,和你谈谈如何进阶

2019-09-05
阅读 6 分钟
4.6k
网络ID:杭城小刘。1995年出生,本科毕业,现在是一名 iOS 资深工程师。兴趣爱好广泛:乒乓球、美食、电影、健身、山地车、养了2只布偶猫(Simba & Bella)、养花。技术领域:iOS、Web 前端,写过 Node、PHP 后端服务、写过爬虫、反爬虫方案Web 端反爬虫技术方案。现在年薪 50w 吧,在成长的路上...

OCLint 实现 Code Review - 给你的代码提提质量

2019-05-26
阅读 13 分钟
5.2k
工程代码质量,一个永恒的话题。好的质量的好处不言而喻,团队成员间除了保持统一的风格和较高的自我约束力之外,还需要一些工具来统计分析代码质量问题。

iOS 瘦身之道

2019-05-16
阅读 19 分钟
6.5k
App 的包大小做优化的目的就是为了节省用户流量,提高用户的下载速度,也是为了用户手机节省更多的空间。另外 App Store 官方规定 App 安装包如果超过 150MB,那么不可以使 OTA(over-the-air)环境下载,也就是只可以在 WiFi 环境下载,企业或者独立开发者万万不想看到这一点。免得失去大量的用户。