• Linux C++轻量级开发指南


    作为一名产品开发,一套顺手的集成开发环境必不可少。大多数时候,开发经理将精力投入在产品需求分析上而忽视了研发质量甚至连基本的集成开发环境都没有统一。当然,如果你们的项目仅仅需要部署在单一的环境中或没有跨语言开发需求,通常这样做还不会造成严重问题。可是一旦你需要面对一套相对复杂的系统,异构系统间的通讯等问题。在项目开始阶段,统一各个部分的集成开发环境非常重要。我将通过一系列的文章向你介绍我在企业级开发工作中使用的解决方案。当然,这些都是可能都包含了强烈的个人特色,不见得完全适用于所有的企业,甚至有些观点也值得商榷。只希望能够起到一个抛砖引玉的作用,有兴趣的小伙伴一起探讨。

    目前,我所担任的工作主要包含了轻量化的桌面系统,浏览器端以及基于Linux系统的底层通信开发。需要使用的语言包括Java、C++和JavaScript。没有分布式和大数据的需求。需要开发底层通信的原因主要是,我们有大量的数据是直接通过硬件设备来获取,因此这部分的工作主要使用C++来完成,业务层考虑到部署和开发的效率偏重使用Java来实现,前段没有太多的选择JavaScript是不二之选。

    首先阐述一下Java和C++这两门语言的开发适应性问题。由于企业和个人定位的缘故,我对这两门主流语言都有一定的开发经验,遇见过各种奇葩需求也实现过各种神奇功能。相对来说,较小的底层功能模块处于运算效率的考量,我会偏向于使用C++来做。而针对业务系统,服务组件或需要超过10人以上的团队来合作开发的项目Java依然是我的唯一选择。无论是企业还是个人开源,你所面对的开发任务更倾向于特定需求而非科研,使用C++作为开发语言,无论你的开发经验多么丰富都势必会陷入语言特性所造成的泥沼中无法自拔。相比较而言,牺牲一些机器性能所换来的是更快的迭代、更少的BUG和更丰富的生态。因此作为一名开发工程师,无论如何不要墨守成规,新技术或新语言可能只需要1行代码就能轻松解决你在5年前需要100行代码才能完成的任务,如果这时你还以前辈自居,那么离被市场淘汰也就不远了。

    接下来言归正传,Linux下的C++开发工具很多,有人习惯用vim也有人会使用QtCreator或其他乱七八糟的IDE。而我更推荐使用微软的开发神器Visual Studio Code,与其它的产品相比它足够轻量级也更加灵活。唯一不太方便的是,用它开发基于Qt的产品不合适。不过我在前面已经阐述,界面端使用JavaScript才是更加合理的选择。

    安装完成以后,你需要一个C++插件,这里推荐微软的官方版本:

    完成以后就可以和你的小伙伴们开心的工作了。那么,如何进行编译和调试呢?其实vsc本身提供了配置文件来完成这些任务。不过我并不推荐你去学习它。我更建议你通过Makefile来完成这项传统工作,因为这样做会使得你的工程具备更广泛的适应性。这也就是为什么,很多人推荐在Linux下使用vim来作为开发工具的原因,不过直接使用vim,开发效率实在太低。

    最后介绍一下如何调试。相信如果你在网上搜索Linux vsc debug几个关键字,会跳出很多答案,不过这些都不是我喜欢的。我们使用vsc的初衷是使开发变得高效和简单,任何多余的配置都应该放弃。既然我们已经采用了make和Makefile作为我们的编译工具,只需要将gdb作为编译条件即可获得调试版本。然后我们为vsc增加一个配置文件launch.json,具体生成的方法网上有。然后将“program”对应的值设置为Makefile文件中指定的生成名。

     F5即可进行断点调试。

    最后提交代码的时候,只需要源码文件和对应的Makefile即可。

  • 相关阅读:
    小小的蜗牛有大大的梦想
    Spring整合的quartz任务调度的实现方式
    HDU/HDOJ 2612 Find a way 双向BFS
    在静态库中,实现自动的初始化与卸载接口
    CF 316C2(Tidying Up-二分图最大边权)
    Qt线程同步操作用QWaitCondition QMutex
    MQ、JMS以及ActiveMQ
    微博分享利器
    discuz清空session,导致session保存机制失败,session无法更新与解决
    路由器和交换机的综合实验(1)
  • 原文地址:https://www.cnblogs.com/learnhow/p/11707336.html
Copyright © 2020-2023  润新知