想知道现在golang语言怎样,它能不能开发网站
先给结论:完全可以
商用实践:
已经通过很多大公司的商用实践,例如B站,YY,包括字节跳动,国外更不用说了,Google,所以从这个角度上来说,已经经过大规模的实践,所以如果你想用用于自己小网站的搭建是没有任何问题,如果你想用于初创公司的使用,还是需要有自己的一定积累,至少有过实践的>履历/p>
golang周边:

java在国内的强大,得益于它的生态,各种组件百花争鸣,例如消息中间件rocketmq,分库分表sharding-jdbc,spring整个生态,mybatis,jedis,elasticsearch,zookeeper,dubbo等等都非常齐全,这样可以方便大家能够快速地进行公司业务开发,可以减少重复造轮子
golang这几年也开始逐渐发力,各个组件也开始完善起来,例如etcd,消息中间件nsq,从跟上解决数据量巨大问题,pingcap公司开发了线事务处理/在线分析处理的融合型数据库产品TIDB,
web框架gin,beego,iris等等,也有各路大神提供了连接各个其他redis,elasticsearch等等组件,还是比较齐全的,rpc框架也有go-mirco,rpcx等等,只要你想要用,基本上来说,golang的生态周边还是比较全的,方便大家>利用/p>
golang的模块管理
java的方便还得益于它的包管理,maven,gradle,这样大大方便了大家的使用,可以提供大家的开发效率,而golang从1.12开始也开始有了自己内嵌的包管理工具
golang的新特性
在这边我并不是说golang好于java,但是golang毕竟属于新一代的语言,它的并发模型CSP,和java的并发模型是有很大的区别的,并发模型的易用性,从根本上来说,是好于java的
再说golang目前最大的优势,docker和kubernetes,是目前github上最火的前20名项目,并且都是golang写的,所以golang和docker,kubernetes集成有天然的>上风/p>
综上所述,我觉得golang可以开发商用网站,不管你是做大型网站还是小型demo,都可以满足你的要求
答案是适合。
- 框架足够成熟了 A Survey of 5 Go Web Frameworks
- 小型项目你甚至不用框架,用net/http http - The Go Programming Language
- 常用库也成熟了 Top - Go Search
- golang的web后端即使不concurrent也比php,ruby,python快很多>许多/li>
- golang里用concurrent真的非常方便,非常非常快,超大web项目golang scale成本低
- 如果你想,golang的部署可以比php更方便,使用go get和http.ServeAndListen()可以不用nginx和apache
- 对于文件改动重新编译其实并不是大问题,看pilu/fresh · GitHub,其实你自己写shell脚本(也可以直接用go写,因为它本身就是系统语言)监控文件系统改动然后自动重新build,即使是C/C++的项目这也不是大问题,人们不用C/C++写web是因为它们不是写web app的最佳选择
- golang写的代码编译通过后,要比scripting language鲁棒,因为go compiler强制一些最佳实践
所以如果你熟悉go或者愿意投资时间,这是一种很值得用的语言,如果你不熟悉而且项目周期很紧,还是建议你用自己最熟悉的语言,学go本身需要花时间的。
如果你也想开发一款属于自己的网站,可以通过第三方专业开发平台,来帮助你实现开发需求:厦门在乎科技( https://www.icarexm.com/pc_build.html )-专注小程序、app、网站>开辟/strong>
如何从PHP过渡到golang
PHP与GO虽然都叫编程语言,但其实它们之间的差别还是挺大的;
PHP的特点在与WEB编程,而GO的特点在于并发;
如果你有C或者C++的基础,去学习GO应该没有什么>停滞/p>
反之,如果没有写过 C 或 C++ 的话,不建议直接学 Go, 因为没写过 C/C++ 的话,很难理解 Golang 的优势在哪里;
最后就是你在学习GO的时候,最后把PHP赶出你的脑子,完全忘记它..
从语言本身特点来看,Go 是一种非常高效的语言,高度支持并发性,Go 语言的本身,它更注重的是分布式系统,并发处理相对还是不错的,比如广告和搜索,那种高并发的服务器。
Go语言优点:
- 性能优秀,可直接编译成机器码,不依赖其他库,Go 极其地快。其性能与 Java 或 C++相似。
- 语言层面支持并发,这个就是Go最大的特色,天生的支持并发,Go就是基因里面支持的并发,可以充分的利用多核,很容易的使用并发。
- 内置runtime,支持垃圾回收,这属于动态语言的特性之一吧,虽然目前来说GC不算完美,但是足以应付我们所能遇到的大多数情况,特别是Go1.1之后的GC。
- 简单易学,Go语言的作者都有C的基因,那么Go自然而然就有了C的基因,那么Go关键字是25个,但是表达能力很强大,几乎支持大多数你在其他语言见过的特性:继承、重载、对象等。
- 丰富的标准库,Go目前已经内置了大量的库,特别是网络库非常强大,我最爱的也是这部分。
- 内置强大的工具,Go语言里面内置了很多工具链,最好的应该是gofmt工具,自动化格式化代码,能够让团队review变得如此的简单,代码格式一模一样,想不一样都很困难。
- 跨平台编译,快速编译,相较于 Java 和 C++呆滞的编译速度,Go 的快速编译时间是一个主要的效率>上风/li>