需求和Bug

自己开始写软件后,对需求Bug这两个词有了不一样的体会。

打个比方,串流软件是否应该使用虚拟组网。 (Windows下)虚拟网卡和物理网卡在程序眼中是没有区别的。在串流场景下,如果连接使用了使用者配置的虚拟组网,有些人会认为这是一个Bug。他知道他的主控、被控之间可以P2P连接,通过虚拟组网连接反而影响效果。

好,为了满足这些人的需求,可以通过笨办法列举所有能找到的虚拟网卡的名字,去判断电脑上某某网卡到底是不是虚拟网卡:

for (网卡 in all网卡)
{
    if (网卡.名字 == "tailscale的网卡名"
        or
        网卡.名字 == "深信服的网卡名"
        or
        网卡.名字 == "UU加速器的网卡名"
        or ......)
    {
        这是虚拟网卡
    }
}

好不容易把列清单的脏活干完,新版本一发,立马有其他使用者报Bug:我之前可以通过P2P连接,更新版本后就不行了!

不管我做出哪种选择,这都是在写Bug,而这个Bug刚好又是另一些人的需求。为了同时满足两种使用者互斥的需求,只能在UI上加个选项是否过滤虚拟网卡。好,这下总算是万事大吉!

过了不知多少久,欸?!怎么又有人报Bug。这个人说在选中过滤虚拟网卡,串流连接依然使用了他的虚拟组网。排查发现这是我没见过的虚拟组网软件,作者拿开源代码,修改网卡的名字,重新发布了。

天呐!这个需求是陷阱,我没有办法枚举世界上所有的虚拟网卡!