[搬家前]代码走查

测试理论知识二:代码检查与走查、错误列表、桌面检查 含义:代码检查与走查都要求人们组成一个小组来阅读或直观检查特定的程序,一组开发人员对代码进行审核,其中和只有一个人是代码的作者。以上这些方法通常会有效地查找出30%~70%的错误,这些方法不能有效的查找出高层次的设计错误,例如在软件需求分析阶段的错误。检查过程中,必须树立正确的态度,如果程序员将代码检查视为对其人格的攻击、采取防范的态度,那么检查就不会有效果。对于所有的数组引用,是否每一个下标的值都是整数?在使用的计算机上,当内存分配的单元小于内存可寻址的单元大小时,是否存在直接或间接的寻址错误? 阅读详情

代码走查,就是一群人一起,对别人写的代码进行分析。在算法上,在具体实现上,提出改进的意见。以使得程序更加健壮,更加有效率。今天对我写的一个Java Mail程序进行走查。自我感觉写得是有点丑,但是基本功能还是实现得很好的。经过走查,我收获很多。

下面是一些讨论中,可以改进的地方。

 

【1】多用面向对象的思想。以对象为处理的整体。

我的dao层,取得是诸如arrayList,int,这些单独的数据。这样子,没有把它封装起来成来一个对象,不利于处理。因为随着数据的增多,传单独的数据,不利于理解,也不利于操作。把它们封装成个对象,条理会清晰点。这里主要是考虑到以后扩展的需要。比如一个Bug,你现在可以简单地传一些title、id,但是如果需要传的数据量多时,就比不上传一个Bug对象了。

 

【2】在现有的Dao层上,再抽象出一层,用于包装逻辑操作,以及处理对象。

如果直接在Dao层上处理,比如封装对象等。也不好,因为这样就会嵌入过多的逻辑操作。与数据库操作的方法绑在一起,不符合功能独立的需求。所以,可以再进行一次的抽象,利用这些离散的数据来组合。这个可以参考公司的Utility,DBManager这些类。他们的作用就是封装底层数据库操作,获得一个完整的对象以供其他人使用。

 

【3】没有考虑到mail发送失败这种具体情况。

我之前的操作时,利用最后处理的action id,记为lastMailAction。如果一个action的id大于lastMailAction,说明它还未被读取过,于是为此bug发送邮件。处理完后,将lastMailAction设置为这些Bug中的最大值。

这样是方便操作。但是忽略了一个重要的因素:如果为此Bug发送邮件失败怎么办?通过一个lastMailAction,不足以表明哪些Bug成功发送,哪些失败。所以,从健壮性来讲,还是需要为Bug设置一个标记位,通过它来表示是否发送成功。这个是必要的。实际上,是会有失败的情况,不要太理想化。

 

【4】把经常变化的量,和不常变的量分开。

这点,与上面的理由类似。一开始,我将mail的host、userName、password、lastMailAction放在同一文件里。每次更新lastMailAction时,就要重新写这个文件。但是,host、userName、password这些一般是不变的,单独是lastMailAction变化而已。这样,如果在写lastMailAction时失败,影响到host这些怎么办。所以,不应该把他们放在一起。常变的与不常变的,应该分开。要考虑写失败这种实际情况。

 

【5】不要把一些配置写死到文件。

诸如host、userName、password这些,不应该写死到程序里。这样,当有变化时,自己修改程序代码,很麻烦,而且有可能会出错。应该把这些配置写到文件上。有个Properties对象,可以用于初始配置。

就是说,当有变化时,尽量可以用不修改代码的方式实现。修改代码不安全。

 

【6】把一些有共同处理流程的方法,抽象成一个函数。

