从浏览器内核看合作关系

引子

如果你看过我的浏览器的博文(参见《自己写一个极简浏览器》),你会发现我现在所用的Github仓库叫EasyBrowserAdvanced,而我还有一个仓库叫EasyBrowser,这两个仓库不仅版本号相连,甚至README.md标题都是“极简浏览器”,这是怎么回事儿呢?

正文

浏览器

说实话,我写这个浏览器的目的,一是我所说的:

让大家都用Linux可实施性太弱,所以,我只能解决软件问题。

那么,软件中最常用的,莫过于浏览器。考虑到技术难度不算太高,代码量在15000行左右,我决定——自己写一个浏览器!

——引自我的博文《自己写一个极简浏览器》

第二,就是练练手,使自己的WPF技术更加成熟

为了提高自己的技术,我决定——从控件下手,深入研究!

我在Visual Studio的工具箱里找来找去,选中了一个”非常高级“的控件:WebBrowser

于是,我以WebBrowser控件为基础,开发出了我的极简浏览器第一代。正当我准备开发第二代的时候,忽然发现这个WebBrowser控件,其内核本质是基于Trident 7(IE 7)的兼容模式!我很懊恼,没调查清楚就用它开发了第一代。

考虑到已经编写了许多代码,如果第二代换成更好的基于Chromium内核的CefSharp控件,就需要重构大部分代码,工作量太大,而且这样会使代码出现一段时间的严重混乱。于是,我决定继续使用WebBrowser控件开发我的第二代。

第二代开发好后,我决定用我自己的浏览器看看我的Github上有多少Star,刚登入Github主页,我差点没被活活气死——这Trident啊!连个Github都显示不了,一片空白!
img
本来我对Trident内核性能低下和陈旧过时的缺点一直忍着,今天给我严重垮掉,我忍无可忍,当机立断——换核!

我宁可让我的代码混乱一段时间,也坚决要用Chromium替掉它!


于是,我的换核计划产生了

内核更换计划(已成功)

  1. 创建极简浏览器名叫EasyBrowserAdvanced的副本
    (本文引子里的疑问解答了没?)
  2. 删除全部后端
  3. 更换内核
  4. 重写后端

经过了3个月的努力,我重写了MainWindow.xaml.csBrowserExtension.cs两个文件,添加了Api文件夹里的8个文件,总共新增了5227行代码(是的!你没有看错),并重写了300行代码。这导致我第三代的开发进程严重拖后。


我付出了代价,最终收获了更好用的浏览器。(详情请见我的后续博文《我的换核之路》)

现在我的第三代已经改用以Chromium为内核的CefSharp控件来开发,目前已更新到3.3.2.12了。

img

最近,我发现只要配置浏览器设置时就会崩溃,有时还会产生一些莫名其妙的错误,我不禁开始考虑——要不要换成性能和兼容性更强的Gecko内核,这样会不会更稳定?

考虑再三,我决定继续使用Chromium作为内核,因为Chromium的一些小问题我还可以忍,为这点小问题不值得大动干戈,换成Gecko

合作关系

由换浏览器内核这件事,我想到:人与人之间的合作关系是不是也是这样呢?无论是什么类型的合作,都会存在关系相处中“度”的把握。


作为一个Trident,你要知道,你不具备ChromiumGecko的能力。

在与别人的合作中,你如果不能稳定地输出仅有的能力和价值,别人就会在“继续忍受你的不稳定输出”和“换掉你”之间权衡。

所以,当别人的忍耐到达了极限时,别人宁可付出一定的代价,也会换掉你。因为对别人来说,寻找一个新的合作伙伴会比继续与你合作要更高效和愉快。


作为一个Chromium,你虽然比Trident能力强,但还有比你更强的Gecko

在与别人的合作中,如果你状况百出,别人要么继续忍受你,要么把你换成能稳定输出的低一级的Trident,要么把你换成能力更强的高一级的Gecko

所以,即使作为一个比上不足、比下有余的Chromium,你也不是高枕无忧的,即:不要让你的不良表现把别人逼得忍无可忍。


作为一个Gecko,你虽然当前处于最高级,但是你需要警惕,一是你能不能在合作中将自己的能力和价值稳定地输出,二是会不会有比你能力更强的人取代你第一的位置。

所以,只有不断地提升实力,才能让自己无法被别人替代。


有鉴于此,人和人之间的合作,应该遵循如下规则:

  • 稳定地输出自己的能力和价值

  • 认清自己所处的位置

  • 不断地提升自己的实力

结语

没有实力就别嘚瑟
img

特别鸣谢

感谢cv君Rex~自由学者亻伊宸我是小白呀对我的博文《自己写一个极简浏览器》的评论。

image-20210512222937452

我的Github地址

官方:https://github.com/KaiHuaDou/EasyBrowserAdvanced/releases

加速:https://github.com.cnpmjs.org/KaiHuaDou/EasyBrowserAdvanced/releases

  • 12
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值