C/C++程序猿必须熟练应用的开源项目

C/C++程序猿必须熟练应用的开源项目

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

       作为一个经验丰富的C/C++程序猿, 肯定亲手写过各种功能的代码, 比方封装过数据库訪问的类, 封装过网络通信的类,封装过日志操作的类, 封装过文件訪问的类, 封装过UI界面库等, 也在实际的项目中应用过, 可是回过头细致想想,事实上曾经自己写过的这些代码,仅仅能是在特定的项目或者特定的环境中使用, 对于自己来说, 在不同的项目中应用, 仅仅须要复制代码, 改改也就能够了, 由于自己写的代码自己非常熟悉。问题是, 你封装的这些库, 在给别人使用的时候, 别人用起来是否非常方便, 跨平台方面是不是也非常通用, 性能是不是足够的好, 是不是支持多线程, 功能是不是也足够强大,能够适用于各种不同的需求。假设你上面这些都做到了, 证明你在这个库上确实花费了一番功夫, 经过了持续的改进和优化。

 

       在日常的开发中, 作为一个程序猿, 非常多东西已经没有必要再又一次开发了, 能够直接拿过来使用, 毕竟21世纪都已经过了N年了。我们没有必要又一次发明轮子(不可否认发明轮子的过程能够学到非常多东西,我就是这么走过来的)。

 

       以下结合自己多年的开发经验, 想到哪里写到哪里, 希望对新人有一定的帮助。

 

 

        一、网络

              网络库必须掌握 ACE 和 libevent, 一个是重量级的网络库, 一个是轻量级的网络库。细致想想,如今那个程序不用网络啊。不懂网络, 你将寸步难行啊。 熟悉这两个开源库的前提是你必须懂socket的原理, 给大家推荐的好书就是 《UNIX网络编程》,看懂这本书就能够了, 其它的什么《windows网络编程》这些都不用看, 由于网络编程,你学会了伯克利的套接字, 你就能够在不论什么平台上进行网络编程了, 不须要学什么windows下的网络编程, 由于windows下的网络也是从伯克利套接字搞过来的, 假设你学习《windows网络编程》, 那么你那天在linux,unix下进行网络编程,你还得在学习一下。没有那个必要。

 

 

       二、数据库

 

             数据库嘛, 开源的Mysql和开源的PostgreSQL仅仅要懂当中一个就能够了, 商业数据库在掌握一个Oracle就能够了,文件数据库掌握 sqlite。 只是请大家注意, 不要被上面数据库名字给迷惑了, 数据库的本质是SQL语句, 一定要懂数据库的基本原理,熟练应用SQL语言,懂数据库的优化,存储过程等。数据库的原理搞懂了, 拿什么数据库过来都轻松掌握, 就不会在乎是Mysql还是Oracle了。

 

       三、日志操作

 

             日志操作推荐大家熟悉 log4cpp这个日志库, 支持多线程, 日志重定向到网络等都有, 反正你能想到的日志的功能, 都有。

日志嘛,一个是方便查找问题, 方便记录程序执行的一些情况。这是必须的。

 

       四、管理后台

 

             众所周知, 敲代码是给其它人用的,不是自己用, 所以在程序的易用性上,多给对方提供一些能够直接查看的管理界面, 显得分成重要。为程序提供一个web的管理界面,方便用户登录上去查看程序的各种信息, 非常有必要。

             我这里有一个方便的web后台管理的http实现, 能够方便的集成到应用程序中。在IE里面输入监听的port,就能够查看程序的状态。代码还没有细致整理。有须要的弟兄能够给我留言, 给大家发。

 

       五、读取配置文件

 

             全部的程序都必须有配置文件, 方便配置一些项目, 为程序提供灵活性。 所以敲代码,必须有读取配置文件的封装类。

 

       六、内存池

 

             全部的进程都须要分配内存, 对C/C++来说, 分配和管理内存是已经非常有挑战性的工作。

             给大家推荐 nedmalloc 这个开源的内存池库。nedmalloc是一个跨平台的高性能多线程内存分配库,非常多库都使用它。

 

       七、缓存库

 

             众所周知, 缓存库用得最多的就是 memcache 了。在做数据库开发的时候特别实用。

 

       八、脚本

 

             脚本是一个非常有意思的东西,非常多功能,事实上我们仅仅要写个脚本就能够完毕,代码量少,开发速度快。

             必须掌握的脚本,比較通用的要算 perl 了, 非常古老的语言,可是功能太强大了。 我能够保证的说,.net,java能干的工作,肯定能够让perl来干。 C能干的, perl不一定能干。 perl作为linux, unix的系统集成的脚本语言,必须学会。

 

             lua 语言, 这个语言, 在游戏行业用得比較多。不推荐学。

 

             python 脚本, 功能非常强大, 推荐学。

 

 

        上面这些是全部程序都会用到的比較通用的功能。

 

        在不同的应用领域, 须要掌握不同开源库, 比方搞游戏开发的, 可能须要掌握开源的UI库CEGUI, 开源的3D引擎OGRE等。

