为什么需要区分?

我们经常抱怨某些政府网站难用,某些命令行工具难用,某些聊天软件难用。显然在它们背后,缺陷具有共性。而共性的缺陷往往来自于共同的开发设计模式。

了解这些模式,有助于我们在未来选择自己需要的软件。

互联网软件

互联网软件往往由大型互联网公司以盈利为目的开发。这类软件往往靠大量的用户基数来获得间接价值。一般不会开源。一般互联网软件投资巨大,以保证每个细节都体验优异。在实际运营中往往会经常面对突发的流量突变,需要极高的技术水准。除了技术之外,还需要强大的营销团队、设计团队来全职讨论和设计它的发展方向。

  • 功能:在一个简单的功能方面能解决的还不错,没有奇怪的用例,但是并没有复杂的扩展能力。
  • 广告:广告无孔不入。到处想尽办法榨干你的钱包,还会让你尽量不能脱离这个产品。
  • 产品:产品设计非常诱人,上来就会用,功能一般交互友好,响应速度很快。
  • 性能:性能极强,都是投资几千万在全球搭建基础设施。能省1秒是1秒。
  • 界面:界面一看就是精心设计过的。非常诱人,简洁直白。无论什么状况都不会让你看到丑的页面。
  • 价格:看似免费,甚至想尽办法打广告倒贴钱让你来用。实际上是最贵的。
  • 隐私:隐私?隐私是什么?某著名互联网企业CEO:“中国人愿意用隐私换取便利”。
  • 更新:一般需要靠平台来实现自动更新。一般自动更新不会带来太多bug或安全隐患。

企业软件

企业软件往往由一些企业申请定制或直接采购。这类软件往往是直接销售来获取价值的,因此一般在能够方便将其销售的方面都做的非常优异。例如:功能丰富,有好看的主界面、学习简单等。适用于企业内部多个团队共同协作使用,可以解决一些常见的管理问题。但是,为了节省开发成本,往往其内部细节都非常糟糕。并且低质量的产品设计会让你觉的非常不自洽和莫名其妙。在实际运营中,一般不会有流量突变。而且可能会采用单体模式,每周还有维护窗口等。

  • 功能:在一个复杂的方面只能说算是解决了吧,但是经常有莫名其妙的用例和提示信息,感觉不自洽,又很强大啥玩意儿都有,一般有不错的扩展能力。
  • 广告:没有广告。
  • 产品:一般有专门的产品经理设计,功能强大,但是交互不友好,很多地方会冗余重复。经常匪夷所思的设计。
  • 性能:性能贼垃圾。投资了几百万买的服务器。基本上都卡卡的,经常卡在匪夷所思的地方。但是不至于不能用。
  • 界面:几个重要的主界面单独静态的看觉的挺好看的,但实际上细节问题一大堆,稍微点点就会变得贼丑。
  • 价格:先交几十万再说。交完了钱你是大爷,干啥都听你的。
  • 隐私:一般合规性和安全性只能说都是达标了,但实际问题一堆。很容易被黑客攻击,需要联络开发团队才能在几天内修复。一般钱给够,是不会有后门的,也一般可以内网部署。
  • 更新:一般需要靠开发团队自己设计的更新程序来更新。每次更新都换一波bug,老的bug修了,新来一波bug。

开源软件

开源软件往往来自于开发自己的个人需求,而在社区中运营。它的源码完全是社区里资源贡献的,因此一般代码质量很高,其结果就是有优异的性能、设计的正交性和可扩展性。非常适合解决一些特定的问题。但是其缺点往往是功能较少、使用难度较高,需要一些扩展或和其它软件组合使用才能有较好的体验。

  • 功能:如果用的姿势得当,能很好的解决问题。设计一般非常正交和原教旨主义,自洽。模块化良好,有不错扩展能力。
  • 广告:一般没有广告,但是偶尔开发者缺钱了指不定什么时候会塞进去点儿。甚至可能开发者想找个工作。
  • 产品:没有产品设计。使用难度较大。强大的功能需要靠多个小功能互相组合。但是如果用的得当也会很强大。
  • 性能:一般没有后端。偶尔开发者自己host一个,但也建议你自己host。只能说,服务器性能不够,全靠代码写的优化。
  • 界面:界面?界面是什么?功能全靠命令行。实在寒碜就凑合做个能用的。UI一般比较简洁,但也没啥复杂的功能元素。
  • 价格:当然是免费了。偶尔也会上架商店付费下载。但是你自己也可以编译一个自己用,就一样免费了。
  • 隐私:可能没有完成一些合规性和隐私、安全检查。但由于开发者提交代码时一般比较注重代码质量,往往安全问题少于企业软件。一般可以完全内网部署。
  • 更新:一般没有什么可靠的更新方式,完全需要使用者自己构建更新脚本。