Design Pattern 在软件开发知识体系中的定位、实用价值、具体经验? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
soruNis

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

  •  
  •   soruNis 2014 年 4 月 14 日 2804 次点击
    这是一个创建于 4394 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一点点故事背景:
    我司有一个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 年 4 月 14 日
    DP是OO用法的提炼,OO最多用的地方是GUI。
    leiz
        2
    leiz  
       2014 年 4 月 14 日
    此后, 我司的CTO与架构师给出的答复是: "Design Patterns在Client UI 开发中比较重要, Server端基本用不上".

    见libevent.

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

    这些个问题可能出现在不同的系统逻辑的层面上,没有必要特别限定是算法的,代码的,架构的,前后端的DP
    kuber
        4
    kuber  
       2014 年 4 月 14 日
    好大一个坑。
    如果说设计模式不仅仅指DesignPattern 这本书里面介绍的23 模式,或者不仅仅是指字面上那些模式的名字,有可能你天天都在用,只是你未必知道罢了。
    kshatriya
        5
    kshatriya  
       2014 年 4 月 16 日
    设计模式,就是一套前人总结的,可以复用的代码模板. 没什么高深的, 只是一种经验.
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     829 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 21:43 PVG 05:43 LAX 14:43 JFK 17:43
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86