惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Blog of Author Tim Ferriss
WordPress大学
WordPress大学
博客园 - Franky
The Cloudflare Blog
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
小众软件
小众软件
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
B
Blog
Y
Y Combinator Blog
V
V2EX
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
博客园 - 司徒正美
IT之家
IT之家
G
Google Developers Blog
C
Check Point Blog
Engineering at Meta
Engineering at Meta
Microsoft Security Blog
Microsoft Security Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
GbyAI
GbyAI
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻

机核

游戏性能旗舰最强之选,一加 Ace 6 至尊版国补到手价2999元起 6元钱自己更换电动车刹车线 《生化危机9:安魂曲》编剧Haris Orkin专访 摸金游戏?音乐游戏!暗区新赛季这把能弹的琴有何来历? 好评国产武侠SRPG《息风谷战略》免费DLC现已推出 | 机核 GCORES 碎片 《生化危机:安魂曲》将于5月实装首个免费更新内容 | 机核 GCORES 新锐东方游戏,谱写世界新章! 沉浸式恋爱视觉小说游戏《心象演算》免费试玩版现已正式上线 | 机核 GCORES 互动影游《代号三国:龙起》上线!穿越三国与曹操并肩、与佳人同行、与权谋博弈! 《老头收集梦想生活》,游戏酒桌会6,录音笔VOL.689 | 机核 GCORES 破界·共生——《白日梦:无限世界》五大核心游戏特点解析 价格已到史低,锐龙5 9600X/锐龙7 9700X正适合抄底 时间循环之旅即刻启程!《归环》一周目测试今日开启 热门在线韩游变魂游,洛奇衍生作能否打破“花瓶”魔咒? LG UltraGear evo 全新高端显示器系列:当“5K”遇见“AI”,不止强大,更懂热爱 反套路三国互动影游《代号三国:龙起》今日上线! 愿望单登记人数突破10万!备受瞩目的“女儿养成游戏” 《梦幻魔法公主》今日于Steam平台上线!限时八折优惠中 《黑神话:悟空》全球音乐会2026巡演将于4月29日12时开票 | 机核 GCORES “Snowguelike”生存肉鸽挖矿新作《蛙穿雪境》公布发售日期,5月7日正式上线 | 机核 GCORES 重塑移动办公、AI创作新境!全新华硕灵耀Air系列、ProArt 骁龙版震撼首发,创芯未来 均分88:《Saros》媒体评分汇总 | 机核 GCORES 上海烛龙公布合作遗迹探险游戏《吉时已到》首支预告片 | 机核 GCORES 首个独立游戏《萝薇日记》已上线Steam! 烛龙新IP《吉时已到》首曝,打造国内首款中式合作遗迹探险游戏 喜加一:《暗黑破坏神Ⅳ》国服现已开启限时免费领取本体活动 | 机核 GCORES 新版《生化危机》电影定于9月18日上映,官方网站现已上线 | 机核 GCORES 《冲就完事模拟器2》“星球大战”联动DLC正式宣布 | 机核 GCORES SteamController将于5月4日发售,售价99美元 | 机核 GCORES 事已至此,内存这么用也算省钱了,“2+1”非对称双通道应用实测
墓碑上的软件工程:设计模式之前
韩大 · 2024-12-16 · via 机核

在我第一年开始做程序员结束,我就听说过“设计模式”的大名,心里以为这是一个什么神功秘笈,于是就跑到书店买了一本。可是从头到尾硬着头皮看完一遍之后,完全不知道是在说什么。

刚学编程的时候,比较大的兴趣,都在于学习如何使用各种库、API、框架。因为这些知识能让我们从“不能”变成“能”完成某些事情,对于具体要怎么写代码才是“好”的,确没有太大的兴趣。等到被屎山代码折磨的足够难受之后,我才隐隐的明白,代码写的“好”也是很重要的。在多年之后,我真正看懂的第一本介绍设计模式的书,反而是《JAVA与模式》。——由于已经写了比较多的 Java 代码,所以看了之后,才明白:设计模式是一种“经验”,而不是一种“实现方法”。

但是,在学习设计模式之前,必须要有比较完整的面向对象的理解。面向对象编程关于“怎样设计是好的设计”,其实是有一系列的经典理论和原则的。我觉得说明的最简洁的是这本《架构整洁之道》。另外,我也读过一本介绍类似概念,但内容更容易看懂:《Head First 面向对象分析与设计》——这本书不知道为啥好像卖的不怎么样,不太好搜索到,不过内容我倒觉得挺不错的。

1 / 2

这里简单列一下这两本书的核心内容:

  1. SRP:单一职责原则

  2. OCP:开闭原则

  3. LSP:里氏替换原则

  4. ISP:接口隔离原则

  5. DIP:依赖反转原则

这几条内容,既是日常我们设计代码所要追求的目标,也是“设计模式”之所以能形成“模式”的原因:很多程序员为了达成上述目标,面对一些典型的需求情况下,所总结出来的经验,或者叫套路。

这本书虽然里面有大量的“代码规范”的内容,但是里面也有相当多的针对面向对象设计的基础 原则。特别适合于需要编写“库”或者“框架”的人参考,毕竟 .NET 也是一个应用非常广泛的框架。虽然我之前 C# 的工作机会不算多,但是就算以 JAVA 或者 C++ 的角度来看,能如此丰富全面的教你写一个框架/库的书也挺难得。

由于《设计模式》不是一种关于“如何实现功能”的知识,而是关于“怎样写代码更好”的经验,所以实际上这种经验,是跨越编程语言的一种思想。不过,如果第一次要学,还是需要通过自己最熟悉的语言,找一本对应的书去仔细看,才更好入门。下一篇,我打算写一点我所认识的设计模式,特别是在游戏领域,设计模式的应用情况。