编码的依据是什么?很多人也许是不假思索就回答“需求!” 很多人也确实是这么做的,而其实有些人不是依据需求在编码,这是他们自己不这么认为而已。
从需求过度到代码,总觉得有点突然,是不是缺点什么呢?是的,中间应该有个设计的过程。不论是架构设计,详细设计,还是一个算法的设计,归根到底都是有设计的,只是并不是所有的设计都写着纸上,画成图而已。所以,编码的根据不是需求,是设计。
那依据需求而直接编码,会有什么样的后果呢? 直接表现是,代码充斥非常多的IF-ELSE, 代码异常的长,其实我们仔细分析需求,它其实就是由无数的IF-ELSE嵌套而成的。这样的代码看起来就是需求的"直译", 充斥着大量的重复的逻辑,因为它没有抽象(抽象是设计中得到的),并且一般不能很好的解决复杂的问题,或说如果“解决”的复杂问题,一般有数不尽的BUG, 如需要多线程协作的。这样的代码往往异常僵化,其表现是: 1. 发现BUG不好分析,必须一句一句的调试代码,因为整个代码就是铁板一块,毫无职责分配的思想在里面;2. 不敢轻易改动,往往牵一发而动全身,原因还是如前所述。
所以无论何时开始编码时,要先设计一下,就算你得到了足够详细的设计文档,这一步你也不能省略,因为再简单的Method写之前都要先想一下“怎么写最好?”;当然还有一种情况,问题比较复杂,开始不能都想透,而我们程序员最拿手的事情就是Coding, 这时候边Coding边想也无妨,就是通过编码去发现问题,整理思路,完成你的设计,这个过程中,要时刻理解自己的思路,不能迷失在森林中,最后还要按理顺的思路重新整理下代码。
我的实践是,系统的设计写成文档,该画的UML图一个都不能少;不是特别复杂的,我要把设计写在纸上,可能有UML图,也可能只是一些要注意的问题,并把需求用自己的语言逻辑写出来;再简单的,就在大脑里想一下即可。
----------------------------------------------------------------------
张瑜,Mybeautiful, zhangyu0182@sina.com.
分享到:
相关推荐
在这种情况下,编码器仅需根据接收到的辅助信息来重建原始信号,而无需与解码器进行额外的信息交互。 #### 三、关键技术与算法 **1. 分布式变换编码** 分布式变换编码是DVC中的一个重要组成部分,它通过在编码端...
为了解决这个问题,研究人员提出了多种动态或自适应码本设计方法,如基于信道状态信息(CSI)的预编码码本,可以根据实时信道状况进行调整,以达到更好的性能。 总的来说,3D DFT码本是大规模MIMO预编码技术中一个...
波束赋型(Beamforming)和预编码(Precoding)是无线通信中用于提高信号传输质量和频率利用效率的关键技术。...在实际部署中,根据通信系统的具体需求和信道条件,可以灵活地选择和调整预编码和波束赋型技术。
在购买编码器时,用户应该明确自己的应用需求,根据需要测量的物理量范围和所要求的精度来选择合适的编码器分辨率。 总之,了解和掌握编码器分辨率的计算方法以及分辨率与编码器精度的关系,对于确保系统设计的准确...
根据Huffman编码的基本原理,开发一个软件,该软件能对英文文本进行压缩和解压缩。软件功能应包括: 1. **字符频率统计**:统计文本中每个字符出现的频率。 2. **编码报告**:展示每个字符的Huffman编码。 3. **...
前者主要研究如何根据图像信源模型来设计压缩算法,后者则研究如何使用信源模型来优化图像编码。 在第二章中,我们对基于信源模型图像压缩技术进行了综述,包括基于信源模型的图像压缩技术分类和分形图像编码。分形...
判断文件编码的基本方法是读取文件的前几个字节,根据这些字节的特征来确定文件的编码类型。对于UTF-8、UTF-16等常见编码格式,可以通过检查特定的字节序列来实现快速识别。 #### 示例代码分析 下面是一段用于判断...
在实际开发中,应根据项目的具体需求选择合适的方法,确保能正确处理各种编码格式的文件,避免因为编码问题导致的乱码现象。同时,使用开源库可以提高代码的健壮性和兼容性,减少手动编码的复杂性。
对于使用者来说,手册提供了选型指导,帮助用户根据实际需求选择合适的编码器型号。同时,手册中的故障排查部分对于维护和维修工作具有重要参考价值,能有效减少停机时间,提高生产效率。 此外,手册可能还会涉及...
增量型编码器与绝对值编码器是两种广泛应用于自动化设备中的位置检测传感器,它们在功能和工作原理上有显著的区别。 1. 输出信号类型: ...在实际应用中,工程师需要根据系统特性来权衡这两种编码器的适用性。
图像级帧、场自适应编码允许根据帧的内容动态选择帧编码或场编码,以优化编码效率。宏块级帧、场自适应编码(MBAFF)更进一步,它在宏块级别上决定使用帧编码还是场编码,根据图像局部的运动情况来确定最佳策略。 H...
1. **定位与导航**:当用户输入目的地时,系统会根据城市编码快速找到相应的位置,并规划出最佳路线。 2. **数据分析**:在大数据分析中,城市编码可以帮助统计和分析不同地区的用户行为、交通流量等信息。 3. **...
整个流程是按照软件工程的标准来执行的,要求学生能够根据设计要求独立分析问题、设计解决方案、编写代码,并进行调试和优化。 4. 考核方式 考核方式综合考虑出勤率、上机率、程序调试过程与结果以及课程设计报告的...
编码过程中,通过构建霍夫曼树来生成编码,解码时则根据编码的前缀特性,避免产生歧义。在C++实现中,需要维护一个优先队列(通常用堆实现)来构造霍夫曼树,并生成对应的编码字典。 2. 费诺编码: 费诺编码与...
根据访问者IP 或者说在城市,并获取到城市编码
这是根据疾病的种类、部位、原因和严重程度等信息进行编码的过程。在中国,这种编码通常遵循国际疾病分类(ICD)标准,而国家临床版2.0编码库就是基于ICD系统的一个本土化版本。它提供了详细的疾病分类,使得医生、...
- 对于每个符号,从该符号的节点开始,沿着父节点回溯,根据选择的编码方式记录路径(0或1),并将编码字符串倒序存储,以确保编码从高位到低位。 - 最后,将每个符号的编码存储在HCode数组中。 编码效率是衡量...
在哈夫曼编码的构造过程中,首先需要根据数据中各个符号的出现概率对它们进行排序。通常,概率越大,对应的符号在排序中越靠前。接着,选取概率最小的两个符号合并成一个新的节点,新节点的概率等于这两个符号概率的...
哈夫曼编码是一种变长前缀编码方法,它可以根据信源符号的概率分布计算信源熵和编码效率。本文将详细介绍哈夫曼编码的原理、步骤和实现方法。 哈夫曼编码的原理 哈夫曼编码的原理是基于信源符号的概率分布。设信源...