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

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - 跌跌撞撞

CArchive的一个经验 设计Client 加载COM的方式 学习反汇编记录 299错误解决记录 23日记录 用ADO访问存储过程的参数问题 SDKMisc的一个小错误 年初一作诗 走出GDI 总是在最求效率。 新感 下来做什么呢 开发目录包括的内容 太可爱的小小播放器 lucene的设计 上海感觉 项目管理的成功秘密(翻译) 昨天看书的心得
写一点感想
跌跌撞撞 · 2005-11-19 · via 博客园 - 跌跌撞撞

程序员作了很久很久以后,你会发觉写程序是需要坚强的意志。

当面对一项功能的时候,它是那么的庞大,数据关系那么错综复杂,要整理,搞清楚条理,要实现,做出满意的效果,太难了。这个时候,我总是告诉自己,要坚强一点,不要躺下。

切分功能,只作较大范围的切割,每天实现一项功能,从下向上,从数据到界面,再从界面,到操作,一点一点的做,真的很难,心烦的时候,也许真的该在这里写写感想,认识我的人,会电话告诉我,他们很关心我做的事情,该出去散散心,等缓过劲再加一把油。

今天作绘图功能,主要的难点是两种数据的交互操作,体现在界面和操作方式上,会有很大的不同,我想好好的整合这两种数据,让他们尽量用同一种界面和略有差异的操作。

关于程序设计的计算能力
下围棋需要很强的计算能力,同样程序设计也需要,而且是非常需要。一个变化,需要仔细计算,算千种、万种变化,探究清楚变化的情况。
我已经习惯于在写程序之前,做计算。想每个需求的变化,推断变化后的结果,结合工作积累的经验,确定一个制作方式。
例如:做一个源代码统计程序,需求要确定:界面类型,统计什么样的源文件,要有统计的目录,要有操作方式选择,要有结果输出,就这些了,更多的需求当然也能够提出。那么咱们界定目标,对更多的需求不作考虑了。
源文件(*.cpp, *.h)类型可以用很多种方式输入,来计算一下:
方式一,用程序固化的方式,那么只能处理某一些类型的文件,比如固化处理*.cpp和*.h,这样当另外一个小组需要统计他们的*.java和*.jsp程序的时候,就需要修改程序,增加一个新的版本。这样不好吧,来用方式二,将*.cpp;*.h和*.java;*.jsp以及其他的类型做成数组,用列表框供用户选择,这样就能够统计两个小组的源代码了,可是,如果我说我只需要统计*.h头文件的行数,怎么办?是不是要修改或者增加统计类型数组了。有的程序员说:真麻法,我把所有可能出现的情况都给你列出来,你自己选择。我说:不要这样,好的程序是不要枚举各种情况,如果有很多很多扩展名,你要组合的话,太累。程序里面遍布Switch代码,看起来很不舒服。

算了咱们找找其他方法:方法三:用两个列表框,左边的列出来所有的可能扩展名称,用户只要将左边的选择到右边的,以右边为统计类型进行计算。这样优化了很多,问题也暴露出来了,1、我要增加新类型怎么办?是不是还需要做一个Edit来输入新的类型。2、操作内容太多了,要选来选去,程序量比较大。我说不行,你来找其他方法来,你怎么办?是不是认准这个办法,不作调整。那样会影响到你今后的发展的,小问题带来了大麻烦。

行,你认了,找新方法:
方法四:用一个Edit来输入文件的扩展名称,如:.CPP;.H; 这样很灵活,程序也很简单。问题也存在,使用者说:我不知道要这样操作,什么还要分号来分隔。怎么办,咱们下面增加一个说明,告诉她用分号区分。这样基本可以,还有好的方法吗?