重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
go目前开发的大型产品还很少。
建网站原本是网站策划师、网络程序员、网页设计师等,应用各种网络程序开发技术和网页设计技术配合操作的协同工作。成都创新互联专业提供网站设计、做网站,网页设计,网站制作(企业站、自适应网站建设、电商门户网站)等服务,从网站深度策划、搜索引擎友好度优化到用户体验的提升,我们力求做到极致!
目前我所知道的有:
beego,国内开发者开发的web框架
SudoChina,golang 开发的CMS
Monsti 也是一个CMS
其他的都在GIT上有一些开源项目。
毕竟很年轻的语言,大型成熟的产品还很少。不过我们公司已经在用golang开发公司内部使用的软件。同时也在使用golang开发一些WEB项目。
项目描述:Build cross-platform modern desktop apps in Go + HTML5
项目描述:Pprof made easy at development time for Go
项目描述:ObjectBox Go - persisting your Go structs/objects superfast and simple
项目描述:Scan and analyze OSS dependencies and licenses from compiled Go binaries
项目描述:Fast thread-safe inmemory cache for big number of entries in Go
项目描述:Go library for building event-driven applications.
项目描述:high performance fixed decimal place math library for Go
项目描述:a tiny software that receive a smtp request (email) and send it to the specified webhook as a http post request
项目描述:Compile-time Dependency Injection for Go
项目描述:Go implementation of Linux Network Block Devices
项目描述:Go package for caching DNS lookup results in memory.
主页地址:
项目描述:Go Firecracker SDK
项目描述:A standalone lightweight full-text search engine built on top of blevesearch and Go with multiple storage (scorch, boltdb, leveldb, badger)
主页地址:
项目描述:Fast web fuzzer written in Go
项目描述:dogsled is a Go static analysis tool to find assignments/declarations with too many blank identifiers.
项目描述:go语言封装的各种对称加密和非对称加密,可以直接使用,包括3重DES,AES的CBC和CTR模式,还有RSA非对称加密,ECC椭圆曲线的加密和数字前面签名
项目描述:Plugin-driven CLI utility for code generation using Go source as IDL
项目描述::books: 《青云QingCloud云计算入门 - 基于Go语言》青云直上·只上青云·云之基石·自由计算(还未启动…)
主页地址:
项目描述:Ja3 TLS Client Hello Hashes in Go
项目描述:Fast Golang PCAP Reader Benchmark Comparison
更多精彩内容
为什么golang的开发效率高?/olgolang是一编译型的强类型语言,它在开发上的高效率主要来自于后发优势,不用考虑旧有恶心的历史,又有一个较高的工程视角。良好的避免了程序员因为“ { 需不需要独占一行 ”这种革命问题打架,也解决了一部分趁编译时间找产品妹妹搭讪的阶级敌人。
它有自己的包管理机制,工具链成熟,从开发、调试到发布都很简单方便;有反向接口、defer、coroutine等大量的syntactic sugar;编译速度快,因为是强类型语言又有gc,只要通过编译,非业务毛病就很少了;它在语法级别上支持了goroutine,这是大家说到最多的内容,这里重点提一下。首先,coroutine并不稀罕,语言并不能超越硬件、操作系统实现神乎其神的功能。golang可以做到事情,其他语言也可以做到,譬如c++,在boost库里面自己就有的coroutine实现(当然用起来跟其他boost库一样恶心)。golang做的事情,是把这一套东西的使用过程简化了,并且提供了一套channel的通信模式,使得程序员可以忽略诸如死锁等问题。
goroutine的目的是描述并发编程模型。并发与并行不同,它并不需要多核的硬件支持,它不是一种物理运行状态,而是一种程序逻辑流程。它的主要目的不是利用多核提高运行效率,而是提供一种更容易理解、不容易出错的语言来描述问题。
实际上golang默认就是运行在单OS进程上面的,通过指定环境变量GOMAXPROCS才能转身跑在多OS进程上面。有人提到了的pomelo,开源本来是一件很不错的事情,但是基于自己对callback hell的偏见,我一直持有这种态度:敢用nodejs写大规模游戏服务器的人,都是真正的勇士 : ) 。
2、Erlang与Golang的coroutine有啥区别,coroutine是啥?
coroutine本质上是语言开发者自己实现的、处于user space内的线程,无论是erlang、还是golang都是这样。需要解决没有时钟中断;碰着阻塞式i\o,整个进程都会被操作系统主动挂起;需要自己拥有调度控制能力(放在并行环境下面还是挺麻烦的一件事)等等问题。那为啥要废老大的劲自己做一套线程放user space里面呢?并发是服务器语言必须要解决的问题;system space的进程还有线程调度都太慢了、占用的空间也太大了。把线程放到user space的可以避免了陷入system call进行上下文切换以及高速缓冲更新,线程本身以及切换等操作可以做得非常的轻量。这也就是golang这类语言反复提及的超高并发能力,分分钟给你开上几千个线程不费力。
不同的是,golang的并发调度在i/o等易发阻塞的时候才会发生,一般是内封在库函数内;erlang则更夸张,对每个coroutine维持一个计数器,常用语句都会导致这个计数器进行reduction,一旦到点,立即切换调度函数。
中断介入程度的不同,导致erlang看上去拥有了preemptive scheduling的能力,而golang则是cooperative shceduling的。golang一旦写出纯计算死循环,进程内所有会话必死无疑;要有大计算量少i\o的函数还得自己主动叫runtime.Sched()来进行调度切换。
3、golang的运行效率怎么样?
我是相当反感所谓的ping\pong式benchmark,运行效率需要放到具体的工作环境下面考虑。
首先,它再快也是快不过c的,毕竟底下做了那么多工作,又有调度,又有gc什么的。那为什么在那些benchmark里面,golang、nodejs、erlang的响应效率看上去那么优秀呢,响应快,并发强?并发能力强的原因上面已经提到了,响应快是因为大量非阻塞式i\o操作出现的原因。这一点c也可以做到,并且能力更强,但是得多写不少优质代码。
然后,针对游戏服务器这种高实时性的运行环境,GC所造成的跳帧问题确实比较麻烦,前面的大神 @达达 有比较详细的论述和缓解方案,就不累述了 。随着golang的持续开发,相信应该会有非常大的改进。一是屏蔽内存操作是现代语言的大势所趋,它肯定是需要被实现的;二是GC算法已经相当的成熟,效率勉勉强强过得去;三是可以通过incremental的操作来均摊cpu消耗。
用这一点点效率损失换取一个更高的生产能力是不是值得呢?我觉得是值得的,硬件已经很便宜了,人生苦短,让自己的生活更轻松一点吧: )。
4、基于以上的论述,我认为采用go进行小范围的MMORPG开发是可行的。
这个项目可以理解为针对互联网IT人打造的中文版awesome-go。已有的awesome-go项目, 汇总了很多go开源项目, 但存在的问题是收集太全了, 而且每个项目没有详细描述。
本项目作为awesome-go的一个扩展,根据go语言中文社区提供的资料,还有互联网企业架构设计中的常见组件分类, 共精心挑选了153个开源项目(项目不限于在github开源的项目), 分成以下17个大类。
项目初衷是帮助到那些想学习和借鉴优秀golang开源项目, 和在互联网架构设计时期望快速寻找合适轮子的人。
ps: 以下项目 star数均大于100 ,且会定期检查项目的url,剔除无效链接。 每个分类下的项目会按照 star数从高到低 进行排列。
1、服务器编程:以前你如果使用C或者C++做的那些事情,用Go来做很合适,例如处理日志、数据打包、虚拟机处理、文件系统等。
2、分布式系统、数据库代理器、中间件:例如Etcd。
3、网络编程:这一块目前应用最广,包括Web应用、API应用、下载应用,而且Go内置的net/http包基本上把我们平常用到的网络功能都实现了。
4、开发云平台:目前国外很多云平台在采用Go开发,我们所熟知的七牛云、华为云等等都有使用Go进行开发并且开源的成型的产品。
5、区块链:目前有一种说法,技术从业人员把Go语言称作为区块链行业的开发语言。如果大家学习区块链技术的话,就会发现现在有很多很多的区块链的系统和应用都是采用Go进行开发的,比如ehtereum是目前知名度最大的公链,再比如fabric是目前最知名的联盟链,两者都有go语言的版本,且go-ehtereum还是以太坊官方推荐的版本。
自1.0版发布以来,go语言引起了众多开发者的关注,并得到了广泛的应用。go语言简单、高效、并发的特点吸引了许多传统的语言开发人员,其数量也在不断增加。
使用 Go 语言开发的开源项目非常多。早期的 Go 语言开源项目只是通过 Go 语言与传统项目进行C语言库绑定实现,例如 Qt、Sqlite 等。
后期的很多项目都使用 Go 语言进行重新原生实现,这个过程相对于其他语言要简单一些,这也促成了大量使用 Go 语言原生开发项目的出现。
根据官方1.4版本的发布时候(2014.12)判断(官方说大概六个月后出新版本)预计五月底六月初。因为这次的版本改进幅度有点大,不排除延迟发布的可能。