精华内容
下载资源
问答
  • 历史背景 马老师13年参观欧洲的游戏公司:Supercell,将该公司的Supercell...中台的强大重点在“”,而不是一味的“大而一统”,要真正能为前台采取快速行动提供有价值的火力支援。 有了中台,前台的业务不用从0

    历史背景

    马老师13年参观欧洲的游戏公司:Supercell,将该公司的Supercell模式,引进到阿里系统

    Supercell特点:将基础服务和算法形成整体方案。可以支撑上层游戏不断更新,业务可以快速试错,取得成果。

    阿里集团:交易链路,淘宝、天猫、聚划算、等等都有很多相似的系统:比如订单、会员、库存、供应链、仓储等等。可以统一能力成中台,为前台提供技术支撑和复用。

    中台的强大重点在“强”,而不是一味的“大而一统”,要真正能为前台采取快速行动提供有价值的火力支援。

    有了中台,前台的业务不用从0开始,可以从60%、70%开始发展,起点很高,只需要开发差异的逻辑即可。

     

    什么是中台

    避免重复建设,快速支撑上层业务发展。

    特征:

    1:中台为业务平台提供能力。

    2:中台具有业务属性,可复用的技术能力和业务能力的整合。

    中台用户是谁:任何业务形态,只要能使用到中台能力的业务。

    常见的中台定义:技术中台、业务中台

     

    平台与中台区别

    单纯的技术能力复用,是技术平台,不是终态。

    单纯的业务复用,如订单中心,不是中台,是业务平台。

    技术平台+业务平台,可能是中台。

    中台很可能具备业务和技术的复用。对业务提升不止50%。可以侧面通过是否对业务有极大的提升判断是否是中台。

     

    小前台

    用一个“快速反应团队”代之较为合适。

    据说(未证实)马老师曾经说前方作战单位尽量小,小到一顿宵夜只点3斤小龙虾就够。后方能支援他们的力量尽量大,大到像美军作战一样导弹火箭一应俱全。也就是说5人、7人、最多十几个人组成的团队,不宜过大。过大了惯性也会比较大,掉头就比较不容易。不利于快速反应、创新、试错。

    但这“小” 也不是个绝对标准,其实是相对“小”,不用刻意追求数量的少,而是 追求足够敏捷灵动的状态即可。  

     

    PS:抛个观点,不一定对。

    展开全文
  • 文章目录背景实现总结 背景 最近一直在深入剖析古铁的构造,甚至连骨头都不放过。谁叫古铁那么受欢迎呢?...古铁的主要工作是行动、攻击,维修这种非本职工作一般外包给别人干的,只需要提供一个访问的接口...

    文章目录

    背景

    最近一直在深入剖析古铁的构造,甚至连骨头都不放过。谁叫古铁那么受欢迎呢?今天也不例外,来看看古铁的设计思想,就会明白古铁为什么这么强!在这里,我给大家灌输一波鸡汤,正所谓:成大事者不拘小节。成功的人应当把时间和精力花在对自己最重要的事情上,而不是为了一些鸡毛蒜皮的小事浪费时间。
    古铁的主要工作是行动、攻击,维修这种非本职工作一般是外包给别人干的,只需要提供一个访问的接口,让别人来帮古铁维修,具体实现细节如下。

    实现

    机体抽象类

    /**
     * 机体抽象类
     */
    public abstract class Robot {
    	
    	private String name;
    
    	/**
    	 * 攻击是机体自己做的事情
    	 */
    	abstract void attack();
    
    	/**
    	 * 维修是别人帮忙做的事情
    	 * 
    	 * @param visitor 交给维修人员(访问者)来做
    	 */
    	abstract void repair(IVisitor visitor);
    
    	public String getName() {
    		return name;
    	}
    
    	public void setName(String name) {
    		this.name = name;
    	}
    	
    }
    

    古铁

    /**
     * 又是我们的古铁..
     */
    public class AncientIron extends Robot {
    
    	@Override
    	void attack() {
    		System.out.println("自己操纵古铁还是非常有乐趣的,左轮打桩机!");
    	}
    
    	@Override
    	void repair(IVisitor visitor) {
    		visitor.visit(this);
    	}
    
    }
    

    访问者接口

    public interface IVisitor {
    
    	/**
    	 * 访问机体的功能
    	 */
    	void visit(Robot robot);
    }
    

    维修人员

    public class RobotRepairer implements IVisitor {
    
    	@Override
    	public void visit(Robot robot) {
    		System.out.println(robot.getName() + ",你好!所谓成大事者不拘小节,维修这种事情还是让我们修理工做吧!");
    	}
    
    }
    

    测试

    public class Test {
    
    	public static void main(String[] args) {
    		IVisitor repairer = new RobotRepairer();
    
    		Robot ancientIron = new AncientIron();
    		ancientIron.setName("古铁");
    		ancientIron.attack();
    		ancientIron.repair(repairer);
    	}
    }
    

    测试结果

    自己操纵古铁还是非常有乐趣的,左轮打桩机!
    古铁,你好!所谓成大事者不拘小节,维修这种事情还是让我们修理工做吧!
    

    总结

    访问者模式有很明显的优点,就是遵循了单一职责原则,假设一个类里面有一些非本职工作的方法,那么可以考虑把这些方法交给访问者去实现。那么,以后如果实现的逻辑有变化,只需要改变访问者,而无需对这个类做太大的改变。

    展开全文
  • 三十八:代理模式

    2010-11-11 22:38:19
    一:什么是代理 代理模式给某一个对象提供一个代理对象,并由代理对象控制原对象的引用. 中国人一个含蓄的民族,讲求微妙和间接的交流方式,对象间的间接通信也同样面向对象的设计中一条重要的"审美观&...
    一:什么是代理
    代理模式给某一个对象提供一个代理对象,并由代理对象控制原对象的引用.
    中国人是一个含蓄的民族,讲求微妙和间接的交流方式,对象间的间接通信也同样是面向对象的设计中一条重要的"审美观"。间接性的通信可以给出较低的耦合关系,较强的合作关系,以及微妙的结构和易于复用的设计架构。
    代理模式的英文叫做Proxy,所谓代理,就是一个人或者一个机构代表另一个人或者另一个机构采取行动,在一些情况下,一个客户不想或者不能直接引用一个对象,而代理对象可以在客户和目标之间起到中介的作用.
    比如说Window的快捷方式(Shortcut)就是一个代理的例子,如果原对象被删除,则快捷方式虽然可以存在,但是在调用时会给出错误.

    二:代理的种类
    如果按使用的目的来划分,代理有以下几种:
    (A)远程(Remote)代理:为一个位于不同的地址空间的对象提供一个局域代表对象,这个不同的地址空间可以是在本机器中,也可是在另一台机器中,远程代理又叫大使.
    (B)虚拟(Virtual)代理:根据需要创建一个资源消耗较大的对象,使得此对象只在需要时才会被真正创建.
    (C)保护(Protect)代理:控制对一个对象的访问,如果需要,可以给不同的用户提供不同级别的使用权限.
    (D)智能引用(Smart Reference)代理:当一个对象被引用时,提供一些额外的操作,比如将对此对象调用的次数记录下来.
    .....上面是最常用的代理,还有其他的种类,在此不作介绍.

    三:代理模式的角色
    (A)抽象主题角色:声明了真实主题和代理主题的共同接口,这样一来在任何可以使用真实主题的地方都可以使用代理主题。
    (B)代理主题(Proxy)角色:代理主题角色内部含有对真实主题的引用,从而可以在任何时候操作真实主题对象:代理主题角色提供一个与真实主题角色相同的接口,以便可以在任何时候都可以替代真实主体,控制对真实主题的引用,负责在需要的时候创建真实主题对象(和删除真实主题对象);代理角色通常在将客户端调用传递给真实的主题之前或者之后,都要执行某个操作,而不是单纯地将调用传递给真实主题对象.
    (C)真实主题角色:定义了代理角色所代理的真实对象.
    下面是示意性的源码:

    package cai.milenfan.basic.test; 
    //抽象主题角色
    abstract public class Subject {
    //申明一个抽象的请求方法
    abstract public void request();
    }


    package cai.milenfan.basic.test; 
    //具体主题角色
    public class RealSubject extends Subject{
    public void request() {
    System.out.println("request from RealSubject........");
    }
    }



    package cai.milenfan.basic.test; 

    public class ProxySubject extends Subject{
    private RealSubject realSubject;
    //请求前的操作
    private void preRequest(){
    //do something you want before the request...
    }
    public void request() {
    preRequest();
    if(realSubject==null){
    realSubject = new RealSubject();
    }
    realSubject.request();
    postRequest();
    }
    private void postRequest(){
    //do something you want after the request
    }
    }


    package cai.milenfan.basic.test; 
    //客户端调用.
    public class TestProxy {
    public static void main(String[] args){
    Subject subject = new ProxySubject();
    subject.request();
    }
    }


    代理模式将一个代理插入到客户端和主题角色之间,提供了较多的灵活性,如代理主题可以在向真实主题传递客户端的请求之前执行特定的操作,并决定是否将请求传递给真实主题,代理主题可以在向真实主题传递客户端请求后执行另外一种操作,比如将客户端请求计数.....

    四:Java2.0对代理模式的支持
    (A)反身映射(Reflection)与动态代理
    自从JDK1.3以来,Java语言通过在java.lang.reflect库中提供下面三个类直接支持代理模式:Proxy,InvocationHandler和Method.其中Proxy类使得设计师能够在运行时间创建代理对象,当有一个代理对象后,对原对象的方法调用首先被分派给一个调用处理器(Invocation Handler),程序可以在处理器的invoke()方法里截获这个调用,进行额外的操作,Java所提供的这一支持是建立在反身映射(Reflection)的基础上的,设计师可以按照下面的步骤创建动态代理对象:
    (1)指明一系列的接口来创建一个代理对象
    (2)创建一个调用处理器(InvocationHandleer)对象
    (3)将这个代理指定为某个其他对象的代理对象
    (4)在调用处理器的invoke()方法中采取代理,一方面将调用传递给真实对象,另一方面执行各种需要做的操作.
    下面给出一个例子,这个例子要解决的问题是为一个Vector对象提供一个代理对象,当Vector的任何方法被调用之前和之后,分别打印出两条信息,这表明代理对象有能力截获和控制这个Vecto对象,这里仅仅需要一个新的类,称为VectorProxy类,此类需要实现java.lang.reflectInvocationHandler,由于Vector对象实现了java.util.List接口,因此调用List的方法,可以操控代理对象,其源代码如下:
    package cai.milenfan.basic.test; 
    import java.lang.reflect.InvocationHandler;
    import java.lang.reflect.Method;
    import java.lang.reflect.Proxy;
    import java.util.List;
    import java.util.Vector;
    public class VectorProxy implements InvocationHandler{
    private Object proxyobj;
    public VectorProxy(Object obj){
    proxyobj = obj;
    }
    //静态工厂方法
    public static Object factory(Object obj){
    Class cls = obj.getClass();
    return Proxy.newProxyInstance(cls.getClassLoader(),cls.getInterfaces(),new VectorProxy(obj));
    }
    //调用某个方法
    public Object invoke(Object proxy, Method method, Object[] args)throws Throwable {
    System.out.println("before calling " method);
    if(args!=null){
    for(int i=0;i<args.length;i ){
    System.out.println(args[i] "");
    }
    }
    Object o = method.invoke(proxyobj, args);
    System.out.println("after calling " method);
    return o;
    }
    public static void main(String[] args){
    List v = null;
    v = (List)factory(new Vector());
    v.add("Milenfan");
    v.add("czy");
    }
    }


    也就是说,代理对象截获了对Vector对象的所有调用,在将调用传递给Vector之前和之后,代理对象具有采取合适操作的灵活性,虽然这里代理对象所采取的操作不过就是打印两种信息.本例子的对象图如下:
    客户端-->VectorProxy-->InvocationHandler-->Vector。
    在此例子中使用了静态工厂方法factory(),负责创建出Proxy类的实例,它将创建实现的细节隐藏起来,这是简单工厂模式的应用.
    客户端分辨不出代理主题对象与真实主题对象,这是代理模式的一个重要用意.

    五:代理模式的实现
    代理模式可能并不知道真正的被代理对象,而仅仅持有一个被代理对象的接口,这时候代理对象不能够创建被代理对象,被代理对象必须有系统的其他角色代为创建并且传入.
    (A)与适配器模式的关系:这两种模式看上去很相像,它们都可视为一个对象提供一种前置的接口。但是,适配器模式的用意是要改变所考虑的对象的接口,而代理模式并不能改变所代理的对象的接口,在这一点上两个模式有明显的区别。
    (B)与装饰模式的关系:装饰模式与所装饰的对象具有相同的接口,因此这两种模式也有可能混淆,但是,装饰模式应当为所装饰的对象提供增强功能,而代理模式对对象的使用施加控制,并不提供对象本身的增强功能。
    (C)与门面模式的关系:有的时候,门面模式兼任代理的责任.
    展开全文
  • 纵观当今社会发展,无处不存在团队间的合作,所有的项目都由团队合作...确立好团队的任务方向,使每个团队成员明确团队的目标、行动计划,让成员都知道自己要做些什么,有什么样的意义。 二,积极讨论成员提出来...

    纵观当今社会发展,无处不存在团队间的合作,所有的项目都是由团队合作而完成。

    如果有一个具有很强向心力、凝聚力、战斗力、的团队,有一批彼此间互相鼓励、支持、学习、合作的组员,项目才能更好更有效率的完成。

    一个理想团队应该拥有以下几点条件:

    一,找好整个团队的目标。确立好团队的任务方向,使每个团队成员明确团队的目标、行动计划,让成员都知道自己要做些什么,有什么样的意义。

    二,积极讨论成员提出来的意见。每个人都有自己的特点,也会有自己独到的想法,认真的考虑这些同学的意见或者建议,会对项目的完成有所帮助。

    三,各成员之间积极沟通。一个团队项目的进度往往需要同步进行,团队沟通有利于项目开发的整体性。

    对于软件流程来说:

    一般软件开发都会有一个很长的设计过程,包括对需求的分析,对软件的整体设计划分等一系列的任务,这将由团队成员共同来完成。要做到最好的认知,采纳最合适的方案,有最合理的任务分配,从而达到高效率的团队运作。

    设计完成后的编码工作较为繁琐,要结合起当初的设计一同完成,对于一个程序来说,不可能完美实现,编码时不同模块间的进度和协调是一个重点,要确保项目的整体节奏。

    编码完成后到达测试阶段,对整个软件进行必要的测试,确保其可运行性和目的性。对产生的BUG等进行维护和修复。最后才可交付软件投入试用。

    转载于:https://www.cnblogs.com/HYF1/p/5475036.html

    展开全文
  • 多数大公司大了后都不可避免会遇到大公司病,机构臃肿,行动缓慢,协调困难,思维僵化。为此,大公司采取了各种各样的做法,建设企业文化,调整组织机构,更换领导人,加强流程规范,建立特区,建立快捷通道,引入...
  • 但我知道我不能表现得狭隘,所以我说好,以此来表示我大方地承认,这些人比我看得远、想得深、行动力更。而我则仍然上着无聊的班,在将来适当的时候,用100个名词来抽象这一我钦点的商业模式,或者用200个形容词对...
  • 什么是社群营销呢? 简而言之,就是通过建立很多微信群,将目标客户吸引汇集到一起,持续提供客户所需的商品或服务,进而变现的一种营销模式。 但继WeTool停止下载之后,使得大家普遍少了有力的微信群运营工具,...
  • 有力的执行力企业成功的关键所在。认真执行之魂!。 二、为什么要学习? 西点军人为保卫美国自由而学,为美国强大而学!作为企业的一名员工,我想说:我们为什么而学?为了更好的提升自身的价值,为了...
  • 不合理且霸道的csdn

    2011-04-18 13:42:00
    卖的行为,虽然没有人可以管到你们,虽然这你们的盈利模式,但这损害了消费者的利益。为什么50元购买的下载次数非要在一年之中完成,就像你买了件衣服,还必须规定一年内穿坏掉吗?虽然对于个人的我...
  • 前言 ... 上瘾模式:触发、行动、多变的筹赏、投入 超强新动力 牢记: 习惯我们下意识做出的举动 集网络连接、海量数据、超快网速三者于一身的技术正在使这个世界上瘾成性 生产习惯养成类产...
  • 高二班主任工作计划范例 无论单位还是个人,无论办什么事情,事先都应有个打算和安排。以下小编为大家准备的《高二第一学期班主任工作计划范例》,供您借鉴。 高二第一学期班主任工作计划范例 一、高效管理,...
  • 学转促落实心得体会_学促转个人总结发言 广大党员干部要充分认识开展“学转促”专项活动的重大意义,切实把思想和行动统一到自治区党委的部署上来。以下小编整理的关于落实学转促的心得体会范文,欢迎阅读参考!学...
  • 生命长青,玩好至上

    千次阅读 2010-05-29 15:34:00
    很多媒体问我,你生产力那么,干的事情那么杂,还都做得有模有样,最重要的经验是什么?我就说,因为从小爱玩,我妈天天打我也没把我打服帖,从小到大,始终保持着一贯的创造性思维与行动样式。人的成长固然有父母...
  • 8、团队模型的环形结构中的六个角色是什么?程序管理;开发;测试;发布管理;用户体验;产品管理 9、MSF 开发阶段团队主要工作包括:编写代码;开发基础架构;创建培训课程和文档;开发市场和销售渠道 10、完成...
  • 例如:火车进遂道,最先进遂道的火车头,最后火车尾,而火车出遂道的时候也火车头先出,最后出的火车尾。若有队列: Q =(q1,q2,…,qn) 那么,q1为队头元素(排头元素),qn为队尾元素。队列中的元素按照q1...
  • 虽然无树不成林,技术细节总是必要的,但过于琐碎的分解给我造成更大的迷惑,到底RAC的总线是什么?GCS、GES、GRD、PCM这些东西是如何堆砌在一起的?  这段痛苦经历促使我决定以自己的方式讲述RAC的故事,如果大家能...
  • 即使创业的想法在自己的头脑中起伏着,却因为知道凭借自己一个人没有能力做好,而迟迟没有行动。 直到马化腾遇到了腾讯的几个创始人,他们都曾在深圳电信、网络界从业多年,几乎深圳第一批搞互联网的人,这无疑...
  • 1.三改一拆是什么 2.2018拆迁大幕-主城要拆4万户、萧山8000户、临安1500户 3.2018年棚户区改造计划(第三批) 4.主城区城中村改造五年(2016-2020)攻坚行动计划 5.2017年主城区拆迁表 6.余杭区2017-2019年城中村改造...
  • 作为开发者其实比较好奇其他人在做什么业余项目(不管目的做到盈利/玩票/试试看) 所以特意建了这个库。欢迎各位开发者把自己的项目加进来~ 发 Pull Request 或 Issue 即可 (入选标准:必须网站或App,不能...
  • 大学文献检索资料 DOC

    2009-11-28 10:35:24
    1.什么是科技文献? 含有知识内容的信息载体。 2.构成文献的三要素:知识内容、物质载体、记录手段。 3.文献的基本功能:存储知识信息、传播知识信息。 4. 科技文献的特点: 形式多、文种多。数量多、增长快。交叉...

空空如也

空空如也

1 2
收藏数 22
精华内容 8
关键字:

强行动模式是什么