这个理由也与上面相似。在我的程序里,有sendMail和sendMailReguraly函数。这两个都是发送邮件,一个是利用bug id发送,一个是利用bug 状态发送。但它们大部分的程序还是相同的,所以应该把它们放到一个函数里,利用标记位、参数来区别不同的操作。首先,可以省一些代码。其次,修改时,只需到一个地方修改即可,而不用在两个地方分别修改。这也是改动尽量少的代码的原则。(不要以为Copy,修改一个成为另一个函数是王道…)

 

【7】考虑最小消耗的方法。

循环一个arrayList时,我用的是while(!..isEmpty()){….remove(0)};的做法。但这样子,remove的操作,耗时大。如果使用一个指针i遍历数组的方式,不用改变它的结构,耗时相对会少一点。

同样的,对于多个String的合并,使用…+…+…+的方法也不好,因为,String就是一个对象,使用加号,把两个String加起,你要新建一个String,存储它们合并的结果。在利用这个String,与下一个String做加操作,又需一个新的String。所以,可以考虑使用StringBuffer,String..(忘了是什么哈…),这样处理会节省点。

虽然说,算法方面的优化,会很显著,这些只是小修小补。不过这就涉及到态度的问题,做到,还是做的漂亮。这些就需要在细节上做功夫。

 

【8】统计出错信息

一般我们遇到error Exception时,都直接e.print..,这样也不好。因为我们是隔一段时间就运行这个程序,每人监控,所以,统计的信息应该输出到文件中。可以使用log4j这种方法,也是java提供的。

 

【9】有exception时,finally的使用

比如一些输入输出流,有exception时,最好在finally里将它close掉。这些小的方面,就是对于程序结构的了解。不要以为exception是不会出现的….

 

暂时这么多吧。多点考虑,多些思考,积累经验。不要像在学校那样写代码...

[附源码]java毕业设计同城搬家平台 项目运行环境配置:Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。项目技术:SSM + mybatis + Maven + Vue 等等组成,B/S模式 + Maven管理等等。环境需要1.运行环境:最好是java jdk 1.8,我们在这个平台上运行的。其他版本理论上也可以。2.IDE环境:IDEA,Eclipse,Myeclipse都可以。 阅读详情

相关推荐

SAP SD核心流程解析:从销售订单到财务结算的实战指南

本文深入解析SAP SD模块从销售订单到财务结算的核心流程,重点剖析了销售订单中的行项目类别如何作为流程的“总开关”,决定了后续交货、开票及财务集成的走向。文章结合实战案例,详细拆解了正常销售、退货、第三方销售、寄售等典型流程的配置要点与国内化适配方案,并阐述了SD与财务模块集成的关键连接点,为顾问和用户提供了一份全面的实战指南。

weixin_29250403的博客 427

白盒测试之代码检查三种方式

桌面检查是程序员对源程序代码进行分析、检验,并补充相关的文档,发现程序中错误的过程。 由于程序员熟悉自己的程序,可以有程序员自己检查,这样可以节省很多时间,但要注意避免自己的主观判断。

software_test010的博客 2388

概率数据关联(PDA):多目标跟踪的基石算法

1. 为什么需要概率数据关联? 2. 核心思想与假设条件 3. 算法核心:概率分配与状态更新 4. 典型应用场景与优势 5. 挑战与改进方向 6. 下期预告

qq_44965657的博客 1465

项目管理—编码流程及代码走查

项目管理—编码流程及代码走查

深圳市多克创新科技有限公司 1594

【仿真】Carla Python API实战:从零搭建自动驾驶测试环境

本文详细介绍了如何使用Carla Python API从零搭建自动驾驶测试环境。通过Carla仿真平台,开发者可以构建高度逼真的城市环境和车辆物理模型,利用Python API实现传感器配置、数据采集、场景构建及自动驾驶算法集成。文章还分享了实际项目中的调试技巧和性能优化经验,帮助读者快速掌握自动驾驶仿真测试的核心技术。

weixin_29050513的博客 213

Android16 RK3576 Bluetooth source和sink模式切换

