浏览器|浏览器内核比系统更难研发,所以国内有手机操作系统,却做不出浏览器

浏览器|浏览器内核比系统更难研发,所以国内有手机操作系统,却做不出浏览器

文章图片

浏览器|浏览器内核比系统更难研发,所以国内有手机操作系统,却做不出浏览器

文章图片




从事浏览器内核开发有十个年头 , 主要研究的是webkit内核源码后来去研究谷歌的chrome浏览器 , 浏览器代码量还是非常的巨大 , 在webkit开源社区代码的更新速度已经非常快速了 , 但是谷歌打造的chrome已经投入了2000多员工 , 每天的代码更新量更是惊人 , 浏览器内核的代码架构在客户端软件里面算是复杂度非常高 , 先简单看下浏览器的工作流程 , 浏览器功能上现在地址栏输入网址 , 然后浏览器内核的网络模块请求数据 , 拿到数据之后就进行数据解析 。



浏览器内核的数据解析包括三部分 , Html , CSS , JavaScript三种脚本的解析 , 而且不同的脚本对应不同的解析策略 , 这块代码量在实际操作过程中变动不是很大 , 变动点主要在于W3C新的标准产生之后 , 对应的解析代码就需要改变 , 这块的代码模块的编程模式化比较多 , 代码不是很容易看懂需要对其解析做出一些了解 。 网页内容被解析分类之后就要开始进行网页的渲染 , 网页渲染是浏览器内核的关键 , 也是决定浏览器性能的关键 , 谷歌浏览器为了提升这块的性能专门在webkit的基础设计了新的渲染架构 , 这是谷歌浏览器相对别的浏览器比较快的地方 , 而且在影响浏览器JavaScript性能的地方做了重新架构并且重新命令为V8引擎 , 总体来讲谷歌浏览器内核相对传统的webkit做了太多的优化 , 每天浏览器研发工程师针对不同的点做优化 , 代码量上千万行也不是夸张的数字 。




目前在客户端软件里面浏览器内核和安卓内核代码都属于巨量级的代码 , 而且在具体编译这两种软件的时候普通的电脑配置根本编译不过 , 基本上需要8核16G以上的内存来使用 , 从浏览器内核的工作原理上倒也不是那么复杂 , 但在具体的标签和事件处理上细节繁多 , 而且不同的浏览器对于同一个标准的支持也是不一样的 , 所以同一个网页在不同的浏览器上有不同的展示方式 , 就是这种道理 。


【浏览器|浏览器内核比系统更难研发,所以国内有手机操作系统,却做不出浏览器】

通过浏览器内核的研究还是个人上还是总结出几点经验 , 无论多么复杂的代码就要从基本的语法细节入手 , 作为一名合格的程序员首先具备不断优化自己代码逻辑的习惯 , 通过研究浏览器内核的代码有些很简单的内核代码会被来回的重构 , 直到琢磨出最优的解决方案 , 在现实中写代码的时候完成的代码就要进行重新审视 , 直到拿到最优的解决方案 , 勇于对自己写的代码说不 , 直到拿出自己满意的方案 。 谷歌浏览器内核代码维护者分布在全球各地 , 不同的国家技术人员同时维护一个大的项目工程 , 需要掌握共同的编程规范 , 为了谷歌专门制定了自己的代码写作规范 , 而且代码就如同程序员自己的脸面 , 不好的代码展示在大众面前如同人丢了脸面一样 , 程序员在实际编程的过程中要懂得珍惜自己的羽毛 。



无论多么复杂的代码都是由一个个功能模块构成的 , 在有好的架构情况下把每个功能模块的代码完成好才能让整体完美的结合在一起 , 再复杂的代码也是基本功能模块完成的 , 不要看到了大量的代码就觉得距离太遥远 , 任何一行优秀的代码也是遵守基本的编程规范情况下完成的 , 希望能帮到你 。