团队管理杂谈 (www.bo56.com)
有句话说得好,兵熊熊一个,将熊熊一窝。这句话,充分说明了团队管理者对于一个团队的重要性。好的 leader 可以提高团队的战斗力,带领大家攻城略地。

作为团队 leader 有三件事很重要。这三件事分别是,规划、招聘、赋能。
by @技术头条 2021-05-28 08:31 查看详情
一些关于 App Clips 的笔记 (onevcat.com)
App clips 是今天 WWDC 上 iOS 14 的一个重要“卖点”,它提供了一种“即时使用”的方式,让用户可以在特定时间、特定场景,在不下载完整 app 的前提下,体验到你的 app 的核心功能。

装好 Xcode 12 以后第一时间体验了一下如何为 app 添加 app clip。它的创建和使用都很简单,也没有什么新的 API,所以要为 app 开发一个 clip 的话,难点更多地在于配置、代码的复用以及尺寸优化等。在阅读文档和实际体验的同时,顺便整理了一些要点,作为备忘。
by @技术头条 2021-05-28 08:29 查看详情
美团万亿级 KV 存储架构与实践 (tech.meituan.com)
KV 存储作为美团一项重要的在线存储服务,承载了在线服务每天万亿级的请求量。在 2019 年 QCon 全球软件开发大会(上海站)上,美团高级技术专家齐泽斌分享了《美团点评万亿级 KV 存储架构与实践》,本文系演讲内容的整理,主要分为四个部分:第一部分讲述了美团 KV 存储的发展历程;第二部分阐述了内存 KV Squirrel 架构和实践;第三部分介绍了持久化 KV Cellar 架构和实践;最后分享了未来的发展规划和业界新趋势。
by @技术头条 2021-05-28 08:28 查看详情
给 JavaScript 插上多线程的翅膀 —— Web Worker 的 Promise 化实践 (www.alloyteam.com)
众所周知,JavaScript 这门语言的一大特点就是单线程,即同一时间只能同步处理一件事情,这也是这门语言衍生出的 nodeJS 被各后端大佬诟病的很重要的一点。


然而,JavaScript 在设计之初,其实是故意被设计成单线程语言的,这是由于它当时的主要用途决定的。

JavaScript 最初的设计初衷是完成页面与用户的交互,操作 DOM 或者 BOM 元素,此时如果一味地追求效率使用多线程的话,会带来资源抢占,数据同步等等问题,因此必须规定,同一时间只有一个线程能直接操作页面元素,以保证系统的稳定性以及安全性。

尽管如此,但是 JavaScript 并不是只能线性处理任务。JS 拥有消息队列和事件循环机制,通过异步处理消息的能力来实现并发。在高 I/O 型并发事务处理的过程中,由于不需要手动生成与销毁线程以及占用额外管理线程的空间,性能表现及为优异。因此,nodeJS 作为 JavaScript 在服务端的探索者,在处理高并发网络请求的优势极为明显。

尽管 JavaScript 通过异步机制完美解决了高 I/O 性能的问题,但 JavaScript 单线程执行的本质还是没有变的。因此缺点就显而易见了,那就是处理 CPU 密集型的事务时没有办法充分调动现代多核心多线程机器的运算资源。

在现代大型前端项目中,随着代码的复杂程度越来越高,本地的计算型事务也在变得繁重,而运行在单线程下 JS 项目必定会忙于处理计算而无暇顾及用户接下来的频繁操作,造成卡顿等不太好的用户体验,更严重的情况是,当计算型事务过多时还有可能因为资源被占满带来网页无响应的卡死现象。因此,Web 项目的本地多线程运算能力势在必行,由此,Web Worker 应运而生了。
by @技术头条 2021-05-28 08:27 查看详情
GCanvas渲染引擎的演进 (fed.taobao.org)
GCanvas的定位是遵循w3c标准的跨平台的轻量级图形渲染引擎。有清晰的定位和目标,并且紧贴现有的业务,为业务提供丰富表现形式。

GCanvas引擎从早期的H5性能加速,到Weex业务落地,从小游戏的业务探索,到服务端渲染,再到小程序。经过几个阶段的发展后日渐成熟。

淘系无线架构的不断升级迭代,GCanvas随之保持着更新迭代的步调,在多个业务场景中使用,了解下一些应用案例。
by @技术头条 2021-05-27 22:31 查看详情
当 SSR 遇上 Serverless,轻松实现页面瞬开 (fed.taobao.org)
最近随着 Rax SSR 完成渲染性能 6x React 的提升,以及工程上 Serverless 发布形式的对接,我想是时候跟大家介绍下 Rax SSR 了。

