让你提前认识软件开发(52):系统某模块工作原理详述

第3部分 软件研发工作总结

系统某模块工作原理详述

 

【文章摘要】

        某模块在系统中占有非常重要的地位,该模块能够对符合条件的动态信箱进行清理。本模块直接清理的信箱包括:过期动态信箱、冷冻信箱和空动态信箱;删除非动态信箱由本模块发送消息到其它模块完成。

        本文对该模块的工作原理的详细介绍,为相关模块的开发和测试提供了有益的参考,同时也有利于现场人员对本模块进行维护。

 

【关键词】

        系统  模块  数据库  流程

 

1. 本模块删除的信箱类型

        本模块删除的信箱类型如图1所示:

图1 本模块删除的信箱类型

 

2. 本模块程序执行流程

         本模块的主要程序流程如下:

2.1 程序执行总体流程

图2 程序执行总体流程

 

2.2 查询过期信箱流程

图3 查询过期信箱流程

        说明:

        (1) 本流程从数据库中查询出满足条件的过期信箱,包括动态信箱和非动态信箱。其中,动态信箱由本模块删除,非动态信箱由本模块发消息到其它模块进行删除。

        (2) 过期信箱的保留天数是受系统参数控制的,这些参数的值可以手动配置。如果当前时间值与信箱的lastusetime字段值之差大于了对应系统参数的值,那么该信箱就要被扫描出来并被删除掉。

        (3) 不管信箱是否为空(即信箱里面有无留言),只要是满足了过期删除的条件,都应该被删除掉。

 

2.3 查询冷冻信箱流程

图4 查询冷冻信箱流程

        说明:

        (1) 冷冻信箱是指状态值为某特定值的信箱,包括动态信箱和非动态信箱。动态信箱由本模块删除,非动态信箱由本模块发消息到其它模块进行删除。

        (2) 冷冻信箱是否删除,是受某系统参数值控制的。如果当前时间值与信箱的某字段值之差大于了该系统参数的值,那么该信箱就要被扫描出来并被删除掉。

        (3) 该流程与其它两个流程互不影响,即它们找出来的信箱没有重叠。

 

2.4 查询空动态信箱流程

图5 查询空动态信箱流程

        说明:

        (1) 空动态信箱指没有消息存在的动态信箱,即该信箱对应的留言表中内容为空。

        (2) 在查找空动态信箱之前,要先判断删除空动态信箱标志是否被打开,即执行存储过程4查找系统表中某参数的值。如果该参数的值大于0,则表示删除空动态信箱标志被打开;如果该参数的值等于0,则表示删除空动态信箱标志被关闭。

        (3) 在删除空动态信箱标志被打开的情况下,再执行存储过程5来查找空动态信箱。

        (4) 该流程与查询过期信箱流程中找出来的信箱会有重叠。如果某一个信箱同时被以上两个流程找出来,那么只会向内存链表插入一次,即内存链表中的信箱号码不重复。

 

2.5 删除动态信箱流程

图6 删除动态信箱流程

        说明:

        (1) 前面流程找出的所有动态信箱,均在该流程中进行删除。

        (2) 如果是过期动态信箱或冷冻信箱,那么直接调用存储过程6进行删除;如果是未过期的动态信箱,那么先要判断是否有留言,没有留言才会删除掉。

        (3) 在删除信箱成功之后,要删除该信箱相关的其它信息。如果删除信箱失败,那么也要写失败日志。

 

3. 总结

        在系统中,一个模块会完成很多的功能,只有对程序流程了然于心,在遇到问题的时候,才能够快速定位和排查。

        本文对系统中某模块的工作原理进行了详细的介绍,旨在使与该模块有交互的接口开发人员能够明白本模块的运行原理,同时为测试部和现场客服的同事展开相关工作提供了参考。

 

 

 

