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

推荐订阅源

阮一峰的网络日志
阮一峰的网络日志
D
Darknet – Hacking Tools, Hacker News & Cyber Security
S
Schneier on Security
The Last Watchdog
The Last Watchdog
Cyberwarzone
Cyberwarzone
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
C
Cyber Attacks, Cyber Crime and Cyber Security
L
Lohrmann on Cybersecurity
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 司徒正美
The Cloudflare Blog
V
V2EX
博客园_首页
博客园 - 聂微东
Vercel News
Vercel News
人人都是产品经理
人人都是产品经理
G
GRAHAM CLULEY
T
Tenable Blog
Last Week in AI
Last Week in AI
Y
Y Combinator Blog
L
LINUX DO - 最新话题
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
SecWiki News
SecWiki News
博客园 - 三生石上(FineUI控件)
S
Secure Thoughts
N
News | PayPal Newsroom
T
The Blog of Author Tim Ferriss
The GitHub Blog
The GitHub Blog
T
Troy Hunt's Blog
博客园 - 【当耐特】
Forbes - Security
Forbes - Security
H
Hacker News: Front Page
A
About on SuperTechFans
B
Blog RSS Feed
Engineering at Meta
Engineering at Meta
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
罗磊的独立博客
D
DataBreaches.Net
P
Privacy & Cybersecurity Law Blog
Schneier on Security
Schneier on Security
Application and Cybersecurity Blog
Application and Cybersecurity Blog
Google DeepMind News
Google DeepMind News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Jina AI
Jina AI
D
Docker
P
Proofpoint News Feed

博客园 - 花光月影

【转】如何通过mdf文件还原数据库的两种方法 PowerDesign的使用技巧 [转贴]SQL Server用户连接的管理 几个开源的PORTAL sql2000中修改表的所有者的存储过程 [转]如何让你的SQL运行快起来,希望有所帮助 影响SQLSERVER的性能的一些指标 久不见矣 程序中无法获得Request.ServerVariables("HTTP_REFERER")的值,寻求解决方法~~~~ 农历年底大家都很忙吗? 数据库的安全策略 SQL 事件探查器术语 SQL2000滴系统存储过程--sp_changeobjectowner(更改当前数据库中对象的所有者) SQL学习笔记----SQL2000中的角色及功能 .net中,如何获得活动目录(AD)上的密码失效时间? SQL数据库的事务日志意外增大或充满的处理方法 Sql Server数据库的备份和恢复措施 ASP调用.net的webservices的实现方法 ASP调用WebServices的方法?
[转]程序设计中的感悟
花光月影 · 2007-07-18 · via 博客园 - 花光月影

 
        1. 学习应该从基础打起,不要一开始就尝试最高深的技术。

  2. 每看一本书,不要说这章我以前学习过了,也掌握的很好,因此我可以跳过这一章看更重要的了。

  3. 对于作业,遇到不会的尽量不要立刻向别人请教。如果实在解决不了的问题,可以先完成你会的,然后把一些特别的难点提炼出来,向高手请教。不要指望书本和行家能帮你解决一切问题,因为并不是所有问题都能由别人教给你。

  4. 向别人请教问题应该把问题说明白。对于错误提示信息应该原样提供出来,不要按自己理解的信息提供。因为既然你自己做不了,说明你理解一般都有问题。

  5. 问问题最好能带代码。

  6. 不要说“编译通过,可是运行时...",因为编译错误和运行错误可能根本没有关系。一般来说,编译是语法问题,而运行是逻辑问题。

  7. 书看千遍不如做程序一遍,应该尽量尝试去写程序。

  8. 做程序千个不如做好程序一个。应该尽量完善你现在做的程序,而不要不断开新的计划,而每个计划都虎头蛇尾。

  9. 要想到你不是一个人写程序,而是和大家一起写程序。

  10. 高深的技巧虽然显示了高深的本领,但是对于合作往往是有害的,应该尽量写出简单易读的代码。

  11. 编制程序应该尽量做到自注释,即代码本身一读就懂,好象自己在说明自己的逻辑一样。

  12. 复杂的代码如果实在做不到自注释,应该给出适量的注释。

  13. 注释在修改代码的时候应该相应修改,不能用陈旧的注释去误导别人。

  14. 代码应该尽量可重用,相同功能的代码应该由相同的函数完成,重要函数应该给出调试信息,以便调试时及早发现问题。

  15. 应该尽量写小函数,每个函数尽量不要超过40行或者更少。这样不用滚动屏幕也许就可以读完整个函数。

    16. 对于switch语句,尽量不要有过多的分支,如果分支太多,可以考虑用跳转表。

  17. 尽量少使用一些有争议的语句,如goto和三目运算符,既然有争议,它肯定有一定的缺点。

  18. 对于goto,许多工程师技术高到可以合理使用,而不至于导致问题。但是你的程序并不一定给你同水平的人看和修改,他们可不能保证合理的读和修改这些相关代码。

  19. 代码编写时应该有一定的格式,其基本要求是对理解代码有一定帮助。

  20. 如果数据是多个模块共有的,应该提供一个封装的类来管理它,并提供一个合适的接口给各个模块。这样,如果数据内容有重大修改,则只要接口不变,基本上可以保证程序不要很复杂的修改。

  21. 应该尽量考虑到数据的并发控制。

  22. 数据的并发控制应该封装在接口内,而不要暴露给其他模块,这样可以减少因为并发原因导致的程序死锁。

  23. 数据本身结构不可以太复杂。应该尽量把不相关的数据分割成为两组数据。

  24. 对于数据量比较大的情况,应该考虑数据库。

  25. 数据库接口应该采用标准ODBC或者ADO接口,尽量不要根据实际数据库DBMS提供的接口来处理,因为你可能在实际使用中更换DBMS。

  26. 小的数据可以考虑文件,文件路径应该必须设计成相对路径。

  27. 在一个函数中,应该尽量打开文件后使用完后立刻关闭,这样其他程序可能使用文件。

  28. 不要尝试把文件全部读到内存中,应该分次处理大文件。

  29. 编写程序应该提供相关的测试程序,以提供测试手段。

  30. 应该考虑代码、函数的使用情况,不要超越函数可以使用的范围使用之。