后端技术

前后端分离原理

自古美人都是妖i 提交于 2019-12-27 02:21:45
核心思想是前端html页面通过ajax调用后端的restuful api接口并使用json数据进行交互。 在互联网架构中,名词解释: Web服务器:一般指像nginx,apache这类的服务器,他们一般只能解析静态资源。 应用服务器:一般指像tomcat,jetty,resin这类的服务器可以解析动态资源也可以解析静态资源,但解析静态资源的能力没有web服务器好。 一般都是只有web服务器才能被外网访问,应用服务器只能内网访问。 一、开发人员分离 以前的JavaWeb项目大多数都是Java程序员又当爹又当妈,又搞前端,又搞后端。 随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只管前端的事情,后端工程师只管后端的事情。正所谓术业有专攻,一个人如果什么都会,那么他毕竟什么都不精。 大中型公司需要专业人才,小公司需要全才,但是对于个人职业发展来说,小编建议是分开。 1.对于后端Java工程师: 把精力放在Java基础,设计模式,jvm原理,spring+springmvc原理及源码,linux,mysql事务隔离与锁机制,mongodb,http/tcp,多线程,分布式架构,弹性计算架构,微服务架构,Java性能优化,以及相关的项目管理等等。 后端追求的是:三高(高并发,高可用,高性能),安全,存储,业务等等。 2.对于前端工程师: 把精力放在html5

为什么要前后端分离?

∥☆過路亽.° 提交于 2019-12-27 02:16:32
一、前端 前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这个步骤是系统架构从猿进化成人的必经之路。 核心思想是前端html页面通过ajax调用后端的restuful api接口并使用json数据进行交互。 在互联网架构中,名词解释: Web服务器:一般指像nginx,apache这类的服务器,他们一般只能解析静态资源。 应用服务器:一般指像tomcat,jetty,resin这类的服务器可以解析动态资源也可以解析静态资源,但解析静态资源的能力没有web服务器好。 一般都是只有web服务器才能被外网访问,应用服务器只能内网访问。 二、术业有专攻(开发人员分离) 以前的JavaWeb项目大多数都是java程序员又当爹又当妈,又搞前端,又搞后端。 随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端工程师只管前端的事情,后端工程师只管后端的事情。正所谓术业有专攻,一个人如果什么都会,那么他毕竟什么都不精。 大中型公司需要专业人才,小公司需要全才,但是对于个人职业发展来说,我建议是分开。 1、对于后端java工程师:

为什么要前后端分离

心不动则不痛 提交于 2019-12-27 02:13:51
本文转自https://www.cnblogs.com/xuange306/p/6823479.html 以前的项目大多数都是java 程序 猿又当爹又当妈,又搞前端(ajax/jquery/js/html/css等等),又搞后端(java/ mysql / Oracle 等等)。 随着时代的发展,渐渐的许多大中小公司开始把前后端的界限分的越来越明确,前端 工程师 只管前端的事情,后端工程师只管后端的事情,正所谓术业有专攻,一个人如果什么都会,那么他毕竟什么都不精。 大中型公司需要专业人才,小公司需要全才,但是对于个人职业发展来说,我建议是分开。你要是这辈子就吃java这碗饭,就不要去研究什么css,js等等。 把你的精力专注在java,jvm原理,spring原理,mysql锁,事务, 多线程 ,大并发,分布式架构,微服务,以及相关的项目管理等等,这样你的核心 竞争力 才会越来越高,正所谓你往 生活 中投入什么,生活就会反馈给你什么。 ( 满满的正能量: 一旦你成为了一个行业里的精英,相信我,到时候,车,房, 女人 ,钱,机会就都来找你了,不用着急,真的。 干java程序猿这行,真的很简单的,你懂得 知识 越多,你的钱就越多,当然了还需要有一定的情商。。。 你的能力越强,你就比别人创造的价值更多,你为公司创造了价值,公司给你各种福利,双赢! ) 几曾何时,我们的java

【Alpha】事后分析

