如何选择合适的后端

我的新书 《Android App开发入门与实战》 已于2020年8月由人民邮电出版社出版,欢迎购买。点击进入详情

文章目录

Web技术发展如此之快,以至于我们现在拥有大量的现代工具和框架。无论是前端,后端还是数据库。许多开发人员都有一个大问题:我应该从哪个技术堆栈开始?

有时我们会选择我们之前用过的语言或我们熟悉的语言。作为人类的天性,我们总是坚持自己舒适的方式,这就是事情开始出错的地方。这可能包括选择一个过度的框架,或者更糟糕的是,我们在项目过程中从现有的技术堆栈转向,最终用不同的语言重写代码。

因此,在开始新项目之前选择正确的技术栈非常重要。通过这篇文章,我将帮助你进行思考过程,以便你可以选择最佳的技术栈。

  1. 什么是后端?

简而言之,后端是在服务器端运行的代码,负责处理和管理存储,数据库和其他资源。后端也称为软件的数据访问层。

如何选择合适的后端

; 2. Node.js

Node.js使用异步编程!意思是,它是非阻塞的。换句话说,它不会等待资源完成作业。它立即准备好接受下一个请求,并在完成后给出回调。Node.js像火箭一样运行,并且具有很高的可扩展性。

何时使用 Node.js?

当你的应用程序是高度事件驱动的并执行大量 I/O 操作时。此外,当你必须从后端本身进行各种API调用时。在此方案中,你可以利用其非阻塞功能。

何时不用 Node.js?

当你的算法或作业占用大量 CPU 周期时。由于 Node.js 像客户端 js 一样在单个线程上运行,因此你的应用程序对于 CPU 密集型作业的效率非常低。

  1. Java — Spring Boot

Spring是一个功能强大,轻量级且最受欢迎的框架,它使Java使用起来更快,更容易,更安全。Spring Boot 可帮助你构建用于生产环境的基于Spring 的应用程序。它满足了每个人对现代Web应用程序的80%的需求。它对于以最小的工作量创建独立的生产级应用程序非常有用。

何时使用 Spring Boot?

当你的主要关注点是安全性时,也许你想编写银行或金融应用程序。如果你不能在安全性方面妥协,Spring Boot将是最佳选择。由于 Java 支持开箱即用的多线程处理,因此它成为构建复杂且高度并发的 Web 应用程序的绝佳选择。

什么时候不用Spring Boot?

虽然Spring Boot架没有限制,它可以满足你的所有需求。但是有时不需要大量计算的琐碎应用程序,Spring Boot作为后端将是一个大杀器。对Spring Boot说不的唯一一点是它有点复杂,需要大量的专业知识。

4.PHP — Laravel

PHP是一位老朋友,他让我认识了Web开发。

Laravel是一个开源的PHP框架。它遵循 MVC(模型-视图-控制器)体系结构。Laravel使生活更轻松,因为它具有许多开发人员友好的功能,其中之一是查询生成器或ORM(对象关系映射)。在Laravel之前,PHP似乎正在消亡,但现在Laravel是PHP最有竞争力的框架之一。

何时使用Laravel?

当上市时间是关键时,Laravel就是最佳选择。因为它具有许多突出的功能,与其他框架相比,使Web开发非常快。此外,Laravel可以托管在共享主机上,因此使其成为所有主机中最便宜的,因此当时间和成本是关键时,你应该使用Laravel。

什么时候不用Laravel?

与Spring和Node相比,PHP并不被认为是安全的.js,但是,Laravel可以防止一些基本攻击,例如SQL注入和跨站点脚本攻击,并为其添加了额外的安全层。但是,对于必须安全性的应用程序,从不建议使用PHP。

  1. Python — Django

Django是一个快速,安全和可扩展的高级Python Web框架。Django鼓励快速和干净的应用程序开发。它处理了Web开发的大部分麻烦,因此您可以专注于编写应用程序,而无需重新发明轮子。

什么时候使用Django?

由于Django基于python,它支持强大的机器学习库,如PyTorch,NumPy等。其计算和统计功能使其成为机器学习应用的理想平台。

什么时候不用Django?

Django不适合只有少数功能和要求的小型项目。因为它是一个”包含电池”的框架,所以它有很多小项目不需要的样板代码,因此会消耗不必要的服务器处理时间和带宽。

