通过deskvideosys代码分析软件项目编语言的选择

最近在研究分析deskvideosys代码,发现它采用的vue+golang的gin框架实现,当时就在想,为什么选择这个组合框架呢?确实当下B/S架构成为了企业信息化软件的首选,因为这样就可以不用安装客户端了,只要终端有浏览器,都可以直接来访问或操作软件,这一点比较好明白,B/S架构也有很多方法实现,但为什么偏偏选了vue+golang呢?

查看了一些资料后发现,不管是前端还是后端,其实选择都非常多,前端选择vue,我在这里就不多分析了,主要分析下后端语言的选择,后端的选择非常多的,比如java,php,c++,c,vb,c#,python等一众编程语言,为什么不选这些呢?大家的选择应用层的编程语言时,很多时候都先选择自己熟悉的语言,或公司应用的比较多的,这样大家就可以很快的上手,但如果对于编程原理非常了解的人来说,可能考虑的会更多,会从开发效率,性能,发布后的保密性与软件的实际应用场景等多方面考虑,来选择一个最优的方案。

这里就以企业信息化软件来说,由于这类软件都是运行在应用层,且需求变化快,而现在的服务器硬件性能都不会差,所以考虑的更多的是开发效率,对性能要求相对来说不会太高,所以一般就不会选c,c++这类底层软件,开发效率低,调试麻烦,而会选择像java,php,python,c#,vb,golang等这类高级语言,但这些开发语言又分三类,第一种是解释型语方,像php,python这种,相当于对外发布的就是明码,第二类是带虚拟机的编译语言,像java,c#,vb,这类编译的是中间码,很容易被反编译,下图就是一个c#被反编译后,代码被完全展现,这样的话,系统的安全性会有很大的问题,第三种就是直接编译成二进制文件,像golang,c,c++,二进制文件只能反编译成汇编,是相当难分析,所以保密性也会好很多,我想这就是作者选golang的主要原因,希望这篇文章对大家在选择编程语言时有所帮助。

通过deskvideosys代码分析软件项目编语言的选择_第1张图片

 这里再贴一点deskvideosys的代码:

import Vue from "vue";

import Vuex from "vuex";

Vue.use(Vuex);

let levelNum = 1;

let startExpand = [];

function setExpand(source, url) {

  let sourceItem = '';

  for (let i = 0; i < source.length; i++) {

    sourceItem = JSON.stringify(source[i]);

    if (sourceItem.indexOf(url) > -1) {

      if (source[i].type === 'button') {

        source[i].isSelected = true;

        source[i].isExpanded = true;

        startExpand.push(source[i]);

        setExpand(source[i].subMenu, url);

      }

      break;

    }

  }

}

你可能感兴趣的:(python,golang,java,c#,c++)