2016 - 2024

感恩一路有你

阿迪bounce的特点 为什么有很多出名开源的C/C 方面的高性能网络库,比如libevent,boost-asio,有些企业还要自己写?

浏览量:2852 时间:2021-03-14 21:32:56 作者:admin

为什么有很多出名开源的C/C 方面的高性能网络库,比如libevent,boost-asio,有些企业还要自己写?

到底是自己造轮子,还是直接使用开源库,我想很大程度上取决去部门老大的个人喜好。曾几何时,C 开发者都热衷于重复造轮子,那么为什么还有的企业要自己写呢?下面谈谈自己的看法:


1)项目初期并不知道有这个库的存在,后面也懒得再引入。

2)很多第三方库依赖的其他第三方库都比较多,为了引入A库,不得不引入B、C、D库,这无疑增加了部门成员的学习成本。

3)第三方开源库一般更新较频繁,明知有Bug了,你们要不要更新呢?基础库的更新无疑要花费更多的开发时间、测试时间。

4)让项目整体可控性更强,一旦引入的开源库出现问题,而项目组有对它不熟悉,那么将是灾难性的。

5)已有开源库过于复杂,学习成本高,组内成员水平参差不齐。


最后附一张自己前段时间研读的书籍。

本文为作者“一个程序员的奋斗史”悟空问答原创文章,未经允许转载、抄袭必究!

编程主要学什么内容?

关注我,跟我从零开始学编程!



编程要使用程序设计语言来进行,不同的语言在内容上稍有区别。比如有面向对象语言,面向过程语言,面向关系语言,脚本语言等等,当然有的语言还属于其中两个分类,比如python既有函数又有方法。

可以说编程的主要工具就是各种语言,所以学习编程一定要学习如何使用各种编程语言。下面我就以java语言为例,说一下语言本身要学习哪些基本内容:

  1. 面向对象基础,包括类,对象,属性,方法等基本概念的理解。
  2. 面向对象编程过程,包括类的设计,对象的创建,方法的调用。
  3. 类型的定义,包括原始类型,类类型。这部分还会涉及一些规则,比如标识符命名规则等。
  4. 流程控制和数组,包括单分支结构,多分支结构,循环结构。数组包括定义,赋值,多维数组等内容。
  5. 封装和继承,这部分内容是java学习的一个重点,封装的步骤,继承的定义等。
  6. 高级特性和多态,包括static,final,abstract等修饰符的使用,还有接口的定义和使用。多态的定义和规则总结,包括三个定义和两个方法。
  7. 异常处理和IO,程序中出现的各种不可预料的错误如何处理,还有输入输出怎么编写。
  8. 集合和序列化,不同结构的集合如何定义和使用,如何完成对象的钝化和激活。
  9. 图形界面和事件处理,创建图形应用是这部分内容的重点,要了解事件处理的模式。
  10. 多线程和网络通信,掌握多线程的创建过程和线程的转换状态,掌握如何完成网络数据传输。

以上是语言基础部分语言学习的内容,下一步还需要掌握数据库编程,web后台处理,分布式处理等等。

编程要学习的第二部分内容是数据结构和算法。除了要学习语言工具,数据结构和算法是编程的重要组成部分,比如链表的组织结构,各种排序算法的时间复杂度,空间复杂度等等。

以上就是学习编程语言的两个主要部分,我在头条上会陆续更新程序设计类的专业文章,关注我跟我一起学习程序设计吧!

用STM32只会库函数,不会用寄存器,有影响吗?

不会配置STM32的寄存器,而会使用官方的库函数是不影响使用STM32单片机的。STM32单片机在编程时即可以使用配置寄存器的方式,又可以使用库函数的方式,这两种方式都是可以操作STM32单片机的。

熟悉51单片机的朋友,都知道在编写程序时,需要配置51单片机的寄存器。单片机具有很多的片上资源,而片上资源要正常工作,就需要配置相应的寄存器。比如单片机的定时器资源,在配置定时器相关的寄存器时就是配置定时器的工作方式、位数、是否使用定时中断、配置初始值等。

而到了STM32单片机,厂家直接提供了官方库函数。这些库函数的作用其实就是将寄存器的配置过程封装了起来,用户在编程的时候不需要直接和寄存器打交道,而只需要调用相应的库函数就可以。这样就可以将配置寄存器的过程分离开来,实现了硬件层面和软件层面的简单分离,其实就是驱动的作用。

STM32还有HAL库,即使是使用库函数编程,还是建议研究一下寄存器。

所以,不管使用库函数,还是直接配置寄存器都是可以操作单片机的。

以上就是这个问题的回答,感谢留言、评论、转发。更多电子设计、硬件设计、单片机等内容请关注本头条号:玩转嵌入式。感谢大家。

阿迪bounce的特点 boost分几个系列 boost鞋什么意思

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。