---
title: 软件开发与生物学
date: 2019-07-27T01:44:00+08:00
tags:
  - Web
  - 技术
  - 日记

---

无意中发现和尝试了 Chrome DevTools 的 [Layers 面板](https://blog.logrocket.com/eliminate-content-repaints-with-the-new-layers-panel-in-chrome-e2c306d4d752/)，Get 到了庖丁解牛的新视角。不禁感叹 Web 浏览器的巧夺天工，也从此打开了浏览器从 Layout->Paint->Composite 中的 Composite 过程的研究的大门。

![Layers Panel](https://cdn.zgq.me/assets/posts/2019/biology-and-software-development/3543167465.png)

恰好前一天同组的妹纸问我为什么微信的 Web 开发者工具的预览页底部有白边，下意识想到微信的开发工具实际上是 NW.js 做的，自然也会有开发者工具吧，一看，果然有。

![微信开发者工具](https://cdn.zgq.me/assets/posts/2019/biology-and-software-development/1254191691.png)

由此也想到了[《禅与摩托车维修艺术》](https://book.douban.com/subject/6811366/)中将“分析”比作“刀子”的表述。有时候的确是觉得，搞软件就像是学生物与医学，分析的手术刀用得多了，脑海里也像是有了这么一把小刀，面对一个网页，不知不觉就在脑海里拿起了这把小刀对它大卸八块和重新组装，甚至对于小刀本身也是如此。

这两者的区别大概是：生物来源于自然，计算机来自于人类现有认知的创造。

无论自然还是人工，相同的是，当一个东西复杂到超越了人脑一下子所能承受的认知水平的时候，想驾驭它，就得靠着各种各样的工具把这把思想中的小刀变得更锋利一些。程序员只能工作在某一种抽象层级，负责更底层架构的工作者提供的抽象并不总是那么完备（特别是像 Windows、微信小程序、Safari、微信 X5 webview 内核等闭源平台），在解一些疑难的 BUG 的时候，往往也会采用提出猜想、设计实验，设置“实验组”、“对照组”，收集数据分析、验证猜想的过程，找到 BUG 发生的源头。

相通的不仅仅是分析的工具，想到 UNNATURAL 里面的法医中堂系的一句著名台词：

![2653471668.png](https://cdn.zgq.me/assets/posts/2019/biology-and-software-development/2653471668.png)

> 人なんてどいつもこいつも切り開いて皮を剥げばただの肉の塊だ。
> 

机器由灵魂而创造，研究与探索肉块，也是为了灵魂的延续。有了更锋利的小刀，更需要小心翼翼地去把握，让它更好地为守护每一个独特的灵魂而服务。法医如此、程序员也是如此。技术无罪，但使用技术是需要谨慎对待的。
