五维思考

学习要加,骄傲要减,机会要乘,懒惰要除。 http://www.5dthink.cn

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

10 2018 档案

摘要:升级啦,请点击 → VSCode最强插件推荐(持续更新) 本文介绍了目前前端开发最受欢迎的开发工具 VSCode 必装的 10 个开发插件,用于大大提高软件开发的效率。 VSCode(Visual Studio Code)是由微软研发的一款免费、开源的跨平台文本(代码)编辑器,算是目前前端开发几乎完 阅读全文
posted @ 2018-10-23 09:04 五维思考 阅读(74201) 评论(0) 推荐(2) 编辑

摘要:DateTime dt = DateTime.Now; //当前时间 DateTime startWeek = dt.AddDays(1 - Convert.ToInt32(dt.DayOfWeek.ToString("d"))); //本周周一 DateTime endWeek = startWeek.AddDays(6); //本周周日 DateTime startMonth = ... 阅读全文
posted @ 2018-10-19 21:09 五维思考 阅读(689) 评论(0) 推荐(0) 编辑

摘要:RBAC(基于角色的访问控制):英文名称Rose base Access Controller。本博客介绍这种模型的权限系统设计。取消了用户和权限的直接关联,改为通过用户关联角色、角色关联权限的方法来间接地赋予用户权限。从而实现了解耦。RBAC在发展过程中分为以下几个版本。RBAC0、RBAC1、R 阅读全文
posted @ 2018-10-17 14:17 五维思考 阅读(3048) 评论(0) 推荐(0) 编辑

摘要:0. 前言 一年前,我负责的一个项目中需要权限管理。当时凭着自己的逻辑设计出了一套权限管理模型,基本原理与RBAC非常相似,只是过于简陋。当时google了一些权限管理的资料,从中了解到早就有了RBAC这个东西。可惜一直没狠下心来学习。 更详细的RBAC模型非常复杂。本文只做了一些基础的理论性概述。 阅读全文
posted @ 2018-10-17 13:00 五维思考 阅读(570) 评论(0) 推荐(0) 编辑

摘要:算法一:快速排序算法 快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要Ο(n log n)次比较。在最坏状况下则需要Ο(n2)次比较,但这种状况并不常见。事实上,快速排序通常明显比其他Ο(n log n) 算法更快,因为它的内部循环(inner loop)可以在大部分的架 阅读全文
posted @ 2018-10-16 14:39 五维思考 阅读(392) 评论(0) 推荐(0) 编辑

摘要:一、前言 位运算在我们实际开发中用得很少,主要原因还是它对于我们而言不好读、不好懂、也不好计算,如果不经常实践,很容易就生疏了。但实际上,位运算是一种很好的运算思想,它的优点自然是计算快,代码更少。 二、基本知识介绍 二进制: 二进制是由1和0两个数字组成的,它可以表示两种状态,即开和关。所有输入电 阅读全文
posted @ 2018-10-16 14:24 五维思考 阅读(6728) 评论(0) 推荐(3) 编辑

摘要:我的基于WCF的SOA架构项目实战 http://www.uml.org.cn/soa/201112201.asp WCF实战(一):创建服务器类 https://blog.csdn.net/qiumuxia0921/article/details/41356577 WCF实战(二):使用IIS发布 阅读全文
posted @ 2018-10-15 22:10 五维思考 阅读(198) 评论(0) 推荐(0) 编辑

摘要:步骤如下: --1.开启远程查询支持 exec sp_configure 'show advanced options' ,1 reconfigure exec sp_configure 'Ad Hoc Distributed Queries',1 reconfigure --2.链接Excel M 阅读全文
posted @ 2018-10-10 11:16 五维思考 阅读(2185) 评论(0) 推荐(0) 编辑

摘要:在WEB Api中,引入了面向切面编程(AOP)的思想,在某些特定的位置可以插入特定的Filter进行过程拦截处理。引入了这一机制可以更好地践行DRY(Don’t Repeat Yourself)思想,通过Filter能统一地对一些通用逻辑进行处理,如:权限校验、参数加解密、参数校验等方面我们都可以 阅读全文
posted @ 2018-10-10 11:12 五维思考 阅读(5247) 评论(0) 推荐(1) 编辑

摘要:今天再来总结关于如何实现WebApi的身份验证,以完成该系列所有文章,WebApi常见的实现方式有:FORM身份验证、集成WINDOWS验证、Basic基础认证、Digest摘要认证 第一种:FORM身份验证(若在ASP.NET应用程序使用,则该验证方式不支持跨域,因为cookie无法跨域访问) 1 阅读全文
posted @ 2018-10-09 16:19 五维思考 阅读(24152) 评论(1) 推荐(2) 编辑

