SPA是什么? 全称是单页面应用. 一个SPA就是一个WEB应用,它所需的资源(HTML CSS JS等),在一次请求中就加载完成,也就是不需刷新地动态加载. 用术语“单页”就是因为页面在初始化加载后就永远不会重新加载刷新. 优点:减轻服务器端的压力. 因为服务器先将一份包含了静态资源.JavsScript和模板的静荷数据(payload)发送到了客户端,之后客户端只需要获取渲染页面或视图所需要的数据即可. payload就是起关键作用的资源 提高了页面的渲染效果. 由于移动设备的流行,可以开发…
本篇紧接着上一篇   基本OOP知识  ,介绍高焕堂老师的第二讲. 架构设计的UML图形思考.本篇最重要的是三个词语:图形.思考.UML. 架构师的作用体现主要在项目开发前期.在整个项目还没有完毕的时候,架构师的心中就要有整个项目的蓝图,总体框架.为了可以将架构师自己的蓝图.思路.框架表达给其它人,就须要借助于图形的魅力.以图形来思考.以图形来表达思考的结果,表达对于产品的架构..规划.设计. 在架构中,要借助自己的思维去思考未来可能的变化.为了方便团队之间的交流.假设使用同样的语言.相似的工具…
个人认为单页面应用的优势相当明显: 前后端职责分离,架构清晰:前端进行交互逻辑,后端负责数据处理. 前后端单独开发.单独测试. 良好的交互体验,前端进行的是局部渲染.避免了不必要的跳转和重复渲染. 当然,SPA也有它自身的缺点,例如不利于搜索引擎优化等等,这些问题也有其相应的解决方案. 下面要介绍的这种方式可以说是一种模式或者工作流,和前端使用什么框架无关,也和后端使用什么语言.数据库无关.不能说是The Best Practice,我相信经过更多人的讨论和思考会有A Better Practi…
工程结构架构,减少耦合混乱以及防治需求大改造成结构重构,如何构建稳定可扩展可变换的工程结构的思考 我打算采用Information flow的方式自上而下,两大层分为基础层和展现层的结构.基础层分为多层,展现层也可分为多层.主要思想是将基础层的最下一层当做零部件,将业务层最下层当做组装大部件,通过流程串起来形成一个完整的产品,做零件时按照做出一个就扔进对应基础层的篮子里思路来,目录结构也可以按照这种来进行.这两大层的最下层按照零件拆得越小越容易应对需求变化越容易保护巩固上层的思路来就好.拿微信这…
相信大家都有感觉,就是当程序员写业务写了几年后,就会有想进阶的想法,技术方面当然就是架构师了,然后具体从哪些方面丰富自己才能个达到目的呢?大部分人可能会很迷茫,当然也包括我, 最近和很多大牛交流了一些相关架构师进阶经验涉及方面,在这里分享给大家,如果有所收获,那就更好了. 1.一些webserver基础配置.优化.实际问题解决,php/nginx/mysql/linux相关进阶书籍. 2.数据和日志分析,快速定位线上问题,包括搭建相关平台,如grafana/kfaka/k8s/日志探针等. 3.…
Serverless 的优势 在我使用 Serverless Framework 开发 AWS Serverless 应用的过程中,最方便的莫过于,第一次部署和第二次.第三次部署没有什么区别.只需要执行 serverless deploy,几分钟后,我们代码就运行在线上.如果是一个传统的 AWS 应用,我需要 SSH 到我的服务器上部署,这样才能写好我的自动部署脚本.除此,我还需要担忧这个过程中,有哪些用户有使用. 除了,我觉得的部署方便,还有就是价格合理.我的 AWS EC2 实例上运行着我的…
MVC模式 核心: 1.解耦Model和View,即使得Model可以被不同的展示,比如一批统计数据可以分别用柱状图.饼图表示 2.Controller用来保证Model和View的同步 Model 模型层 负责业务逻辑和数据库交互 View 视图层 展示数据 Controller 控制器 三层架构 1.核心Entity层在三层中作为数据传递实体 UI 界面层 展示数据 BLL 业务逻辑层 数据处理.传递 DAL 数据访问层 访问数据库 MVC与三层架构联系(结合): 界面层 View 视图层…
databus ajax处理得到得数据 service 对databus做缓存,以及业务(如评论列表,评论详情) component 组件 html+css+js组成 evenbus 组件之间通讯,数据的接口 common 组件之间的共用数据和一些程序参数 utils,封装了一些可复用的函数,例如ajax等…
原文发布时间为:2009-10-24 -- 来源于本人的百度文章 [由搬家工具导入] 小项目,以后变动不大的不用三层架构。 ASP.NET三层结构说明 完善的三层结构的要求是:修改表现层而不用修改逻辑层,修改逻辑层而不用修改数据层。否则你的应用是不是多层结构,或者说是层结构的划分和组织上是不是有问题就很难说.不同的应用有不同的理解,这只是一个概念的问题. 理解ASP.NET三层结构——为什么要分三层? 我们用三层结构主要是使项目结构更清楚,分工更明确,有利于后期的维护和升级。它未必会提升性能,因…
原文 简书原文:https://www.jianshu.com/p/84323f530223 大纲 前言 1.什么是单页面应用程序(SPA) 2.SPA与传统Web应用的区别 3.关于SPA的使用 4.SPA的相关知识 5.服务器端通信 6.单元测试 7.认识自动化工具 前言 本篇博客以及之后的几篇关于SPA的博客是本人阅读过<SPA设计与架构>之后整理的知识,并且针对一些知识点也查找了相关博客,对其有一定的了解.而我也将我对SPA的认识和理解写出来,希望对读者能有所帮助.如果有想要深入了解关…
关于Hybrid模式开发app的好处,网络上已有很多文章阐述了,这里不展开. 本文将从以下几个方面阐述Hybrid app架构设计的一些经验和思考. 原文及讨论请到 github issue 通讯 作为一种跨语言开发模式,通讯层是Hybrid架构首先应该考虑和设计的,往后所有的逻辑都是基于通讯层展开. Native(以Android为例)和H5通讯,基本原理: Android调用H5:通过webview类的loadUrl方法可以直接执行js代码,类似浏览器地址栏输入一段js一样的效果 webvi…
前言 前端框架时代,为开发体验.效率与页面性能带来,非常大的革命.大家纷纷拿起一系列打包工具(webpack/parcel etc.),配合一系列加载器快速搭建起一个 SPA 页面. SPA 应用带来的好处非常明显: 提升页面切换体验 降低切换时间 易于部署&前后端分离 但是也带来一系列性能问题: 初始加载脚本较大 首屏空白时间较长 页面返回时,数据被动重新拉取 这些问题是使用 SPA 模式不可避免的,通过了解 SPA 加载运行过程,可以逐渐看清楚引起性能问题的根本原因,通过精细化应用加载,来解…
前言 前端框架时代,为开发体验.效率与页面性能带来,非常大的革命.大家纷纷拿起一系列打包工具(webpack/parcel etc.),配合一系列加载器快速搭建起一个 SPA 页面. SPA 应用带来的好处非常明显: 提升页面切换体验 降低切换时间 易于部署&前后端分离 但是也带来一系列性能问题: 初始加载脚本较大 首屏空白时间较长 页面返回时,数据被动重新拉取 这些问题是使用 SPA 模式不可避免的,通过了解 SPA 加载运行过程,可以逐渐看清楚引起性能问题的根本原因,通过精细化应用加载,来解…
最近出于工作需要,了解了一下微服务架构(Microservice Architecture,MSA).我经过两周业余时间的努力,凭着自己对微服务架构的理解,从无到有,基于.NET打造了一个演示微服务架构的应用程序案例,并结合领域驱动设计(DDD)以及命令查询职责分离(CQRS)体系结构模式,对事件驱动的微服务系统架构进行了一些实战性的探索.现将自己的思考和收获整理成文,分享给大家. 微服务架构 在介绍源代码之前,我还是想谈谈微服务架构,虽然网上有很多有关微服务架构的讨论,但我觉得在此再多说一些还…
WeText项目:一个基于.NET实现的DDD.CQRS与微服务架构的演示案例 最近出于工作需要,了解了一下微服务架构(Microservice Architecture,MSA).我经过两周业余时间的努力,凭着自己对微服务架构的理解,从无到有,基于.NET打造了一个演示微服务架构的应用程序案例,并结合领域驱动设计(DDD)以及命令查询职责分离(CQRS)体系结构模式,对事件驱动的微服务系统架构进行了一些实战性的探索.现将自己的思考和收获整理成文,分享给大家. 微服务架构 在介绍源代码之前,我还…
先说传统MVC网站的网页授权流程. 1.用户发起了某个需要登录执行的操作 2.收集AppId等信息重定向到微信服务器 3.微信服务器回调到网站某个Controller的Action 4.在此Action下通过得到的code请求得到access_token,并用a_t进一步获取用户信息,至此授权流程完成,可以保存用户信息到数据库和cookie,重定向回原页面 SPA架构下的问题 1.服务端与前端之间不保证可信,需要认证交互 2.使用WebApi交互,无法在服务端控制前端的页面跳转 3.认证过程中有…
原文地址: https://www.jianshu.com/p/6327d4280e3b 最近几年,前端技术迅猛发展,差不多每年都会冒出一款主流的框架. 每次新开业务线或启动新项目时,首先第一件事就是纠结:使用什么框架,重造什么轮子?我很高兴应CSDN的邀请谈我的看法. RequireJS,前端技术发展分水岭 在五六年前,移动端还没有兴起,我们没有什么选择,就是jQuery.有人会说,jQuery只是类库,不是框架:但那时前端业务还没有像今天这么繁重,原本是后端干的事,全部挪到前端来,因为光是j…
目录:   1. 架构选型     2. 架构目录介绍     3. 架构说明     4. 招聘消息 目前如果要说比较流行的前端架构哪家强,屈指可数:reactjs.angularjs.emberjs.avalonjs.vuejs. 我个人接触使用过:avalonjs.angularjs.vuejs.因为工作以及前端团队能力的问题,所以在不同的公司,在开发工作中选用了不同的前端架构. 以下仅仅是代表我个人选用架构的一些看法和理由,如下: angular: 我觉得angularjs的学习上手周期…
通讯 作为一种跨语言开发模式,通讯层是Hybrid架构首先应该考虑和设计的,往后所有的逻辑都是基于通讯层展开. Native(以Android为例)和H5通讯,基本原理: Android调用H5:通过webview类的loadUrl方法可以直接执行js代码,类似浏览器地址栏输入一段js一样的效果 webview.loadUrl("javascript: alert('hello world')"); H5调用Android:webview可以拦截H5发起的任意url请求,webview…
通讯 作为一种跨语言开发模式,通讯层是Hybrid架构首先应该考虑和设计的,往后所有的逻辑都是基于通讯层展开. Native(以Android为例)和H5通讯,基本原理: Android调用H5:通过webview类的 loadUrl 方法可以直接执行js代码,类似浏览器地址栏输入一段js一样的效果 webview.loadUrl("javascript: alert('hello world')"); H5调用Android:webview可以拦截H5发起的任意url请求,webvi…
这两天开始读由Edward Crawley(爱德华 克劳利).Bruce Cameron(布鲁斯 卡梅隆).Daniel Selva(丹尼尔 塞尔瓦)著作的系统架构,一开始看目录以为是介绍系统软件架构的书,也是我买它的缘由,但粗略看完序和第一章第二章后不经肃然起敬,这本书是真的好,该书面向对象是适用于所有需要系统架构行业而不单单是软件行业.它系统地介绍了系统的概念,组成,功能,如何分解系统,抽象系统,组合系统等相关的理论,相信不管什么学科什么专业什么行业读这本书都会有所收获.决心仔细研读一遍.…
每个程序员.或者说每个工作者都应该有自己的职业规划,如果你不是富二代,不是官二代,也没有职业规划,希望你可以思考一下自己的将来.今天我给大家分享的是一篇来自阿里大牛对五年工作经验程序员的职业建议,希望对你们有启发. 第一阶段: Java程序员 Java初级程序员 第一阶段我认为对于程序员来说是第一个门槛,这个阶段将会淘汰掉一批不适合写代码的人.这一阶段,我们走出校园,迈入社会,成为一名程序员,正式从书本上的内容迈向真正的企业级开发. 第二阶段: Java中级程序员 企业标准程序员 第二阶段—又是…
阅读本文大约需要30分钟.这篇文章干货很多,希望你可以耐心读完. 你好, 我是华仔,在这个 1024 程序员特殊的节日里,又和大家见面了. 从这篇文章开始,我将对 Kafka 专项知识进行深度剖析, 今天我就来聊聊 kafka 的存储系统架构设计, 说到存储系统,大家可能对 MySQL 比较熟悉,也知道 MySQL 是基于 B+ tree 来作为它的索引数据结构. Kafka 又是基于什么机制来存储?为什么要设计成这样?它解决了什么问题?又是如何解决的?里面又用到了哪些高大上的技术? 带着这些疑…
在文章亚马逊可持续软件工程实践[1] 有这么一段我们为什么要关注"可持续发展": 联合国于 2015 年制定了一个全球框架<巴黎协定>[2],随后各缔约国纷纷制定了"碳中和"路径和目标,对地球环境的健康发展做出承诺.今年两会,中国也将"碳中和"和"碳达峰"写入政府工作报告,目标在 2030 年前实现"碳达峰",2060 年前实现"碳中和".毋庸置疑,可持续发展已经成为不言而喻…
写在前面: 有的时候再做大型项目的时候,确实会被复杂的路由逻辑所烦恼,会经常遇到权限问题,路由跳转回退逻辑问题.这几天在网上看到了51信用卡团队开源了一个Miox,可以有效的解决这些痛点,于是乎我就做了一些尝试,确实很不错,star增速也表明了业界对其的认可!由于自己能力有限,不能很好地解读Miox,于是我就把Miox作者的文章给搬过来了,希望对大家有所帮着.(跟作者聊过之后,了解到作者团队开发了2年多,沉淀了很深,后来选择了开源,如果大家觉得好的话,可以去点一下star!) github地址:…
首先请原谅本文标题取的有点大,但并非为了哗众取宠.本文取这个标题主要有3个原因,这也是写作本文的初衷: (1)目前国内几乎搜索不到全面讲解如何搭建前后端分离框架的文章,讲前后端分离框架思想的就更少了,而笔者希望在本文中能够全面.详细地阐述我们团队在前后端分离的摸索中所得到的搭建思路.最佳实践以及架构思想: (2)我们团队所搭建的前后端分离框架,并非只是将网上传播的知识碎片简单拼装,而是一开始就从全局出发,按照整个系统对前后端分离框架的最高期望进行设计,到目前为止,可以说我们的框架完全实现了对我们…
Spark Core面试篇01 随着Spark技术在企业中应用越来越广泛,Spark成为大数据开发必须掌握的技能.前期分享了很多关于Spark的学习视频和文章,为了进一步巩固和掌握Spark,在原有spark专刊基础上,新增<Spark面试2000题>专刊,题集包含基础概念.原理.编码开发.性能调优.运维.源代码以及Spark周边生态系统等.部分题集来源于互联网,由梅峰谷志愿者收集和整理,部分题集由梅峰谷志愿者结合生产实际碰到的问题设计出来,希望能给大家带来帮助. 一.简答题 1.Spark…
概述 本身是前端小白,学过html,css,js的各种书,各种视屏,就是没有接触web开发的内容.偶然看见一个朋友用react搭建了一个博客,于是本着程序员无所不能的精神,也尝试着用react搭建博客. 下面记录我从小白到搭建博客的过程,没有写方法,因为网上已经很多方法了. 这是我搭建的博客地址:馒头加梨子 结论 先说结论,我学到了什么: 单页面web开发的流程.把要做的分为一个个模块,逐个实现,然后用webpack设置,开发并打包上线. antd库的使用和一些组件的配置参数. 相关知识:SPA…
嵌入式系统 嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分.通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板.事实上,所有带有数字接口的设备,如手表.微波炉.录像机.汽车等,都使用嵌入式系统,有些嵌入式系统还包含操作系统,但大多数嵌入式系统都是是由单个程序实现整个控制逻辑.   简介 嵌入式系统(Embedded system),是一种“完全嵌入受控器件内部,为特定应用而设计的专用 计算机系统”,根据英国电器工程师协会( U.K. Institution of Elec…
我是2014年的时候开始了解知道的vue,当时vue还不太成熟,想用但是又怕自己hold不住,况且那时候vue还没有成熟的(路由.验证.ui组件)插件,社区也是不温不火的,再说也没有合适的机遇让我去项目中实践. 正好2015年9月离职了去了我朋友的一个移动互联部门,说好的只是做"前端开发"的工作,当时前端也就3个人,2个切图,没办法也就我主动的负责起了前端的架构设计这块的工作,当时接手的项目beta版本已经做了将近了50%的工作了,这是一个机场贵宾厅的服务型的产品应用,项目是用 $.l…