Golang 语言了解
Golang 是近期火起来的一门编程语言,它由 Google 维护。语言起源是 Google 首席软件工程师 Rob Pike 在 2007 受够了C++的煎熬,想创建语言取代C++。
语言特点
相比于其他语言都在做加法,持续地增加概念用法,它则是做减法,仅仅维持了必要的特性。这也是被人诟病的一项,习惯使用的概念没有了,想实现就得学习一些替代方案,用不同的写法和实现方法来实现。语言多多少少都会有自己的优缺点,它的特点如下:
优点
- 强大的开发团队:Google 维护
- 网络编程:http/websocket/tcp/udp
- 并发编程:程序自身管理并发请求,通过协程能更加高效的使用服务器资源
- 项目编译后可直接执行,部署简单,微服务支持友好
缺点
- 语言还很年轻,还有很多地方未完善
- 功能包没有统一的管理网站,软件包质量参差不齐
- 太多公式化代码,固定的写法,没有其他选择
适合做的项目类型
- 适合处理日志、数据打包、虚拟机处理、文件系统、分布式系统、数据库代理等
- 广泛应用于Web 应用、API应用、下载应用等
- 还适用于内存数据库和云平台领域:分布式系统、数据库代理器、中间件等,例如Etcd
学习重点及学习方法论
我的主语言是的 PHP 开发,用的最多的就是面向对象、程序三种基本结构(顺序、分支、循环)以及 composer 工具包。我的学习重点在于
- 开发环境搭建
- 面向对象、程序三种基本结构和工具包的写法
- 打包发布
- PHP 中没有的特性
- 协程
- 网络协议
对于 Go 语言可能是写法习惯问题,我并没有觉得 Go 很好上手,写一些功能时总是会出现模糊点,写起来磕磕碰碰的,让我十分难受。所以推荐打好写法基础再写。
- 基础特性用法写法,语法参考
- Slices
- Maps
- make & new
- 项目示例练习
- 官方网站 Get Started 下的
Learning Resources
- 官方文档
- 模块用法
- 获取模块包
- 当前已有的模块包
- 模块用法
常用功能列表
- 项目配置管理
- 路由管理
- 请求验证
- 文件上传
- 错误处理 && 日志
- 数据库操作
- 联表操作,多条件拼接
- 分页
- 增改删
- 缓存
- IO操作
- 文本处理
- 格式化 json、xml
- 网络请求
- 时间操作
- 当前时间
- 1天前、后,一周前、后获取
- 加密
- session & cookie
- 测试
- webSocket
- 视图模板
- 中间件
- 数据类型转换
- 指针类型使用
- 协程
扩展资料
FQA
为什么那么多公司叫 PHP 转 Golang
小部分公司是因为公司业务要求跟不上,又不想使用 JAVA 这种长开发周期的语言来升级,而选择的一个折中的语言来替代 JAVA,减少升级时间和升级成本。更多的是跟风的技术负责人,不看实际情况,光盯着协程、微服务、分布式这些高级概念去转变。为了用而用结果也只是用 go 的写法把原本逻辑实现一遍,性能是提升了,但是只提升了一点,花费的人力成本性价比极低。
上面的话对于一些人可能有些大义凛然,但是这仅代表我个人的想法,做转化对我来说没有过多的意义,语言就是一个工具,做了仅仅是镀金罢了。真要用的话,可以用新功能或小功能上做尝试,自己花时间去学习才有必要。