1,不要怨天怨地。出了问题,当然有可能是系统的bug,API的问题,但是那些几率往往比你犯低级错误的几率要低多了,先从自己身上找原因,是不是自己写错了。
2,要掌握工具。最低限度你要会写Log,最好是Log和调试器结合。好 的工具可以大大的提高效率。以前有人跟我说,Dll不能调试,我发现可以;有人说多线程不能调试,我发现可以;有人说COM不能调试,我发现可以;有人说 IE插件不能调试,我发现可以;有人说OE插件不能调试,我发现也可以。当然,你确实会遇到不能调试的时候,当年我们做东芝芯片的嵌入程序,一个组都没有 一个仿真器和调试器,但是至少可以用Log嘛,无非是麻烦点。
3,分析问题要有逻辑。遇到问题可以先把所有的可能性都列出来,然后一个一个分析,肯定能找到原因的。
4,要学会隔离问题。问题涉及到的代码越多,越难以理解,问题越难以解决。遇到这样的情况,可以利用Log或者调试器,一行代码一行代码的给它们洗清嫌疑,这样很快你就可以找到出问题的地方。如果代码特别长,程序特别复杂,可以用二分法来做,效率很高。
5,千万不要懒惰,不要事事求别人。一次复杂的调试过程就像一部侦探剧,如果你有非常好的逻辑性,那这部剧的主角就是福尔摩斯,剧情一定非常精彩。我说这个是有巨大风险的,说真的我帮人调东西挺上瘾的,很有意思。但是我还是要告诉大家,一次高难度的调试之后,你的满足感绝对不亚于写了一个伟大的程序。
要想不遇到问题,写代码的时候:
1,要对写出来的代码负责。我很佩服那些写代码写100行都不执行一次的 高手,如果他们最后不被低级错误困扰的话我就更加的佩服了。我写程序几乎是写一行两行就要执行一次,每句话我都要确保执行效果跟我的预期一致。没错这样写的时候 可能慢一些,但是调试的时候很轻松,我可以很简单的确定哪些代码绝对没有问题。所以我写代码整体速度比一般人高。很多人学习新东西的时候喜欢把例子抄一遍,运行一下,改改,再运行。我喜欢一句一句的抄例子,抄一句两句执行一次,这样可以把例子透彻的理解,而且很难会遇到出现了问题找不到原因的时候。
2,函数体功能块不要过长。我认为我的智商并不高,我很难接受一个程序的一个函数体或者一个功能块超越3屏(当然逻辑真的有那么复杂除外,你会发现越是简单的逻辑越是容易被人写的冗长)。很多人对面向对象耳熟能详,对封装继承看起来驾轻就熟。但是动不动就写出来个函数体超长的程序。这就像写本书从头到尾不点句号一样,会累死读者的。自己看的时候,估计也会被累的喘不过来气。这是我对基础教育的微词所在,他们连教会学生写函数都没教会,虽然表面上他们连面向对象这么高深的东西都教。
3,缩进要对。这点很重要,虽然大部分语言不是像Python那样用缩进来决定逻辑块的位置,但是人看到缩进的时候,总是会以为这些缩进位置跟逻辑相关。尤其是在有大量的ifelse或者for循环等等的嵌套逻辑的时候,如果缩进错了,可能会直接让人把程序的逻辑读错。所以我拿到别人的代码,第一件事情就是整理缩进。我见过一些比较优秀的页面工程师,他们会在div结束的位置用注释写上这个div的id,这样层级关系就一目了然了。
4,不断重构。随着程序的不断修改,有些部分会不断的增长,原来看着清晰的架构可能因为问题的复杂而慢慢模糊,也可能被修正bug的权宜之计弄的面目全非。不信你找一个经过多次修改的程序看看,是不是满目疮痍,是不是都很难认出是你自己的作品了。这在多人参与的项目中更加严重,每个人有不同的代码风格,经过多次杂交后,你肯定认不出你的代码是骡子是马,还是四不像了。随着程序的慢慢成长,原来有些函数体会慢慢膨胀,需要拆分;有些原来简单的功能块四处都需要,应该被提炼成函数或者方法,等等。现在不重构,未来等到代码复杂到无法控制的时候,重构的工作就会变得更加困难。我见过最强的案例是,一个几千行的电子辞典配套联机软件,经过无数次的改版,变成了一个几乎无法维护的主窗体的cpp有1万8千行的怪物。最后经过复杂的重构,才变成一个出新版本只需要新增一个驱动程序的可以维护的几千行的程序。
分享到:
相关推荐
四个有害的Java编码习惯 程序中的编码风格让我们的编程工作变得轻松,特别是程序维护员,他们要经常阅读其他人编写的程序编码,这一点尤其突出。编码规范从根本上解决了程序维护员的难题;规范的编码阅读和理解起来...
"Wind River的编码习惯"这个主题涉及到在VxWorks环境下编写代码的一系列规范和最佳实践,这些习惯有助于确保软件的可读性、可维护性和性能。 首先,编码习惯的基础是遵循一定的编程语言标准,例如C99或C++11。在...
在软件开发中,尤其是使用Java语言时,遵循良好的编码习惯对于编写可读性高、易于维护的代码至关重要。以下是一些关键的Java编码习惯: 1. **Eclipse源代码格式化**:Eclipse作为流行的Java IDE,提供了自动格式化...
### Flex SDK 编码习惯和最佳实践:详细解读 #### 引言 在软件开发领域,尤其是使用ActionScript 3进行Flex框架组件编程时,遵循一套统一、规范的编码习惯和最佳实践至关重要。这不仅能提升代码的可读性和可维护性...
本文将深入探讨C#中的命名规范和编码习惯,帮助开发者养成良好的编程习惯。 首先,命名规范是编程中的一大关键。在C#中,应遵循以下原则: 1. 类型和方法名采用PascalCase(首字母大写)命名法,如`TextBox`和`...
C#3.0编码习惯与命名规则是编程实践中至关重要的组成部分,它们有助于提高代码的可读性和维护性。以下是对这些规则的详细说明: 1. **Pascal 大小写规则**:对于公共的类、方法、属性、事件等,使用Pascal大小写...
### 良好的编码习惯 在软件开发领域中,良好的编码习惯对于提高代码质量、增强程序可读性和可维护性至关重要。本文将基于提供的部分文件内容来深入探讨一系列优秀的编程实践,帮助开发者培养健康的编码习惯。 ####...
### .NET编码最佳实践解析 #### 一、增强代码可读性和维护性 ...综上所述,遵循这些.NET编码习惯可以显著提升代码的质量、可维护性和性能。开发者应时刻关注代码的效率和可读性,不断优化编码实践。
因此,研究者提出了一种基于编码习惯的抄袭检测方法,通过获取学生历史编码数据并进行分类,然后根据学生的编码习惯,对同类代码进行特征提取,形成特征矩阵。接下来,算法将对比待检测代码与历史代码之间的相似度,...
根据提供的文件信息,我们可以整理出一系列与C#编程相关的最佳实践和编码习惯。这些习惯能够帮助程序员编写出更高效、可维护且易于理解的代码。 ### C#编码习惯概述 在C#编程过程中,遵循良好的编码习惯对于提高...
### 大牛们的C#编码习惯 在软件开发领域,特别是在使用C#语言进行编程时,遵循一套良好的编码规范和习惯对于提高代码质量、增强可维护性和可读性至关重要。以下是从一篇关于“大牛们的C#编码习惯”的文章中提取的...
聊聊Java中一些减少if else 的编码习惯的方法 在编写Java代码时,我们经常会遇到大量的if-else语句,特别是在业务逻辑中需要进行多个条件判断时。虽然if-else语句可以帮助我们实现复杂的逻辑判断,但是在某些情况下...
在软件开发领域,良好的编码习惯对于提高代码质量、维护性和可读性至关重要。本文将深入探讨一系列与C#语言相关的编码习惯,这些习惯可以帮助开发者写出更高质量的代码。 #### 1. 文件组织 - **一个文件只包含一个...
"Python-一个高品质编码风格习惯和标准清单列表"是一个宝贵的资源,旨在帮助开发者形成优秀的编程习惯,提高代码质量。这份清单可能包含了PEP 8规范、最佳实践以及一些社区广泛接受的编程指导原则。 首先,PEP 8是...
遵循良好的编码标准和习惯是每个程序员都应该重视的,因为它能提升代码的可读性、可维护性和团队协作效率。以下是对C#编码标准66条好习惯的详细解释: 1. **命名规范**:变量、函数、类和接口等应使用有意义的命名...
在软件开发过程中,良好的编码习惯对于提高代码质量、增强团队协作效率以及维护项目的长期稳定性至关重要。下面将详细解读C#编程中的一些重要编码规范与建议。 #### 避免将多个类放在一个文件里面 通常情况下,一...
* 使用统一的编码习惯,避免使用混乱的编码习惯。 * 使用 Android Studio 默认模板即可,使用格式化快捷键处理后基本符合。 遵守编码规范可以提高代码的可读性、可维护性和可扩展性,从而提高开发效率和质量。
应用编码规范对于软件本身和软件开发人员而言尤为重要,有以下几个原因: 1、好的编码规范可以尽可能的减少一个软件的维护成本 ,...4、长期的规范性编码还可以让开发人员养成好的编码习惯,甚至锻炼出更加严谨的思维;
在IT领域,尤其是在处理网页和富文本内容时,字符编码是一个至关重要的概念。...在编程实践中,我们应当养成良好的编码习惯,注意字符编码的选择和转换,以便在各种环境和场景下都能得到理想的显示效果。