SSR 的全称是 Server Side Rendering,对应的中文名是:服务器端渲染,顾名思义是将渲染的工作放在 Server 端进行。

而与之对应的是 CSR ,客户端渲染,也就是目前 Web 应用中主流的渲染模式,一般由 Server 端返回的初始 HTML 页面,然后再由 JS 去异步加载数据,然后完成页面的渲染。
by @技术头条 2021-05-27 22:30 查看详情
记 python 超时的一个坑 (www.felix021.com)
背景:
有一个 python 脚本调用 A 服务的 x 接口获取若干 GB 的数据(大量对象),读取和解析大约需要 5 分钟。
由于 x 接口的改造,需要改成调用 B 服务的 y 接口。
A、B 服务都是基于字节跳动的 KITE 框架开发的,通信协议是 thrift 0.9.2 。
by @技术头条 2021-05-27 22:29 查看详情
Web开发中的响应式图片处理 (www.hitoy.org)
目前手机等移动设备网站开发已经有比较好的解决方案,一种是响应式网站,像笔者博客一样,PC网站就是移动网站,一种是把移动网站和PC网站分开,类似淘宝那样。从网站SEO的角度来说,两者并无差别,也各有利弊,不论采取那种方式也都能解决移动设备浏览问题。随着移动设备和类型越来越多,我们几乎不太可能针对某一类设备建设单独的网站,不论PC网站和移动网站是否分开建设,那都意味着我们的移动网站将会面临越来越多各不相同设备进行访问,也就是说即使是建设单独的移动网站,我们也必须要考虑网站符合用户的设备特性。
by @技术头条 2021-05-27 22:29 查看详情
如何加快 Node.js 应用的启动速度 (fed.taobao.org)
我们平时在开发部署 Node.js 应用的过程中,对于应用进程启动的耗时很少有人会关注,大多数的应用 5 分钟左右就可以启动完成,这个过程中会涉及到和集团很多系统的交互,这个耗时看起来也没有什么问题。

目前,集团 Serverless 大潮已至,Node.js serverless-runtime 作为前端新研发模式的基石,也发展的如火如荼。Serverless 的优势在于弹性、高效、经济,如果我们的 Node.js FaaS 还像应用一样,一次部署耗时在分钟级,无法快速、有效地响应请求,甚至在脉冲请求时引发资源雪崩,那么一切的优势都将变成灾难。

所有提供 Node.js FaaS 能力的平台,都在绞尽脑汁的把冷/热启动的时间缩短,这里面除了在流程、资源分配等底层基建的优化外,作为其中提供服务的关键一环 —— Node.js 函数,本身也应该参与到这场时间攻坚战中。

Faas平台从接到请求到启动业务容器并能够响应请求的这个时间必须足够短,当前的总目标是 500ms,那么分解到函数运行时的目标是 100ms。这 100ms 包括了 Node.js 运行时、函数运行时、函数框架启动到能够响应请求的时间。巧的是,人类反应速度的极限目前科学界公认为 100ms。


by @技术头条 2021-05-27 22:28 查看详情
大型 h5 页面无缝闪开方案 (www.alloyteam.com)
在传统的 web 优化中,我们可以采取压缩、拆包、动态加载等方法减少首屏资源大小,也能通过离线包、页面直出等方案加速 html 返回,之前一篇 h5 秒开大全有部分简析。在大部分场景中,这些方案都足够用,也能得到出色的效果。但仍有两种无法尽善尽美的地方:其一是短暂的白屏现象不可避免,其二是对于超大型 web 应用难以做到秒开。结合客户端特性,我们有没有办法,进一步做到极致,打开 web 页面和打开客户端页面无差异的体验呢?
by @技术头条 2021-05-27 22:27 查看详情
新一代垃圾回收器ZGC的探索与实践 (tech.meituan.com)
ZGC(The Z Garbage Collector)是JDK11中推出的一款低延迟垃圾回收器。ZGC适用于大内存低延迟服务的内存管理和回收,本文主要介绍ZGC在低延时场景中的应用和卓越表现。
by @技术头条 2021-05-27 22:22 查看详情
华为手机刷微博体验更好?技术角度的一些分析和思考 (androidperformance.com)
滑动中加载图片最大的风险其实就是造成卡顿,因为图片加载本身就是一个比较重的操作,而高帧率的手机上,一帧的时间被压缩到很短,任何小的不确定性都有可能造成卡顿

