V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
soruNis
V2EX  ›  程序员

Design Pattern 在软件开发知识体系中的定位、实用价值、具体经验?

  •  
  •   soruNis · 2014-04-14 12:47:51 +08:00 · 2420 次点击
    这是一个创建于 3879 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一点点故事背景:
    我司有一个10人以下的开发团队, 其中包括3~4人Server,3人Client,2~3人DB。
    不久前, board推荐了一位海归软件工程专家来我司交流开发经验, 期间他反复强调了在他工程经历中遇到的各种Design Patterns(以下简称DP), 同时请我们分享技术架构并列举开发过程中运用过的DPs, 而我们在之前的实际开发过程中,从未有过DP相关的话题讨论或技术指导。
    在经过一段时间的review与总结之后, 开发团队才给出了一个大概的答复。这让我们的CEO开始关心DP在软件工程中的重要性,以及为什么我们之前从未有过相关话题的考虑。
    此后, 我司的CTO与架构师给出的答复是: "Design Patterns在Client UI 开发中比较重要, Server端基本用不上".

    说实话, 即使是站在一个虚心的junior开发者的角度, 我也无法完全接受这些前辈的回答。

    虽然DP书中是以一个编辑器为例子,但这并不能证明DP只能适用于做UI。按我的理解,DP是在具体编程实现的层面对软件工程中的问题进行分类,并以OO的思路在实现效率与代码维护性之间做出折中性抽象解答。

    从抽象的维度来看,DP应该界于算法与架构之间。

    但是由于工程经验实在苍白, 我无法列举具体的例子证明上述假设。

    不知在你的心里, DP是怎样的定位? 你觉得它的实用价值有多少 ? 你是否认同我的观点? 是否有相关的经验与大家分享?

    感谢!
    5 条回复    1970-01-01 08:00:00 +08:00
    missdeer
        1
    missdeer  
       2014-04-14 12:54:21 +08:00
    DP是OO用法的提炼,OO最多用的地方是GUI。
    leiz
        2
    leiz  
       2014-04-14 12:58:08 +08:00
    此后, 我司的CTO与架构师给出的答复是: "Design Patterns在Client UI 开发中比较重要, Server端基本用不上".

    见libevent.

    方法论和实际方案还是有关系的。虽然使用场景不好说。
    min
        3
    min  
       2014-04-14 13:30:08 +08:00
    DP大概是讨论:1. 你遇到了什么问题 2. 你有什么样的工具可供解决问题 3. 基于1和2得出一个兼顾效率灵活性可维护可扩展的办法

    这些个问题可能出现在不同的系统逻辑的层面上,没有必要特别限定是算法的,代码的,架构的,前后端的DP
    kuber
        4
    kuber  
       2014-04-14 15:34:03 +08:00
    好大一个坑。
    如果说设计模式不仅仅指DesignPattern 这本书里面介绍的23 模式,或者不仅仅是指字面上那些模式的名字,有可能你天天都在用,只是你未必知道罢了。
    kshatriya
        5
    kshatriya  
       2014-04-16 22:43:59 +08:00
    设计模式,就是一套前人总结的,可以复用的代码模板. 没什么高深的, 只是一种经验.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2718 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 15:37 · PVG 23:37 · LAX 07:37 · JFK 10:37
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.