基于python+vue分类信息服务平台移动端的设计与实现flask-django-php-nodejs

news2024/11/17 10:58:49

 
分类信息服务平台是在Android操作系统下的应用平台。为防止出现兼容性及稳定性问题,框架选择的是django,Android与后台服务端之间的数据存储主要通过MySQL。用户在使用应用时产生的数据通过 python等语言传递给数据库。通过此方式促进分类信息服务平台信息流动和数据传输效率,提供一个内容丰富、功能多样、易于操作的分类信息服务平台。
 语言:Python
框架:django/flask
软件版本:python3.7.7
数据库:mysql 
数据库工具:Navicat
前端框架:vue.js
通过比较两个不同因素的框架,可以看出Flask和Django不能被标记为单一功能中的最佳框架。当Django在快速发展的大型项目中看起来更好并且提供更多功能时,Flask似乎更容易上手。这两个框架对于开发Web应用程序都非常有用,应根据当前的需求和项目的规模来选择它们。
最新python的web框架django/flask都可以开发.基于B/S模式,前端技术:nodejs+vue+Elementui+html+css
,前后端分离就是将一个单体应用拆分成两个独立的应用:前端应用和后端应用,以JSON格式进行数据交互.充分保证了系统代码的良好可读性、实用性、易扩展性、通用性、便于后期维护等特点
分类信息服务平台设计的目的是为用户提供活动信息、活动记录等方面的平台。
与PC端应用程序相比,分类信息服务平台的设计主要面向于移动端,旨在为管理员和用户、商铺提供一个分类信息服务平台。用户可以通过Android及时查看活动信息等。目 录
目 录 I
一 绪论 1
1.1研究意义 1
1.2系统设计目的 2
1.3系统设计思想 2
二系统开发环境及关键技术 3
2.1 python编程语言 3
2.2 django框架 3
2.3 Android平台的架构 4
2.4 MySQL数据库介绍 4
三 系统的设计 5
3.1 Android性能需求 5
3.2 Android需求分析 6
3.3可行性分析 6
3.3.1经济可行性 6
3.3.2技术可行性 7
3.3.3社会可行性 7
3.4系统用例分析 7
3.5软硬件需求 8
3.6系统流程图 9
四 系统设计 11
4.1系统设计总体描述 11
4.2数据库设计 12
4.2.1 数据库系统 12
4.2.2数据库实体及属性 12
4.2.3数据库设计表 13
五 系统的实现 14
5.1 用户Android端功能的实现 14
5.1.1用户注册界面的实现 14
5.1.2用户登录界面的实现 15
5.1.3 Android首页功能的实现 15
5.1.4活动信息 16
5.1.5商铺 17
5.1.6我的功能页面 19
5.2 管理员服务端功能的实现 21
5.3 商铺服务端功能的实现 25
六 软件测试 28
6.1软件测试原则 28
6.2软件测试过程 29
6.3测试用例 30
6.4本章小结 31
结 论 32
参考文献 33
致 谢 34