所以厂商+应用的这个优化: 快速滑动不加载图片,慢速的时候再加载,然后优化滑动曲线 ,其实对厂商和应用都是非常有益处的
by @技术头条 2021-05-27 22:22 查看详情
使用容器搭建简单可靠的容器仓库 (soulteary.com)
提到容器仓库,我们一般会想到 Nexus、Harbor ,那么有没有更轻量可靠的方案呢。尤其是在频繁构建的 CI 流水线中、或是分布式的环境中需要高频拉取镜像的场景中。

《使用容器搭建 APT Cacher NG 缓存代理服务》一文提到了缓存,虽然可以使用文末中的 Nginx 的补充方式来提供容器镜像导出文件的缓存托管,但是这种方式相比较使用镜像仓库而言,不能够直接使用 Docker Client 与之交互,需要借助导出和导入命令,使用起来颇有不便。

本篇文章继续聊聊,如何使用容器搭建轻量可靠的镜像仓库:distribution。
by @技术头条 2021-05-27 22:19 查看详情
迟到的 2020 年终总结 (onevcat.com)
岁月如梭,白驹过隙。年前就打算写的这篇 2020 年终总结,硬生生被拖成了 2021 的“去年回顾”。主要还是因为思前想后,觉得 2020 年实在太过特殊:在 2020 经历的事情,也许今后很长一段时间都不会再有;于是在 2020 总结的经验,似乎也很难运用于未来。不过就算如此,还是勉强写点儿什么,权当留个纪念吧。
by @技术头条 2021-05-27 22:19 查看详情
算法平台在线服务体系的演进与实践 (tech.meituan.com)
图灵平台是美团配送技术团队搭建的一站式算法平台,图灵平台中的在线服务框架——图灵OS主要聚焦于机器学习和深度学习在线服务模块,为模型和算法策略的线上部署和计算提供统一的平台化解决方案,能够有效提升算法迭代效率。本文将与大家探讨图灵OS在建设和实践中的思考和优化思路,希望能对大家有所帮助或者启发。
by @技术头条 2021-05-27 22:18 查看详情
写给新人的沟通建议 (wklken.me)
很多年前写过一篇在自己博客里面, 后端不高兴——关于协作和沟通, 做后端的同学可以看看吐槽哈。

工作也好多年了, 前前后后跟不少新人合作过, 实际合作中不免各种问题, 都是从新人过来的, 所以打算写一些点, 算是一些感受吧。
by @技术头条 2021-05-27 08:14 查看详情
h5 秒开方案大全 (www.alloyteam.com)
老板说 , 页面打开速度过慢? 页面加载性能不达标? 下面我们来看下各个大厂和团队的秒开经典方案,有没有一款适合你去探索?

本页面会列举和总结偏向与客户端结合的 hybrid 秒开方案,纯前端方案也会部分提及。
by @技术头条 2021-05-27 08:13 查看详情
浅谈协同文档中的数据一致性 (www.alloyteam.com)
在线文档是一个数据一致性要求很强的项目,我们经常会提到一个在线文档的技术:“协同冲突处理算法——OT”。这是协同编辑处理的核心。因为它保障了在多客户端同时提交修改的情况下的数据一致性,用通俗一点的方式描述:多人在线编辑,每个人提交的内容不一样,但通过协同冲突算法,最终都能看到一样的内容。

但在这里我们不想深入去探讨协同编辑冲突算法的具体内容,对这块有兴趣的朋友可以参考之前我们团队的博客,已经有过很多介绍。本文主要是介绍协同冲突算法产生的原因,以及它背后关于数据一致性的问题。
by @技术头条 2021-05-27 08:13 查看详情
陆奇:除了好代码,工程师怎样才算优秀? (androidperformance.com)
转自:百度Family,内容为陆奇 2017 年 7 月 的百度内部分享,非常值得技术人员学习和思考。
by @技术头条 2021-05-27 08:12 查看详情
新人在中小公司遇到的成长困境 (www.barretlee.com)
有个童鞋在一家创业公司工作,近期遇到了些 疑问:“如何才算是高级前端开发工程师,以及在创业公司比较繁忙的情况下,如何更好的成长?”,对此他自己做了总结,以下几类事情占据了他主要的时间:
1、公司最近为了融资需要快速更迭产品,所以需要大家在短时间内上线产品;
2、工作不到一年,写代码熟练度还不够,所以开发速度不够快;
3、为了产品更快上线,需要改同事写的 bug;

“所以导致工作以来属于自己的个人学习时间变少”,他说。
by @技术头条 2021-05-27 08:12 查看详情