六眼飞鱼酱① 提交于 2019-12-26 20:36:22
目录 设想和目标 计划 资源 变更管理 设计/实现 测试/发布 团队的角色,管理,合作 总结 对照敏捷开发的原则, 你觉得你们小组做得最好的是哪几个原则? 请列出具体的事例。 下个阶段要改进的地方 照骗 设想和目标 我们的软件要解决什么问题?是否定义得很清楚?是否对典型用户和典型场景有清晰的描述? alpha阶段软件 要解决的问题是:北航学生没有一个 方便快捷 的渠道,去查看各个社团 信息 、 新闻文章 、 举办的活动 等社团资讯。 具体来说,没有一个集北航社团各种资讯于一身的平台:如今每个社团有自己的公众号,用户一个个去关注和查看文章十分麻烦;社联推送的社团介绍等也比较有限;社团举办的活动基本只能通过社员群、朋友圈、公众号文章的方式来进行宣传,不方便用户获取信息。 要解决的问题定义得很清楚,也是我们在设计功能是时的主要考量依据。 对典型用户和典型场景有清晰的描述,alpha阶段有两类典型用户: 萌新M 、 二狗G (点击跳转功能规格说明书查看详情) 我们达到目标了么(原计划的功能做到了几个? 按照原计划交付时间交付了么? 原计划达到的用户数量达到了么?) 功能:原计划的最核心的三个功能(展示新闻、社团信息、活动)都做到了,同时还加入了一些非核心功能(比如按类别筛选新闻)。 交付时间:原计划4.18晚提交微信审核,实际熬了会儿夜,在4.19凌晨提交审核,并幸运地在4

【最新】SSM框架中的前后端分离

被刻印的时光 ゝ 提交于 2019-12-25 16:23:27
文章目录 1.认识前后端分离 2.分离的四个好处 3.利用Swagger UI来规范书写API文档 1.认识前后端分离 在传统的web应用开发中,大多数的程序员会将浏览器作为前后端的分界线。将浏览器中为用户进行页面展示的部分称之为前端,而将运行在服务器,为前端提供业务逻辑和数据准备的所有代码统称为后端。 由于前后端分离这个概念相对来说刚出现不久,很多人都是只闻其声,不见其形,所以可能会对它产生一些误解,误以为前后端分离只是一种web应用开发模式,只要在web应用的开发期进行了前后端开发工作的分工就是前后端分离。 其实 前后端分离并不只是开发模式,而是web应用的一种架构模式 。在开发阶段,前后端工程师约定好数据交互接口,实现并行开发和测试;在运行阶段前后端分离模式需要对web应用进行分离部署,前后端之前使用HTTP或者其他协议进行交互请求。然而作为一种架构模式,我们在实施的过程中主要对以下四个方面来进行比较和重新认识。 前后端分离大概可以从四个方面来理解: 交互形式 代码组织方式 开发模式 数据接口规范流程 一、交互形式 在前后端分离架构中,后端只需要负责按照约定的数据格式向前端提供可调用的API服务即可。前后端之间通过HTTP请求进行交互,前端获取到数据后,进行页面的组装和渲染,最终返回给浏览器。 二、代码组织方式 在传统架构模式中,前后端代码存放于同一个代码库中

app后端设计(11)-- 系统架构(2014.12.05更新)

余生长醉 提交于 2019-12-25 13:16:38
个人认为,在小型的创业团队中,特别是以应用产品为主,在架构后台的时候,需要集中精力解决自身业务上的问题,不是花时间解决第三方已经解决的问题,简单点来说,就是能用第三方服务就使用第三方的服务。基于这个原则,就有了下面的系统架构: 1. apns:由于在apns中,无效的token会导致连接apns连接的失效从而使apns信息丢失。解决的方案是维护发送队列,当apns服务器返回错误的token后,把这个错误token后的消息重发。第三方推送很好了实现了这个技术方案,我们选择了百度云推送。 2. email:要考虑邮件发送失败的重发问题,所以不再在服务器上搭建sendmail服务发送,选择了邮件服务商mailgun。mailgun还提供每个账号每月1万封邮件的免费额度,很适合创业团队。 3. coreseek: 一个基于Sphinx的全文检索引擎。在前面描述的LBS模块中,和检索用户昵称,商铺等搜索功能上需要用到。 4. redis:一个支持多种数据结构的key-value数据库,在LBS模块,性能优化等多个方面都有广泛的用处。 5. httpsqs:轻量级的消息队列。 6. xmpp:采用了开源的openfire,当web服务需要向openfire通讯,有两种情况: (1)实时的需求,例如注册的时候在聊天服务器注册一个用户,那么是直接连聊天服务器。 (2)如果是其它非实时的需求

各大公司Java后端开发面试题

