程序设计中的感悟

  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. 应该考虑代码、函数的使用情况,不要超越函数可以使用的范围使用之。

转载于:https://www.cnblogs.com/Dicky/archive/2005/06/07/169435.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/276906.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

(转)用Java获得当前性能信息

(转)用Java获得当前性能信息 http://www.blogjava.net/amigoxie/archive/2008/04/30/197564.html在Java中,可以获得总的物理内存、剩余的物理内存、已使用的物理内存等信息,本例讲解如何取得这些信息,并且获得在Windows下的内存使…

docker wsl2启动不了_Docker学习笔记

在笔记本上主要还是想以轻量、方便为主,所以采用的是在WSL2中使用docker的这么一个方案。WSL2我笔记本原来是预装的是WIN10家庭版,需要先升级为专业版,并加入windows预览体验计划。更新完之后,安装WSL,我选择的是Ubunt…

暑假集训-8.06总结

学习内容: 搜索 今日完成题数(不包含多校):4 今日看书情况:15页 今日心得: 今天学的是搜索,虽然以前学过,但书上讲的更具体些, 比如说如何去优化搜索的次数等 英语题目好…

网易马进:DDB从分布式数据库到结构化数据中心的架构变迁

导语: 本文根据马进老师在2018年5月10日【第九届中国数据库技术大会(DTCC)】现场演讲内容整理而成。马进 网易 DDB项目负责人来自网易杭研大数据平台组,入职以来先后参与了分布式数据库DDB,缓存NKV,网易数据运河NDC等项目&#xf…

element label动态赋值_浅析 vuerouter 源码和动态路由权限分配

背景上月立过一个 flag,看完 vue-router 的源码,可到后面逐渐发现 vue-router 的源码并不是像很多总结的文章那么容易理解,阅读过你就会发现里面的很多地方都会有多层的函数调用关系,还有大量的 this 指向问题,而且会有…

MessagePack Java 0.6.X List, Map 对象的序列化和反序列化

为了序列化原生的容器对象例如 List 和 Map 对象,你必须使用 Template。 Template 对象是 serializer 和 deserializer 的配对。例如,为了序列化一个 List 对象,在 List 对象中 Integer 对象为元素,你可以使用下面的方法来创建一…

世界领先的界面设计公司:The Skins Factory

该公司的网站: http://www.theskinsfactory.com/skinsfactory/ 该公司诞生于2000年,由一群狂热的界面爱好者,带着对GUI的热情和大胆的洞察力创立。很快,皮肤工厂便成长为世界领先的、真正的、革命性界面解决方案提供商。 更多的精…

HDU 1253 胜利大逃亡 题解

胜利大逃亡 Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 44540 Accepted Submission(s): 15483 Problem DescriptionIgnatius被魔王抓走了,有一天魔王出差去了,这可是Ignatius逃亡的好机会.魔王住在一个城堡…

lstm需要优化的参数_使用PyTorch手写代码从头构建LSTM,更深入的理解其工作原理...

这是一个造轮子的过程,但是从头构建LSTM能够使我们对体系结构进行更加了解,并将我们的研究带入下一个层次。LSTM单元是递归神经网络深度学习研究领域中最有趣的结构之一:它不仅使模型能够从长序列中学习,而且还为长、短期记忆创建…

有哪些漂亮的中国风 LOGO 设计?

提到中国风的logo,我觉得首先登场的应该是北京故宫博物院的logo,铛!故宫博物院的logo,从颜色,到外形,到元素,无一例外,充满了中国风的味道,可谓是中国风中的典型。同一风…

大家放松下,仿《大腕》经典对白

仿《大腕》经典对白: 一定要找那最流行的框架, 用功能最强大编辑器, 做就要做最复杂的系统, 轻量级的绝对不行, 框架最简单也得是SPRING&…

MySQL-8.0.12源码安装实例

1、通过官网下载对应的版本后,通过FTP上传至云服务器的/usr/local/src 目录 2、解压缩文件 [rootJSH-01 src]# ls mysql-boost-8.0.12.tar.gz [rootJSH-01 src]# tar zxvf mysql-boost-8.0.12.tar.gz [rootJSH-01 src]# ls mysql-8.0.12 mysql-boost-8.0.12.tar.gz…

python3常用模块_Python3 常用模块

一、time与datetime模块 在Python中,通常有这几种方式来表示时间: 时间戳(timestamp):通常来说,时间戳表示的是从1970年1月1日00:00:00开始按秒计算的偏移量。我们运行“type(time.time())”,返回的是float类型。 格式…

Windows下的HEAP溢出及其利用

Windows下的HEAP溢出及其利用 作者: isno 一、概述 前一段时间ASP的溢出闹的沸沸扬扬,这个漏洞并不是普通的堆栈溢出,而是发生在HEAP中的溢出,这使大家重新认识到了Windows下的HEAP溢出的可利用性。其实WIN下的HEAP溢出比Linux和SOLARIS下面的…

地方政府不愿房价下跌 救市或化解房地产调控

地方政府不愿房价下跌 "救市"或化解房地产调控 2008年05月09日 07:29:38  来源:上海证券报 漫画 刘道伟 由于房地产业与地方政府利益攸关,地方政府最不愿意看到房价下跌。中央房地产调控政策刚刚导致部分城市的房价步入调整,一些…

App移动端性能工具调研

使用GT的差异化场景平台描述release版本development版本Android在Android平台上,如果希望使用GT的高级功能,如“插桩”等,就必须将GT的SDK嵌入到被调测的应用的工程里,再配合安装好的GT使用。支持AndroidiOS在iOS平台上&#xff0…

UITabBar Contoller

。UITabBar中的UIViewController获得控制权:在TabBar文件中添加:IBOutlet UITabBar *myTabBar; //在xib中连接tabBar;(void)tabBarController:(UITabBarController *)tabBarController didSelectViewController:      (UIViewControlle…

python3.5安装pip_win10上python3.5.2第三方库安装(运用pip)

1 首先在python官网下载并安装python。我这儿用的是python3.5.2,其自带了pip。如果你选择的版本没有自带pip,那么请查找其他的安装教程。 2 python安装好以后,我在其自带的命令提示符窗口中输入了pip,结果尴尬了,提示我…

C语言程序设计 练习题参考答案 第八章 文件(2)

/* 8.8从文件ex88_1.txt中取出成绩,排序后,按降序存放EX88_2.TXT中 */ #include "stdio.h" #define N 10 struct student { int num; char name[20]; int score[3]; /*不能使用float*/ float average; }; void sort(struc…

语法上的小trick

语法上的小trick 构造函数 虽然不写构造函数也是可以的,但是可能会开翻车,所以还是写上吧。: 提供三种写法: ​ 使用的时候只用: 注意,这里的A[i]gg(3,3,3)的“gg”不能打括号,否则就是强制转换…