一 绪论
近年来,随着网络基础设施的不断建成,互联网成为社会发展和经济增长的推动力。中国网民总体规模持续增长:一是城乡上网差距继续缩小,二是得益于互联网适应用老化改造持续推进,老年群体加速融入网络社会。上网的总时长保持增长,上网的终端设备呈现多元化,其中包括手机、笔记本电脑、电视机和平板电脑。其中,手机仍然是上网的主要设备[1]。受新冠疫情影响,不但引起“大萧条”以来最严重的经济衰退,而且为人们的出行带来了极大的不便。由此带来的是,即时通信、网络视频、短视频用户、在线办公、在线医疗等应用保持较快增长,人们有愈来愈多的线上需求。从现在来看,国内的分类信息服务管理比较缓慢,广大分类信息服务管理应该加紧脚步,积极投身入到实践任务当中,不断积极探索,从实践中出来,总结出自己的理论方法。与传统的分类信息服务相比较,分类信息服务平台具有开发成本低、方便快捷等特点,将会得到大力发展[2]。
分类信息服务平台就是针对适合移动设备方便用户访问和浏览而进行搭建的,而且还是基于PC端进行开发。分类信息服务平台主要是针对智能手机用户,智能手机尺寸小、可方便携带的优势,带来了获取信息及时、方便快捷的用户体验,也可以减少加载资源的时间,以提前进行缓存内容。在当前各行业工作都转向线上的形势之下,分类信息服务平台充分发挥了它的优势,利用互联网将用户、商铺和管理员和平台相互联系。在大数据背景下,产生的数据会非常繁多,后台会对产生的数据进行汇总和处理,确定其真实性和合法性。
1.1研究意义
常见的Android主要通过互联网上的信息和数据等,这样的传播形式极大丰富满足了人们求知的欲望[3]。不过随着近些年来互联网不断渗透到生活各个方面,这些传统的传播媒介受到了冲击,显示出它的弊端。各种电子产品的出现也是顺应时代,满足当前更加数字化、网络化的时代发展趋势。再加上近年来科技领域的不断突破,大数据和人工智能也不断进入我们的生活中,与此同时,分类信息服务平台的开发要从实践中总结研究出自己的一套理论体系,需要学者不断地进行系统性总结和反思。表现形式难免也跟随现代技术的发展而发生相应的转变,以往的纸质文档等静态表达形式正受着视频化、移动化的方式的冲击,未来的某一天也许会被取代[4]。这提醒工作者更加关注公众需求的多层次性,在条件允许的情况下,采用线上和线下相结合的方式更有利于促进分类信息服务平台整体水平的提升。在分类信息服务管理工作中,管理者都是根据用户的需求来规划和设计,用户的需求就是应该考虑的,这就是“需求导向”原则[5]。
1.2系统设计目的
为了给用户清晰直观的页面指示。用户在完成注册后,会将用户注册相关信息添加到后台数据库中;用户在登录时,会根据数据库存储信息进行身份验证。用户在Android端可以查看商铺、活动信息、地图、公告信息,后台服务端商铺发布活动信息、活动记录,管理人员对系统上的功能进行维护与管理[6]。
1.3系统设计思想
在系统开发过程中,为了提升软件质量,提升用户体验,秉持严谨的态度制定了一些应遵守的原则。这些原则可以保证完成软件开发任务,也可以为后期软件测试和维护提供便利[7]。以下是应遵守的一些原则:
(1)用户第一原则
分类信息服务平台的开发,不仅要建立用户思维,围绕用户展开工作、解决用户需求,还要把为用户创造价值放在工作的第一位,并作为产品制定项目的切入点。了解需求的构成,了解需求的背后,善于洞察用户需求。此外,还应探索新思路,做出创新并达成突破性结果。
(2)可扩展、灵活性原则
毫无疑问,一个被客户称赞的系统,在拓展性和灵活性方面都比较高。因为在当今时代,用户的需求变化比较快。为满足用户需求,开发者需要及时对系统做出调整,如果用户小小的需求会引起系统的大量改动,那么这个系统就是不成功的。应该牢牢把握“原则”,让系统在设计初期就考虑到拓展性和灵活性,为后期的运维和技术支持也将带来很多的好处。例如,如何做到在降低模块间依赖性的同时,提升系统稳定性[8]。
(3)安全性和可维护性原则
在使用过程中,难免出现不可预知的安全问题,应做到及时辨识系统的隐患,应采取有效措施,让损失降到最小。维护性包括代码理解性、测试性、修改性。在设计初期,如没考虑到系统的可维护性,也会带来很多的棘手问题。当运维阶段时,系统遇到比较大的问题时,解决起来费时费力,还不一定可以解决。最好的、最简单的方法就是重写,这就造成人员、金钱和时间等资源浪费[9]。
六 软件测试
软件测试指的就是通过自动或是人工的手段来运行某个软件系统,并对其运行过程进行综合测定,其目的在于对所开发软件系统质量进行合理评判。软件测试的最后的目的是验证软件的正确性,即是否满足既定的需求分析,是否满足用户的特定功能。将未满足的需求得以实现或错误改正[15]。根据测试目的的不同,所选取的测试方法也存在差异。而软件质量保证是为保证软件质量而建立的一套标准,目的是给予管理者一套管理标准,使软件测试环节系统、有计划的进行,能够及时找到错误。由于软件本身是无形态的逻辑产品,因此不存在错误是不可能的。工厂的产品在生产出厂前需要经过严格的测试检测,同样地软件也需要严格的软件测试。它可及时告知开发人员并修改问题,代表了对需求分析、设计、编码的最终审查。按测试技术不同可划分为:白盒测试、黑盒测试、灰盒测试[16]。
6.1软件测试原则
软件测试是为了发现错误而执行的程序的过程,它的最终目标是提升软件质量,提高用户体验。软件测试可能会带来经济效益,因为软件测试可能会发现其中隐含的错误,若一个小小的错误未及时被发现,那么将来也许会引起更严重错误或者损失。那么这个损失或者错误将会用更大金钱或者人力来弥补,也可能会引起不可挽回的损失。俗话说“不以规矩,不能成方圆”,一个好的指导原则能指引测试员尽早地发现软件错误。经过前辈们的不断摸索和实践,总结出以下指导原则供参考:
(1)应制定测试计划并严格执行,排除任意性。
软件测试覆盖整个软件开发过程,它在软件测试中花费的时间比较多,地位也是比较重要的。软件测试应该制定严格的测试计划,在测试过程中,应严格按照计划进行,保证测试稳定进行,不影响最终项目的上线。制定计划时,应考虑到各个影响测试方面的各个因素,保证其合理性,以及如何针对不同类型的测试团队人员,将测试执行进度计划做出相应的调整。
(2)测试用例应由测试数据和预期输出组成。
要测试用例应该包含模拟用户正常输入时的数据,用户理应得到的数据,还有在测试时用户真实得到的数据。
(3)程序员应避免检查自己的程序。
软件测试其实是一种找出错误的过程,每个人在自测时,有可能会因为个人对需求文档描述内容理解不当而引入错误更加难发现。避免此行为,有利于保证测试工作客观性、有效性。
(4)测试用例应当包括合理的和不合理的输入条件。
为了使得避免局限性,软件测试应涵盖到各方面,其中条件就需要包含到合理的和不合理的。
(5)充分注意测试中的群集现象。
根据数据统计,软件测试出出现的错误有可能中发生群集现象。因为一个模块的错误越多,其发生错误的可能性越大。因为在改错的过程中,有可能会引入更多的错误。因此对错误较多的片段要进行下一步更详细的测试。
(6)既要检查是否做了该做的事,还要检查是否做了不该做的事。
进行功能测试时,要注意软件是否准确完成了某个模块。例如,需要打印输出用户个人信息,而打印出的是排课信息,这显然是不合理的。
(7)妥善保存测试用例。
测试用例的设计耗费了很大时间,必须将其制成文档保存,还应进行出错统计和最终分析报告。因为经修改后的程序可能还会有新的错误,需要进行不断的回归测试,测试用例的保存有利于节约时间成本,也为后期的维护提供了便利。
6.2软件测试过程
软件测试这个任务是非常巨大的,有很多的代码需要测试人员完成测试,为了保证软件测试任务高效、有效率,可以考虑把软件测试过程划分为几个阶段,保证每个阶段有条不续的进行。主要可以分为以下阶段:
(1)单元测试
单元测试是对软件的某个模块或者代码中的一个函数进行的测试,是软件测试过程最先要考虑的测试,即验证某个模块的独立性,看与其他模块想分离出来情况下,看它是否可以独立地完成它的任务。这个测试过程长期看的话,可以提高开发人员对代码的重视程度,减少低级错误,而且可以减少以后维护的话费。短时间来看的话,测试人员的工作量变得很大,对于项目比较紧张或人数较少的公司来说,带来了很大的负担。
(2)集成测试
集成测试是对各模块间耦合性的测试。因为在完成模块测试后需要对软件进行组装起来,然后进行基础测试,难免在组装过程中发生代码的丢失会重复定义等错误,或模块测试的错误可以被忽略,而集成后,错误变大导致出现很大的错误,所以集成测试是必须的一个环节。有按照检测顺序将测试分类,例如:自顶向下的集成策略、回归测试、核心系统先行集成测试;有按照具体特性将测试分类,例如:基于功能、分险的集成测试等。
(3)系统测试
系统测试是指将已经集成的软件系统作为整个计算机系统的一个元素,与其他系统元素结合在一起,在实际运行(使用)环境下,对计算机系统进行一系列的组装测试和确认测试。这个阶段的目的是与软件需求说明书作比较,检查软件的功能和模块是否符合说明书的要求。因为在有些时候虽然软件的某个模块的功能虽然满足用户的需求,也能满足用户的交于的任务,但是组装起来的话,会遇到预料不到的错误。次外,软件是装在系统上与其他软件一起使用的,在与其他软件使用时是否会发生错误也是未知的,可见系统测试也是非常有必要的。
(4)确认测试
任务是检查软件各个模块或者功能是否满足说明书的描述,如果功能和最终的测试满足用户需求,则说明这个软件还是比较成功的,可以完成交付。相反,则需要用户和经理进行协商,制定计划如何进行修改的计划。
(1)验收测试
软件在进行上线或产品发布之前的测试,需要用户和开发人员一起共同合作,来参与到测试当中。目的是测试软件是否准备就绪,是否可以完成开始某个小功能和最终的客户需求。
6.3测试用例
部分系统测试用例如表6-1所示。
表6-1 测试用例表
测试功能、流程 预期结果 实际结果 结论
测试注册。用户在登陆页面输入对应信息可以进入主页面 注册成功,
之后跳转登录页面 注册成功,
成功跳转登录页面 测试成功
测试登录。用户在登陆页面输入正确用户名和密码可以进入主页面 登录成功,之后跳转主页面 登录成功,之后跳转主页面 测试成功
搜索测试。用户输入查找内容,得到相关信息 搜索成功,显示搜索信息内容 搜索成功,显示搜索信息内容 测试成功
分类。用户点击后可看到信息分类 成功显示信息分类页面 成功显示信息分类页面 测试成功

