原文内容提领: 本书第5章标题为泛化仿函数,我认为本章真正讲述的内容可以总结出一句话! 如何利用C++老标准实现C++11新标准类似std::function提供的功能. std::function简介: 分析std::function源码可知,std::function大量利用新标准的特性,变长参数模板,完美转发等. C++中可调用体: C++中的可调用体,现在可以补充一下 1.C-like function 2.C-like pointer to function 3.reference t…
勘误: 原书(中文版)3.13节,65-69页中GenScatterHierarchy以及FieldHelper均存在问题,当TypeList中类型有重复时,无法通过编译(原因在于“二义性基类”). 书中出现的二义性问题,可以用一小段代码演示一下: class A{}; class B:public A{}; class C:public A,public B{}; void test() { C c; A& cf =c;//wrong,don't try this at home. B&…
百度云及其他网盘下载地址:点我 译序by 侯捷 i 译序by 於春景 iii 目录 v 序言by scott meyers xi 序言by john vlissides xv 前言 xvii 致谢 xxi 第一篇 技术(techniques) 1 第1章 基于policy的class设计(policy-based class design) 3 1.1 软件设计的多样性(multiplicity) 3 1.2 全功能型(do-it-all)接口的失败 4 1.3 多重继承(multiple in…
1.以设计为目标的程序库都必须帮助使用者完毕静止的设计.以实现使用者自己的constraints,而不是实现预先定义好的constraints. 2.Anything that can be done in more than one way should be identified and migrated from the     class to a policy 3.Design is choice. Most often, the struggle is not that there…
http://blog.csdn.net/zhoudaxia/article/details/4486487 这篇博客讲得挺清楚的,本来想自己写写看总结下的,不过看了下这个文章已经写得很清楚了,倒没有必要了,总得来说,要了解traits和policy,需要了解下面这三个点 1.什么是特化,什么是偏特化 顾名思义,特化就是针对一些特殊的类型进行变化,毕竟C++的模板是什么类型都能放进去的,但是有些类型就是比较独特,需要做特别的处理,这个就有了特化和偏特化,在这篇博客中作者特化了Accumulati…
PowerBuilder编程新思维3:适配(三层架构与GraphQL) PB在富客户端时代,是一线开发工具.随着网络发展,主流架构演进到三层架构的时代,PB拿不出有力的三层架构,已经明显力不从心,市场份额也江河日下.今天我们来细数一下PB的三层架构方式及其改进方法. PB三层架构方式一:EAServer 这是PB官方首推的三层架构,但是用三句可以总结,无感的体验,无奈的价格,无语的速度. 事实上除了EAServer这个选择,可以自己开发服务端,比如topwiz公司的PBNIServ 使用BPNI…
PowerBuilder编程新思维2:嵌入(Thread多线程) 在PB中使用多线程,在网上有大量的文章介绍.不过深入研究并试着给出更易用的模型的,目前还只有"路人甲cw"的一篇<关于PowerBuilder多线程的一些心得>. 因为PB多线程有着许多天然的限制,使用中有很多问题,那么简化模型是个必然的方向.由于我们引入了LUA脚本,使得多线程模型变得出人意料的简单. PB线程模型 原本的PB线程,依赖于SharedObjectRegister,SharedObjectGe…
atitit.TokenService v3 qb1  token服务模块的设计 新特性.docx 1.1. V3 新特性1 1.2. V2 新特性1 2. Token的归类1 3. Token的用途2 3.1. 访问控制2 3.2. 编译原理术语)编辑2 3.3. 数据处理2 3.4. 标准化api2 1.1. V3 新特性 Utype>>utyp $uid_cukname:  支持,.便于页面级别指定.. 1.2. V2 新特性 增加了对usertype的支持 简化了api的使用 调整了一…
1 意图:将一个请求封装为一个对象,可以用不同的请求对客户进行参数化: 对请求排队或记录请求日志,以及支持可撤销的操作. 2 别名:Action.Transaction 3 动机:把请求变成一个对象.关键是定义一个抽象的Command类,定义一个执行操作的接口.最简单有一个抽象的Execute操作. 具体的Command子类将接收者作为一个实例变量,实现Execute,指定接收者采取的动作. 有时需要执行一系列的命令,定义一个MacroCommand来执行任意数目的命令.序列中的命令各自定义接收…
PowerBuilder编程新思维5:包装(界面美化与WebUI+React) 前一节,分析了三种界面美化方案,都是控件级的美化.今天再来分析一下窗口级的美化.上一次讲的DirectUI,大家反响一般,效果和创新都不足.那是没有讲完的原故.今天……还是没有讲完,不过效果应该还行吧:). PB界面美化方案四:DirectUI包装 Hook的方式使用DirectUI,是局限在控件里.如果创建一个类似Canvas的可视控件,把所有控件包装在一个(或几个)控件里面,我把这种方式称之包装(Wrap). 在…
<第二部分 Outside> PowerBuilder编程新思维4:钩挂(界面美化与DirectUI) PB的界面由于其封闭性,一直以来都是最大的弱项.自PB9.0开放了PBNI接口后,开始流行起来一些界面美化方案.目前来看,共分三类. PB界面美化方案一:Canvas自绘 PBNI接口允许创建自绘组件,开源软件Kodigo创造了Canvas组件,允许PB代码自绘组件界面,由此开创了Canvas自绘方案.当前比较流行的组件库有: 一.Kodigo 二.AdvancedGUI 三.PowerFr…
前言 PowerBuilder作为开发工具退出一线行列已经很久了,在2019年来谈这样一款老旧的编程工具是否有意义?诚然,PB有着太多硬伤,但还是有它的用武之地的.而且今天讲的这个“新思维”大部分内容是我在其它地方没有见过的,包含一些比较新的思想,但愿能够给各位读者带来耳目一新的感觉和有价值的参考. 由于内容比较多,打算合起来作为一个库,名字叫PowerPlume,中文为“孔雀翎”,古龙书中强大又美丽的武器. PowerBuilder编程新思维1:扩展(Lua) PB环境是封闭的,导致有些部分的…
atitit.jQuery Validate验证框架详解与ati Validate 设计新特性 1. AtiValidate的目标1 2. 默的认校验规则1 2.1. 使用方式 1.metadata用法,将校验规则写到控件中2 2.2. 2.将校验规则写到js代码中2 3. 校验2 4. jquery的validate问题3 1. AtiValidate的目标 支持验证单个元素 支持后端服务器验证 支持html ext 标签的属性书写方式 可以在btn-click时间中手动调用. 2. 默的认校…
  FS系统开发设计(思维导图) 最近做了一个小系统,公司应急,要对各个部门进行费用成本核算分摊,做运维,苦于无奈,简简单单的设计了一下,模仿用友ERP软件,首先对DB进行了初步设计,总体如下: 未完待续,首次用XMind做的,验证一下效果.…
