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

推荐订阅源

云风的 BLOG
云风的 BLOG
有赞技术团队
有赞技术团队
Simon Willison's Weblog
Simon Willison's Weblog
人人都是产品经理
人人都是产品经理
L
LINUX DO - 最新话题
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
A
Arctic Wolf
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
小众软件
小众软件
Jina AI
Jina AI
The Cloudflare Blog
P
Palo Alto Networks Blog
AWS News Blog
AWS News Blog
阮一峰的网络日志
阮一峰的网络日志
C
Cybersecurity and Infrastructure Security Agency CISA
Know Your Adversary
Know Your Adversary
T
Threat Research - Cisco Blogs
L
Lohrmann on Cybersecurity
NISL@THU
NISL@THU
G
GRAHAM CLULEY
Project Zero
Project Zero
博客园_首页
博客园 - 三生石上(FineUI控件)
罗磊的独立博客
Spread Privacy
Spread Privacy
WordPress大学
WordPress大学
Hugging Face - Blog
Hugging Face - Blog
Latest news
Latest news
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Cisco Blogs
C
Cyber Attacks, Cyber Crime and Cyber Security
T
Tor Project blog
S
Securelist
V
Vulnerabilities – Threatpost
T
The Exploit Database - CXSecurity.com
C
CERT Recently Published Vulnerability Notes
IT之家
IT之家
Google DeepMind News
Google DeepMind News
爱范儿
爱范儿
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The Last Watchdog
The Last Watchdog
T
Tenable Blog
宝玉的分享
宝玉的分享
S
Secure Thoughts
P
Privacy & Cybersecurity Law Blog
量子位
大猫的无限游戏
大猫的无限游戏
J
Java Code Geeks
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Security Archives - TechRepublic
Security Archives - TechRepublic

博客园 - Agent

更改VS.NET 默认SCM Provider的方法 关于VS.NET的SCM Plug-in Lippman的宣传 Important Issue About DataReader and DataGrid's Paging 上海照的 cookie的过期时间-- 郁闷又恼火 - Agent - 博客园 可为空的基础类型 Choice 做了一个小型的Dump以便于调试使用 - Agent - 博客园 It's Great VS2005 VS2005 My Assembler 有关JIT 凌晨三点不想睡 不学编程 别搞计算机了 天又要亮了 该死的宏 Uncle bob's View of dynamic and static languages
Bad Smell
Agent · 2004-05-14 · via 博客园 - Agent

对代码的膨胀越来越觉得提心吊胆
看样子可能是某个部分没有做好充分的准备
虽然还没有进入焦油坑,但每步都觉得比以前艰难, 这也许是一个不可能改变的事实。哪怕是使用接受变化的开发方法,也无法在程序复杂性不断提升的同时保证修改难度不变。
一次积极的hacker式开发尝试确实有许多感想。前置设计绝对是必要的,虽然对于自己并不熟悉的领域,采用蠕动式探索(TracerBullet)能取得很多有益的提示。但是对于整体的把握,模块之间的过度分离化会使整个系统的行为难于确定,特别是当大量模块之间需要紧密协作时,在编码与小设计过程中无法预见一些需要大量协作的问题。

若是在

编码 ---测试集成 --- 重构 --- 增量设计
|                                               |
|____________迭代______________|

这样的过程中,不断增长的整个系统会因为系统本身的耦合性在后续设计中产生对以前设计模块的影响。这其实充分说明了整个系统不管设计时将模块做的多么自闭(Self-contained),系统却是一个耦合工作的实体。因此在进行Bottom-Up设计时,应给予模块之间的协作以相当考虑。这点其实就是OOP的精髓---良性耦合。

当然,对于一个object-based系统,比一个乱七八糟的object-oriented系统,要好应付的多。把绳子绑上与解开死结,需要的工作量不属于一个量级。

Rule is to be broken   ---Robert C. Martin