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

推荐订阅源

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

博客园 - Cool_IT_Cool_Man

如何向MyEclipse项目的文件夹中添加JSP页面? JavaScript调试工具 MyEclipse中如何安装插件(以Subclipse为例)[转] s:textarea中的文本内容在什么时候才能被赋值给Action中的属性? 由 s:hidden 引起的文本框内容不能传到 struts的Action中 在Eclipse工作空间中移除再添加项目的方法 在Eclipse工作空间中创建新项目的方法 Visual Studio 使用常见问题 如何阅读C++源代码 《Ogre 3D 游戏开发框架指南》配套光盘的一个小瑕疵 Orz游戏开发框架阅读笔记(一) 类型安全·异常安全·线程安全 如何使用Eclipse从Subversion源码服务器下载源码? UltraEdit不能对Matlab的M文件进行语法高亮显示问题的解决 JessDE 在 Eclipse中不能正确安装的问题 UltraEdit的语法高亮文件网址 如何配置SWRLJess Tab? 如何在Protege3.4中安装graphviz以便在protege中使用OwlvizTab? 语义网的学习资源大汇集(转载)
编程经验小结
Cool_IT_Cool_Man · 2009-10-22 · via 博客园 - Cool_IT_Cool_Man

1、采用最自然、最简单的设计。只在必要时才采用精巧的设计。

2、平时编程和测试中遇到的错误,一定要清除,否则留到最后,成为难以琢磨的错误,到用户反馈回来再追踪,要花几倍甚至十几倍的时间。 

3、涉及到从数据库读数据的问题,一定要考虑到连接是否释放,一定要测试是否会出现连接池满的情况,方法是,对模块进行数千次或更多次的连接和关闭,看是否会报连接池满的错误。
4、OOD(面向对象设计)要偏向于职责导向,而非问题导向。

5、快速编程的方法1: 用中文注释的方式写出中文流程。在此过程中很自然地对模块进行了自顶向下的划分。根据模块的功能确定函数的签名(即函数名和函数参数表)。
6、快速编程的方法2: 首先写出实现主要逻辑的骨干代码(甚至可以只是完成逻辑流程的明确划分),再逐步精细化以及对一些过大的函数进行重构。
7、注意:不要过早陷入细节,一定要先完成主要逻辑代码,这是控制开发时间的关键。


8、不要想一步完成一个大任务,遇到这种情况最好是分成多步来完成。比如,有时想把一个模块做得很完美,于是在每一步都写得很精细,这样的弊端是过早地陷入细节,开发时间就会拖得很长。不如首先将代码的骨干逻辑写出来,完成后,再精细化,这样开发进度就会容易控制得多。把一大步分成多个小步是很好的开发策略。
9、编程的第一步是厘清逻辑,写出一步步要做什么(相当于流程图)。

10、正常情况下不会出现的错误可以用Debug.Assert(以C#为例,下同)来限制。假如此处发生了中断,那么表示不是本函数的问题,而是函数的调用者未传入正确的参数或其他的外部原因。比如,在函数说明中已经作了限制的参数,由于调用函数的错误使用,传入了不符合规范的参数,这样在程序中加入了Debug.Assert就可以检查到。
11、当要防范的问题不是函数内部的问题,而是外部的问题时,可以用Debug.Assert。
Debug.Assert主要是防范“正常情况下不会出现的错误”
Exception(异常)主要是防范“正常情况下可能出现的错误”。

12、编程时,要优先采用以前成功使用过的技术或函数,以加快编程速度同时降低风险。
13、不要为了学习某种新技术,而刻意地去采取复杂的或不自然的代码;在项目开发过程中,也不要从学习的目的出发,刻意地使用一些以前没有使用过的技术。要记住,项目开发的目的在于开发取得成功,而不是在于所采用的技术。
14、自己编程技术上的提高应该平滑地进行,小步快走,不要一步迈得太大。特别是不要为了提高自己的技术而贻误时间,造成开发项目失败。

15、要在保证进度和遵循良好编程习惯之间到达平衡。
16、采用灵活架构的一个重要目的是为了便于修改和扩充。