必须从Python转换到Go的5个原因!
GO语言是我认为最容易的编程语言,可以适应任何类型的应用程序开发。是的!对我来说,Go比JavaScript更容易学习。我认为这是Go语言在几年内变得如此流行的主要原因。
这里还是要推荐下小编的Python学习群:483546416,不管你是小白还是大牛,小编我都欢迎,不定期分享干货,包括小编自己整理的一份2017最新的Python资料和0基础入门教程,欢迎初学和进阶中的小伙伴。在不忙的时间我会给大家解惑。
那么我们在使用Go之前有什么?
主要是基于仪表板和API的web应用程序和一些分析材料。这是我们的技术堆栈
前端 React
django Python用于后端+身份验证服务
应用编程接口服务的节点
数据库使用PostgreSQL,日志使用Cassandra
自定义编写的容器注册表(使用Rust语言)
如您所见,整个基础架构完全基于微服务,大多数逻辑完全分离,即使使用不同的技术。
这就是我们开始考虑将API服务和后端合并到单个项目中的主要原因,因为它们有很多相似之处,但是代码库在多种编程语言和技术上是重复的。但事实证明,我们需要做很多工作来定制Django的API服务,尤其是定制JSON响应。
在使用Django构建API服务1个月后,我觉得Django非常棒,直到您构建了一些非常普通的东西,但是当您想要更高的性能和一些自定义模块时,事情变得越来越复杂。
为什么去?
正如我前面说过的,Go语言是我见过和使用过的最简单的语言。但对我来说这只是第一个吸引。
以下是我们选择超越Python Django的5个主要原因
1它编译成单个二进制文件
golang是作为编译语言构建的,Google开发人员在这方面做得很好。使用静态链接实际上将所有依赖库和模块组合为一个基于操作系统类型和体系结构的二进制文件。这意味着,如果您使用Linux X86 CPU在笔记本电脑上编译后端应用程序,则只需将编译后的二进制文件上载到服务器即可,而无需在服务器上安装任何依赖项!
2静态类型系统
类型系统对于大规模应用非常重要。python是一种很棒很有趣的语言,但有时您会遇到异常情况,因为尝试使用变量作为整数,但结果却是字符串。
go会让您在编译期间以编译器错误的形式了解此问题。这是你赢得时间来解决这种愚蠢问题的地方。
3 Performance!
这可能令人惊讶,但在大多数应用程序中,Go比Python ( 2和3 )快。这里是对标游戏的结果,这是不公平的,它取决于应用类型和用例。
因为他的并发模型和CPU可伸缩性,我们的情况变得更好。每当我们需要处理一些内部请求时,我们都使用单独的Goroutine来处理,Goroutine在资源上比Python线程便宜10倍。由于内置的语言功能,我们节省了大量资源(内存、CPU )。
4您不需要Web框架就可以开始
这是编程语言最棒的地方。go language creators和社区内置了许多语言核心支持的工具,在大多数情况下,您实际上不需要任何第三方库。例如,它具有本机内置的http、JSON、html模板,您甚至无需考虑在Github上查找库就可以构建非常复杂的API服务!
但是,当然有很多库和框架是为Go和Go制作web应用程序而构建的,但是我建议在没有任何第三方库的情况下构建您的web应用程序或API服务,因为在大多数
5出色的IDE支持和调试
当您尝试切换编程语言时,IDE支持是最重要的事情之一。舒适的IDE平均可以节省80 %的编码时间。我找到了JetBrains想法的Go插件,它也支持( Webstorm、PHPStorm等)。这个插件提供了项目开发所需要的所有东西,它具有JetBrains的强大功能,可以真正促进您的开发。
根据我们的代码库统计,重写所有项目后,我们得到的代码比以前少64 %。
您确实不需要调试不存在的代码。代码少,麻烦少!
结论
go为我们提供了巨大的灵活性,为所有用例提供了单一语言,并且对所有用例都非常有效。我们在后端和API服务上的性能提高了约30 %。现在,我们可以实时处理日志记录,将其传输到数据库,并使用Websocket从单个或多个服务进行流式传输!这是Go语言功能的绝佳结果。