吃可爱长大的小学妹 提交于 2019-12-25 13:14:40
各大公司Java后端开发面试题 原创 2017年03月01日 11:31:11 标签: java / 面试题 / Spring / 春招 / BAT 40184 ThreadLocal(线程变量副本) Synchronized实现内存共享,ThreadLocal为每个线程维护一个本地变量。 采用空间换时间,它用于线程间的数据隔离,为每一个使用该变量的线程提供一个副本,每个线程都可以独立地改变自己的副本,而不会和其他线程的副本冲突。 ThreadLocal类中维护一个Map,用于存储每一个线程的变量副本,Map中元素的键为线程对象,而值为对应线程的变量副本。 ThreadLocal在Spring中发挥着巨大的作用,在管理Request作用域中的Bean、事务管理、任务调度、AOP等模块都出现了它的身影。 Spring中绝大部分Bean都可以声明成Singleton作用域,采用ThreadLocal进行封装,因此有状态的Bean就能够以singleton的方式在多线程中正常工作了。 友情链接: 深入研究java.lang.ThreadLocal类 Java内存模型: Java虚拟机规范中将Java运行时数据分为六种。 1.程序计数器:是一个数据结构,用于保存当前正常执行的程序的内存地址。Java虚拟机的多线程就是通过线程轮流切换并分配处理器时间来实现的,为了线程切换后能恢复到正确的位置

接口仔也不是好当的,聊一聊前后端分离开发中后端接口设计规范

隐身守侯 提交于 2019-12-24 06:19:30
有的做 Java 的小伙伴会调侃自己是接口仔,不过老实说,接口仔也不是那么好当的,今天松哥就来和大家分享一篇前后端分离开发,后端接口设计规范的文章,希望能对各位小伙伴有所启发。另外再悄悄告诉大家,公众号后台回复 2TB 可以获取超 2TB 免费 Java 学习资源哦。 1. 前言 随着互联网的高速发展,前端页面的展示、 交互体验越来越灵活、 炫丽,响应体验也要求越来越高,后端服务的高并发、 高可用、 高性能、 高扩展等特性的要求也愈加苛刻,从而导致前后端研发各自专注于自己擅长的领域深耕细作。 然而带来的另一个问题:前后端的对接界面双方却关注甚少,没有任何接口约定规范情况下各自干各自的,导致我们在产品项目开发过程中,前后端的接口联调对接工作量占比在 30%-50% 左右,甚至会更高。 往往前后端接口联调对接及系统间的联调对接都是整个产品项目研发的软肋。 本文的主要初衷就是规范约定先行,尽量避免沟通联调产生的不必要的问题,让大家身心愉快地专注于各自擅长的领域。 2. 为何要分离 目前现有前后端开发模式:“后端为主的MVC时代”,如下图所示: 代码可维护性得到明显好转,MVC 是个非常好的协作模式,从架构层面让开发者懂得什么代码应该写在什么地方。 为了让 View 层更简单干脆,还可以选择 Velocity、 Freemaker 等模板,使得模板里写不了 Java 代码。

Nginx配置详解

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

# Alpha冲刺3

拈花ヽ惹草 提交于 2019-12-23 01:44:22
团队信息 队名:爸爸饿了 组长博客: here 作业博客: here 组员情况 组员1(组长):王彬 过去两天完成了哪些任务 完成了对laravel框架的一整套机制的了解,对后端的处理流程有全面的认识对整个项目的把握度提高 通过github找到了Android前端关键部分所需的UI组件,并对其实现原理进行理解 接下来的计划 & 还剩下哪些任务 管理项目进度,对接下去一周进行任务安排 预计在周日前完成前后端POST请求发送和收取json数据的测试 继续学习Android端UI设计的相关知识,使产品UI尽量向预想靠拢 有哪些收获、困难和疑问 困难:组员们都来到了课程较多的时间段,每天能够支配的开发时间不如预计 收获:1、对Android ViewPager组件的实现有了了解 2、明白RESTful API设计规范的意义 组员2:赵畅 过去两天完成了哪些任务 深入学习了Restful API设计理念和MVC架构。完成了一个http的post方法并通过测试。 学习了json,完成了一个小功能,和前端使用json进行了数据简单的交互。 学习了git关联到多个远程分支的操作。再一次熟练了本地代码和云端服务器的更新、同步操作。 开会,帮助同组成员理清后端知识点,帮助前端同学认识后端处理逻辑,解答疑问。 接下来的计划 & 还剩下哪些任务 爆肝设计:设计接口/业务逻辑/开发详细文档