asio网络库 为什么有很多出名开源的C/C 方面的高性能网络库,比如libevent,boost-asio,有些企业还要自己写?
为什么有很多出名开源的C/C 方面的高性能网络库,比如libevent,boost-asio,有些企业还要自己写?
我认为,是构建轮子还是直接使用开源库,很大程度上取决于部门负责人的个人喜好。曾几何时,c开发人员热衷于重新构建轮子,那么为什么有些企业要自己编写呢?我在项目开始时不知道这个库的存在,我不想以后再介绍它。
2)许多第三方库依赖于许多其他第三方库。要引进a馆,就得引进B馆、C馆、D馆,这无疑增加了院系成员的学习成本。
3)第三方开源库通常会频繁更新。如果你知道有一个bug,你想更新它吗?基础库的更新无疑会花费更多的开发时间和测试时间。
4)使项目整体可控。一旦引入的开放源代码库出现问题并且项目团队不熟悉它,这将是灾难性的。
5)现有开源库过于复杂,学习成本高,团队成员水平参差不齐。
最后,附上一本我前段时间读过的书。
本文是作者《一个程序员的奋斗史》悟空问答原创文章,未经允许转载,抄袭将被追究
boost库asio网络编程,该怎么解决?
简介助推。阿修是一个跨平台的C库,主要用于网络等底层I/O编程。
在大量的网络编程库中,助推。阿修它于2005年加入boost,并在许多项目中得到了广泛的测试和应用
技术的深度和广度相辅相成,相互促进。
通过增加深度,它可以帮助您通过类比学习,加快您的广度扩展。
例如,分布式系统。如果你了解分布式系统的原理,比如Kafka分区和主从备份。当您学习其他分布式系统(如Hadoop)的原理时,您将更容易理解其体系结构设计。从本质上说,他们有同样的问题要解决。它们也是分布式系统的基本问题。
当您学习到一定的深度时,通过增加广度,也将帮助您更深入地了解技术。或者上面的例子。在您了解了Kafka、Hadoop和etcd之后,您会发现对于同一个问题有不同的解决方案。它们适合不同的场景或有不同的优点和缺点。
以JVM的GC为例,有几种不同的算法。通过比较,可以加深认识,拓展思路。
最后,提高您的系统理解和设计能力。它还可以帮助你建立一个完整的知识体系。
我分享了很多分布式动画视频。特殊演示系统原理。欢迎收看。
对于软件工程师来说,如何平衡学习技术的深度和广度?
例如,您会发现在开源库中没有您想要的接口,或者没有您期望的方式。例如,如果要使用异步,则库是同步的。
2. 不是每个开源库都是可靠的。有时,库的开发人员不考虑您的实际使用场景,这会导致库根本无法使用或偶尔出现无法忍受的bug。
3. 你只需要一个简单的函数,但是开源库的引入带来了大量的接口和模块,这使得简单的问题变得复杂。
4. 使用时,需要考虑许可协议。开源并不意味着你可以自由使用它。
综上所述:开源库并非没有使用成本,在一些实验代码或临时测试工程中使用非常方便,但在企业产品开发中使用时需要考虑很多问题。
如果您想充分利用开放源码库,您仍然需要真正了解您正在使用的库。只有当有问题的时候你才有能力去解决它。一旦您真正理解了,是否使用开源库就无关紧要了。唯一的区别是你是否自己敲代码。
为什么有很多出名开源的C/C 方面的高性能网络库比如libevent、boost-asio,但有些企业还要自己写?
STL推荐阅读侯杰大师的STL教程。看完之后,你基本上可以开始了。至少整个框架可以自由应用。去比力比力搜索。
版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。