摘要:前面总结了三种方法,今天又将分享三种方法,完成WCF篇。 第四种:SOAP Header验证 首先定义一个WCF服务契约及服务实现类(后面的各种验证均采用该WCF服务),我这里直接采用默认的代码,如下: 服务契约定义: 服务实现Service1.svc: 然后就开始编写实现SOAP Header验证 阅读全文
posted @ 2018-10-09 16:11 五维思考 阅读(1192) 评论(0) 推荐(0) 编辑

摘要:WCF身份验证一般常见的方式有:自定义用户名及密码验证、X509证书验证、ASP.NET成员资格(membership)验证、SOAP Header验证、Windows集成验证、WCF身份验证服务(AuthenticationService),这些验证方式其实网上都有相关的介绍文章,我这里算是一个总 阅读全文
posted @ 2018-10-09 16:04 五维思考 阅读(3534) 评论(0) 推荐(2) 编辑

摘要:在这个WEB API横行的时代,讲WEB Service技术却实显得有些过时了,过时的技术并不代表无用武之地,有些地方也还是可以继续用他的,我之所以会讲解WEB Service,源于我最近面试时被问到相关问题,我这里只是重新复习一下并总结一下,给新手们指指路,大牛们可以无视之,当然不足之处还请大家指 阅读全文
posted @ 2018-10-09 15:48 五维思考 阅读(6009) 评论(0) 推荐(1) 编辑

摘要:一、引言 在上一篇博文分享了访问者模式,访问者模式的实现是把作用于某种数据结构上的操作封装到访问者中,使得操作和数据结构隔离。而今天要介绍的备忘者模式与命令模式有点相似,不同的是,命令模式保存的是发起人的具体命令(命令对应的是行为),而备忘录模式保存的是发起人的状态(而状态对应的数据结构,如属性)。 阅读全文
posted @ 2018-10-06 21:27 五维思考 阅读(321) 评论(0) 推荐(0) 编辑

摘要:一、引言 在上一篇博文中分享了责任链模式,责任链模式主要应用在系统中的某些功能需要多个对象参与才能完成的场景。在这篇博文中,我将为大家分享我对访问者模式的理解。 二、访问者模式介绍 2.1 访问者模式的定义 访问者模式是封装一些施加于某种数据结构之上的操作。一旦这些操作需要修改的话,接受这个操作的数 阅读全文
posted @ 2018-10-06 21:24 五维思考 阅读(355) 评论(0) 推荐(0) 编辑

摘要:一、引言 在现实生活中,有很多请求并不是一个人说了就算的,例如面试时的工资,低于1万的薪水可能技术经理就可以决定了,但是1万~1万5的薪水可能技术经理就没这个权利批准,可能就需要请求技术总监的批准,所以在面试的完后,经常会有面试官说,你这个薪水我这边觉得你这技术可以拿这个薪水的,但是还需要技术总监的 阅读全文
posted @ 2018-10-06 21:22 五维思考 阅读(540) 评论(0) 推荐(0) 编辑

摘要:一、引言 前面主题介绍的状态模式是对某个对象状态的抽象,而本文要介绍的策略模式也就是对策略进行抽象,策略的意思就是方法,所以也就是对方法的抽象,下面具体分享下我对策略模式的理解。 二、策略者模式介绍 2.1 策略模式的定义 在现实生活中,策略模式的例子也非常常见,例如,中国的所得税,分为企业所得税、 阅读全文
posted @ 2018-10-06 21:21 五维思考 阅读(556) 评论(0) 推荐(0) 编辑

摘要:一、引言 在上一篇文章介绍到可以使用状态者模式和观察者模式来解决中介者模式存在的问题,在本文中将首先通过一个银行账户的例子来解释状态者模式,通过这个例子使大家可以对状态者模式有一个清楚的认识,接着,再使用状态者模式来解决上一篇文章中提出的问题。 二、状态者模式的介绍 每个对象都有其对应的状态,而每个 阅读全文
posted @ 2018-10-06 21:16 五维思考 阅读(309) 评论(0) 推荐(0) 编辑

摘要:一、引言 在现实生活中,有很多中介者模式的身影,例如QQ游戏平台,聊天室、QQ群和短信平台,这些都是中介者模式在现实生活中的应用,下面就具体分享下我对中介者模式的理解。 二、 中介者模式的介绍 2.1 中介者模式的定义 从生活中的例子可以看出,不论是QQ游戏还是QQ群,它们都是充当一个中间平台,QQ 阅读全文
posted @ 2018-10-06 20:50 五维思考 阅读(399) 评论(0) 推荐(0) 编辑

