接上篇<[Geek议题]合理的VueSPA架构讨论(上)>传送门. 自动化维护登录状态 登录状态标识符跟token类似,都是需要自动维护有效期,但也有些许不同,获取过程只在用户登录或注册的时候,不需要自动获取. 本人比较推荐使用公共状态管理vuex进行自动化管理,并配合路由钩子,减少代码编写时的顾虑. 妙用公共状态管理维护userId 示例中公共状态管理中的user模块里定义了userIdObj,其中包含了userId登录状态标识符和过期时间. 维护userId是否过期主要是通过vuex中的g…
前言 web前端发展到现代,已经不再是严格意义上的后端MVC的V层,它越来越向类似客户端开发的方向发展,已独立拥有了自己的MVVM设计模型.前后端的分离也使前端人员拥有更大的自由,可以独立设计客户端部分的架构. [科普]MVVM是Model-View-ViewModel的简写.它本质上就是MVC 的改进版.MVVM 就是将其中的View 的状态和行为抽象化,让我们将视图 UI 和业务逻辑分开.当然这些事 ViewModel 已经帮我们做了,它可以取出 Model 的数据同时帮忙处理 View 中…
微信架构 & 支付架构(上) 一. 微信和支付宝对比 这两者现在已经占领了移动支付的90%市场,支付形式也都大抵相同,只是在实现细节上略微不同.这里之所以要专门对比,是因为有些接口的不同在后边的框架的设计中也会有所影响.主要集中在以下几个方面: 1. 支付方式上: a. 支付宝多了一个声波支付 b. 手机端H5支付方式中, 微信只支持微信内部浏览器 c. 微信用户扫码方式中除了正常下单返回支付二维码,还提提供了回调下单模式(即扫描的二维码并不是支付二维码,而是商品二维码,微信会回调商户指定地址才…
Pass Infrastructure基础架构(上) Operation Pass OperationPass : Op-Specific OperationPass : Op-Agnostic Dependent Dialects Analysis Management Querying Analyses Preserving Analyses Pass Failure Pass Manager OpPassManager Dynamic Pass Pipelines Instance Spe…
高能预警:本文内容过于硬核,涉及编译器原理.cpu指令集.机器码.编程语言原理.跨平台原理等计算机专业基础知识,建议具有c.c++.java.nodejs等多种编程语言开发能力,且实战经验丰富的资深开发者阅读. 背景 全面的国产化即将来临之时,不仅是操作系统,cpu也会使用国产化芯片作为替换,那么龙芯cpu作为国产cpu龙头,当仁不让,成为国产化替换的首选,硬件条件已经满足了,作为软件开发者,基于龙芯架构的软件当然也要适配起来了. 支持龙芯的操作系统 由于龙芯目前只支持某些特定的linux发行版…
前言 现在cross-origin resource sharing(跨域资源共享,下简称CORS)已经十分普及,算上IE8的不标准兼容(XDomainRequest),各大浏览器基本都已支持,当年为了前后端分离.iframe交互和第三方插件开发而头疼跨域是时代已经过去,但当年为了跨域无所不用其极的风骚操作却依然值得学习. 本篇文章不是从实用的角度考量这些旧时代的跨域手段,而是更偏向理论的阐述,并引发对浏览器安全的思考,因为跨域实际上也是各类攻击的核心. 本人个人能力有限,欢迎大牛一起讨论,批评…
例会照片 任务更新 姓名 今日完成任务 实际花费时间 明日任务 预计花费时间 谢振威 继续构思beta版本架构并且输出文档 2h #40数据库模块接口定义 2h 杨金键 继续构思beta版本架构并且输出文档 2h #36确定整体接口, 搭建初步的dll框架 2h 谷大鑫 参与会议,昨日任务未完成 1.5h #28ajax交互方法实现技术博客 3h 崔正龙 #30Bootstrap 前端框架学习笔记输出博客 1h #31去噪模块word部分接口定义和关键词部分模块接口定义 2h 金豪 #29Cra…
Kubernetes Cluster 由 Master 和 Node 组成,节点上运行着若干 Kubernetes 服务. Master 节点 Master 是 Kubernetes Cluster 的大脑,运行着如下 Daemon 服务:kube-apiserver.kube-scheduler.kube-controller-manager.etcd 和 Pod 网络(例如 flannel). API Server(kube-apiserver) API Server 提供 HTTP/HTT…
随着近十年互联网的迅猛发展,越来越多的人融入了互联网——利用搜索引擎查询词条或问题:社交圈子从现实搬到了Facebook.Twitter.微信等社交平台上:女孩子们现在少了逛街,多了在各大电商平台上的购买:喜欢棋牌的人能够在对战平台上找到世界各地的玩家对弈.在国内随着网民数量的持续增加,造成互联网公司的数据在体量.产生速度.多样性等方面呈现出巨大的变化. 互联网产生的数据相较于传统软件产生的数据,有着数据挖掘的巨大潜力.通过对数据的挖掘,可以统计出PV.UV,计算出不同设备与注册率.促销与下单率…
Kubernetes Cluster 由 Master 和 Node 组成,节点上运行着若干 Kubernetes 服务. Master 节点 Master 是 Kubernetes Cluster 的大脑,运行着如下 Daemon 服务:kube-apiserver.kube-scheduler.kube-controller-manager.etcd 和 Pod 网络(例如 flannel). API Server(kube-apiserver) API Server 提供 HTTP/HTT…
Hadoop YARN架构解读 原Mapreduce架构 原理架构图如下: 图 1.Hadoop 原 MapReduce 架构 原 MapReduce 程序的流程:首先用户程序 (JobClient) 提交了一个 job,job 的信息会发送到 Job Tracker 中,Job Tracker需要与集群中的机器定时通信 (heartbeat), 需要管理哪些程序应该跑在哪些机器上,需要管理所有 job 失败.重启等操作.TaskTracker 是 Map-reduce 集群中每台机器都有的一个…
背景:这年小P已经参加工作4年了,在前同事Z的极力劝说下,小P加入了Z新开的公司Y,公司一共有三个人:老板Z.程序员小P.前台W.项目名为XX交易系统 小P加班加点,终于在两个月后把系统开发完成,版本为V1.0,这中间还包括需求分析(其实就是跟老板聊),概要设计.而系统的架构也是简单得不能再简单,如下图: 前台和后台都是最简单的java web,使用了当时最常用的SSH(Spring.Struts.Hibernate)框架,前端直接用了jsp(即html中嵌入java代码段)+jquery. 而…
前言 ​ 我们将先从Redis.Nginx+Lua等技术点出发,了解缓存应用的场景.通过使用缓存相关技术,解决高并发的业务场景案例,来深入理解一套成熟的企业级缓存架构如何设计的.本文Redis部分总结于蒋德钧老师的<Redis核心技术与实战>. Redis基础 简介 Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. ​ 它通常被称为数据结构服务器,因为值(value)可以是 字符串(Str…
前言 "微服务"一词源于 Martin Fowler的名为 Microservices的,博文,可以在他的官方博客上找到http:/ /martinfowler . com/articles/microservices.html简单地说,微服务是系统架构上的一种设计风格,它的主旨是将一个原本独立的系统拆分成多个小型服务,这些小型服务都在各自独立的进程中运行,服务之间通过基于HTTP的 RESTfuL AP进行通信协作.常见微服务框架:Spring的spring cloud.阿里dubb…
模块化 怎么分模块 AngularJS自己有模块的概念,但只是为controller.direcitive.service等提供一个集合的概念,并没有文件调度的功能. 官方推荐的模块分类方法是: angular.module('app',['app.directive','app.controller','app.service']) 简单应用的话,这样分很方便.但是当controller.direcitive等都多了,并且互相有关联的时候(比如某个direcitive需要自己的controll…
前言 在Linux系统中,用户分为 个权限位.好了,很多朋友对于Linux权限的了解就仅限于此了.但,Linux目录权限和文件权限一样吗?内核对于权限的检查过程又是怎样的? 如果你不清楚,本文将为你解惑. 目录权限 1. 目录读权限 目录读权限允许读取目录的文件列表并显示出来,仅仅是允许读取文件列表,对于文件其他信息的读取不保证. 事实上,如果只有读权限没有写权限,那么执行查看目录后显示如下: 2. 目录写权限 如果要在目录里面创建文件,那么就需要写权限,别忘了,也要执行权限. 3. 目录执行权…
前言 在Linux系统中,用户分为三个部分( 所有者 同组人 其他 ).每个部分的权限又可以赋予读/写/执行权限.这样,文件的权限标记一共包含 9 个权限位.好了,很多朋友对于Linux权限的了解就仅限于此了.但,Linux目录权限和文件权限一样吗?内核对于权限的检查过程又是怎样的?如果你不清楚,本文将为你解惑. 目录权限 1. 目录读权限 目录读权限允许读取目录的文件列表并显示出来,仅仅是允许读取文件列表,对于文件其他信息的读取不保证. 事实上,如果只有读权限没有写权限,那么执行查看目录后显示…
环境 Ubuntu aarch64(好像是arm8的一种) Docker安装指南:https://docs.docker.com/install/linux/docker-ce/ubuntu/ Gogs容器安装指南:https://github.com/gogs/gogs/tree/master/docker 结果提示 standard_init_linux.go:207: exec user process caused "exec format error" 可气的是没有find到…
本节主要介绍解决方案中的Microsoft.Framework.Logging.Abstractions.Microsoft.Framework.Logging俩个工程. 这俩个工程中所有类的关系如下图所示: 首先我们可以发现处于核心的是中间的四个接口:ILogger.ILoggerFactory.ILoggerProvider.ILogValues. ILogger:记录日志的接口,所以写日志的类都该实现该接口,工程中有俩个类实现了该接口:Logger.Logger<T> ILoggerFa…
大家好,我是来自 Juicedata 的高昌健,今天想跟大家分享的主题是<JuiceFS 在数据湖存储架构上的探索>,以下是今天分享的提纲: 首先我会简单的介绍一下大数据存储架构变迁以及它们的优缺点,然后介绍什么是 JuiceFS,其次的话会再重点介绍一下关于 JuiceFS 和数据湖的一些结合和关联,最后会介绍一下 JuiceFS 和数据湖生态的集成. 大数据存储架构变迁 纵观整个大数据存储架构的变迁,可以看到有非常明显的三个阶段:第一个阶段就是从最早的 Hadoop.Hive 等项目诞生之…
文章写到这里,我一直在犹豫是继续写针对中小型框架的设计还是写些框架设计上的进阶方面的内容?对于中小型系统来说,只要将前面的内容进行一下细化,写上二三十章具体开发上的细节,来说明这个通用框架怎么开发的就已完全足够了,因为对于中小型系统来说,并不是很复杂,简单的了解三层架构就已经够用了,而使用太多的设计反而有点罗嗦,因为基本上没有什么人会为中小型系统花费太多的设计工作.而对于设计大型平台的框架设计,又深深感到自己的积累还远远不够,写出来怕会误导大家.但不换个思维来讲述也很难说清框架的设计思想,别人拿…
前面介绍了应用程序框架的一个重要组成部分——公共操作类,并提供了一个数据类型转换公共操作类作为示例进行演示.下面准备介绍应用程序框架的另一个重要组成部分,即体系架构支持.你不一定要使用DDD这样的架构,使用单层架构和普通三层架构一样可以,不过你如果希望获得更进一步的复用性和封装度,使用更加面向对象的技术是必经之程. 我在2010年以前还在使用古老的ASP.NET WebForm和原始的Ado.Net.之前我有个观念:.NET技术发展太快,跟着微软屁股后面跑太累,所以只使用它一些原始的东西,自己封…
从本节开始我们学习 OpenStack 的 Block Storage Service,Cinder 理解 Block Storage 操作系统获得存储空间的方式一般有两种: 通过某种协议(SAS,SCSI,SAN,iSCSI 等)挂接裸硬盘,然后分区.格式化.创建文件系统:或者直接使用裸硬盘存储数据(数据库) 通过 NFS.CIFS 等 协议,mount 远程的文件系统 第一种裸硬盘的方式叫做 Block Storage(块存储),每个裸硬盘通常也称作 Volume(卷) 第二种叫做文件系统存…
本文由CocoaChina译者lynulzy(社区ID)翻译 作者:Bohdan Orlov 原文:iOS Architecture Patterns 在 iOS 中使用 MVC 架构感觉很奇怪? 迁移到MVVM架构又怀有疑虑?听说过 VIPER 又不确定是否真的值得切换? 相信你会找到以上问题的答案,如果没找到请在评论中指出. 你将要整理出你在 iOS 环境下所有关于架构模式的知识.我们将带领大家简要的回顾一些流行的架构,并且在理论和实践上对它们进行比较,通过一些小的例子深化你的认知.如果对文…
周爱民,现任豌豆荚架构师,国内软件开发界资深软件工程师.从1996年起开始涉足商业软件开发,历任部门经理.区域总经理.高级软件工程师.平台架构师等职,有18年的软件开发与架构.项目管理及团队建设经验,曾任盛大网络平台架构师.支付宝业务架构师,是 Borland Delphi 产品技术专家,也是 Qomo 开源项目(JavaScript)的发起者.2003年5月被美国 Borland 公司授予「Borland Delphi 产品专家」称号,并授予「论坛特别贡献奖」.著有<大道至简——软件工程实践者…
前言 今天是个开心的日子,又是周末,可以安心轻松的写写文章了.经过了大概3年的DDD理论积累,以及去年年初的第一个版本的event sourcing框架的开发以及项目实践经验,再通过今年上半年利用业余时间的设计与开发,我的enode框架终于可以和大家见面了. 自从Eric Evan提出DDD领域驱动设计以来已经过了很多年了,现在已经有很多人在学习或实践DDD.但是我发现目前能够支持DDD开发的框架还不多,至少在国内还不多.据我所知道的java和.net平台,国外比较有名的有:基于java平台的是…
MINA架构 这里,我借用了一张Trustin Lee在Asia 2006的ppt里面的图片来介绍MINA的架构. Remote Peer就是客户端,而下方的框是MINA的主要结构,各个框之间的箭头代表数据流向. 大家可以对比刚刚的例子来看这个架构图,IoService就是整个MINA的入口,负责底层的IO操作,客户端发过来的消息就是由它处理.刚刚我们使用的IoAcceptor就是一个IoService,之所以抽象成IoService,是因为MINA用同样的架构来处理服务器和客户端编程,IoSe…
Lab 1: 应用程序建模 实验目标 这个实验的目的是展示如何在Visual Studio 2010旗舰版中进行应用程序建模.团队中的架构师会通过建模确定应用程序是否满足客户的需求. 你可以创建不同级别的详细模型,并将它们彼此结合.测试然后发布到你的开发计划里. 在这个实验中, 我们将重点放在如何创建一系列简单的系统建模图形上. 每个练习应该在 30分钟内完成. Exercise 1 – 理解用户需求 绘制活动.类以及其他UML图形能帮助架构师清晰辨别客户的习惯.业务规则以及其他需求,从而使设计…
pomelo之所以简单易用.功能全面,并且具有高可扩展性.可伸缩性等特点,这与它的技术选型和方案设计是密不可分的.在研究大量游戏引擎设计思路基础上,结合以往游戏开发的经验,确定了pomelo框架的设计方案. pomelo为什么采用node.js开发? node.js自身特点与游戏服务器的特性惊人的吻合. 在node.js的官方定义中, fast.scalable.realtime.network这几个特性都非常符合游戏服务器的要求.游戏服务器是个网络密集型的应用,对实时性要求极高,而node.j…
这种资料.向来可遇不可求啊 WikiPedia 技术架构学习分享 http://www.dbanotes.net/opensource/wikipedia_arch.html YouTube 的架构扩展 http://www.dbanotes.net/opensource/youtube_web_arch.html Internet Archive 的海量存储浅析 http://www.dbanotes.net/database/internet_archive_storage.html Lin…