摘要:本文介绍了在RK3576平台上实现蓝牙A2DP模式动态切换的修改方案。通过在device配置文件中添加A2DP Sink相关属性,修改Bluetooth模块代码实现:1)在Config.java中增加persist.bluetooth.rka2dpsink属性控制模式切换;2)修改A2dpSinkStreamHandler.java取消音频焦点限制;3)调整btif_a2dp_sink.cc默认授予音频焦点。最终通过设置persist.bluetooth.rka2dpsink属性为true/false

tzj1058756809的博客 861

测试的艺术:代码检查、走查与评审

大多数人都以为,因为程序是为了供机器执行而编写的,那么也该由机器来对程序进行测试。这种想法是有问题的。人工测试方法在暴露错误方面是很有成效的。实际上,大多数的软件项目都应使用到一下的人工测试方法: 1. 利用错误列表进行代码检查 2. 小组代码走查 3. 桌面检查 4. 同行评审

yuanqianya的博客 921

CMOS图像传感器——Remosaic技术

对remosaic技术进行了介绍

沧海一升的博客 9585

代码走查(Code Review 或 Peer Review)是软件开发过程中的一个重要环节,旨在通过团队成员之间的相互检查代码来提高代码质量、促进知识共享、保证代码的可读性和可维护性。编写一个有效的

代码走查(Code Review 或 Peer Review)是软件开发过程中的一个重要环节,旨在通过团队成员之间的相互检查代码来提高代码质量、促进知识共享、保证代码的可读性和可维护性。

weixin_60830013的博客 932

2019年高教社杯全国大学生数学建模竞赛 C 题:《机场的出租车问题》真题解析与 MATLAB 解决方案

🏆 本文已收录于专栏:《滚雪球学数学建模(含历年真题)》,持续更新最新及历年数学建模竞赛资料,每篇内容力求做到“问题讲透、模型讲清、代码可用、论文可参考”,帮助你从零开始逐步建立完整的数学建模知识体系。

**My Coding Family** 3453

第2章-系统控制原理 -> 经典控制理论

第1章 回到目录 第3章 2 控制原理2.1 控制系统的数学模型2.1.1 时域数学模型2.1.2 复域数学模型2.2 线性系统的稳定性2.2.1 复数域稳定判据2.2.2 频率域稳定判据2.3 线性系统状态空间模型2.3.1 状态空间表达式2.3.2 状态空间系统设计2.4 李雅普诺夫稳定性分析2.4.1 李雅普诺夫稳定性2.4.2 李雅普诺夫稳定判据 2.1 控制系统的数学模型 2.1.1 时域数学模型 2.1.2 复域数学模型 2.2 线性系统的稳定性 2.2.1 复数域稳定判据 2.2....

赵继超的笔记 5552

基于SpringBoot+Vue的搬家服务系统

当今社会,人们的生活水平和社会地位的提高使得搬家成为一项常见的活动。然而,传统的搬家服务存在一些问题,如信息不透明、操作繁琐、服务质量参差不齐等。为了解决这些问题并提升搬家服务的效率和质量,基于SpringBoot+Vue的搬家服务系统应运而生。该系统利用SpringBoot作为后端框架,为搬家服务提供强大的业务逻辑支持和高效的数据处理能力。同时,通过使用Vue作为前端框架,系统可以实现用户友好的界面和流畅的交互体验。

znbcj的博客 1708

Java:PriorityQueue详解——从零基础到应用

看了网上的详解,我反是一篇没看懂,都是什么垃圾玩意也发出来,无语,我自己根据这两天的学习总结出来了下面这些干货,我就是这么学会的,大家要是零基础看肯定木问题。

流楚丶格念的博客 6142

网易博客搬家至优快云博客指南

