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

推荐订阅源

T
The Exploit Database - CXSecurity.com
A
Arctic Wolf
K
Kaspersky official blog
T
Threat Research - Cisco Blogs
PCI Perspectives
PCI Perspectives
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Privacy International News Feed
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
U
Unit 42
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Simon Willison's Weblog
Simon Willison's Weblog
P
Privacy & Cybersecurity Law Blog
O
OpenAI News
量子位
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
C
Cisco Blogs
AWS News Blog
AWS News Blog
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
美团技术团队
T
Threatpost
S
Schneier on Security
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
C
Cyber Attacks, Cyber Crime and Cyber Security
Last Week in AI
Last Week in AI
C
CERT Recently Published Vulnerability Notes
Blog — PlanetScale
Blog — PlanetScale
C
Cybersecurity and Infrastructure Security Agency CISA
F
Full Disclosure
博客园_首页
N
Netflix TechBlog - Medium
Security Latest
Security Latest
有赞技术团队
有赞技术团队
Google DeepMind News
Google DeepMind News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Register - Security
The Register - Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Recent Announcements
Recent Announcements
博客园 - Franky
P
Palo Alto Networks Blog
Project Zero
Project Zero
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
H
Help Net Security
Hacker News: Ask HN
Hacker News: Ask HN
Cisco Talos Blog
Cisco Talos Blog
H
Heimdal Security Blog
The Hacker News
The Hacker News
博客园 - 【当耐特】
GbyAI
GbyAI

博客园 - 三文鱼

叶问 弧线枪法 我是传奇 赤壁~之战 也说动物园展示蟒蛇吃活鸡 终于知道g9是谁了 人生的蝴蝶效应 杭州之行 广州车展 西安之行 变形金刚真是火 C#写的几个基本的排序算法(三) C#写的几个基本的排序算法(二) C#写的几个基本的排序算法(一) 数据库惊现"NULL" 换了个计数器 应该了解的垃圾收集机制(二) 应该了解的垃圾收集机制(一) 中国队输了
别把代码写成“密码”
三文鱼 · 2006-08-17 · via 博客园 - 三文鱼
 

一位同事做了一个供开发调用的打印控件,是先由开发人员编辑报表格式模版,以xml格式保存,然后将表格数据填入xml文件,最后将此xml文件解析出来提供打印或者转档成excel文件。而在他demo时被我等“用户”指责无法满足复杂报表的打印要求。考虑到控件能够满足大部分需求,而且手头的工作太多,他便将控件放到source safe上,供有“特殊需要”的人修改使用。

经过多次交涉未果,作为最迫切的用户,我只好get下代码,接手改进工作。很快我便发现这些代码是非我所能理解的。由于封装太差,我不得不努力看懂几乎每一行代码,而长达几页的switch...caseif…else语句,以及众多神秘的数字常量,都让我感觉更像是“密码”而非“代码”。

一个星期之后,我只改进了转档速度慢的问题(原来每画一个单元格都要创建一个GDI对象,现在简单用一个单体类解决)。但更关键的复杂表格线的绘制还没有头绪,反而觉得越改越乱。我再次体会到了封装和代码风格以及注释的重要性,这些在构建过程中反复强调的问题对代码的扩展和维护有着非常重大的影响。尤其是当开发人员变动和维护周期很长的情况下,程序员在紧张的进度下的偷懒和取巧行为会很大影响到后期的成本。没有review和正式检查,紧张的进度,不断更改的需求,很容易滋生低劣的代码。而要彻底改变这一状况,牵涉到项目管理和员工素质等各方面的问题,决非一日之功。