用户名
Email
论坛
潜水/灌水快乐,沉淀知识,认识更多同行。
ToB圈子
加入IT圈,遇到更多同好之人。
朋友圈
看朋友圈动态,了解ToB世界。
ToB门户
了解全球最新的ToB事件
博客
Blog
排行榜
Ranklist
文库
业界最专业的IT文库,上传资料也可以赚钱
下载
分享
Share
导读
Guide
相册
Album
记录
Doing
帖子
本版
文章
帖子
ToB圈子
用户
免费入驻
产品入驻
解决方案入驻
公司入驻
案例入驻
登录
·
注册
只需一步,快速开始
账号登录
立即注册
找回密码
用户名
自动登录
找回密码
密码
登录
立即注册
首页
找靠谱产品
找解决方案
找靠谱公司
找案例
找对的人
专家智库
悬赏任务
圈子
SAAS
IT评测·应用市场-qidao123.com技术社区
»
论坛
›
软件与程序人生
›
程序人生
›
【程序人生】毕业入职后,C++转Go语言工作半年感受,202 ...
【程序人生】毕业入职后,C++转Go语言工作半年感受,2024年最新2024年Golan ...
罪恶克星
论坛元老
|
2024-7-23 20:29:50
|
显示全部楼层
|
阅读模式
楼主
主题
1772
|
帖子
1772
|
积分
5316
其中一个地方就是代码格式题目。在各大论坛、各大语言板块都充斥着括号位置、空格、缩进的
讨论,这些讨论在Go语言中都可以打住了。go fmt可以自动帮我们处理好这些题目,让我们的每
个源码文件的代码格式都是统一规范的。在现实应用中,这个特性可以大大提高团队的
开发
服从:
最简单的,写代码时,你再也不用在=两边,函数参数的后面等地方加上空格了,只要输入
go fmt myProject,一切题目都烟消云散。
6.只有一个的二进制可实行文件
利用过Go语言的同砚,应该都知道程序编译后仅仅天生一个可实行的二进制文件,非常
方便,但是我仍旧认为我们大大低估了这个语言特性的好处,特殊是在项目标后续
开发
、维护过程
中。现在社会,网络带宽和存储装备都不再昂贵,但是部署、配置、管理、升级各种软件服务的
代价照旧较为高昂的。如果各人自己管理过多个系统、集群,就会知道:升级或安装依靠库、JDK等
组件时,总会碰到特殊痛楚的时候,几天的加班加点搞定一个题目都有可能!而纯Go写的程序则不
一样,不管项目处于在哪个阶段,我们需要的也仅仅是一个binary文件,对于提高生产力来说,这个
无疑是非常巨大的。
7.完善的标准测试框架
Go的测试框架是非常棒的,和别的语言差别的是:我们仅仅利用Go语言自带的标准化测试
框架,就可以很好实现各种测试功能:单元,黑盒,白盒,压力测试等等。除了标准测试外,还有很
多第三方的优秀测试框架,但是要记取的是:最好只利用一套测试框架,如许能保持项目标完备性和
同等性。就笔者的履历来看,现在的标准测试框架充足用了,如果需要单步断点可以看这里。
8.性能分析
Go语言自带标准的性能分析工具,包括CPU、内存、阻塞操作(http请求,数据库请求,
time.Sleep等)在内的都可以丈量,influxdb就是利用这些工具实现了数据库的常量时间访问。
9.那么对于网上经常被喷的那些所谓的Go的‘题目’呢?
1)GC
Go语言从1.3开始,GC的改进就在持续进行中,1.5中,GC改成三色mark and
sweep后,性能得到了极大的提高,在1.6中,对于内存占用很高、对象很多的系统又进行了一
次大优化,可以说,现在的Go程序一般不存在GC题目,除非:分布式缓存、数据库、消息推送
如许海量对象的场景,这时候需要自己做好可复用对象管理、归并部分小对象、将一些小型的struct
结构定义为值范例而不是指针范例、还可以从业务层面和架构层面进行优化设计等等。
不过,虽然说不太需要担心GC题目,但是各人照旧最好学习一下Go的GC原理和
内存管理,理解底层原理对于很多时候快速的定位办理题目是大有裨益的。
PS: 2016年7月7日补充,昨天看到一个利用GO作为核心语言的国外大型视频直播
网站分享了关于GC的演变史,直接说结果吧:1.2版本的时候,GC STW时间是2秒左右,到了1.6版本
再联合一些GC参数调优,到达了30-50ms的级别,现在的1.7版本由于将一些STW工作放到了并发去
实行,因此GC时间到了1m级别,整整上千倍的提拔,根本上延时已经不是题目了。后续版本将进一步
改进STW题目,同时大大改善GC的吞吐率。
2)泛型
其实刚从别的语言过来时,我或多或少会在写Go代码时用到模版的头脑,但是后
面发现,如许会让代码更难维护,因此,写Go代码就要用Go的哲学和头脑。
写过C++代码的都知道:抽象是一把双刃剑,过度的抽象就可能存在埋伏的题目。
在我看来,Go所具有的OO头脑,是简洁的,是纯粹的,是组合的核心头脑。
编程现在就是化繁为简,充分利用组合的头脑(也是Unix程序设计提倡的头脑),可
以让我们的
开发
模型和项目代码大大简化、返璞归真 。Go的OO头脑充分体现了三位大神作者的
编程和设计功底,估计也只有Unix的作者才气写出这么完美的OO实现了!
3)GOPATH
对于新手来说,GOPATH很难理解清楚,我当时刚打仗时,也是含糊了一段时间。
现在则是混淆了两种方式,第一种,在默认的GOPATH下的src中存放项目;第二种,自定义一个
临时的GOPATH,然后存放项目。后者的独立性更好,但是全局利用go build ,go test等命令时就
会有题目,比如手动导出
GOPATH才行:
mkdir sunface
cd sunface-bench/
export GOPATH=$PWD
go get -v github.com/otoolep/bleve-bench
go install github.com/otoolep/bleve-bench/cmd/bench/.
$GOPATH/bin/bench -h
10.Go语言的总结
Go从出身来看更像学院派语言,但是现实上它是彻头彻尾的工程语言,特殊是它很得当
我们团队,很得当基础架构、中间件、云计算平台、PasS平台的
开发
,因为说它是云时代的未来第
一语言,丝毫不为过。
就我这边的项目而言,分布式日志平台、搜索系统、消息推送等项目中,避免了JVM或者
EVM的麻烦,着实是太美好了,所以,如果条件允许,我会完全选择纯Go来设计实现一个系统,也
许这种美好只有真正深入用过的人才气体会
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
立即注册
x
回复
举报
0 个回复
倒序浏览
返回列表
快速回复
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
or
立即注册
本版积分规则
发表回复
回帖并转播
回帖后跳转到最后一页
发新帖
回复
罪恶克星
论坛元老
这个人很懒什么都没写!
楼主热帖
2. 函数
从Android开发的角度比较MVC,MVP,MVVM ...
京东张政:内容理解在广告场景下的实践 ...
KAFKA EAGLE 监控MRS kafka之操作实践 ...
关键字和标识符
React技术栈 --》plugin与JSX语法使用 ...
HCIA学习笔记十一:ARP地址解析协议 ...
dotnet 6 为什么网络请求不跟随系统网 ...
数字图像增强的一般方法
Vue前后台数据交互实例演示,使用axios ...
标签云
集成商
AI
运维
CIO
存储
服务器
快速回复
返回顶部
返回列表