摘要:一、引言 在现实生活中,处处可见观察者模式,例如,微信中的订阅号,订阅博客和QQ微博中关注好友,这些都属于观察者模式的应用。在这一章将分享我对观察者模式的理解,废话不多说了,直接进入今天的主题。 二、 观察者模式的介绍 2.1 观察者模式的定义 从生活中的例子可以看出,只要对订阅号进行关注的客户端, 阅读全文
posted @ 2018-10-06 14:36 五维思考 阅读(421) 评论(0) 推荐(0) 编辑

摘要:一、引言 在上篇博文中分享了我对命令模式的理解,命令模式主要是把行为进行抽象成命令,使得请求者的行为和接受者的行为形成低耦合。在一章中,将介绍一下迭代器模式。下面废话不多说了,直接进入本博文的主题。 二、迭代器模式的介绍 迭代器是针对集合对象而生的,对于集合对象而言,必然涉及到集合元素的添加删除操作 阅读全文
posted @ 2018-10-06 14:13 五维思考 阅读(360) 评论(0) 推荐(0) 编辑

摘要:一、前言 之前一直在忙于工作上的事情,关于设计模式系列一直没更新,最近项目中发现,对于设计模式的了解是必不可少的,当然对于设计模式的应用那更是重要,可以说是否懂得应用设计模式在项目中是衡量一个程序员的技术水平,因为对于一个功能的实现,高级工程师和初级工程师一样都会实现,但是区别在于它们实现功能的可扩 阅读全文
posted @ 2018-10-06 12:14 五维思考 阅读(351) 评论(0) 推荐(0) 编辑

摘要:一、引言 提到模板,大家肯定不免想到生活中的“简历模板”、“论文模板”、“Word中模版文件”等,在现实生活中,模板的概念就是——有一个规定的格式,然后每个人都可以根据自己的需求或情况去更新它,例如简历模板,下载下来的简历模板的格式都是相同的,然而我们下载下来简历模板之后我们可以根据自己的情况填充不 阅读全文
posted @ 2018-10-06 11:24 五维思考 阅读(471) 评论(0) 推荐(0) 编辑

摘要:一、引言 在软件开发过程中,有些对象有时候会由于网络或其他的障碍,以至于不能够或者不能直接访问到这些对象,如果直接访问对象给系统带来不必要的复杂性,这时候可以在客户端和目标对象之间增加一层中间层,让代理对象代替目标对象,然后客户端只需要访问代理对象,由代理对象去帮我们去请求目标对象并返回结果给客户端 阅读全文
posted @ 2018-10-06 11:02 五维思考 阅读(263) 评论(0) 推荐(0) 编辑

摘要:一、引言 在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非常严重,然而享元模式可以解决这个问题,下面具体看看享元模式是如何去解决这个问题的。 二、享元模式的详 阅读全文
posted @ 2018-10-05 17:35 五维思考 阅读(260) 评论(0) 推荐(0) 编辑

摘要:一、引言 在软件开发过程中,客户端程序经常会与复杂系统的内部子系统进行耦合,从而导致客户端程序随着子系统的变化而变化,然而为了将复杂系统的内部子系统与客户端之间的依赖解耦,从而就有了外观模式,也称作 ”门面“模式。下面就具体介绍下外观模式。 二、外观模式的详细介绍 2.1 定义 外观模式提供了一个统 阅读全文
posted @ 2018-10-05 16:54 五维思考 阅读(228) 评论(0) 推荐(0) 编辑

摘要:一、引言 在软件开发过程中,我们经常会遇到处理简单对象和复合对象的情况,例如对操作系统中目录的处理就是这样的一个例子,因为目录可以包括单独的文件,也可以包括文件夹,文件夹又是由文件组成的,由于简单对象和复合对象在功能上区别,导致在操作过程中必须区分简单对象和复合对象,这样就会导致客户调用带来不必要的 阅读全文
posted @ 2018-10-05 13:26 五维思考 阅读(327) 评论(0) 推荐(0) 编辑

摘要:一、引言 在软件开发中,我们经常想要对一类对象添加不同的功能,例如要给手机添加贴膜,手机挂件,手机外壳等,如果此时利用继承来实现的话,就需要定义无数的类,如StickerPhone(贴膜是手机类)、AccessoriesPhone(挂件手机类)等,这样就会导致 ”子类爆炸“问题,为了解决这个问题,我 阅读全文
posted @ 2018-10-05 11:56 五维思考 阅读(504) 评论(0) 推荐(0) 编辑