(本人微博:http://weibo.com/zhouzxi?topnav=1&wvr=5,微信号:245924426,欢迎关注!)

时间: 2024-09-18 13:53:24

让你提前认识软件开发(52):系统某模块工作原理详述的相关文章

让你提前认识软件开发(47):同行评审

第3部分 软件研发工作总结 同行评审            在<浪潮之巅>这本书中,吴军老师描述了在Google早期的工作方式,其中有一段是这么写的:我一般会在吃完晚饭后把代码修改的清单发给克雷格做代码审核,他一般晚上10点左右会回复我,给我修改意见,详细到某一行多了一个空格.         吴军老师所描述的内容,其实就是软件开发中的同行评审流程.         几乎在所有的软件项目中,都需要同行评审.一个人不管能力多强,看问题的角度总会受到限制,写出来的程序和文档等定不会是十全十美的.如

提前认识软件开发(1) 序言

序言 正式踏上软件开发岗位已经将近两年了,经历了很多,也学到了很多."万事开头难",学生转变为职业人的过程,恰似茧化成蝶的过程. 1.为什么要写作本系列? 在工作的过程中,我发现我们在学校里面学到的很多东西片面肤浅,根本达不到岗位的要求.像编码规范.研发流程等等学校里几乎不提及的知识,在实际的软件开发项目中却恰恰是异常的重要. 在学校里面,我们欠缺的教育主要包括以下方面: 第一,对编码规范的要求.计算机编程课上,老师只要求学生能够编写程序实现既定的功能即可,几乎不会对编码规范提出要求,

让你提前认识软件开发(1):序言

序言           正式踏上软件开发岗位已经将近两年了,经历了很多,也学到了很多."万事开头难",学生转变为职业人的过程,恰似茧化成蝶的过程.          1.为什么要写作本系列?        在工作的过程中,我发现我们在学校里面学到的很多东西片面肤浅,根本达不到岗位的要求.像编码规范.研发流程等等学校里几乎不提及的知识,在实际的软件开发项目中却恰恰是异常的重要.        在学校里面,我们欠缺的教育主要包括以下方面:        第一,对编码规范的要求.计算机编程

让你提前认识软件开发(15):程序调试的利器—日志

第1部分 重新认识C语言 程序调试的利器-日志           如果世界上有一个人能够保证一次写出来的代码是百分之百正确的,那么毫无疑问,他一定是世界上最优秀的程序员,没有之一.为什么要求代码写好过后要进行充分的自测(包括单元测试和集成测试)?就因为是人皆会犯错,是程序就会有bug.作为一名软件开发人员,必须要学会对程序进行测试,也就是要学会程序的调试.          一般而言,对代码的调试有以下几种方法:         第一,凭肉眼看.在开发阶段,我们编写的每一行代码都需要用我们的"

软件系统开发、软件开发、系统开发的差别

软件系统开发.软件开发.系统开发的差别一般人可能认为这三者是没有区别的,实际上不光是名词的不同,在定义上的区别很大,首先,系统开发包括两种,软件系统开发和硬件系统开发,系统开发比软件系统开发定义的范围要大得多.1.软件系统开发,信息系统开发.应用软件系统开发等等,这类是以编写代码进行开发.软件系统是指由系统软件.支撑软件和应用软件组成的计算机软件系统,它是计算机系统中由软件组成的部分.操作系统是管理软硬件资源.控制程序执行,改善人机界面,合理组织计算机工作流程和为用户使用计算机提供良好运行环境的

提前认识软件开发(33) 数据操纵语言(DML)

数据操纵语言(Data Manipulation Language,DML)包括insert.delete和update语句,用于增.删.改数据. 本文用以下的表tb_employeeinfo作为例子加以说明: create table tb_employeeinfo ( employeeno varchar(20) not null, -- 员工工号 employeename varchar(20) not null, -- 员工姓名 employeeage int null -- 员工年龄

提前认识软件开发(2) 软件开发工程师常用的工具软件

有一次,我打开电视机准备随便看看,无意中被一部战争片吸引住了.成千上万的共产党战士搭起云梯,想攻破一座城池.但是城楼上面的敌人负隅顽抗,拼了命地阻击我军的进攻.双方的伤亡都很惨重,但城就是攻不下来.眼看我军剩下的人不多了,突然不知从什么地方开出一辆坦克,两炮就把城门轰开了.我军趁势攻入城中,将敌人全部歼灭了. 这类电视剧比较常见,相信大家看了不止一次.但是,我看完之后,那个场景还一直留在我的脑海里.成千上万的人不如一辆坦克来得直接,说明了什么问题呢?我立马想到了一句古诗:工欲善其事,必先利其器.

提前认识软件开发(16) 如何对程序进行优化

对程序进行优化,是软件开发工程师必然会涉及到的问题.那么为什么要对程序进行优化呢?原因有以下几个: 第一,在原程序基础之上新增.删除或修改了功能,需要改变原程序流程.客户需求随时可能会变化,今天已经实现的功能,说不定明天就要修改或去掉.落实到程序上面,就需要我们随时准备对写好的代码进行修改,而不要奢望写好之后就永远不要动了. 第二,原程序有bug.这类情况出现得非常的频繁,很多软件有1.0.2.0.3.0等版本,部分原因就是前面版本中程序有问题,在修改程序的过程中使得软件版本不断升级. 第三,原

提前认识软件开发(15) 程序调试的利器:日志

如果世界上有一个人能够保证一次写出来的代码是百分之百正确的,那么毫无疑问,他一定是世界上最优秀的程序员,没有之一.为什么要求代码写好过后要进行充分的自测(包括单元测试和集成测试)?就因为是人皆会犯错,是程序就会有bug.作为一名软件开发人员,必须要学会对程序进行测试,也就是要学会程序的调试. 一般而言,对代码的调试有以下几种方法: 第一,凭肉眼看.在开发阶段,我们编写的每一行代码都需要用我们的"火眼金睛"多审查几遍.如果要问,最好的代码调试工具是什么?我认为是人眼.不管是代码还是文档,