优快云博客欢迎你 亲爱的网易博客用户: 陪伴了大家12年,是时候说再见了。 自2006年上线以来,我们陪伴着大家一起记录了那些闪闪发光的日子。每个人,每件事,每个故事,每种情怀,皆是生命中无数次回眸的遇见。 很荣幸陪伴大家十几年。跟你们一样,说出“再见”,我们同样万分不舍。但天下无不散之宴席,光阴和时代推动着我们每个人,唯有不停前行。 我们本来想按照惯例悄悄...

xxm的个人世界杯要开始了 2064

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

计算机毕业设计基于Vue的同城搬家系统 基于Web的同城搬家服务平台 同城搬家管理信息化系统

用户管理:支持用户注册、登录、信息修改及个人中心管理。搬家公司管理:记录搬家公司信息,包括公司名称、账号、联系电话、服务范围等。服务类型管理:维护不同类型的搬家服务信息,如服务名称、服务类型、服务价格等。搬家服务预约:用户可以在线预约搬家服务,填写搬家需求、预约时间、联系方式等信息。搬家需求管理:用户发布搬家需求,系统支持需求查询、修改和删除。搬家订单管理:记录搬家订单的详细信息,包括订单编号、搬家地址、目的地、费用等。取消预约管理:用户可以取消已预约的服务,系统记录取消原因和时间。咨询信息管理。

zhiwen206的博客 1107

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

基于Java+SSM+Flask搬家预约系统(源码+LW+调试文档+讲解等)/搬家服务预约/搬家公司预约系统/在线搬家预约/搬家预约平台/便捷搬家预约/搬家预约流程/搬家预约电话/搬家预约网站

前端:Flask、Python Web框架,后端语言Python后端:Spring+SpringMVC+Mybatis数据库:MySQL、SQLServer开发工具:IDEA、Eclipse、Navicat等✌关于毕设项目技术实现问题讲解也可以给我留言咨询!!!Flask 的扩展生态丰富多样,为程序设计提供了极大的便利。无论是数据库连接、用户认证还是模板引擎的扩展,都可以根据项目需求进行灵活选择和集成。这使得程序设计者能够根据具体情况定制功能,而不必受限于框架的内置功能。

cuidengzi的博客 971

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

wp网站怎么搬家服务器,【搬家】wordpress搬家原来这么简单

一直很想给网站搬个家换个服务器,由于拖延症,一直拖到前两天,写篇文章记录一下。搬家的话呢有很多种选择,今天主要介绍两种:搬家插件搬家手动搬家搬家插件搬家用插件搬家是最小白的做法了,但是插件在各种服务器里面运行可能会存在各式各样的问题,至少嘻哈用插件就不太成功,但是对于那些新建站的、站点环境比较OK(也不知道怎么才算OK)、文章比较少的、不太愿意动手的小白(仿佛在说我自己)来说就非常方便了。反正放不...

weixin_39658474的博客 470

蚂蚁搬家式的代码修改-源码版本管理工具

一线FPGA工程师痛陈团队仍用Excel+U盘做版本管理,导致问题修改难追溯、深埋Bug难排查。作者自学Python+AI,一周做出本地可视化版本管理工具,实现功能原子化、一键回滚。

m_paul的博客 1476

计算机毕业设计 java 同城搬家服务系统 基于 Java 的同城搬家服务平台Java 开发的搬家服务管理系统

在城市化进程中,传统搬家服务存在价格不透明、流程繁琐等问题。为优化搬家服务体验,开发一款同城搬家服务系统十分必要,既能整合搬家资源,也能规范服务流程。

毕设源码伍学长 1477

计算机毕业设计ssm同城搬家服务系统 基于SSM框架的同城搬家服务平台设计与实现 SSM架构下的同城搬家服务管理系统开发

