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

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - Agent

更改VS.NET 默认SCM Provider的方法 关于VS.NET的SCM Plug-in Lippman的宣传 Important Issue About DataReader and DataGrid's Paging 上海照的 - Agent 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