为网站构建一个稳定、高效的后台服务器程序是一件非常重要的事情。要达到这样的目的,选择一款快速、高效的后台程序款框架是我们必须要考虑清楚的。一个后台框架是一系列工具、代码包以及其他软件模块的集合,利用这些基础设置你就可以快速的开发出功能全面的服务器后台程序。这些框架在设计之初就考虑到了将来的服务器程序要面临的需求,并且提供了比较合理全面的解决方案。我们只需要根据我们的需求,对应到这些框架的不同模块,利用这些模块实现我们的业务代码即可。本人掌握了包含市面上大部分常用的编程语言以及相关的框架,也都使用过这些框架开发出了 server 程序。在2021年,我罗列出目前常用的几个框架与大家分享交流。Laravel编程语言:PHPlaravel是一个免费、开源的PHP开发框架,它是基于MVC程序结构设计的。对于常年使用PHP语言做项目的人来说,laravel是普遍的首选方案。我以前接手的一些项目,云服务器平台是客户早年就在使用的,比如GoDaddy、Hostinger 等等,这些云平台对PHP语言的支持非常好,那么考虑到入乡随俗,要使用云服务里的PHP环境,那么用laravel就是非常合适的了。laravel提供了权限管理、API 设计、后台缓存、日志管理、测试等多种功能。它的文档也非常的全面易懂。laravel 非常适合用来开发博客网站、门户网站、电商网站的后台。不过时过境迁,由于现在更多更好的框架的出现,PHP语言以及laravel变得有些过时和年迈,很多人会暂时放弃PHP以及laravel,会尝试使用其他的选择。Flask vs Django编程语言:Python我把这两个框架放在一起进行说明。几年前我在自学完Python语言后,就去寻找基于Python的服务器开发框架,flask和Django是两个常用的。在玩过了这两个框架之后,我明确的选择了Flask。因为我个人的开发风格和习惯是前后端分离的,用Angular或者Vue去专心开发前端页面,用框架细致的开发后端服务器的一些功能,前后端之间的通信和数据交换使用 Restful API 来实现。Django也是一款比较强大的框架,但是它对前后端分离风格的开发者不太友好。在开发的时候很多时候需要将前端的HTML、JavaScript和后端的Python进行联合开发,代码可能会比较混乱。但是事情都有两面性,反过来讲Django的封装性更好一些,很多功能都是拿来即用的,只要根据自己的需求稍加修改,就可以快速的实现一些功能,比如form表单。而 Flask 是纯粹的前后端分离的风格,属于微型框架。你在用Flask写代码的时候,可以完全不需要考虑前端。可以专心的开发服务器程序。最后提供一些 API 访问链接地址给前端即可。所以Flask 框架会比Django更小,使用flask也需要开发者去处理和开发更多的功能逻辑。Express.js vs Koa2编程语言:JavaScript / TypeScript得益于node.js的流行和广泛使用,历史悠久、可爱的JavaScript语言终于可以涉足到后台服务器程序开发领域了。一般的,在安装好node.js后,很少有人会直接用JavaScript原生的开发服务器代码,而是会选择一款框架。那么express.js和koa2就是目前比较流行的两款框架了。他们都可以用 JS 快速的开发出 API 程序,也都能通过安装其他的模块实现与后台数据库的连接。我个人在多年的编程经历中,面对中小型的项目,对性能要求不高的时候,都会考虑使用这两个框架。一般会很快的写好 Restful API 程序和数据库的CRUD程序。另外部他们两个的部署也比较方便,Linux上装好node.js,然后服务器程序文件放在一个地方,用 pm2 这种基于 node.js 的命令工具启动即可向前端提供服务了。这两个框架其实是同一班人的作品。express.js问世的较早,koa2其实是express.js的改进,代码更加精炼紧凑,都是不错的选择。Spring编程语言:Java聚光灯照顾来,欢呼尖叫响起,superstar 到来了。没错,spring是这几年服务器开发框架里的明星。基于Java这几十年的稳健发展,已经有了太多的处理各种问题和需求的Java第三方包。再结合spring的优良品质,比如常见的权限控制、Restful API 开发、SQL/NoSQL 数据库操作这种常见的功能以外,还可以想象一下利用spring结合hadoop生态来开发big data 应用,那会是另外一片天空了。我个人在2020年指导了几个本科大学生的毕业设计项目。他们告诉我,他们的老师不仅要求他们写论文,还需要他们开发一个完整的Web项目,要有网站、服务器,后面还要挂个数据库。值得注意的一点是,导师们要求他们必须用spring框架实现服务器。这些学生当然连前端三剑客 HTML/CSS/JavaScript 都还没有玩会,后台抽象的代码更是小白一个。他们说导师也只是知道有这种技术,但是也没法完全指导他们,所以我就有了雪中送炭的机会。另外,现在很多中大型网站的后台的主要业务逻辑,就是用java的spring来实现的,并结合其他技术向外提供服务。比如国内的一些电商平台就是这样的设计。其他上面我只是列举了几个典型的方案,其实还有很多,我基本上都玩过。比如 hapi(JavaScript)、Golang(Go)、Slim(PHP)等等。大家可以根据自己的需求和实际情况,了解这些框架后进行选择。如何选择合适的框架和择偶很类似,选择适合的才是明智之选。大家都说她好,包括你的父母都很欣赏那个人,但是你就是不喜欢。所以强扭的瓜不甜。下面是几条选择框架的方针,供大家参考:要明确自己开发的服务器后台的目的,以及将来的后台的规模,数据量或业务量的大小,峰值是多少。拿着这些需求和目的,去和众多的框架去对照,选择能够真正解决你的需求的框架。框架的安全性如何。毕竟服务器程序不是儿戏,前端其实只是个交互操作界面,大部分真正的数据和处理逻辑都在后台服务器。我曾经用了一个小时,就很快的模仿开发出了微信App的程序,但是这没有什么可炫耀的,微信厉害的地方其实在它的后台!随着时间的推移,一般的,对于后台服务器程序的访问量、数据流量、数据读写的 I/O 效率都会有更高的要求。那么我们要仔细考虑一款框架的适应性如何,是否能够随着业务的增长同样能够提供相同的性能。易于部署、配置和维护。这时毋庸置疑的,我在以往的涉猎过程中,体验到了基于Go语言的后台项目是最易于部署的,只要基于不同的OS(Windows,LInux)将代码编译好之后,直接放在操作系统里并启动即可。需要编译的方案,运行起来速度会更好,比如Java的框架。有些是不需要编译,是解释运行的,比如JavaScript / node.js的框架,部署可能方便,但是运行效率可能会有些折扣。不过由于现在的硬件机能已经比20年前有了指数级的发展,所以在没有特殊要求下,基本上哪个方便不麻烦就用哪个吧。开发文档的质量。现在很多人学习计算机还迷恋与哪一本书,哪些视频教程。在十几年前倒是可以这样考虑,因为以前互联网并不发达,网速、内容资源都比较差,买书学习就成了首选。现在就不同了,现在你如果买了书,可能书里的内容可能很快就会过时,就会和实际情况有了差距。有些人也会去报培训班,大家请擦亮眼睛,培训班也是要走流量的,公司要求一波学生必须在4~5个月结业,如果时间太长,他们占用了教室、教师资源,公司就很难再继续招收新的学生了,那么他们的现金流量就可想而知了。所以培训班的老师讲课都是非常快的,非常刻板的,他们每天都有进度的要求。这样填鸭式的教学效果我就不用多说了。说回来,一款框架肯定都有他们自己的官方文档,这几年我还发现这些网站对中文的支持也很好了,以前基本上没有中文版的官方开发文档。那么好好利用这些官方文档来学习是最靠谱的。大家能自学就不要去请教别人,自己琢磨、钻研、尝试后得到的收获对自己的技术更加有帮助,而且成本更低。学习曲线。也就是学习的难度和周期。这点就要和编程语言有所结合了,比如JavaScript、Python更加容易上手,Java稍微难一些复杂一些。这一点其实仅仅是针对初学者或者入行时间不长的人的,像我这种已经熟练掌握了至少4门语言,能玩转10多门语言的人,学习曲线基本上可以不用考虑。社区。这一点也很可观。一款框架用的人多,他们遇到的问题也就会多,那么他们在网络上查询问题、询问问题也就多,那么就会有更多的人给出各种问题的解决方案来。慢慢的就形成了社区,现在很多成型的编程社区网站就是这样建立起来的。典型的就是 stackworkflow,我经常能在这里找到灵感。个人意见啊,我建议读者们但凡有一点英文能力,就去英文网站找解决方案。国内的百度搜出来的结果一般都很烂,没啥帮助,有些人就算给出方案也能看出来是敷衍的写的,要么语言表述不清,要么代码胡乱粘贴。能翻墙就翻墙用Google,不能翻墙就用Microsoft bing(国际版),一般搜出来的都是国外网站,里面有很多有识之士给出的解答更加有帮助,甚至立竿见影。送给大家一句话:择偶时,没有最好的,只有合适的。选择框架也是一样的 !
本文出自快速备案,转载时请注明出处及相应链接。