为架构师离开,新架构师使用python,所以团队转成使用python,我之前一直使用golang没有用python经验,很多地方感觉奇怪。于是想总结下这些共同和差异。
一、相同点
1.程序的架构设计
不管是golang还是python都在用来开发web应用时,程序架构设计上其实差别不大。都是基于MVC架构,来设计目录,model层,controller层,service层。具体到细节,比如分组路由,中间件,orm钩子函数,读取配置文件,获取数据库引擎。都是为了解决相同的问题,所以这些东西,我看着代码立马就明白思路,也能基本上手。
2.程序环境
在python中,一个项目一般有一个/venu目录叫“虚拟环境”,该项目所有依赖包都会在这里,避免了影响“主机”的Pyhon环境。同样的golang有gomod管理工具,用vendor目录来保存本程序所有依赖的包。
3.唯一入口
python一般有main.py文件作为程序的入口,golang也是main.go。我几乎遇到所有golang项目,第一眼看完目录结构,第二眼就找main.go了,然后gorunmain.go。都是唯一入口,对理解程序来说还是比较容易的。
还有比如数据结构,列表,切片,map之类,所以我直接上手写python没多大问题。遇到最大的问题在不同点。从大得差异一点点说吧。
二、不同点
1.WSGI
WebServerGatewayInterfaceWeb服务器网关接口,发现这个概念之后,我一直有个疑问就是,为什么golang不需要这个协议?我写了两年golangweb从没听说过哪个golangweb框架还必须要支持另外一个协议。和网友讨论后才大致理解,关键在于golang标准库