`
Fhappy
  • 浏览: 69090 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

代码编写心得

阅读更多

今天把聊天系统的代码分析了一下,发现代码耦合度很高。各个类相互调用其中的方法,A类调用B类的方法,B类调用C类的方法,又发现C类还调用了A类的方法。如此带来的问题出现了,要想修改其中一个类,就得修改使用了该类的类,以致整个代码都需要修改,使人头昏脑胀。这样的高耦合的代码,可扩展性低,不可能做到增加一个新的功能而只需修改少量代码。我们不能只专注于代码本身,而是应该跳出代码,去思考和设计代码的结构。理想的模式是一个类去调用其他的各个类,增加一个新的功能时,只需增加新的类,原来的类也不用做太大修改。

设计代码结构的时候,可以考虑采用监听器模型。比如一个简单的聊天客户端程序,我们把通信模块和界面分开,自己定义一个监听接口,通过这个监听接口将他们联系起来。通信模块就相当于一个事件源,当接收到消息时,即事件发生,界面监听到事件源,马上做出相应的处理,如显示接收到的聊天消息。这样通过接口将通信层和显示层分离,降低了它们的耦合度,便于代码的修改和功能的扩充。

在把简单的聊天系统初步完成后,发现设计文档真的很重要。之前写的程序,因为没有一个系统的规范的设计文档,使得写代码没有指导和方向,导致客户端和服务器端的消息格式不一致,或者通信流程不协调。要修改这样的代码更是难事,没有设计文档作为参照标准,很容易造成修改后还是会出现同样的问题。因为之前花了较多的时间把文档写的比较规范,然后按照文档去落实代码,就会发现敲代码只是顺水推舟的事情。

     现在我们编写的都是小程序,似乎都用不着设计文档,但是我们以后面临的必然是编写较大的程序,设计文档作为程序的说明书和编程指导,肯定会凸显其重要性。我们应该渐渐地养成先写文档,把程序中的重要问题和关键点考虑好。在实际中按照文档实施的时候,会发现当初没有考虑到的问题,可以对文档进行修订,使文档不断系统化和规范化。

0
5
分享到:
评论

相关推荐

    网页设计心得 高效编写网页代码

    网页设计心得:高效编写网页代码.

    BREW应用层代码编写总结

    最近开始了BREW的研究,公司在BREW平台基础上开发手机应用层代码,学习一段时间后有一点心得,与大家分享!

    java 连接sql数据库时的心得

    在编写代码的时候,总会遇到各种想不到的问题,只要自己努力,还有网络大虾的帮忙,相信自己会得到自己想得到的东西的!

    C语言实训心得总结.doc

    虽然对有些时候老师没给我们指出解决问题的方法有些小抱怨,但是到了结束时才知道,这种教学让我们自己学会了自学,学会了去看懂别人的代码。更多是老师给的感动,每天在我们来之前就到了教室,在讲课中海给我们分享...

    恶意代码分析实战实验作业

    这是由Michael Sikorski与Andrew Honig编写的《恶意代码分析实战》课后的配套练习题。本书具有极强的实战性,可以说是每一位恶意代码分析师人手必备的经典。特别是每一章后面的配套练习,都是作者以自己的实战经验,...

    代码语法错误分析工具pclint8.0

    C语言的灵活性带来了代码效率的提升,但相应带来了代码编写的随意性,另外C编译器不进行强制类型检查,也带来了代码编写的隐患。PCLint识别并报告C语言中的编程陷阱和格式缺陷的发生。它进行程序的全局分析,能识别...

    C++调试记录与心得分享

    本文给大家详细记录了一次C++的调试过程,以及调试的心得,非常的实用,有需要的小伙伴可以参考下

    自动识别技术 实验报告1 曼切斯特编码碰撞检测算法 ——曼切斯特编码碰撞检测的python实现算法 —— 代码 + 200字心得

    自动识别技术 实验报告1 曼切斯特编码碰撞检测算法 ——曼切斯特编码碰撞检测的python实现算法 曼彻斯特编码(Manchester Encoding),也叫做相位编码(PE)是一个同步时钟编码技术,被物理层用来编码一个同步位流的...

    [原创]基于字符的贪吃蛇游戏源代码(C语言实现)

    本软件用C编写,代码由Snake.c,Snake.h,SubSystem.h, SubSystem.c, main.c等文件组成,SubSystem模块内部调用了部分WINAPI,以适应在win32环 境下的编译器中通过编译,修改SubSystem模块可以很方便地将该游戏移植到 ...

    java课程设计心得体会.docx

    参与小组共同完成的编写代码、实现功能模块。历时两个星期终于在大家的一起努力下顺利完成了。虽然过程辛苦是不可避免,但收获还是令人感到尤其的欣慰。在这次的课程设计中不仅检验了我所学习的知识,也培养了我的...

    vb编写的抛物线源代码

    VB 抛物线 ,源代码, 初步学习心得,希望能用的上。

    数据库课程设计心得.docx

    数据库课程设计心得 在这次课程设计中,我们小组设计的是一个仓库管理系统,通过设计这个系统,可以更方便地实现信息的浏览,查询,添加等操作和报表输出等功能,具体包括能实现产品入库管理,可以填写入库单,确认...

    PC_Lint C/C++ 软件代码 静态分析工具

    C语言的灵活性带来了代码效率的提升,但相应带来了代码编写的随意性,另外C编译器不进行强制类型检查,也带来了代码编写的隐患。PCLint识别并报告 C语言中的编程陷阱和格式缺陷的发生。它进行程序的全局分析,能识别...

    java学习心得

    1. 在面向对象部分的代码至少要写五遍,而且不准出任何的错误。 2. javaSE的应用部分:java的面向对象、java类集、java IO、JDBC会完整编写 3. 使用public class声明时,类名必须与文件名完全一致;但是用class声明时...

    C++编程思想笔记 某君学习C++的心得体会

    一、多态性的解释: 当处理类型层次结构时,程序员常常希望不把对象看作是某一特殊类型的成员,而把它看作基本类型成员,这样就可以编写不依赖于特殊类型的代码。在形体例子中,函数可以对一般形体进行操作,而不...

    iOS开发入门心得与实战经验分享.zip

    内容概要:这篇文章是一篇关于iOS开发的入门心得和实战经验分享。作者以通俗易懂的语言,介绍了iOS开发的基本概念,如...目标是帮助读者更好地理解iOS开发的核心概念和用法,提高开发效率,编写更简洁、可维护的代码。

    实验四Qt编写简单的计算器

    这个事用QT编写的计算器例子,代码全面,是学习qt很好的惨嚎资料。

    Java Swing俄罗斯方块-含完整源码

    详细介绍见链接(有界面详细截图) ...自己写的一个Java版俄罗斯方块程序 界面做的中规中矩,每种形状颜色都不相同 程序控制还可以,没什么大的Bug 消磨时间的时候可以Down下来玩玩 也做了不少菜单选项 ...

    2024 Java Spring框架入门心得与实战经验分享.zip

    内容概要:这篇文章是一篇关于Java Spring框架的入门心得和实战经验分享。作者以通俗易懂的语言,介绍了Spring框架...目标是帮助读者更好地理解Spring框架的核心概念和用法,提高开发效率,编写更简洁、可维护的代码。

    c++学生成绩管理系统源代码+实验报告

    c++学生成绩管理系统源代码+实验报告, 文件读写、班级创建、添加学生、修改学生信息、等等

Global site tag (gtag.js) - Google Analytics