作者小头像 Lv.3
294 成长值

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据
个人勋章
  • 考证狂人
成长雷达
0
39
75
180
0

个人资料

个人介绍

这个人很懒,什么都没有留下

感兴趣或擅长的领域

暂无数据

达成规则

发布时间 2020/11/13 15:22:29 最后回复 我的老天鹅 2020/12/31 16:06:46 版块 AI大赛&活动
10983 12 0
他的回复:
      我们公司是做智能终端的,现在很多智能终端系统,例如我们常用的快递柜、取票机等。基本上操作系统都采用了Android或者Linux系统,硬件采用ARM主板和一堆的控制板。基本上甲方都需要加一些系统定制的内容,比如状态栏隐藏、外设驱动适配等,这些都是系统级,采用C/C++/Java完成内核和系统的定制,这个没什么说的。重点是对这一堆控制板的底层接口、逻辑控制和上层接口的实现。以前我们都是采用APP里的NDK来实现,大量代码耗费在Java和C++的相互调用上。后来直接采用C/C++直接编译为可执行文件通过远程调用提供给上层,开发效率有所提升。然而,甲方需求中很多新出现的内容开始让我们应接不暇。例如:采用JSON格式通讯,采用浏览器作为客户端调用底层,多个控制板需要并发同时控制。这些东西有的对于Java来说好弄,有的对于C++来说好弄,但是没有一个能同时方便的实现上述功能的,直到发现了Go。考虑到行业人员因素,像我们这种做平台和控制的软件工程师,大多对C和C++较为熟悉,转去学习Go做这种必要的后台程序较为方便。而且硬件平台又特殊在不能方便的部署各类服务器,用Java较为不便,用C/C++也不方便。即使采用Java和C++,又会存在交叉编译,以及一大堆依赖库的坑。go语言有以下等特点1、简单易上手:Go非常简单,常用的特性和语法就那么几个(似乎任何语言都是搞定string和for循环都OK了),学习成本比较低,这是常规认识的学习成本的问题。但我所理解的学习成本是:一门语言能否快速在生产环境中实践并且短期时间内能完成较高质量的代码。显然Go是符合这个特点的,无论在内存管理、网络、并发和存储等方面,Go操作起来都是非常简洁的,并且留给开发人员犯错的机会相对较少。2、性能:一直有个观点,80%以上的产品和业务场景压根都不到通过编程语言来压榨性能的地步,之前在QQ的海量场景实在是少之又少,需要把代码优化到系统级,对每一次内存分配和拷贝行为都要反复掂量的业务和场景真是少之又少。因此,对于多数业务场景来讲,衡量性能的指标是:能够快速简洁的实现较好性能的代码。这样的语言就是最合适的。显然,Go不是性能最好的语言,但是绝对是对并发和高性能在API层面支持较为完善的语言,并发特性使用起来非常简洁,并且能够达到较好的效果。至于极个别的高性能场景,那就用C++写好了。3、稳定性:Go让人犯错的机会不多,nil和invalid address的问题出现的最多,一般要么取结构的时候没有进行判空然后直接引用变量导致,要么就是数组越界导致,并且能够通过panic捕捉保证服务的稳定性。因此,从服务稳定性来说,Go也是一个不错的选择。4、部署:Go的编译和部署非常简单,编译有现成的govendor和godep这种现成工具,部署的话打出来的二进制包就直接能运行,部署成本非常低。期望框架能够帮我们做一些后台程序,史之部署更加方便
发布时间 2020/09/25 17:08:01 最后回复 andyleung 2020/11/15 15:24:34 版块 IoT物联网
5837 11 0
发布时间 2020/11/04 18:19:37 最后回复 帕加尼风之子8866 2020/12/01 16:48:33 版块 数据库
14215 598 1