摘要:一、引言 这里以电视遥控器的一个例子来引出桥接模式解决的问题,首先,我们每个牌子的电视机都有一个遥控器,此时我们能想到的一个设计是——把遥控器做为一个抽象类,抽象类中提供遥控器的所有实现,其他具体电视品牌的遥控器都继承这个抽象类,具体设计类图如下: 这样的实现使得每部不同型号的电视都有自己遥控器实现 阅读全文
posted @ 2018-10-04 21:08 五维思考 阅读(388) 评论(0) 推荐(0) 编辑

摘要:一、引言 在实际的开发过程中,由于应用环境的变化(例如使用语言的变化),我们需要的实现在新的环境中没有现存对象可以满足,但是其他环境却存在这样现存的对象。那么如果将“将现存的对象”在新的环境中进行调用呢?解决这个问题的办法就是我们本文要介绍的适配器模式——使得新环境中不需要去重复实现已经存在了的实现 阅读全文
posted @ 2018-10-04 15:49 五维思考 阅读(339) 评论(0) 推荐(0) 编辑

摘要:一、引言 在软件系统中,当创建一个类的实例的过程很昂贵或很复杂,并且我们需要创建多个这样类的实例时,如果我们用new操作符去创建这样的类实例,这未免会增加创建类的复杂度和耗费更多的内存空间,因为这样在内存中分配了多个一样的类实例对象,然后如果采用工厂模式来创建这样的系统的话,随着产品类的不断增加,导 阅读全文
posted @ 2018-10-04 13:06 五维思考 阅读(365) 评论(0) 推荐(0) 编辑

摘要:一、引言 在软件系统中,有时需要创建一个复杂对象,并且这个复杂对象由其各部分子对象通过一定的步骤组合而成。例如一个采购系统中,如果需要采购员去采购一批电脑时,在这个实际需求中,电脑就是一个复杂的对象,它是由CPU、主板、硬盘、显卡、机箱等组装而成的,如果此时让采购员一台一台电脑去组装的话真是要累死采 阅读全文
posted @ 2018-10-04 12:01 五维思考 阅读(538) 评论(0) 推荐(0) 编辑

摘要:一、引言 在上一专题中介绍了工厂方法模式,工厂方法模式是为了克服简单工厂模式的缺点而设计出来的,简单工厂模式的工厂类随着产品类的增加需要增加额外的代码),而工厂方法模式每个具体工厂类只完成单个实例的创建,所以它具有很好的可扩展性。但是在现实生活中,一个工厂只创建单个产品这样的例子很少,因为现在的工厂 阅读全文
posted @ 2018-10-04 11:34 五维思考 阅读(563) 评论(0) 推荐(0) 编辑

摘要:一、引言 在简单工厂模式中讲到简单工厂模式的缺点,有一点是——简单工厂模式系统难以扩展,一旦添加新产品就不得不修改简单工厂方法,这样就会造成简单工厂的实现逻辑过于复杂,然而本专题介绍的工厂方法模式可以解决简单工厂模式中存在的这个问题,下面就具体看看工厂模式是如何解决该问题的。 二、工厂方法模式的实现 阅读全文
posted @ 2018-10-04 11:23 五维思考 阅读(416) 评论(0) 推荐(0) 编辑

摘要:一、引言 这个系列也是自己对设计模式的一些学习笔记,希望对一些初学设计模式的人有所帮助的,在上一个专题中介绍了单例模式,在这个专题中继续为大家介绍一个比较容易理解的模式——简单工厂模式。 二、简单工厂模式的介绍 说到简单工厂,自然的第一个疑问当然就是什么是简单工厂模式了? 在现实生活中工厂是负责生产 阅读全文
posted @ 2018-10-04 11:12 五维思考 阅读(533) 评论(0) 推荐(0) 编辑

摘要:一、引言 最近在设计模式的一些内容,主要的参考书籍是《Head First 设计模式》,同时在学习过程中也查看了很多博客园中关于设计模式的一些文章的,在这里记录下我的一些学习笔记,一是为了帮助我更深入地理解设计模式,二同时可以给一些初学设计模式的朋友一些参考。首先我介绍的是设计模式中比较简单的一个模 阅读全文
posted @ 2018-10-04 10:47 五维思考 阅读(684) 评论(0) 推荐(0) 编辑

摘要:常见的微服务架构用到的软件&组件: docker(成熟应用) spring boot % spring cloud(技术趋势) Service Fabric(属于后起之秀 背后是微软云的驱动) 四种常用的微服务架构方案,分别是ZeroC IceGrid、Spring Cloud、基于消息队列与Doc 阅读全文
posted @ 2018-10-03 19:47 五维思考 阅读(8823) 评论(0) 推荐(3) 编辑

QQ群:1. 全栈码农【346906288】2. VBA/VSTO【2660245】