计算机毕业设计ssm同城搬家服务系统2ew7f6a2(配套有源码 程序 mysql数据库 论文)本套源码可以先看具体功能演示视频领取,文末有联xi 可分享随着城市化进程的不断加速,人们的生活节奏愈发加快,搬家已成为许多人生活中不可避免的一部分。无论是工作调动、租房到期还是家庭需要,同城搬家的需求都在持续增长。然而,传统搬家服务存在诸多问题,如价格不透明、服务质量参差不齐、客户体验不佳等。这些问题严重影响了用户的搬家体验,也制约了搬家行业的健康发展。

辛雨学姐 854

小明搬家

小明搬家 【问题描述】 小明要搬家了,大家都来帮忙。 小明现在住在第N楼,总共K个人要把X个大箱子搬上N楼。 最开始X个箱子都在1楼,但是经过一段混乱的搬运已经乱掉了。最后大家发现这样混乱地搬运过程效率太低了,于是总结出了提高效率的方法。 大家的速度都是每分钟上(或下)一层楼。所有向上走的人手中都拿一个箱子,所有向下走的人手中都不拿箱子。到达第N层立刻放下箱子向下走,到达第1层立刻拿起箱...

beautiful_CXW的博客 834

计算机毕业设计springboot基于Vue的同城搬家系统 基于Spring Boot与Vue.js的本地搬家服务平台设计与实现利用 Spring Boot和Vue构建的同城搬家服务系统

随着城市化进程的加速和人们生活节奏的加快,同城搬家服务的需求日益增长。传统的搬家服务模式存在诸多不便,如信息不透明、服务效率低下、客户体验不佳等。为了满足现代用户对高效、便捷搬家服务的需求,开发一款基于Spring Boot和Vue.js的同城搬家系统显得尤为重要。这种系统不仅能够为用户提供快速、透明的服务体验,还能帮助搬家公司提升管理效率和服务质量。 在本系统中,我们采用了Spring Boot作为后端框架,结合Vue.js作为前端框架,构建了一个高效、稳定的同城搬家服务平台。系统的核心功能包括: 用户注

sheji5715的博客 1285

菜鸟的搬家经验

刚刚完成了搬家!心里有点小激动。我说下我的搬家过程! 在论坛里面看的那些试了好几个都不适用!写下自己亲自搬家的经验! 关闭网站之后开始以下步骤: 1 将旧站空间的所有文件(看好,是空间里面的文件,不包括数据库里的文件)压缩好后,下载到本地。 2 将旧站下载到本地的文件上传到新站!并解压! 3 下载“帝国备份王”软件(这个软件确实很人性化),将软件上传到新站的根目录! 4 打开http:

flashrock的专栏 543

织梦网站搬家流程揭秘

1、备份数据库数据库位置:系统设置-数据库备份/还原-提交2、备份整站文件到空间主机压缩根目录所有文件。用FTP下载,压缩的文件。3、安装源码到新的空间进行二次安装FTP上传源码压缩包文件到新网站根目录空间。到空间主机解压缩压缩包到网站根目录,并复制所有文件到根目录,把原有压缩包空文件夹删除。使用临时域名 后面加install,如果遇到dir问题,参考问题1解决。安装网站登录新安装的网站后台建站后...

1474

WordPress 搬家方法总结:迁移主机和更换域名

前言 WordPress 作为全球最流行的博客系统,使用简单,功能丰富,用它来建站的用户非常多。对于站长们来说,网站搬家也是少不了的,有时我们需要更换主机空间,把网站从一个服务器迁移到另一个服务器上,或者更换域名。 本文就详细介绍下 WordPress 网站搬家的几种方法,我们可以通过手动备份搬家,也可以使用插件工具一键完成网站迁移。还是很简单的。 准备 WordPress 网站搬家分两种情况,更换域名和不更换域名。搬家过程相同,更换域名的话需要多一步域名替换的操作。 注意:搬家前一定要备份网站文件和数据库

笨小蛋的博客 2072
上一篇: [搬家前]实习开始了好久
下一篇: [搬家前]缺陷管理工具的比较
lightty
博客等级 码龄17年 59粉丝 147原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值