6.4本章小结
软件测试是保证软件质量的最后一个阶段,在项目组花费的精力较多,因为当完成测试后,项目就要正式进入到维护运行阶段。经过测试的软件,发现软件隐含错误时,就需要查找错误原因和位置,即软件调试。软件调试是一次非常困难的获得,目前还为发现十分有效高速的调试方法,因为错误的原因和种类很多。因此,我们应严格遵守测试原则,积极开展测试工作。

结 论
分类信息服务管理以Eclipse为开发环境进行开发和最终的调试,后端采用python语言进行开发,前端页面展示主要采用的是前端三剑客。用户主要是面向普通用户,旨在为用户提供一个涵盖各方面的分类信息服务平台。项目目前完成了用户基本需求,兼容性良好,未发生错误。但与真正投入使用的平台相比,功能和实用性明显不足,后期还有很多改进和完善的地方。此平台的功能丰富和对数据库的设计以及数据的处理的更加合理高效。各种界面和人性化的设计也值得去认真学习和探索。由于自己知识储备量的不足,这个项目仅仅完成了一些最基本的功能。与实际生活的运用还存在着一定的差距,没有考虑到更多的应用场景。在今后的学习中,需要不断加强学习基础知识并且更加注重实践,做到从时间来到实践中去,达到融会贯通。但随着互联网基础设施的不断完善,此项目还是有很大的前景的。
致 谢
至次,在完成最后一次论文查重后,我的大学生活已经逐渐落下帷幕,开始于19年秋,结束于23年夏。忆往昔峥嵘岁月,感慨万千,不知所云。
首先,感谢学校。高考之后,我怀着对大学的憧憬,进入了大学,享受着学校给予的丰富的教育资源和良好的学习氛围。完成大学四年所有的课程。
“望子成龙,望女成凤”是每一个父母的梦想。求学死在而无后顾之忧,皆要感谢感谢我的父母,无论是物质还是精神,都受之有愧,养育之恩,无以为报。感谢父母给予我天高任鸟飞的翅膀,我以后也会尽自己所能成为你们的依靠。
“桃李满天下,春晖遍四方”,感谢我的论文指导老师。感谢他给予学习、考研、生活、职场、工作各方面的引导和帮助。他也是真心希望我们好,让我们走的更远的老师。在学习之余,他也会问我们的兴趣爱好和求职意向,做好自己的职业生涯规划,四年所有教导过我们的老师,风格各异,均让我受益匪浅,我将各位老师的教诲熟稔于心,再次向所有的老师予以由衷的感谢。
人生所贵在知己,四海相邻如骨肉。感谢求学四年路途中遇到的那些志趣相投的人,与你们相处、互助、合作的那些时光,美妙而短暂,而我也将永远铭记于心。特别感谢来自不同地方的室友,大学我们一起生活四年,相处和睦。离别之际,愿各位能够奔波忙碌于自己的爱好之中,相逢依旧如故。
长风破浪会有时,直挂云帆济沧海。回顾大学四年,迷茫过,遗憾过,努力过,总感觉差强人意。我曾游于漆黑幽静的夜晚,也受困于凌晨两点的自习室,但却阻挡不了向前的脚步。我也很感谢自已虽然屡战屡败,却也从未放弃。感谢在这里的每一段经历,让自己所迈的每一步都会更加坚定,愿自己怀揣梦想,带着坚定的意志,攀向更高的山峰。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1540874.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

