什么是Web服务器端应用技术?列出几种典型的Web服务器端技术。
服务器端技术是 基于服务器端语言 做出来的特定的规范,
服务器端常用技术有MVC,用于隔离业务和视图
ORM,用于简化并优化数据库连接与操作数据库
要学习技术,先要学习一门后端语言,比如php、java、C#、go等等,
之后再逐个技术做简单实现,学会了一些常用的技术后,
可以学习框架,再之后就是项目啦,
根据项目的不同,选择不同的框架去实现~
可以先直接使用go自带的http server 框架,这个框架涵盖了绝大多数的功能,比如request response 的基本封装,简单的路由管理,文件上传处理。
如果发现Go 自带的框架解决不了问题,可以引入相应的第三方组件,比如ORM可以采用中国人写的gorm 比如web 的session 管理可以使用gorilla/session
当然你也可以直接上大一统的框架比如你提到的beego 还有大名鼎鼎的martini 。不过不推荐,因为这样的大框架和Go 语言本身的模块设计有冲突。
实际开发建议用vscode 加Go 插件来做IDE,基本包含了其他成熟IDE的所有功能,而且还自带强大的debug 功能。其他IDE debug 用起来非常麻烦比如idea 和liteIDE。题主也可以自己试下。
如果你选的是一些比较轻量级的框架(写restful api为主),一般都将你用原生http包经常写的一些重复性代码封装好了,比如解析path或者query当中的parameter。有些集成了一些性能更好的router,有些专门对性能做了优化。而且因为轻量级,上手也很快。这种类型的框架推荐gin、chi,也比较契合当前主流的restful api + js/app的开发方式。
至于那些“重量级”、"企业级"的框架,我个人的口味来说,不推荐。这些框架在蜜月期很甜蜜,觉得要用的功能都有。但初期有不小的学习成本,因为一般都喜欢自己造一套轮子,面面俱到。中后期,如果发现一些设计上的问题,或者需求场景稍微有所不同,需要定制,那么当初那些你欢喜的,都会变成你的障碍,成为你厌恶的;同时因为耦合,又无法方便地将些某模块进行替换。
建议选择一些轻量级的框架,把各个模块的选择权掌握在人的手中,根据实际情况进行组合替换,上手也比较简单。另外,ORM推荐使用xorm、validator使用go-validator/validator、RPC框架使用GRPC、log使用logrus。
做web还是推荐php因为方便。 做算法,数据什么的可以用python(spark, opencv),这方面的应用比较广。但说到潜力 还是nodejs, 得力于npm的代码贡献量和js的流行。 不过在中国, 还是pjp吧
0条评论