搞分布式开发的可能会有分布式的文件系统库等。

 

 

 

        今天就为大家介绍到这里, 慢慢完好慢慢补充。

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/118627.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 模板阴影理论概述

    模板阴影理论概述尹克雄|2002年12月02日07:30|图形编程与理论阴影 体积 平面 模板 光 前身 图 深度 夹讨论使用模板阴影卷的几种方法,包括每种阴影卷的优点和缺点。介绍阴影以前只是一个变暗的纹理,通常是圆形的形状,它被投射到游戏中的字符或对象之下的地板上。一个人必须不知情或天真地认为,我们仍然可以在未来的3D游戏中摆脱这种粗暴的“

    2022年6月2日
    48
  • 连表查询的介绍_连接表

    连表查询的介绍_连接表1、连表查询的原因(1)如果查询结果不在一个表中,在多个表中,那就需要将表关联,进行连表查询。(2)连表查询大多数都作用在外键得基础上。—表与表之间有关联。2.1表与表之间存在的关系(1)一对多:在多的一方添加外键列(2)多对多:需要创建一个中间表,该表中至少有两个外键列2.2连表查询2.3内连接内连接演示—结果都是一样,只是语法不同。看个人习惯用哪个?1.查询每一个员工的姓名,及关联的部门的名称〔隐式内连接实现)2.查询每一个员工的姓名,及关.

    2022年9月14日
    3
  • pycharm Debug调试技巧

    pycharm Debug调试技巧Debug 调试功能 是一项编程人员的重要技能 学会了 Debug 可以知道程序的走向 Debug 的前世在正式讲解之前 先来了解下 debug 这个词的由来 就像我们初学 Python 时 先要了解下它历史的由来 1937 年 美国青年霍华德 艾肯找到 IBM 公司为其投资 200 万美元研制计算机 第一台成品艾肯把它取名为 马克 1 号 mark1 又叫 自动序列受控计算机 从这时起 IBM 公司由生产制表机 肉铺磅秤 咖啡研磨机等乱七八糟玩意儿行业 正式跨进 计算机 领地 为马克 1 号编制程序的是哈佛的一位女

    2025年7月26日
    5
  • 51单片机最小系统的制作

    51单片机最小系统的制作本文将介绍如何自制一个51单片机最小系统及一些附加模块。最终制成的系统将具有烧录程序,运行程序等功能。先放两张张最终成品如下 ​                                        (正面)                  (反面–锡接走线法)提醒读者,下载口的布局有点

    2022年6月23日
    24
  • 常用八大测试用例设计方法有哪些_测试用例编写方法

    常用八大测试用例设计方法有哪些_测试用例编写方法1、等价类划分(EquivalancePartitioning)测试的思想:将程序的输入域划分为若干个区域(等价类),并在每个等价类中选择一个具有代表性的元素生成测试用例。该方法是常用的黑盒(BlackboxTesting)测试用例(Testcase)设计方法。等价类划分可有两种不同的情况:有效等价类和无效等价类。有效等价类是指对于程序的规格说明来说是合理的、有意义的输入数据构成的集合,它能检验程序是否可以实现规格说明中所规定的功能需求。无效等价类是指对程序的规格说明是不合理的或无意义的输入数据所

    2022年10月12日
    0
  • python 函数def

    python 函数def一、不同层级的调用importcountcount.add(2,3)print(count.add(2,3))在不同层级引用函数,不能直接引用,否则会报错:importcountModul

    2022年7月5日
    26

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号