牛客NC108 最大正方形【中等 动态规划 Java,Go,PHP】

题目 题目链接: https://www.nowcoder.com/practice/0058c4092cec44c2975e38223f10470e 思路 动态规划: 先初始化第一行和第一列。然后其他单元格依赖自己的上边,左边和左上角参考答案Java import java.util.*;public class Solution {/*** 代码中的类…

【Linux】调试器-gdb的使用说明(调试器的配置,指令说明,调试过程说明)

目录 00.背景 01.安装 02.生成调试信息 03.调试过程 00.背景 在软件开发中,通常会为程序构建两种不同的版本:Debug模式和Release模式。它们之间的区别主要在于优化级别、调试信息、错误检查等方面: 1.Debug 模式: 优化级别低…

阿里云ECS服务器u1通用算力型CPU性能如何?

阿里云服务器u1是通用算力型云服务器,CPU采用2.5 GHz主频的Intel(R) Xeon(R) Platinum处理器,通用算力型u1云服务器不适用于游戏和高频交易等需要极致性能的应用场景及对业务性能一致性有强诉求的应用场景(比如业务HA场景主备机需要性能一致)&#xff0c…

Gremlin查询语言用法示例

Gremlin 的基本用法 Gremlin Query Language 的基本用法主要包括构建图遍历的查询语句,这些语句由一系列的步骤组成,用于从图形中检索数据和修改数据。以下是一些基本用法的示例和解释: 选择所有顶点: 使用g.V()可以选择图中的所…

