Go后端开发 -- Golang的语言特性

Go后端开发 – Golang的语言特性

文章目录

  • Go后端开发 -- Golang的语言特性
  • 一、Golang的优势
    • 1.部署极其简单:
    • 2.静态语言
    • 3.语言层面的并发
    • 4.强大的标准库
    • 5.简单易学
    • 6.运行效率对比
  • 二、Golang的适用领域
    • 1.应用领域
    • 2.明星产品
  • 三、Golang的不足


一、Golang的优势

1.部署极其简单:

  • 可直接变异成机器码;
  • 不依赖其他库
  • 直接运行即可部署

通过``可以直接进行编译:
在这里插入图片描述
编译完成的可执行程序是比较大的,因为已经把所有需要的库全部静态编译起来了;
通过ldd指令查看库依赖,发现除了标准的so、libc和pthread库外,不依赖其他的库,可以直接./main执行
在这里插入图片描述

2.静态语言

编译的时候就可以检查出来隐藏的大多数问题;
通过编译的时候就可以知道代码哪里有问题;

3.语言层面的并发

天生支持并发,充分的利用多核;

package mainimport ("fmt""time"
)func goFunc(i int) {fmt.Println("goroutine ", i, " ...")
}func main() {for i := 0; i < 10000; i++ {go goFunc(i) //开启一个并发协程}time.Sleep(time.Second)
}

请添加图片描述

4.强大的标准库

  • runtime系统调度机制
  • 高效的GC垃圾回收
  • 丰富的标准库

5.简单易学

  • 25个关键字
  • 内嵌C语法支持
  • 面向对象特征(封装、继承、多态)
  • 跨平台

在这里插入图片描述

6.运行效率对比

在这里插入图片描述

二、Golang的适用领域

1.应用领域

  • 云计算基础设施领域
    代表项目:docker、kubernetes、etcd、consul、cloudflare CDN、七牛云存储等。

  • 基础后端软件
    代表项目:tidb、influxdb、cockroachdb等。

  • 微服务
    代表项目:go-kit、micro、monzo bank的typhon、bilibili等。

  • 互联网基础设施
    代表项目:以太坊、hyperledger等。

2.明星产品

在这里插入图片描述

三、Golang的不足

  • 包管理,大部分包都在github上
    所使用的大部分第三方库,都是托管在github上的;
    对于代码稳定性比较有风险;
  • 所有Excepiton都用Error来处理
    不存在try...catch...语法
  • 对C的降级处理,并非无缝,没有C降级到asm汇编那么完美(序列化问题)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/240502.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

共享购:消费前沿的领导者

在当今这个信息化、互联网高速发展的时代&#xff0c;商业模式也在不断地创新和变革。共享购模式作为一种新型的商业模式&#xff0c;正逐渐受到广泛的关注和追捧。本文将深入探讨共享购模式的核心理念、优势以及如何应用在实际商业场景中&#xff0c;为读者揭示这一模式的巨大…

python爬虫进阶篇:Scrapy中使用Selenium模拟Firefox火狐浏览器爬取网页信息

一、前言 接着上一篇的笔记&#xff0c;Scrapy爬取普通无反爬、静态页面的网页时可以顺利爬取我们要的信息。但是大部分情况下我们要的数据所在的网页它是动态加载出来的&#xff08;ajax请求后传回前端页面渲染、js调用function等&#xff09;。这种情况下需要使用selenium进…

计算机组成原理综合5

A 按照题意&#xff0c;程序P执行的时钟周期数为1000080%11000020%1028000&#xff0c;程序P的平均CPI为28000/100002.8&#xff0c;计算机主频为1GHz&#xff0c;CPU执行时间为28000/(1G/s)28μs。 B A 符号位为1 首先将0.4375转化为二进制&#xff0c;0.250.1250.06250.43…

nodejs+vue+ElementUi资源互助共享平台的设计

后台&#xff1a;管理员功能有个人中心&#xff0c;用户管理&#xff0c;卖家管理&#xff0c;咨询师管理&#xff0c;萌宝信息管理&#xff0c;幼儿知识管理&#xff0c;保姆推荐管理&#xff0c;音频资源管理&#xff0c;二手商品管理&#xff0c;商品分类管理&#xff0c;资…

医疗行业的运维方案:解决IT监控、资产管理困难

一、导语 医疗行业信息化数字化转型近年来已经取得了一定的进展。越来越多的医疗机构开始引入信息化技术&#xff0c;提高医疗服务的质量和效率。例如&#xff0c;电子病历、移动医疗、远程医疗等已经成为医疗行业信息化数字化转型的重要标志。 然而&#xff0c;医疗行业信息化…

K8s 教程

一文让你全面了解K8s(Kubernetes) - 知乎 Install and Set Up kubectl on Linux | Kubernetes 留存一份地址

推荐给前端开发的 5 款 Chrome 扩展

工欲善其事&#xff0c;必先利其器。Chrome 可能是前端开发中使用最多的浏览器。在日常开发中&#xff0c;下列几款 Chrome 扩展也许能让你的开发工作事半功倍 &#x1f680; Vue.js devtools ⚙️ vue 官方专为 vue 应用开发的调试工具。 通过使用它&#xff0c;你可以快速查看…

力扣单调栈算法专题训练

目录 1 专题说明2 训练 1 专题说明 本博客用来计算力扣上的单调栈题目、解题思路和代码。 单调栈题目记录&#xff1a; 2232866美丽塔II 2 训练 题目1&#xff1a;2866美丽塔II。 解题思路&#xff1a;先计算出prefix[i]&#xff0c;表示0~i满足递增情况下&#xff0c;0~i…

NC65 查询单据所处的流程状态以及流程平台客户端工具类

1、查询单据所处的流程状态 nc.bs.wfengine.engine.EngineService的queryFlowStatus()方法 /*** 查询单据所处的流程状态* * param billId* param billType* param result* return* throws DbException*/public int queryFlowStatus(String billId, String billType, int flo…

Redis 有序集合(sorted set)常见问题

zRevRange排序不对问题 返回有序集中指定区间内的成员&#xff0c;通过索引&#xff0c;分数从高到低。注意这里是根据索引和分数。所以索引是单独的数字就有问题。加一个前缀字母就解决,列如Uxxx。 分数相同的排名问题 先入库在前面&#xff0c;后入库在后面解决方案 取几年以…

【UML】第8篇 用例图(3/3)

目录 一、用例的关系 1.1 泛化&#xff08;Generalization&#xff09;关系 1.2 包含&#xff08;include&#xff09;关系 1.3 扩展关系 二、用例表示例 不是非要把电影改成连续剧&#xff0c;给大家播&#xff0c;确实是时间和精力有限。 用例图&#xff0c;虽然简单&…

荣誉 | 第七在线(7thonline)荣获STIF2023年度数智化创新典范奖

12月15日&#xff0c;STIF2023 第四届国际科创节暨 DSC2023 国际数字服务大会&#xff08;数服会&#xff09;在北京隆重举行。 在本届科创节暨数服会活动评选中&#xff0c;经企业申报、评委会审议&#xff0c;第七在线&#xff08;7thonline&#xff09;AI智能零售商品计划库…

什么是集成测试?它和系统测试的区别是什么? 操作方法来了

01 什么是集成测试&#xff1f; 集成测试是软件测试的一种方法&#xff0c;用于测试不同的软件模块之间的交互和协作是否正常。集成测试的主要目的是确保不同的软件模块能够无缝协作&#xff0c;形成一个完整的软件系统&#xff0c;并且能够满足系统的需求和规格。 在集成测试…

typeorm联表查询:副表json格式放到主表字段下或多个副表字段并列主表字段

实体类字段不做映射&#xff0c;typeorm实现联查查询 1、副表json格式放到主表字段下 //goods表和member表联表&#xff0c;关系goods.id member.uid&#xff0c;member表数据json对象格式放到主表userInfo下 //leftJoinAndMapOne配合getMany实现 const builder await getCo…

【3D生成与重建】SSDNeRF:单阶段Diffusion NeRF的三维生成和重建

系列文章目录 题目&#xff1a;Single-Stage Diffusion NeRF: A Unified Approach to 3D Generation and Reconstruction 论文&#xff1a;https://arxiv.org/pdf/2304.06714.pdf 任务&#xff1a;无条件3D生成&#xff08;如从噪音中&#xff0c;生成不同的车等&#xff09;、…

[C++]模板进阶

目录 C模板进阶&#xff1a;&#xff1a; 非类型模板参数 模板的特化 函数模板特化 类模板特化 全特化 偏特化 模板的分离编译 模板总结 C模板进阶&#xff1a;&#xff1a; 非类型模板参数 模板参数可分为类型形参和非类型形参。 类型形参&#xff1a;出现在参数列表中&am…

浅谈Redis分布式锁(上)

作者简介&#xff1a;大家好&#xff0c;我是smart哥&#xff0c;前中兴通讯、美团架构师&#xff0c;现某互联网公司CTO 联系qq&#xff1a;184480602&#xff0c;加我进群&#xff0c;大家一起学习&#xff0c;一起进步&#xff0c;一起对抗互联网寒冬 不论面试还是实际工作中…

信息安全等级保护的定义与意义

目录 前言 信息安全等级保护定义 广义上 狭义上 技术和管理 信息安全的基本要素 信息安全等级保护的意义 当前形式 形式严峻 国家安全 三个基本一个根本 预期目标 最终效果 实际意义 前言 信息安全等级保护是对信息和信息载体按照重要性等级分级进行保护的一种…

Windows平台开发需要掌握的基础知识

windows本身也是一个软件。在这个软件中进行开发时&#xff0c;我们需要对它有个基础的了解&#xff0c;这样能让我们的开发过程更顺畅一些。 下面我就来说一下我们需要关注的基础知识点。 环境变量 有时候我们的程序执行&#xff0c;需要基于一些基础的库。比如Java运行&am…

设计模式之-命令模式,快速掌握命令模式,通俗易懂的讲解命令模式以及它的使用场景

系列文章目录 设计模式之-6大设计原则简单易懂的理解以及它们的适用场景和代码示列 设计模式之-单列设计模式&#xff0c;5种单例设计模式使用场景以及它们的优缺点 设计模式之-3种常见的工厂模式简单工厂模式、工厂方法模式和抽象工厂模式&#xff0c;每一种模式的概念、使用…