热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

重构程序的经验教训.

最大的教训,当然就是对程序而言.扩展性是非常重要的.如果扩展性不行,就必须重构,然后各种编译时,运行时错误.这样你以前调试好的程序就没用了.非常浪费时间及精力.所以程序的扩展性在一

最大的教训,当然就是对程序而言.扩展性是非常重要的.
如果扩展性不行,就必须重构,然后各种编译时,运行时错误.
这样你以前调试好的程序就没用了.非常浪费时间及精力.所以程序的扩展性在一开始就要考虑好.

//错误的代码,可删掉.//可变成切换尾,再变回来,a,b交换//假如切换不对,这个就错了.显 切换子(向量<>&o,极 为尾){//c,b,a断定(为尾&#61;&#61;1,"错误,要为1");串 无;x&#61;切换尾;2(o,,c,b,a);y();}//这里单代表单符.不是串.
//不是这样切换的,切换要用&#96;切尾&#43;切回&#96;.

目前而言.c&#43;&#43;的调试我都是用打印大法.不能根据不同的类进行开关.否则,把类名加入每个编译时参数及每个调试语句,又是很难受的.或者再继承一个调试标志,再初化.都不好.我也没有解决办法.
对于简单的规则而言,可以把许多规则都集中在一个配置文件.
别人的程序,因为配置项较多,就一样一个配置.我的简单,就集中在这一个配置文件.
把一堆难看代码,用一个简单函数包在一起.放在一堆.好看点.
感觉模糊测试没多大用.找不出啥问题.偶尔碰出来一两个,但都是运气.不如搞个完整的测试集.
我记得原来最喜欢用Shift&#43;delete了,都养成习惯了.后来.这个方法要不得.因为偶尔动作太快,就
把对你有用的给删掉了.连后悔的机会都没有.于是,我只好养成只按一个delete的方法.还是爽,后悔的次数要少些了.
写程序的时候,编译时错误不是难点,运行时错误才是难点,很难找有哪些错,可能现在程序还有一些地雷.
写程序前,有些流程要搞懂.最开始写的时候,就是编程.但运行时,总是出错,就是流程搞错了.
要干什么,再干什么,接着干什么不要搞错了.
还有尽可能的移动.,因为输入可能只是一次性的,不再用了.,这时就可移动了.
程序的逻辑一定不要出错.如如(小.成功&#61;&#61;0)下;//不成功,则下,这一句,要首先放在该段前面.要求必须成功.
如果失败,则.
对基类的操作,会影响所有子类.对有些公共方法放在基类,调试时就要小心.
对基类.虚 空 函数()&#61;0,表示虚函数.
把所有不要的函数(写错的函数)放在一个专门文件里面.这样文件也稍微干净点,有时看可以看看.
最坑人的是:
针对向量的判断如:如(依.大小()&&有一(依,m))中;.假设不要前面的依.大小(),则光是有一(依,m),你可能得出
的是错误结果.所以,要小心这种逻辑坑.
一堆功能接近或关系紧密的代码另外单独放一个文件.主类里面不要放太多.最多4,5个大类就够了.不然,
太难看.
主类里面的数据,或不变的东西,都可以放在基类,不再考虑.只关注变化的东西.
复制过去的代码时,很多都调试好了,除了小细节,还是很容易的.主要是过去未提取出来,构成一个.
一个类,其实就是个大函数.公开的方法或数据少而精,而且不要变.不要像别人,新版本与旧版本不兼容.
我的接口都没变,怎么会不兼容?.
类中的临时数据多个函数,只好放在类中.不能放在方法里,该如何破?跨了3,4个函数.没法,只好放在类中,
但一定要注意,它只是临时数据.不能用的.
还是那个调试问题,不好解决啊.偶尔还是要用异常,没得法.

(文系错误&e){}(异常&e){静 出向量 出{"错误01.txt"};打印(e.什么());.(b);b&#61;e.什么();.(b);}

很多时候错了,有可能是基础类有问题了.因为我的基础类并没有像别人那样经过充分测试.
所以,以后要加强测试/完整测试.这非常重要.
针对性的测试模糊测试强多了.模糊测试就是吹.
自己的文件或程序要经常使用,不要怕错.错才好修改.
我的文件里面注释比代码还多.就是要多写注释,实在烦的话,就另外放一个文件里面.
既干净,还可以看看当时想法.
c&#43;&#43;里面对类的成员函数很难用批处理.你不得不写对(动&p:列),这一句.很折腾.
类的依赖关系.要少.一定要仔细把握程序的流程.
最重要一点;所有程序块都要运行到.运行时错误,只有运行时才能发现,就只能测试时把所有块都测试到.
这样错误就可能少一些了.我在运行时,就发现错误跟着流程块走.先是第一块出错了.
再是第二块错了.基本上每写一块,这一块就有错.一会儿这个类错了,一会儿那个类错了.
错误何其多.所以,可以算写程序&#61;写代码&#43;写测试,必须重视测试.不能像微软,搞个AI测试,那是不靠谱的.
再说一遍:测试块,每块代码都要测试.这很重要,非常重要!


推荐阅读
  • 解决PHP与MySQL连接时出现500错误的方法
    本文详细探讨了当使用PHP连接MySQL数据库时遇到500内部服务器错误的多种解决方案,提供了详尽的操作步骤和专业建议。无论是初学者还是有经验的开发者,都能从中受益。 ... [详细]
  • 本文详细分析了JSP(JavaServer Pages)技术的主要优点和缺点,帮助开发者更好地理解其适用场景及潜在挑战。JSP作为一种服务器端技术,广泛应用于Web开发中。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文深入探讨了Linux系统中网卡绑定(bonding)的七种工作模式。网卡绑定技术通过将多个物理网卡组合成一个逻辑网卡,实现网络冗余、带宽聚合和负载均衡,在生产环境中广泛应用。文章详细介绍了每种模式的特点、适用场景及配置方法。 ... [详细]
  • 解读MySQL查询执行计划的详细指南
    本文旨在帮助开发者和数据库管理员深入了解如何解读MySQL查询执行计划。通过详细的解析,您将掌握优化查询性能的关键技巧,了解各种访问类型和额外信息的含义。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • PHP 5.2.5 安装与配置指南
    本文详细介绍了 PHP 5.2.5 的安装和配置步骤,帮助开发者解决常见的环境配置问题,特别是上传图片时遇到的错误。通过本教程,您可以顺利搭建并优化 PHP 运行环境。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 360SRC安全应急响应:从漏洞提交到修复的全过程
    本文详细介绍了360SRC平台处理一起关键安全事件的过程,涵盖从漏洞提交、验证、排查到最终修复的各个环节。通过这一案例,展示了360在安全应急响应方面的专业能力和严谨态度。 ... [详细]
  • Google最新推出的嵌入AI技术的便携式相机Clips现已上架,旨在通过人工智能技术自动捕捉用户生活中值得纪念的时刻,帮助人们减少照片数量过多的问题。 ... [详细]
  • 解决微信电脑版无法刷朋友圈问题:使用安卓远程投屏方案
    在工作期间想要浏览微信和朋友圈却不太方便?虽然微信电脑版目前不支持直接刷朋友圈,但通过远程投屏技术,可以轻松实现在电脑上操作安卓设备的功能。 ... [详细]
author-avatar
susan0912010311fool
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有