包叔推荐12代i3-独显组装电脑主机配置清单

去年Intel第十代i5-依然是主流热选机型。 今年,随着i3-的价格优势越来越大,已经成功取代了i5-。 今天包叔推荐几套12代i3-独立显卡组装电脑主机配置。 列表:一组核心显示配置,其余三组均为独立显示配置。 适合主机预算在2000元至3…

Spring Cloud Gateway教程

1 微服务网关概述 Spring Cloud Gateway是在 Spring 生态系统之上构建的API网关服务,旨在为微服务架构应用提供一种简单有效的统一的API路由管理方式。 Spring Cloud Gateway主要功能: 反向代理认证鉴权流量控制熔断日志监控 2 Spring Cloud Gateway三…

搭建一个简单的网络结构(Pytorch实现二分类)

搭建一个简单的网络结构(Pytorch实现二分类) 搭建一个神经网络并进行训练的话,大致需要分为三步: 第一步是数据的处理,将数据整理成输入网络结构中合适的格式第二步是网络的搭建,包括每层网络的结构和前向…

Neo4j桌面版导入CVS文件

之后会出来一个提示框,而且会跳出相关文件夹: 然后我们将CSV文件放在此目录下: 我们的relation.csv是这样的 参见: NEO4J的基本使用以及桌面版NEO4J Desktop导入CSV文件_neo4j desktop使用-CSDN博客

数学建模体育建模和经济建模国防科大版

目录 6.体育中的数学建模 7.经济学问题中的数学建模 7.1.实物交换模型 7.2.边际效应 7.3.最佳消费选择模型 6.体育中的数学建模 体育科学的研究中,也有大量的数学建模问题,例如:棒球的最佳击球点问题、滑板滑雪赛道的设计、越野自行车比…