Original: https://blog.csdn.net/ddnosh/article/details/124742118
Author: 元架构师
Title: 如何选择合适的后端

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/733016/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Docker 下 【Locust 2.8】 + prometheus + influxdb + grafana 性能测试结果采集、监控、数据持久化

    本文使用docker部署,建议使用docker-compose一键部署方式,观看这篇: https://blog.csdn.net/qq_41522024/article/deta…

    Python 2023年8月14日
    047
  • python has no attribute_windows,python中出现AttributeError: object has no attribute

    win7系统,照书上编写了一个python的飞船游戏,按照书上的编写的,但不知道问题出在哪里 AttributeError: ‘str’ object ha…

    Python 2023年9月22日
    038
  • Python写实用小工具-实现图片转字符画

    一、介绍 人物画是一系列人物的组合,我们可以把每个人物看作一个大像素,一个人物可以代表一种颜色,人物种类越多,体现的颜色越多,人物画就越有层次性。 [En] Character p…

    Python 2023年5月24日
    082
  • 3西格玛计算公式_6 西格玛相关的计算

    文件筛选文件并复制到本机 策略,使用python os包处理,缺点设备电脑没有安装python。所有更换策略,直接使用dos 命令,制作成bat脚本然后运行。 筛选文件遇到的问题,…

    Python 2023年8月8日
    057
  • 数据分析pandas

    (一)Series (1)结构 主要由一组数据与之相关的索引两部分构成。(索引在左,数据在右) (2)多种构造代码方法: 1 . class pandas.Series( data…

    Python 2023年8月20日
    044
  • SPL工业智能:发现时序数据的异常

    基本问题 工业生产过程中会产生大量的数据,比如电压、温度、流量等等,它们随时间推移而不断产生,这些数据在多数情况下是正常的,否则生产无法正常进行;少数情况下,数据是异常的,生产效率…

    Python 2023年9月15日
    036
  • python-绘图与可视化

    python 有许多可视化工具,但本书只介绍Matplotlib。Matplotlib是一种2D的绘图库,它可以支持硬拷贝和跨系统的交互,它可以在python脚本,IPython的…

    Python 2023年10月31日
    038
  • QQ登录简介

    QQ登录简介 (1) QQ登录 QQ登录,亦即我们所说的第三方登录,是指用户可以不在本项目中输入密码,而直接通过第三方的验证,成功登录本项目。 若想实现QQ登录,需要成为QQ互联的…

    Python 2023年6月11日
    0105
  • 《痞子衡嵌入式半月刊》 第 62 期

    痞子衡嵌入式半月刊: 第 62 期 这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。 本期刊是开源项目(GitHub: …

    Python 2023年10月21日
    049
  • Anaconda与conda、pip与conda的区别

    Conda发行于2012年,是一个开源的、跨平台的包和环境管理工具。 一、Conda和Anaconda的区别 尽管Conda被打包在了Anaconda中,这两个是有着不同目标的不同…

    Python 2023年9月8日
    033
  • pythond大屏可视化

    今天我就来给大家介绍一款非常便利的可视化工具–big_screen,直接传入数据即可,有了它,小白也能做数据大屏。相比与Plotly、Matplotlib、Pyecharts等可视…

    Python 2023年8月9日
    057
  • Pytest测试框架一键动态切换环境思路及方案

    前言 在上一篇文章《Pytest fixture及conftest详解》中,我们介绍了fixture的一些关键特性、用法、作用域、参数等,本篇文章将结合fixture及confte…

    Python 2023年9月11日
    058
  • python中icut_python – 使用pandas cut对值进行分组

    我正在尝试将几个csv文件中的值分组到 XML文件(groups.xml)中的bin中.我有以下代码在某种程度上工作,但没有给出我期望的: import os, sys impor…

    Python 2023年8月8日
    055
  • MAC解决Python绘图中文无法显示问题

    一、问题解析 问题说明:电脑上安装了Python3.8,最近遇到绘图,无法将中文标签显示,显示为空白方框。原因:matplotlib默认的字体为英文字体,导致许多unicode编码…

    Python 2023年9月1日
    041
  • conda 安装yaml环境中的各种坑

    1、配置镜像源 首先在”C:\Users\ma_pe.condarc”中将以下内容粘贴: channels: – http://mirrors.tuna.t…

    Python 2023年9月27日
    053
  • Python特性

    3.1 Python特性 Python是为可读性设计的,与英语有一些相似之处,并受到数学的影响。比如: Python使用新行来完成命令,而不像通常使用分号或括号的其他编程语言。 P…

    Python 2023年5月24日
    069
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球