搬地方了,其他的部分看知乎:https://zhuanlan.zhihu.com/p/22114481 直到50年代,perceptron被Frank Rosenblatt搞了出来.perceptron的想法和pitts的路子就不大一样,perceptron关注MP神经元(MPN)本身的,而不是神经元在大脑中存在的复杂拓扑,所以其中除了MPN以外,没有其他的生物学含义. 按照Pitts的证明,一个开环的正向网络是可以满足所有的计算需求的.Rosenblatt沿着这条思路挖下去,发明了一套直接使用…
在之前的java 23 中,了解过设计模式的单例模式和工厂模式.在这里,介绍下设计模式 面向对象思想设计原则 在实际的开发中,我们要想更深入的了解面向对象思想,就必须熟悉前人总结过的面向对象的思想的设计原则 单一职责原则 开闭原则 里氏替换原则 依赖注入原则 接口分离原则 迪米特原则 单一职责原则 其实就是开发人员经常说的"高内聚,低耦合" 也就是说,每个类应该只有一个职责,对外只能提供一种功能,而引起类变化的原因应该只有一个.在设计模式中,所有的设计模式都遵循这一原则. 开闭原则 核…
2016年7月22日,「HPE&msup软件技术开放日」将在上海浦东新区,张江高科技园区纳贤路799号科荣大厦小楼2楼举办,msup携手HPE揭秘全球测试中心背后的12条技术实践. 徐盛:HPE测试中心总监.徐盛将在本次开放日带来<软件测试新趋势>的分享,在开放日举办之前,主办方特别对徐盛进行了采访,提前剧透在软件测试新趋势下HPE如何进行测试和质量管理. msup:移动互联的到来给测试带来了哪些挑战? 徐盛:开发移动应用确实给我们的开发和测试人员都带来了新的挑战.我们大致总结了3个方…
客户关系管理系统(CRM系统)是管理公司当前以及未来潜在客户的系统,其主要目的是通过优化客户关系实现公司销售业绩的长期增长,它是企业信息系统的核心之一.目前,移动互联网.大数据以及人工智能技术发展日新月异,正在加速改变世界.但是在CRM等企业系统的构建和优化方法论上,却缺乏革命性的创新.本文作者在构建和优化CRM系统的过程中总结出一些新方法论,与当下的一些先进理念不谋而合.每个具体的理念虽然并非原创,应用在CRM系统构建中还算新颖,并且所有的理念一起构成一个完整的体系.希望这些对负责CRM系统开…
14.总结 首先,这是一本太老的书,很多观点已经被固化或者过时了.但核心观点没有问题,虽然大多数观点已经被认为是理所当然的事情了.   重构的定义 重构分几种: 1.狭义的代码重构   就是本书讲的,在不改变软件可观察行为的前提下,改变其内部结构.这就是完全不改变程序的功能,只是改变代码的组织方式,也就是只是整理代码而已,目的是优化代码架构,而不是优化行为.算法.逻辑或流程. 2.普通意义的重构 事实上,我们一般很少会去做纯粹的重构,所以,了解了软件行为,从行为.算法.逻辑或流程上进行优化,,往…
1.AngularJS: 开源的JS框架,用来开发单一页面应用,以及数据操作频繁的场景:2.设计原则: ①YAGNI原则:You Aren't Gonna Need It! 不要写不需要的代码! ②KISS原则:Keep It Simple and Stupid! 代码保持简洁和具有表现力! --语义化标记.注释.变量或者方法的命名.减少嵌套: ③DRY原则:Don't Repeat Yourself! 模块的封装! --提高代码复用率,降低测试难度方便后期的迭代和维护: ④high cohes…
为进一步了解这种连接性产生的差异,在认识soma这个独立的逻辑单元后,进化过程设计了一整套系统设计来使用这个逻辑单元.为促成细胞体之间发生连接构成系统dendrite和axon之间的连接需要引入新的功能单元Synapses.Synapse叫做突触,书上说得特别好,这玩意是特指细胞间通讯的部位,它本身不是一种细胞,而是细胞之间的连接点. 输入和输出的信号沿着神经纤维一直传递,这种单一材质内的活动(这种信号估计是离子迁移,我看的资料没咋说清楚)按照最快120m/s的速度在Dendrite和Axon中…
.browse r eax .browse <command>将会显示新的命令浏览窗口和运行给出的命令…
原文:http://www.linuxidc.com/Linux/2013-08/89105.htm 1. GlusterFS概述 GlusterFS是一个开源的分布式文件系统,具有强大的Scale-Out横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端.GlusterFS借助TCP/IP或InfiniBand RDMA网络将物理分布的存储资源聚集在一起,使用单一全局命名空间来管理数据.GlusterFS基于可堆叠的用户空间设计,可为各种不同的数据负载提供优异的性能. Gluster…
原文地址 导语:"我很惊讶地发现,现在许多程序员讨论的内容几乎和我十多年前刚开始做 Java 时几乎完全一样.要知道,我们生存的这个行业号称是变化飞快的.其实,这十几年时间,在开发领域已经有了非常多的新内容涌现出来,即便是 Java 开发这个领域,也有了很多变化--" --郑晔 1995年5月23日,Java 语言正式诞生: 1996年1月,JDK1.0发布: 2000年5月,JDK1.3.JDK1.4 相继发布: 2004年9月,J2SE 1.5发布: 2009年12月,Java E…
GlusterFS 是一个开源的网络分布式文件系统,前一阵子看了一点GlusterFS(Gluster)的代码,修改了部分代码,具体是增加了一个定制的xlator,简单记录一下. Gluster与xlator 随着计算机技术的发展,不管哪一个领域的数据都呈现出爆炸性增长的趋势,因此产生了大数据处理与存储技术.单机的存储基本不可能满足大量离线数据(文本)的存储需求了,于是在网络分布式文件系统越来越受到重视.开源的分布式文件系统非常多,GlusterFS,Lustre,Ceph,HDFS,FastD…
现在有许多互联网项目都是采用分布式结构进行部署.而cap定理是分布式系统中最近出的原则.所以对于哦我们来说,学习cap非常重要.CAP定理又称为布鲁尔定理.CAP定理是指对于一个分布式系统,不能同时满足一致性,可用性,分区容错性. 一致性(Consisteny)是指,对于任何客户端来说,每次的读操作,都能获得最新的数据.即.当有客户端向A节点写入了新数据之后.从节点B读到的数据也是最新的,与A节点数据保持一致.可用性(Availability)是指,每个请求都能在合理的时间内获得符合预期的响应.…
UX设计总是在不断变化中.最近短短两年的时间里,我们已经看到,很多地方都大规模采用颠覆性技术,比如语音用户界面,混合现实和智能家居设备.设计这些体验的实际过程可能保持不变,但新技术的出现引发了新的行为习惯,需要新的经验和解决方案. 随着我们进入2019年,以用户为中心的设计将成为公司的首要任务.这使得UX设计领域成为主流,成为商业/客户关系的一个重要组成部分. 考虑到这一点,让我们仔细看看在未来12个月内有可能成为“大事”的新兴用户体验趋势. 个性化体验 “一刀切”和“大规模生产”的意识形态在2…
最近换了新工作,面试过程中有多多少少的问题没有给的出答案,为自己的技术短板而促急. javascript中万物皆对象(键:值构成的一种数据),暂且不讨论这个句话的对与错,可以想象对象在javascript中的重要性,而面向对象的设计模式更是走向高级前段开发的必须要技能. 创建对象的三种方式 字面量创建对象 //1.创建一个空对象 var obj = {}; //2.obj对象添加属性 obj.name = 'obj'; //3.obj对象添加方法 obj.toString = function(…
首先我们先来看 UML 图: 参考资料: java设计模式-Command(命令)模式 - - ITeye技术网站http://men4661273.iteye.com/blog/1633775 JAVA设计模式九--Command(命令模式) - hfmbook的专栏 - 博客频道 - CSDN.NEThttp://blog.csdn.net/hfmbook/article/details/7681914 注:这篇文章的博主,还有其他的文章也值得阅读. 设计模式 ( 十三 ) 命令模式Comm…
大家好,欢迎来到设计模式专题,我们的主旨是介绍一些有趣好玩的设计模式. 今天我们介绍的设计模式叫做命令模式(command),在这个模式下,我们可以实现do和undo的解耦,让使用方不用关心内部的实现细节. command模式 这个模式我们在日常当中经常使用,举一个很简单的例子,比如说我们发布代码.发布了之后发现不小心发布上去了一个bug,这个时候我们应该做什么?很简单,就是回滚,把线上的代码回滚到这一次发布之前的代码.这样我们这次发布带来的改动就会被消除,那么就避免了bug的产生. 那么,对于…