基于springboot+vue的旅游推荐系统

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、阿里云专家博主、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战,欢迎高校老师\讲师\同行交流合作 ​主要内容:毕业设计(Javaweb项目|小程序|Pyt…

全网最强JavaWeb笔记 | 万字长文爆肝JavaWeb开发——Web开发介绍

万字长文爆肝黑马程序员2023最新版JavaWeb教程。这套教程打破常规,不再局限于过时的老套JavaWeb技术,而是与时俱进,运用的都是企业中流行的前沿技术。笔者认真跟着这个教程,再一次认真学习一遍JavaWeb教程,温故而知新&…

利用免费 GPU 部署体验大型语言模型推理框架 vLLM

vLLM简介 vLLM 是一个快速且易于使用的 LLM(大型语言模型)推理和服务库。 vLLM 之所以快速,是因为: 最先进的服务吞吐量 通过 PagedAttention 高效管理注意力键和值内存 连续批处理传入请求 使用 CUDA/HIP 图快速模型执行 量…

输入N个整数,输出这个整数两两组合且不重复的所有二元组,要求从小到大输出并且用括号的形式。

输入描述: 第一行输入一个整数N&#xff0c;N<30。 第二行输入N个整数。 输出描述: 按题意输出。 输入样例#: 3 1 2 3 输出样例#: (1,2) (1,3) (2,1) (2,3) (3,1) (3,2) #include <stdio.h>void quicksort(int s[],int min,int max); //快速排序int partitio…

那些王道书里的题目-----计算机网络篇

注&#xff1a;仅记录个人认为有启发的题目 p155 34.下列四个地址块中&#xff0c;与地址块 172.16.166.192/26 不重叠&#xff0c;且与172.16.166.192/26聚合后的地址块不会引入多余地址的是&#xff08;&#xff09; A.172.16.166.192/27 B.172.16.166.128/26 …

53 initrd/initramfs 相关

前言 呵呵 这里主要是 探究一下 根文件系统 相关的东西 以及 附加了一些 系统启动的相关信息 计算机启动 硬件重置寄存器 设置初始化数据 计算机访问 0xffff0, 执行 bios 的代码, bios 选择启动设备, 然后执行 启动设备 boolloader 的代码 bootloader 将 boot.img 加载…

玩具蛇(蓝桥杯)

文章目录 玩具蛇题目描述答案&#xff1a;552dfs 玩具蛇 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 小蓝有一条玩具蛇&#xff0c;一共有 16 节&#xff0c;上面标着数字 1 至 16。每一节都是一个正方形的形…

GCC制作静态库详解

目录 前言 一.静态动态库区别 二.静态库制作 2.1 库文件命名 三.静态库文件制作 3.1 静态库制作 3.1.1 先获得.o文件 3.1.2 生成静态库文件 3.1.3 删除不必要文件 3.1.4 使用静态库 3.1.5 使用运行运行 前言 带大家快速入门&#xff0c;学会制作静态库。本文详细介绍在Linux系统…

“玩转文本魔法师:Python编程轻松变格式“

Hey小伙伴们&#xff0c;今天我们要一起打造一个文本转换器&#xff0c;就像神奇的魔法棒&#xff0c;能把普通的文字变成各种奇妙的格式&#xff01;想象一下&#xff0c;你的输入是&#xff1a;“Hello, World!”&#xff0c;输出可以是Markdown、HTML或者粗体、斜体的文字&a…

大语言模型(Large Language Model,LLM)简介

1. 什么是大语言模型 它是一种基于深度学习的人工智能模型&#xff0c;它从大量来自书籍、文章、网页和图像等来源的数据中学习&#xff0c;以发现语言模式和规则&#xff0c;如处理和生成自然语言文本。通常&#xff0c;大语言模型含数百亿&#xff08;或更多&#xff09;参数…

外包干了4年,技术退步明显.......

先说一下自己的情况&#xff0c;大专生&#xff0c;19年通过校招进入杭州某软件公司&#xff0c;干了接近4年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了四年的功能测…