毕业论文选题系统 第1篇
编写本报告的目的是研究本系统的实现目标、总体需求、现有条件、对可能存在的问题进行预测和防范,为开发系统工作组提供优秀的建议并为开发决策者提供可靠的参考资料
说明:
开发软件名称:毕业设计网上选题系统
项目用户:某大学师生
本系统专为某大学毕业论文网上选课系统,隶属于某大学教务处管理范围,由教务处管理人员进行管理和维护。
毕业设计网上选题系统对于现代教学管理而言,是能否高效率完成毕业论文选题工作的至关重要的技术平台。对于学生、教师和教务处管理人员来说,是否能够方便的选出学生和教师都满意的题目的关键。对于毕业论文选题系统而言能够为用户提供方便快捷选题方式成为衡量系统价值的标尺。
说明对所建议开发的软件的基本要求,如:
功能:
(1)用户登录管理:包括学生信息管理、教师信息管理、管理员信息管理。
(2)教师出题管理:教师提交题目时注明课题名称、类型、要求、限定学生数、内容等课题的各方面信息。
(3)学生选题管理:学生浏览发布的课题信息,按照要求选择题目。
(4)师生网上交流模块:学生和指导教师通过网络交流关于毕业设计的问题。
性能:
1、系统处理的准确性和及时性
系统处理的准确性和及时性是系统的必要性能。在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足学校对信息处理的需求。
2、系统的开放性和系统的可扩充性
毕业设计网上选题系统在开发过程中,应该充分考虑以后的可扩充性。例如教师提交题目信息的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。而要实现这一点,应通过系统的开放性来完成,既系统应是一个开放系统,只要符合一定的规范,可以简单的加入和减少系统的模块,配置系统的硬件。通过软件的修补、替换完成系统的升级和更新换代。
3、系统的易用性和易维护性
毕业设计网上选题系统是直接面对使用人员的,而使用人员往往对计算机并不时非常熟悉。这就要求系统能够提供良好的用户接口,易用的人机交互界面。要实现这一点,就要求系统应该尽量使用用户熟悉的术语和中文信息的界面;针对用户可能出现的使用问题,要提供足够的在线帮助,缩短用户对系统熟悉的过程。
4、系统的标准性
系统在设计开发使用过程中都要涉及到很多计算机硬件、软件。所有这些都要符合主流国际、国家和行业标准。
5、系统的先进性
目前计算系统的技术发展相当快,做为毕业设计网上选题系统,在系统的生命周期尽量做到系统的先进,充分完成信息处理的要求而不至于落后。这一方面通过系统的开放性和可扩充性,不断改善系统的功能完成。另一方面,在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并先进且有良好发展前途的产品。
6、系统的响应速度
毕业设计网上选题系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。在进行统计分析时,根据所需数据量的不同而从秒级到分钟级,原则是保证操作人员不会因为速度问题而影响工作效率。
输出:如报告、文件或数据,对每项输出要说明其特征,如用途、产生频度、接口以及分发对象;
课题信息、教师信息、学生信息
输入:说明系统的输入,包括数据的来源、类型、数量、数据的组织以及提供的频度;
读者浏览申请、教师题目提交、新用户注册
处理流程和数据流程:用图表的方式表示出最基本的数据流程和处理流程,并辅之以叙述;
在安全与保密方面的要求;
具有较高的安全性。系统对不同的用户提供不同的功能模块,普通学生用户仅可以具有查询浏览和选课功能,教师用户只可以提交出题信息,只有具有高级权限的管理人员和维护人员才能对用户信息进行管理。
还应具有一定的保护机制,防止系统被恶意攻击,信息被恶意修改和窃取。有完善的备份机制,如果系统被破坏应该能快速恢复。
同本系统相连接的其他系统;
完成期限。
所建议系统的开发目标包括:
1.减少人力与管理费用;
2.提高信息准确度;
3.改进管理和服务;
4.建立高效的信息传输和服务平台,提高信息处理速度和利用率。
1.教师出题:教师将课题信息上传至选题系统。
2.学生选题学生在系统浏览发布的课题,按要求选择题目。
3.用户管理高级管理员对用户信息进行增删改查。
该系统的运行环境包括硬件环境和软件环境,是一个以 B/S 为架构的平台。系统的总体结构分为五个层次:
第一层:是物理设备层,包括 PC 服务器、路由器、访问服务器、程控交换机、物理设备层网络支撑平台应用支持平台应用开发平台(各类开发工具)应用软件层 7 语音卡等。
第二层:是网络支撑平台,用 TCP/IP、PPP、HTTP、HTM、POP3 和 SMTP 构成基本的网络及传输层,是网络操作系统管理环境与通讯平台。
第三层:是毕业设计网上选题系统的应用支撑平台,提供对上层应用系统的信息管理支持,包括数据库管理系统(MicrosoftSQServer/ORACE)、WindowsNT 操作系统、 服务器系统。
第四层:是应用开发平台,用于对信息的综合开发处理:利用 Intedev、VB,HTM,DreamWaver3 等。在数据库访问方面,利用 ODBC 技术建立对应数据库的数据源(DSN),采用 ADO 等技术访问和操纵数据库。
第五层:为应用软件层,即毕业设计网上选题系统应用软件。客户端计算机运行 Windows10 操作系统,以 IE 浏览器访问应用系统 Web 服务器。
a.毕业设计网上选题系统中服务器需要及时更新,当学生选择完一个题目时,其他人便不能在选择该题目。
b.当多数人一起在一个相对狭窄的时间段同时选题时,后台压力较大,对服务器的承受力是个考验。
所建议系统的研制和开发都选用正版软件,将不会侵犯他人、集体和国家的利益,不会违反相关的国家政策和法律。
本系统的研制和开发充分考虑用户工作流程、计算机操作水平等,尽可能提供更人性化、直观的界面,满足用户要求。系统的操作方式在用户组织内可行。
针对目前选题方式,单一的功能已不能满足需求,于是希望能够使用一个毕业设计选题管理系统来对整个的选题分配问题进行管理,同时实现对选题情况的大致了解,方便进行分析以及日后的课题发布。
构建一个基于 B/S 的毕业选题管理系统,以使管理员进行相关的管理,以及学生进行一些基本的操作。
毕业论文选题系统 第2篇
随着社会的高速发展,人们的生活节奏愈发加快。原先的毕业选题方式已越来越不能满足学生们对方便快捷方面的需求。为简化毕业设计时的各项指导和管理任务,使学生和教师能够通过网络进行毕业设计的各项交流,规范毕业设计的操作流程,设计和开发网上毕业设计双向选择系统迫在眉睫。
本设计针对毕业设计网上选题系统做一些初步研究,在满足人们对网上选题意愿的基础上,探索更为便捷的选题管理服务。本系统主要使用 goand 语言为主要的开发语言,运用 MySQ 数据库,采用 Vue 框架来构建系统,管理课题等一系列数据。
设计模型在广泛参考、挖掘技术背景的前提下,确定了针对毕业时机网上选题系统的技术架构和工程工具选定,对其功能和性能上做了需求分析;在系统概要设计过程中,对系统的每个模块进行了拆分和整合,精简了数据库各个实体间的属性与联系;在系统详细设计阶段增加了人性化设计,充分考虑了用户一般习惯,最后对系统的详细设计做出了具体实现。
本课题系统主要实现了用户登录管理、教师出题管理、学生选题管理、师生网上交流等模块。易用性、可维护性和扩展性是该系统良好特性
毕业设计网上选题采用管理系统和管理资源相结合的方式,合理缩减了工作人员的工作量,大大方便了学生和老师的交流和工作,为进一步实现高校的信息化管理目标打下基础。
B/S 结构(Browser/Server 结构)结构即浏览器和服务器结构。它是随着 Internet 技术的兴起,对 C/S 结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过 WWW 浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层 3-tier 结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立 B/S 结构的网络应用,并通过 Internet/Intranet 模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如 AN,WAN,Internet/Intranet 等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在 Java 这样的跨平台语言出现之后,B/S 架构管理软件更是方便、速度快、效果优。随着 Internet 和 WWW 的流行,以往的主机/终端和 C/S 都无法满足当前的全球网络开放、互连、信息随处可见和信息共享的新要求,于是就出现了 B/S 型模式,即浏览器/服务器结构。B/S 模式最大特点是:用户可以通过 WWW 浏览器去访问 Internet 上的文本、数据、图像、动画、视频点播和声音信息,这些信息都是由许许多多的 Web 服务器产生的,而每一个 Web 服务器又可以通过各种方式与数据库服务器连接,大量的数据实际存放在数据库服务器中。客户端除了 WWW 浏览器,一般无须任何用户程序,只需从 Web 服务器上下载程序到本地来执行,在下载过程中若遇到与数据库有关的指令,由 Web 服务器交给数据库服务器来解释执行,并返回给 Web 服务器,Web 服务器又返回给用户。在这种结构中,将许许多多的网连接到一块,形成一个巨大的网,即全球网。而各个企业可以在此结构的基础上建立自己的 Internet。
计算机软件经历了数十年的发展,形成了多种学术流派,有面向过程编程、面向对象编程、函数式编程、面向消息编程等,这些思想究竟孰优孰劣,众说纷纭。
除了 OOP 外,近年出现了一些小众的编程哲学,Go 语言对这些思想亦有所吸收。例如,Go 语言接受了函数式编程的一些想法,支持匿名函数与闭包。再如,Go 语言接受了以 Erang 语言为代表的面向消息编程思想,支持 goroutine 和通道,并推荐使用消息而不是共享内存来进行并发编程。总体来说,Go 语言是一个非常现代化的语言,精小但非常强大。
Go 是一个开源的编程语言,它能让构造简单、可靠且高效的软件变得容易。Go 是从 2007 年末由 RobertGriesemer,RobPike,KenThompson 主持开发,后来还加入了 ananceTayor,RussCox 等人,并最终于 2009 年 11 月开源,在 2012 年早些时候发布了 Go1 稳定版本。现在 Gp 的开发已经是完全开放的,并且拥有一个活跃的社区。Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。对于高性能分布式系统领域而言,Go 语言无疑比其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
为了实现前后端分离的开发理念,开发前端 SPA()项目,实现数据绑定。路由配置,项目编译打包等一系列工作的技术框架。Vue 是一套用于构建用户界面面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层使用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库和既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
简单来说,Vue 是一套构建用户界面的框架。渐进式代表的含义是:主张最少,每个框架都不可避免会有自己的一些特点,从而会对使用者有一定的要求,这些要求就是主张,主张有强有弱,它的强势程度会影响在业务开发中的使用方式。简单说就是对于 Vue 中不熟悉不把握的模块或者功能可以用熟悉有把握的技术进行代替。
Vue 有著名的全家桶系列,包含了 vue-router,vuex,vue-resource 再加上构建工具 vue-ci,sass 样式,就是一个完整的 vue 项目的核心构成。概括起来就是:1.项目构建工具、2.路由、3.状态管理、 请求工具
的特性如下:1.轻量级的框架(相对而言)、2.双向数据绑定、3.指令、4.插件化
对于目前大部分企业来讲,他们所使用的较多的数据库也就三种,MYSQ
,ORACE,SQServer 三种,至于其他的数据库,如 SQite,PostgreSQ 等,在国外较为流行的数据库,我们不去考虑。而在本项目中,我所选用的是选用的是 MYSQ 数据库。下面我们对三种常见的数据库做一些简单的介绍。
(1)MYSQ 数据库
MYSQ 是一种小型的关系型数据库管理系统,他的源代码是公开的,同时其数据库系统采用的是访问数据库的最常用标准化语言,所以的话,命令语句根本不会有差别。此外,MYSQ 本身取消了图形界面,用户自己选择是否安装第三方工具来使用图形化界面,如果不安装图形化界面的话,占用的系统资源不会太多。
因为 MYSQ 源代码是公开的,所以任何人都可以在通用公共许可协议的许可下下载,并依据个人需要选择商用版和家庭版。考虑到工作环境的不同,MYSQ 为用户提供了许多的个性化设置。MYSQ 便捷、可靠、适应性强的特点,也使得广大用户对其称赞有加。大部分使用者都认为,如果整个工程中无需进行事务化处理,MYSQ 无疑是管理数据库数据的不二选择。
(2)ORACE 数据库
ORACE 数据库系统是一组以分布式数据库为核心的软件产品,该系统是由美国甲骨文公司开发出来的,无论开发选择的是 B/C 亦或 C/S,依然有广大厂商愿意选择 ORACE 作为数据库来进行使用。
ORACE 数据库是目前全球应用最为广泛的数据库管理系统,他是一个通用的数据库管理软件,数据管理功能非常齐全;作为一个关系型数据库,它是一个具有完备关系的产品;同时,他还是一个分布式数据库,这样其分布式处理功能也毋庸置疑。而且他的可扩展性相较而言是比较强的,不受到操作系统类型的限制。
(3)SQServer 数据库
SQServer 同样是一个关系数据库管理系统,是一套由微软推出的产品,作为目前流行的数据库之一,界面友好,操作简单,从而也有部分用户较为欣赏该数据库。
旧版的 SQServer 由于性能不佳等原因备受诟病。不过新版本的性能较以前还是提升了许多的。不过虽然 SQServer 经过一代又一代的修改,即使发展到了现在,安全和稳定性都有了较大的提高,但兼容性还是有待提高。
根据我们上述对三种数据库的介绍以及简单的比较,MYSQ 数据库较为轻量级,而且是开源的,不收费的。综合其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,所以本系统选择 MYSQ 数据库进行开发。
本章主要是对毕业设计网上选题系统所应用到的各种技术进行了简要的介绍。B/S 模式,Vue 框架和数据库的选择等。
毕业论文选题系统 第3篇
系统共分为用户登陆模块,学生模块,教师模块,管理员模块,交流模块。各个模块下又分多个子模块。
总体模型图
图 4-1 后台管理功能模块结构图
管理员可分为以下三个模块,管理员可利用此模块主要对用户的信息及情况进行修改。
修改用户信息模块可用来修改学生和教师的个人信息,修改课题信息可用来对教师发布的课题进行增删改,修改学生选题信息可用来修改学生错误选择的课题信息。
图 4-2 学生管理模块结构图
学生模块可分为以下两个模块,学生可通过此模块进行相应的操作。
浏览课题信息模块可使学生浏览到所有的课题信息,方便学生的选择。选择课题模块可使学生进行选课题等方面的操作。
添加课题可用来教师发布具体的课题信息,对课题的内容,容量和类型等进行规范。输入的信息需包括课题的名称,类型,要求,限定的学生数,内容等课题的各方面信息。
交流信息模块可实现学生与教师之间信息的交流,在此模块上的交流方便且高效。需要输入想要询问的消息并等待对方的回复。
课题实体包括了数量、类型、题目、要求、内容等实体属性。
图 4-3 课题实体模型图
用户实体中包含了类型、注册时间、用户名、邮箱、电话号码、密码等实体属性。
图 4-4 用户模型图
交流信息实体中包含了学生 id、教师 id、交流信息、信息状态等实体属性。
图 4-5 交流消息模型图
图 4-6 选题信息模型图
将以上实体图进行有序连接即可得到系统总体 E-R 图,学生与选题中间是一对一的关系,即一个学生只能选择一个课题;教师跟选题之间是多对多的关系,一个老师可以发布多个课题信息。交流中学生和老师是多对多的关系,一个学生可以跟多个教师沟通,一个教师可以跟多个学生沟通。教师与课题是多对多的关系,多个老师出题,一个老师可出多个课题。
系统总体 E-R 图如图所示:
图 4-7 总体 E-R 图
用户表如下图,其属性包括 id(工号),Username(姓名),Password(密码),Emai(邮箱),Phone(手机号码),Type(类型),CreatTime(注册时间),Age(年龄),Sid(学生学号),Coege(学院),Grade(年级)等。
表 4-1 用户表
课题表如下图,其属性包括 Id(序号),Tite(题目),Type(类型),Require(要求),Cap(容量),Conent(内容),Tid(教师号)等。
表 4-2 课题表
选题表如下图,其属性包括 Id(序号),Uid(学生学号),Iid(课题号)等
表 4-3 选题表
消息表如下图,其属性包括 Id(序号),Fid(发送者 id),Tid(接受者 id),Message(交流信息),Status(信息状态)等。
表 4-4 信息表
图 4-8 界面关系和工作流程图
用户必须登录才能进入系统,查看个人信息,进行选题和其他操作,以次来增加系统信息的安全性。
图 4-9 登录界面:
如果没有账号,可在注册界面进行注册。
图 4-10 注册界面
当密码丢失时,可通过注册时使用的邮箱账号进行密码找回。
图 4-11 密码找回界面
具有查看个人信息,选题管理,发布选题和交流等功能,其中,只有教师才有进入发布选题模块的权限。
图 4-12 个人中心界面
对个人信息进行修改。
图 4-13 修改信息界面
教师利用此功能模块发布毕业设计课题。
图 4-14 发布课题
学生和教师可利用此功能模块进行交流
图 4-15 交流界面
学生浏览所有课题及其状态,并进行选题。
图 4-16 选题界面
表 4-5 用户界面清单
毕业论文选题系统 第4篇
测试毕业设计网上选题系统的各项性能,验证软件上线可以稳定的运行,并向使用本系统的用户提供一个可视化考量指标
说明:
本测试计划所从属的软件为毕业设计网上选题系统;
在开始执行本测试计划之前必须完成的各项工作有:部署数据库以及客户端系统,测试网络连接
用户:使用毕业设计网上选题系统的人员:学生、教师和管理人员的统称。
系统:毕业设计网上选题系统。
毕业设计网上选题系统概要设计说明书;毕业设计网上选题系统可行性研究报告;毕业设计网上选题系统详细设计说明书;毕业设计网上选题系统数据库设计说明书;毕业设计网上选题系统用户界面设计说明书;
正确性测试、容错性测试、用户界面易用性测试
培训的内容:软件测试方法、测试标准、测试目标讲解
受训的人员:参与测试的小组学生
从事培训的工作人员:熟悉软件测试的小组学生
毕业设计网上选题系统的数据和数据库完整性测试,确保数据库访问方法和进程正常运行,数据不会遭到损坏
熟悉环境及培训:2020 年 1 月 9 日
准备输入数据:2020 年 1 月 9 日
设备:实验室电脑;
测试软件:本测试采用手动测试;
人员:熟悉软件测试的小组学生
调用各个数据库访问方法和进程,并在其中填充有效的和无效的数据或对数据的请求
检查数据库,确保数据已按预期的方式填充,并且所有数据库事件都按正常方式出现;或者检查所返回的数据,确保为正当的理由检索到了正确的数据
确保测试对象的功能正常,其中包括导航、数据输入、处理和检索等。
利用有效的和无效的数据来执行各个用例、用例流或功能,以核实以下内容:·在使用有效数据时得到预期的结果。
在使用无效数据时显示相应的错误消息或警告消息。
各业务规则都得到了正确的应用。
参考结果:
核实以下内容:
1.通过浏览测试对象可正确反映业务的功能和需求,这种浏览包括窗口与窗口之间、字段与字段之间的浏览,以及各种访问方法(Tab 健、鼠标移动和快捷键)的使用
2.窗口的对象和特征(例如:菜单、大小、位置、状态和中心)都符合标准
熟悉环境及培训:2020 年 1 月 9 日
准备输入数据:2020 年 1 月 9 日
设备:实验室电脑;
测试软件:本测试采用手动测试;
人员:熟悉软件测试的小组学生
为每个窗口创建或修改测试,以核实各个应用程序窗口和对象都可正确地进行浏览,并处于正常的对象状态。
数据输入:人工输入
控制操作的顺序:逐项操作
结果的记录方法:文档
说明各项测试中所使用的输入数据、可能的输出以及选择这些输入数据的策略。
手工初始化、逐项测试可能输入、杀死进程以结束运行。
所选择的测试用例能够检查的范围:基本覆盖软件运行过程中可供用户操作的范围
局限性:未涉及实际运行过程中可能遇到的各种负载情况
为了把测试数据加工成便于评价的适当形式,使得测试结果可以同已知结果进行比较而采用手工方式。
判断测试工作是否能通过的评价尺度:
测试输出结果与预期输出之间的容许偏离范围:每种操作必须对应其预期结果,不得出现偏离
允许中断或停机的最大次数:1 次/30 天
[1]张海藩.软件工程导论(第三版)[M].北京:清华大学出版社.2011
[2]卫晓旭,李美鑫.基于 Web 的学生毕业论文选题系统的设计与实现[J].通信电源技术,2018,35(05):107-109+112.
[3]郭峰.毕业论文选题系统的设计与实现[D].郑州大学,2018.
[4]孙清亮,杨威.毕业论文选题系统的研究与设计[J].中国教育信息化,2016(05):84-88.
[5]陈红.数据库系统原理教程.清华大学出版社.2010
[6]孙建伶,林怀忠.数据库原理与应用[M].北京:高等教育出版社.2009
[7]贾树文,杨婷婷.基于 Web 的高校毕业论文选题系统设计与应用[J].产业与科技论坛,2015,14(05):59-60.
[8]李华夏.高校毕业论文选题系统的设计与实现[D].电子科技大学,2011.
[9]周俊.应用型地方本科高校设计类专业毕业设计选题改革研究[J].艺术科技,2019,32(11):7-8.
[10]席杨洋.基于 B/S 结构的毕业设计选题系统的设计与实现[D].吉林大学,2017.
[11]彭勃,王雷.毕业设计选题系统的用例分析[J].河南科技,2013(22):272.
个人总结
服务端代码结构是我在日常开发中自己通过学习一些自己认为优秀的文章后,总结出来的基于业务领域分层代码结构的方法论的实践,这种结构很幸运被我用在了这个项目中!这是我第一次真正使用这个结构设计程序,本来我是希望他来写我的毕业设计的。他真的让我写代码变得随心所欲。
很早就有一种想法,希望写的代码的目录结构十分清晰,我在偶然的情况下,看到了 CeanArchitecture 这种框架结构,这种代码结构试图聚合这样几个特点:1、框架无关,即架构设计不依赖任何一个既有的开发框架,因此理论上可以使用任何框架来实践整洁架构。2、业务规则的可测性,即可以方便地测试业务逻辑所涉及的代码,不依赖 UI、数据库或者 Web 服务等外部元素。3、功能实现不依赖 UI 的实现细节,比如同样一套后台系统可以用在 Web 应用,也可以用在 App 原生应用。4、业务逻辑不依赖数据库的实现细节,可以把数据保存在 Mongo、MySQ 等任意一种数据库中,同时业务逻辑不需要做任何改变。5、总结起来就是:业务逻辑对外界实现完全没有依赖,任你外面的实现细节如何改变,核心业务逻辑不需修改。很好,这个正合我意。
如何设计
依赖规则里规定“只能外层的代码依赖内层代码”,但是在实际代码中势必会出现这种场景:外层的代码调用内层的代码处理数据,数据经过内层代码作用后需要再反传给外层进行其他处理(比如把处理好的数据保存到数据库,保存到数据库的逻辑在外层)。对于 Go 语言来说,大体的实现是在内层定义一个 Interface 类型的数据,内层代码通过操作 Interface 的方法来实现业务逻辑,在外层实现这个 Interface 类型所包含的方法,从而达到反向控制的目的。
此次实训的程序设计是一次有意义的尝试!这使得我更加了解这种探索代码框架和结构设计的好处,虽然在自行搭建框架的过程中会遭遇着各式各样的挑战,但从错误中吸取教训,不断优化代码,调整依赖关系,甚至重新组织模块结构,这些改变都将让我们自身变得更健壮,我一直希望自己写的应用程序能够变得易开发易维护,这才是真正意义上的能力提高。