后端技术

浅谈WEB前后端分离

房东的猫 提交于 2019-11-28 19:44:30
重审业务逻辑 用过MVC的童鞋都知道 业务逻辑(Bussiness Logic) ,但是大多对这概念又是模棱两可,业务逻辑从来都是这样难以理解,谈论前后端分离之前这个概念非常有必要探讨一下!   在简单的CRUD的系统中,基本上都是对数据进行增删改查操作,并没有多少业务逻辑可言;但像银行系统对金融数据的操作就显得不那么简单了,以转账为例:A给B转帐转100元,简易代码如下: if(A.balance - 100 >= 0){ A.balance -100; B.balance +100; }else{ //返回异常信息 }   这串代码已经不仅仅是对数据的增删改查了,它包含了一些业务规则,比如A的余额如果少于100,这个代码会返回异常信息提示"余额不足",类似于这种,一组和特定领域业务相关而又不可拆分的代码,可以看作业务逻辑的实现。所以转账是作为一部个不可拆分的整体提供给用户的,也就是说Business层是不可能给你提供一个"A.余额+x"这种接口的,如果你想转账,请用转账方法,方法里面怎么对数据操作,你无需关心,你也没法关心。 ===== 这里注意强调一下:页面/渲染逻辑和业务逻辑的区别,页面通常需要多个数据用来展示,比如网上银行界面即显示用户名、余额和转账记录等,这些信息的组合称作页面/渲染/展示逻辑,并不等于业务逻辑,业务逻辑只应提供基本的业务数据而不应该和页面逻辑掺和起来

关于Web实现前后端分离,前后端解耦

十年热恋 提交于 2019-11-28 19:44:17
一、前言 ”前后端分离“已经成为互联网项目开发的业界标杆,通过Tomcat+Ngnix(也可以中间有个Node.js),有效地进行解耦。并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。 前后端分离(解耦)的核心思想是:前端Html页面通过Ajax调用后端的RestFul API并使用Json数据进行交互。 注:【在互联网架构中,web服务器:一般指像nginx,apache这类的服务器,他们一般只能解析静态资源。 应用服务器:一般指像tomcat,jetty,resin这类的服务器可以解析动态资源也可以解析静态资源,但解析静态资源的能力没有web服务器好。】 一般只有Web服务器才能被外网访问,应用服务器只能内网访问。 二、为什么前后端分离 一般公司后端开发人员直接兼顾前端的工作,一边实现API接口,一边开发页面,两者互相切换着做,而且根据不同的url动态拼接页面,这也导致后台的开发压力大大增加。前后端工作分配不均。不仅仅开发效率慢,而且代码难以维护。 而前后端分离的话,则可以很好的解决前后端分工不均的问题,将更多的交互逻辑分配给前端来处理,而后端则可以专注于其本职工作,比如提供API接口,进行权限控制以及进行运算工作。而前端开发人员则可以利用nodejs来搭建自己的本地服务器

Web实现前后端分离,前后端解耦

為{幸葍}努か 提交于 2019-11-28 19:44:03
一、前言 ”前后端分离“已经成为互联网项目开发的业界标杆,通过Tomcat+Ngnix(也可以中间有个Node.js),有效地进行解耦。并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。 前后端分离(解耦)的核心思想是:前端Html页面通过Ajax调用后端的RestFul API并使用Json数据进行交互。 注:【在互联网架构中,web服务器:一般指像nginx,apache这类的服务器,他们一般只能解析静态资源。应用服务器:一般指像tomcat,jetty,resin这类的服务器可以解析动态资源也可以解析静态资源,但解析静态资源的能力没有web服务器好。】 一般只有Web服务器才能被外网访问,应用服务器只能内网访问。 二、为什么前后端分离 一般公司后端开发人员直接兼顾前端的工作,一边实现API接口,一边开发页面,两者互相切换着做,而且根据不同的url动态拼接页面,这也导致后台的开发压力大大增加。前后端工作分配不均。不仅仅开发效率慢,而且代码难以维护。 而前后端分离的话,则可以很好的解决前后端分工不均的问题,将更多的交互逻辑分配给前端来处理,而后端则可以专注于其本职工作,比如提供API接口,进行权限控制以及进行运算工作。而前端开发人员则可以利用nodejs来搭建自己的本地服务器

Web前端和Web后端的区分

♀尐吖头ヾ 提交于 2019-11-28 19:17:45
版权声明:本文为CSDN博主「十豆三展」的原创文章,遵循CC 4.0 by-sa版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/zz13995900221/article/details/80374893 一、绪论 1、 前台:呈现给用户的视觉和基本的操作。 后台:用户浏览网页时,我们看不见的后台数据跑动。后台包括前端、后端。 前端:对应我们写的html、css、javascript 等网页语言作用在前端网页。 后端:对应jsp、javaBean、dao层、action层和service层的业务逻辑代码。(包括数据库) 为什么jsp是后端呢?主要是jsp的运行原理是在tomcat服务器运行的。 2、 (1)javaweb是java开发中的一个方向 java有搞安卓的,搞web的,搞嵌入式的等。javaweb就是指搞web方向的,javaweb分两块,一块是服务器端叫后端,另一块叫前端,也就是web前端。前端就是用户能看到的部分,比如淘宝网,qq空间,网页上你能看到的都是web前端做的。后端做的就是为前端的展示业务逻辑功能做处理。 (2)java web包括了jsp,servelt以及一些框架比如spring,structs以及与数据库交互的知识,当然也涉及到了html,css等前端技术,但是更侧重于后端的开发

Spring与后端模板引擎的故事

…衆ロ難τιáo~ 提交于 2019-11-28 19:14:46
更多内容,欢迎关注微信公众号:全菜工程师小辉。公众号回复关键词,领取免费学习资料。 现在很多开发,都采用了前后端完全分离的模式,随着近几年前端工程化工具和MVC框架的完善,使得这种模式的维护成本逐渐降低。但是这种模式目前并不利于SEO(前后端分离的SEO问题会慢慢改善),而且某些场景使用模板引擎会更方便,比如说邮件模板以及数据变化不频繁的后台系统。 Spring,确切来说是Spring MVC除了可以实现RESTful web服务之外,还可以使用它提供动态HTML内容。Spring MVC支持多种模板技术,包括Thymeleaf、FreeMarker和JSP等。 什么是模板引擎? 模板引擎(这里特指用于Web开发的模板引擎)是为了使用户界面与业务数据(内容)分离而产生的,它可以生成特定格式的文档,用于网站的模板引擎就会生成一个标准的文档。 模板引擎的基本机理就是替换(转换),将指定的标签转换为需要的业务数据;将指定的伪语句按照某种流程来变换输出。 SpringMVC和模板引擎的关系 SpringMVC处理请求的流程图: 模板引擎发挥作用是在第8,9,10步骤。 更详细的原理介绍,点我跳转 版本支持 重点介绍Velocity,因为其2010年以后连续6年没有更新,版本停留在1.7,直到最近两年才有更新,最新版本是2019年3月更新的2.1,但是变化并不大。 Spring官网原文:

C/C++后端-服务端开发技术博文分类汇总

核能气质少年 提交于 2019-11-28 17:39:22
文章目录 C语言基础 C++基础 基础部分 特性部分、STL部分 C++11、并发编程部分 算法与数据结构 排序算法 其他算法 数据结构部分 Linux操作系统 Linux基础-系统编程(计算机操作系统原理相关) 网络编程(计算机网络原理相关) 内核部分 数据库原理 设计模式 Git Shell C语言基础 《C程序设计 01-03 C语言基础》 《C程序设计 04-06 数组和指针(一)》 《C程序设计 07-09 数组和指针(二)》 《C程序设计 10 函数》 《C程序设计 11 结构体与共用体》 《C程序设计 12 动态内存管理》 《C程序设计 13 文件操作》 《malloc原理和内存碎片》 《浅析malloc的底层实现原理(ptmalloc)》 《大小端存储模式的理解、判断和转换》 《BOOL类型、int型、float型及指针变量如何与“零值”如何比较》 《浅谈define和const的区别》 《C 语言字符串处理系列函数实现》 《C 语言位运算常用技巧》 《C语言 可变参数列表源码剖析及实现》 C++基础 基础部分 《深入程序编译链接和装载过程》 《深入函数的调用堆栈、返回值及调用约定》 《C++ | 类与对象基础》 《C++ | 拷贝构造函数 与 赋值运算符》 《C++ | 对象的生命周期及其程序优化》 《C/C++ 中 const 关键字用法总结》 《C++ |

如何选择技术方向和编程语言

北战南征 提交于 2019-11-28 16:17:01
如何选择技术方向和编程语言 如何选择技术方向和编程语言,大概是新人们最困惑的问题之一了,当然也是我被问到最多的问题之一。这里就和大家详细的聊聊。 先选技术方向,再选语言 各种语言都各有所长,所以在选择语言之前,最好先选定你想从事的技术方向,然后根据这个技术方向,再去选对应的语言。 各个语言的适用场景 Python:人工智能的好选择 举例来说,如果你想做人工智能方向的话, Python 语言就是非常不错的选择。因为它在各个大学和研究机构用的非常多,有成熟好用的数学库,适合于科学计算。在深度学习等热门方向上,有大量用 Python 开发的框架,新出的 Paper 也能很快在 GitHub 上找到 Python 的代码实现,可以说是不二选择了。 JavaScript:前端和全端 如果你想做前端,那么目前来看,除了 JavaScript 还真没有别的选择,因为现在能在浏览器里边跑起来,也就是它了。过两年等 wasm 成熟可能会有其他选择,但现在,是真没有。 而相应的,如果你学会了 JavaScript ,想在这个基础上再把后端给做了,那么 Node.JS 就是非常好的选择。因为它使用的就是 JavaScript 的解释器,按 JavaScript 写就好了。从学习成本上来讲,它是非常低的,可以通过很低的投入,就进入了服务器端的领域。 同时,如果你已经学了 React 这个 JS 框架的话

史上最全的后端技术大全,你都了解哪些技术呢?

做~自己de王妃 提交于 2019-11-28 15:43:30
| 导语 工欲善其事,必先利其器; 士欲宣其义,必先读其书。 后台开发作为互联网技术领域的掌上明珠,一直都是开发者们的追逐的高峰。 本文将从后台开发所涉及到的技术术语出发,基于系统开发、架构设计、网络通信等几个方面让大家对后台 开 发有一个清晰的了解,讲解全面易懂。 系统开发 1. 高内聚/低耦合 高内聚指一个软件模块是由相关性很强的代码组成,只负责一项任务,也就是常说的单一责任原则。 模块的内聚反映模块内部联系的紧密程度。 模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。一个完整的系统,模块与模块之间,尽可能的使其独立存在。 通常程序结构中各模块的内聚程度越高,模块间的耦合程度就越低。 2. 过度设计 过度设计就是进行了过多的面向未来的设计或者说把相对简单的事情想复杂了,过度追求模块化、可扩展性、设计模式等,为系统增加了不必要的复杂度。 3. 过早优化 过早指的不是在开发过程的早期,而是在还没弄清楚需求未来的变化的走向的时候。你的优化不仅可能导致你无法很好地实现新的需求,而且你对优化的预期的猜测有可能还是错的,导致实际上你除了把代码变复杂以外什么都没得到。 正确的方法是, 先有质量地实现你的需求,写够testcase,然后做profile去找到性能的瓶颈,这个时候才做优化。 4. 重构

elementUI学习

一个人想着一个人 提交于 2019-11-28 13:55:12
                             elementUI学习 elementUI入门:在ider里面安装 命令npm i element-ui -S   在使用之前引入JS核心文件 组件的学习:进去elementUI官网: https://element.eleme.cn/#/zh-CN Layout布局组件的学习:浏览 Layout 组件查看你想要的布局风格 点击显示代码 拷贝到你的模板里面 模板: <template> <div class="hello"> <el-row> <el-col :span="24"><div class="grid-content bg-purple-dark"></div></el-col> </el-row> <el-row> <el-col :span="12"><div class="grid-content bg-purple"></div></el-col> <el-col :span="12"><div class="grid-content bg-purple-light"></div></el-col> </el-row> <el-row> <el-col :span="8"><div class="grid-content bg-purple"></div></el-col> <el-col :span=

Nginx配置详解

与世无争的帅哥 提交于 2019-11-28 12:19:32
Nginx配置详解 nginx概述 nginx是一款自由的、开源的、高性能的HTTP服务器和反向代理服务器;同时也是一个IMAP、POP3、SMTP代理服务器;nginx可以作为一个HTTP服务器进行网站的发布处理,另外nginx可以作为反向代理进行负载均衡的实现。 这里主要通过三个方面简单介绍nginx 反向代理 负载均衡 nginx特点 1. 反向代理 关于代理 说到代理,首先我们要明确一个概念,所谓代理就是一个代表、一个渠道; 此时就设计到两个角色,一个是被代理角色,一个是目标角色,被代理角色通过这个代理访问目标角色完成一些任务的过程称为代理操作过程;如同生活中的专卖店~客人到adidas专卖店买了一双鞋,这个专卖店就是代理,被代理角色就是adidas厂家,目标角色就是用户 正向代理 说反向代理之前,我们先看看正向代理,正向代理也是大家最常接触的到的代理模式,我们会从两个方面来说关于正向代理的处理模式,分别从软件方面和生活方面来解释一下什么叫正向代理 在如今的网络环境下,我们如果由于技术需要要去访问国外的某些网站,此时你会发现位于国外的某网站我们通过浏览器是没有办法访问的,此时大家可能都会用一个操作FQ进行访问,FQ的方式主要是找到一个可以访问国外网站的代理服务器,我们将请求发送给代理服务器,代理服务器去访问国外的网站,然后将访问到的数据传递给我们!