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

目前,我所担任的工作主要包含了轻量化的桌面系统,浏览器端以及基于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即可。

Linux C++轻量级开发指南的更多相关文章

  1. C#在Linux上的开发指南

    本人才疏学浅,在此记录自己用C#在Linux上开发的一点经验,写下这篇指南.(给想要在Linux上开发C#程序的朋友提供建议) 目前在Linux上跑的网站:http://douxiubar.com | ...

  2. C#在Linux上的开发指南(续)

    续之前的一篇开发指南http://www.cnblogs.com/RainbowInTheSky/p/5496777.html 部分人在部署的时候经常出现dll兼容问题(其实可以看小蝶惊鸿的文章,蝶神 ...

  3. [翻译]现代java开发指南 第二部分

    现代java开发指南 第二部分 第二部分:部署.监控 & 管理,性能分析和基准测试 第一部分,第二部分 =================== 欢迎来到现代 Java 开发指南第二部分.在第一 ...

  4. [转帖]2019 简易Web开发指南

    2019 简易Web开发指南     2019年即将到来,各位同学2018年辛苦了. 不管大家2018年过的怎么样,2019年还是要继续加油的! 在此我整理了个人认为在2019仍是或者将成为主流的技术 ...

  5. java web轻量级开发面试教程

    最近面试java后端开发的感受:如果就以平时项目经验来面试,通过估计很难——再论面试前的准备 在上周,我密集面试了若干位Java后端的候选人,工作经验在3到5年间.我的标准其实不复杂:第一能干活,第二 ...

  6. 开源项目SMSS开发指南(二)——基于libevent的线程池

    libevent是一套轻量级的网络库,基于事件驱动开发.能够实现多线程的多路复用和注册事件响应.本文将介绍libevent的基本功能以及如何利用libevent开发一个线程池. 一. 使用指南 监听服 ...

  7. Jetty使用教程(四:21-22)—Jetty开发指南

    二十一.嵌入式开发 21.1 Jetty嵌入式开发HelloWorld 本章节将提供一些教程,通过Jetty API快速开发嵌入式代码 21.1.1 下载Jetty的jar包 Jetty目前已经把所有 ...

  8. JVM 平台上的各种语言的开发指南

    JVM 平台上的各种语言的开发指南 为什么我们需要如此多的JVM语言? 在2013年你可以有50中JVM语言的选择来用于你的下一个项目.尽管你可以说出一大打的名字,你会准备为你的下一个项目选择一种新的 ...

  9. Linux静态库生成指南

    Linux静态库生成指南   Linux上的静态库,其实是目标文件的归档文件.在Linux上创建静态库的步骤如下: 写源文件,通过 gcc -c xxx.c 生成目标文件. 用 ar 归档目标文件,生 ...

随机推荐

  1. Python默认参数

    在python函数中, 可以使用如下方式声明并初始化参数 def to_smash(total_candies, n_friends=3): """Return the ...

  2. Apache JMeter (一)环境的配置和操作

    JMeter是Apache组织的开放源代码项目,是一款优秀的开源测试工具,可以做功能测试和性能测试.是每个资深的测试工程师必须掌握的测试工具,熟悉JMeter可以大大提高工作效率. 1.下载Jmete ...

  3. jvm默认垃圾收集器(JDK789)

    jdk1.7 默认垃圾收集器Parallel Scavenge(新生代)+Parallel Old(老年代) jdk1.8 默认垃圾收集器Parallel Scavenge(新生代)+Parallel ...

  4. SpringCloud超简单的入门(1)--一些简单的介绍

    简介 简单来说,springcloud的就是由一组springboot应用(服务)组成,相互之间通过REST等方式进行通信. 两个springboot应用,其中一个作为服务提供者,一个作为服务消费者, ...

  5. SoloLear_C# Tutorial_Contents

    一.Basic Concepts 基本概念 二.Conditionals and Loops 条件语句和循环 三.Methods 方法 四.Classes&Objects 类&对象 五 ...

  6. Cookie的删除

    1.设置一个Cookie,与要删除的Cookie同名,并将有效时间设置为0: protected void doGet(HttpServletRequest request, HttpServletR ...

  7. CSS——样式表的引入

    1.内部样式表 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <t ...

  8. 第一次作业:使用Packet Tracer分析HTTP包

    0 个人信息 张樱姿 201821121038 计算1812 1 实验目的 熟练使用Packet Tracer工具.分析抓到的HTTP数据包,深入理解:HTTP协议,包括语法.语义.时序. 2 实验内 ...

  9. Java面试-interrupt

    我们都知道,Java中停止一个线程不能用stop,因为stop会瞬间强行停止一个线程,且该线程持有的锁并不能释放.大家多习惯于用interrupt,那么使用它又有什么需要注意的呢? interrupt ...

  10. Qt for Android开发入门

    1.    Qt for Android环境搭建 1.1    打包需要的工具 1.2   JDK安装 如果之前配置过,就可以跳过这一步. 下载java jdk 64:java jdk 1.8 x64 ...