• 丁丁历险记
    2019-11-04
    笔记:
    1 作者反复解释了下学好dp 的重要性。
    映像深刻的:
    基本功不够,把一台战斗机放你面前,你都不知道如何欣赏和品味。
    其它职能:
    1 面试所需(适当的区分度)
    2 告别烂代码,让实现优雅起来。老司机后,要参与指导菜鸟,也要会。
    3 show me the code ,你牛不牛,终归还需要代码的展现,把框架说得头头是道又如何,技术看技术,硬核不行,外表的东西白搭。没法成为别人心中的大牛的。

    作业:聊看法。
    一句话,简直太tmd 的重要了。

    以前重构过一个p2p 客户投资后奖励活动【放心,平台未跑路,老板是用心做事的人】。 刚开始,他们真的是 if eles 的去写每一个活动。
    我去了后。主要就是参考yii 框架的实现方法。
    做了以下解藕,把购买后的奖励分为四块。
    通过配置 rules 来确认是否有奖励资格。 【首次,】
    清算出奖多少,奖给谁(通常会带上推荐人)【固定额,阶梯算法,比例值,vip 等级等】
    创建出奖励执行类, (红包,现金,抽奖券 , 积分等) 并执行奖励
    发送通知 (站内信,短信,微信,邮件 , ) (通知会在通知里挂接广告)
    离开那公司时特意查了一下,公司共发布了1700 条个奖励项,给客户返利约900 万。
    展开
     11
     135
  • 嚴脂红.*
    2019-11-04
    做游戏开发相关的工作,日常用到非常多的设计模式,比如:

    对于游戏的设置,ui和scene等等各种manager管理类都要用到单例模式。
    创建游戏中各种角色的各种工厂模式还有对象池。
    处理游戏角色的各种状态的有限状态机要用到状态模式。
    在优化复杂游戏场景时会用到享元模式。
    还有游戏引擎本身就用到的组件模式。
    ......
    展开
     2
     55
  • jony
    2019-11-05
    设计模式,两眼一抹黑,从0开始
    
     45
  • 乐
    2019-11-04
    个人认为设计模式主要解决的是扩展和耦合问题

    日常使用:

    使用代理模式进行共性化处理,比如说 AOP 思想,将非业务功能和业务功能解耦

    * 事务的处理@Translation
    * 系统间上下文的传递 ThreadLocal + restTemplate#intercept 等等

    使用工厂 + 策略

    * 不同优惠种类的计算
    * 定制化功能的解耦

    观察者模式:这个模式的思想,我觉得非常的重要,你可以在许多中间件(mq、zookeeper、netty 等等)乃至生活中都能看到它的影子

    * 通过领域事件解耦业务
    * 理解 eventloop、epoll 等等
    * 通过 watch 实现动态配置、HA 等等

    责任链模式:pipeline 思想

    * filter
    * 理解 netty 中的各种 handler
    展开
     1
     30
  • 谭棋钊
    2019-11-04
    只用过单例
    
     20
  • 梁军
    2019-11-04
    个人感觉,设计模式和数据结构算法结合,再去读源码或者框架,很清晰,一个招式一个内功
    
     16
  • 编程界的小学生
    2019-11-04
    1.设计模式很主要,很主要,很主要。他是一个能够长久迭代开发的必要条件,也是一个提高开发效率的必要条件。当我第一次用设计模式的时候我激动的一晚上没睡好,反反复复去看我的代码,喜欢的不得了。我会对照我的代码思考需求变更我的代码应该改什么,那种解耦合,可扩展的架构真的喜欢!!!

    2.单例、工厂、模板、策略
    基本的套路就是:单例的工厂类负责创建策略类,但是每个策略类都有共同特性,所以用到了模板模式。
    类关系就是每个策略类实现策略接口并继承模板类。交由单例的工厂来管理。
    也有人说这就是模板。跟策略没关,但我认为确实也是策略。
    场景:医疗系统,药品分为中药,西药,医疗器械等等不同类别,每种类别计算价格方式由相同的算法和不同的算法组成,所以我用了模板和策略。👀
    补充:其实最后我发现spring有依赖搜索,直接注入map就行了。完全不用自己写工厂管理😂😂😂
    展开
     2
     15
  • 仰望星空
    2019-11-04
    老师能不能讲讲函数式编程思想,设计模式都是基于面向对象的,而现在更流行函数式编程。

    作者回复: 函数式编程感觉还是没面向对象流行 所以专栏中没讲

     2
     15
  • 大王拍我去巡山
    2019-11-05
    CRUD写的太多了, 通过设计模式也能简化业务代码,释放生产力。期望能多有些代码场景的演练,跟随学习
    
     8
  • 汤小高
    2019-11-04
    课后讨论:我的看法
    1.聊一聊你对设计模式相关知识的重要性的看法;
    (1)设计模式能让程序员编写出可读性高,易维护,易拓展的代码,避免烂代码。
    (2)利用好设计模式能让复杂功能的设计的代码可复用性,可拓展性,可维护性,可读性更高。达到高内聚、低耦合的目的。
    (3)设计模式能提高程序员的自我修养

    2.在你过往的项目开发中,有没有用过某种设计模式?是在什么场景下应用的?解决了什么问题?
    用到过模板模式,单例模式。
    2.1)模板模式应用场景:在一个项目的规则引擎中,一个规则引擎有一系列规则过滤,这个过滤步骤基本上是确定的,只是某些步骤在不同的场景下需要相互替换,模板方法定义了方法调用顺序,需要用到一个钩子,让子类去实现这个方法。
    模板模式解决问题:解决了以后可拓展的问题,如果以后需要在新场景下新增规则方法,只需新增一个类,实现钩子方法即可,不需改动既有代码。
    2.2)单例模式应用场景:用于加载项目中需要的配置文件的资源类。
    单例模式解决问题:解决了资源共用,避免创建出大量资源对象,节省了JVM内存资源。
    展开
    
     8
  • jiji87432
    2019-11-11
    1、设计模式的重要性看法:
    (1)可以使得代码编写更优雅
    (2)对学习一些开源框架有很大帮助
    (3)程序的可扩展性、维护性更好,系统解耦
    2、基于上面的看法结合实际项目说明:
    (1)在新老系统接割的项目中,进行数据回写,用到了策略模式,根据不同的接口码值,进行不同的策略回写。
    (2)在银行前置系统中,用到了模板设计模式,对接不同的三方通道,在模板中定义某些特定的步骤,并加上hook,具体步骤子类实现。
    (3)责任链模式,在网关系统中用到的filter就是责任链模式,把一个请求依次的在过滤器链上进行传输
    (4)装饰器模式,在普通的微服务提供的restful接口中,在请求返回的时给对象添加一些额外的职责
    (5)门面设计模式,对外提供统一的接口,例如在springcloud中提供统一的feinclient接口,所有外部系统都通过feinclient接口进行接入,从而不关心内部接口的调用实现。
    (6)还有命令设计模式,原来在看工作流的时候不知道这个模式,看的云里雾里,后来才知道原来整个框架用到了命令设计模式,一下子就明朗了很多。所以学习设计模式很重要。
    还有单例模式、工厂模式等,以上大概就是在工作中用到的设计模式,分享一下,如有不对请指正。
    展开
    
     7
  • 条
    2019-11-04
    1.个人觉得设计模式就是对一些写比较好的代码的总结,其实代码看的写的多了,也能写出自己的设计模式。
    2.最近重构了一块生成excel的代码,因为相似的代码很多,就用到了简单工厂模式和策略模式,工厂模式让对象的创建更加明确,策略模式让代码的逻辑看起来更加清晰、也解决一些代码重复的问题。
    
     7
  • SweetyTang
    2019-11-04
    用的最多的是观察者模式,其它模式都不了解,有些太失败了😭😭😭
     6
     7
  • 摸爬滚打三十年
    2019-11-14
    关于为什么早学设计模式我很有发言权,我们公司的食堂有一道名菜:肥牛金针菇,去的早的吃肥牛,去的晚的吃金针菇。
    
     6
  • 时光之刃
    2019-11-05
    希望老师能举一些开源代码中的设计模式,比如netty或者ES等

    作者回复: 可以的 我后面可以考虑多写几篇加餐

    
     6
  • 于留月
    2019-11-05
    设计模式的重要性:
    1、提高设计和开发能力,从更高层次考虑问题:可读性、可维护性、可扩展性、模块化、组件化;
    2、读源码、学框架,深有体会,Android源码到处充斥着各式各样的设计模式和设计原则;
    3、职场发展,个人希望能够在架构和技术leader方面深入发展;
    4、高质量代码,避免坏代码,不想被同行嘲笑,不想被同事鄙视,不想被后期维护的人吐槽,想被人称赞;
    5、作为专业话术,更方便同行业间交流,更容易跟领导解释清楚,更轻松带领团队完成任务;

    使用经验:

    策略模式:
    解决开发、测试、预发布、生产环境不同的数据来源、不同的数据处理方式,以及不同的图片加载方式

    建造者模式:
    网络通信协议,非常规意义上的http请求,更多是Socket通信,需要处理大量的参数传递,包装,解析

    展开
    
     5
  • 彦祖
    2019-11-04
    之前读完了大话设计模式,入职新公司后,为了完成新的需求复用旧类,采用了模板方法模式。为了把那些好几百行的代码拆开重新梳理,也只是能用到建造者模式来解决方法参数贼多的问题。
    
     5
  • 啊哈哈哈怕
    2019-11-07
    是不是适用设计模式也应该一分为二的看,如果业务非常简单就没必要上设计模式增加系统的复杂性了。
    
     4
  • 帆大肚子
    2019-11-04
    我是做iOS开发的,之前一直有了解过设计模式,也在自己的一个框架中应用了组合模式。

    重要性那就更不用说了,上个坑是一个专门定制ERP的公司,需要从APP上录入很多信息。我接手的时候,准备一根绳子随时准备上吊。我就连类似于把姓名输入项和性别输入项换一个位置,都要换一个上午。
    学习了设计模式之后,我对应公司的开发场景,应用组合等模式把公司的iOS开发组件化(最快的时候一天写了20个表单页面)。
    虽然自己有学过,但是如王争老师所说的,自学的效果真的有些不尽人意,并缺少反馈。
    熟悉OC的同学可以去看看我的作品,希望大家给予指点
    https://github.com/xiefans/FFormLib
    但是因为自己比较懒,没有给文档补全。
    展开
    
     4
  • 落叶飞逝的恋
    2019-11-04
    学完这个,再去重温数据结构,大有裨益。
    
     3
我们在线,来聊聊吧