心有猛虎,细嗅蔷薇——杨荣模杰和他的佶祥虎

@

这个作业属于哪个课程 课程链接
这个作业要求在哪里 作业要求的链接
团队名称 杨荣模杰和他的佶祥虎
这个作业的目标 团队的个人学习总结、整理资料

一、项目发布地址、登注/下载地址

项目github地址 网页端登注/APK下载
网页github项目地址 网页版登注地址
安卓github项目地址 安卓apk下载地址
人脸识别项目github地址 无实体

二、网页端 / 安卓端 简要说明

1. 网页版操作简明:

为不出现兼容问题,希望使用Chrome浏览器访问,可能被提示警告信息,请选择 高级->继续访问

  1. 第一次使用请选择“注册账户”
    (建议使用试用账号,否则请联系我同意您的账号申请;注册上传照片时请注意照片要有人像,否则会失败)
    在这里插入图片描述

  2. 进入主界面后,右方选择“启动摄像头”,开始摄像后点击“开始打卡”即可开始识别(必须是是自行注册的账户,已上传照片才可进行识别)

    • 点击打开摄像头,然后点击开始打卡,在后端确认前显示正在认证
      在这里插入图片描述

    • 人脸识别非本人,打卡失败

    • 人脸识别成功后,提示进入ip验证
      在这里插入图片描述

    • ip验证失败后提示必须连接指定wifi
      在这里插入图片描述

    • 不开摄像头直接点击开始打卡,提示服务器错误

  3. 开始、结束打卡

    • 打卡成功页,状态由未打卡变为已打卡
      当断开指定wifi “LC”后,将自动判定为离线
  4. 左侧栏选择“数据统计”,可以看到目前做出的一项数据可视化功能
    在这里插入图片描述

  5. 基本设置(文本信息)
    在这里插入图片描述

  6. 更换头像
    【账户】->【用户设置】->【基本设置】->
    在这里插入图片描述

  7. copyright
    在这里插入图片描述

  8. 自定义UI风格

  9. 用户管理

  10. 更多请自行体验

2. 安卓端安装及操作简明:

  1. 安卓apk下载地址,下载之后,直接允许安装即可(EMUI可能会让允许QQ安装应用,都点击允许即可)
  2. 若不在乐程团队wifi范围内,建议使用83端口版本(该版本可以非指定wifi环境打卡),首次使用请先注册(若已在网页端注册则可以直接登录)
    在这里插入图片描述
  3. 进入主界面是打卡排名,可以选择“同级”看到与你同年级的打卡排名情况,选择“全部”则不分年级
    在这里插入图片描述
  4. 选择个人栏可以看到有打卡、停止打卡等功能
    在这里插入图片描述
  5. 更多功能请体验

三、队员个人信息及总结博客链接

学号 姓名
201731103226 翟仕佶 翟仕佶个人博客
201731062517 曾中杰 曾中杰个人总结博客
201731062424 杨模 杨模个人总结博客
201731062632 邓高虎 邓高虎个人总结博客
201731062624 张祥 张祥个人总结博客
201731062224 陈远杨 陈远杨个人总结博客
201731062420 胡思荣 胡思荣个人总结博客

1. 曾中杰个人总结

后之视今,亦犹今之视昔。 -王羲之

回望开学到如今的结束博客,就像王羲之的话,没有什么值得感叹的,后来的人看待今天,就跟今天的人看待以前一样。有的人为了分数高,洋洋洒洒写着自己的博客作业,有的人不在乎结果,安然于得过且过,还有的人只专注于自己的提升...

按照博客要求,回望第一次的个人作业:链接->第一次博客作业,做了一个对称模式编写本次博客:

1.1 于我而言是否有一些收获呢?

答:那时自己书写下的目标是:希望能略懂《构建之法》,运用其精美的内涵丰富自己的程序人生,尤其写到 “本次作业从开始使用博客,让我认识到写博客对程序员的学习至关重要,以及应用书中的构建美妙,尤其是后面的“敏捷流程”的内涵,使得我受益匪浅。 ”

事实也确实如此,敏捷流程甚至被我们小组运用在了项目的实际开发中,它的敏捷之美相信每一个组员都有所感受到。当然,实话实说,大家都说我们小组编码起来很轻松,但其实不能说大家都很厉害,而是因为我们每个人都是负责任的人,遇到了问题自己马上去解决,很在乎与其他人的配合,才使得整个小组看起来很“轻松”。这是其他人难以了解的。

综上所述,我的收获就是敏捷开发运用于实际,体会到了敏捷开发的编程之美,这也算略懂《构建之法》?

1.2 第一篇博客的自我介绍?

答:那时并不想多么介绍自己,简简单单描述了自己社会角色,因为在我看来了解一个人是需要主观接触的,不管一个人怎么去自我介绍,别人只会以他的方式度量你。写了这么多的博客,已经跟助教,老师们也有了一定的交流,相信他们能够比自我介绍阶段更了解我一些。

1.3 第一篇博客的阅读与思考?

答:这一部分都是自己的肺腑之言,从如何选择这个专业到离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?这些问题变化都不大,但是也许别人在经过这一个学期的对我的了解后,能够更加理解当时自己写下那些回答的原因。当然有的问题的答案还是有些改变的,比如自己学会的技能现在又多了一些:《构建之法》、《安卓开发》、《Linux基础》...这都是这学期的收获。

1.4 第一篇博客的提有质量的问题?

  • 构建之法12.1.2中提到理解别人的处境,心境,动机的能力是同理心,软件团队的设计师和软件工程师也需要同理心。我就在想站在别人的角度去考虑问题这点是很好的,但是作为软件工程师的话如果都从别人的角度去考虑自己软件设计的因素的话需要考虑的角度就会特别多,例如设计者,用户,上层等等,而且每个角度看到的东西又都是截然不同的,这时候我们要怎么做才能更好的兼顾全局?

答:这一部分其实就是项目经理和软件开发者之间的矛盾,在我最近看到的一本书《腾讯传》就讲到了,最厉害的项目经理马化腾和他的软件开发者之间产生矛盾的时候,最后由谁提出谁负责的原则,只要大家不是特别反对,那么你就去负责你提出的设计,最后结果产生再来看效果也是蛮不错。

  • 同时,这样的话会浪费更多的时间去调试,我们又该怎样在规定的工期时间内完成用户的种种需求,这显然是非常非常麻烦的,要做好一个满足全部要求的软件显然是不现实的,我们又该怎么取舍?

答:这个问题其实和上面的问题不谋而合,如果时间不够可以通过线上测试,内测版本间接测试去解决。要做好一个满足全部要求的软件确实是不现实的,任何好的功能都需要用户的反馈才能进一步发展。

  • 12.5中向我们提了一个问题:什么是用户体验什么时候开始考虑用户体验?从不同时间段去考虑用户体验显然会带来不同的问题,那存不存在一个最好的时间点呢?

答:最好的时间点就是能够让用户体验的时候,就让用户体验,越早问题发现的越早,越容易解决,其实就跟单元测试原理类似,一个一个地保证方法函数的正确性,组合起来的正确性也相对提高。

  • 14.1.1中提到软件质量=程序质量+软件工程质量 软件工程的质量又有三个特性:好,快,便宜。那么假如一个人或者一个团队开发软件的过程中过没法做到这三点,我认为最重要的是好,但想了想,在规定的工期内既然没法做到快,那也很难做到好了,那么对于一个软件开发过程,这三点那一项是相较于其他两项要更占主导位置的呢?

答:在我看来,没有谁占主导位置,都是相辅相成的结果,唯有各方面都有运行体现,整体软件的发展更为稳健。

  • 书16章在介绍产品了,其中举了个魔方创新的例子,魔方产业中出现了种种的竞争者,笑到最后的确是那名技术不够硬,产品不够好,出现时间不够长的一位,只因为他做到了客户的需求。那么我就在想,在现实社会中一个产品的营销中也会产生很多很多的竞争者,我们能够支抓住目标用户的需求就可以脱颖而出吗,在这之前不需要磨练出过硬的技术生产出过硬的产品吗?

答:只能抓住目标用户的需求但没有过硬的技术,是一件悲哀的技术,不是说不能找别人做,但是自己没有本钱,周围也很少有厉害的人。就想马化腾的创业路途一样,他在工作阶段弄传呼机的时候就已经有过硬的技术并且弄过过硬的产品,发现了一个好的用户需求,就去找了有过硬的技术的同伴一起开发出了QQ。过硬的技术是软件开发者的本钱。


2. 陈远杨个人总结

第一次作业地址

2.1 回顾课程

我觉得软件工程不是简单一门课就能真正了解的,这门课只是带我走进了软件工程的大门。

对于以前的问题,我有了部分答案。我现在认为软件需求最需要的是解决最需要的功能,其他的都是之后决定的了。满足核心功能才是最重要的。在项目开发之后,看见大家做的项目后,自己有了新的疑问。我们做的项目或许做了需求分析,满足用户的需求。但是用户真的有必要去满足这些需求吗?用户真的有必要去解决这些需求吗?在知乎上有个类似的问题就是:"当代大学生应用软件过多你怎么看?"比如易班,盗梦空间等APP这些软件的的确确能解决当代大学生的需求。但是有几个大学生真的想用呢?如果我们班做的项目真的能够推广出去,并且得到更好的优化。是否真的能有用户满意?我们是否过度满足用户需求?或许这就是微信能抢占QQ的用户的原因之一吧。进一步说就是我们真的有必要开发这种满足用户需求的项目吗?

2.2 课程总结

经过一学期学习,除了对软件工程理论上的进步外,我个人觉得并没有什么其他大的进步。其实我们组的项目在分组一个星期就已经完成了大部分开发了,之后的时间花了一小部分去对接,其他时间都是在各自优化。我感觉就是一次,普普通通的项目合作经验。但是这学期的硬性要求写的博客(我个人是特别烦的~~)对这次的项目开发过程中有了很大帮助。让我们在项目进行过程中,明白接下来要做什么,哪怕是一件很微小的事情。但是我们至少知道要做什么,有了每一步的规划。这是我以前做项目所没有的。体会到“写博客”对项目开发带来的巨大便利,这算是这门课程给我带来的最大的收获吧。


3. 邓高虎个人总结

第一次的博客作业链接

3.1 对于曾经提的问题的回答

  1. 第一章1.1 软件 = 程序 + 软件工程,这里如何去衡量两者之间的平衡关系,或者是说哪一部分在实际的项目开发当中占主要成分,在有限的时间之内,如何做到两者兼得?

首先是软件工程的定义:就系统化的,严格约束的,可量化的方法应用于软件开发,运行和维护,即将工程化运用于软件.一个优秀的软件是和软件工程完美结合的.不存在谁更重要的问题.

  1. 第二章2.1 单元测试一定要作者自己写吗?如果是由其他人进行测试,开发人员需要写一份完整的开发文档么?

元测试是一种提高软件质量非常有效的方法,但很重要的是我们要去实践和体会。在现代的敏捷软件开发方法论只,都非常强调单元测试的重要性。相对专门的测试人员而言,软件的开发者者更熟悉自己的程序,开发者需要完成基本功能的验证,以提前发现bug并及时解决.

  1. 第二章2.12中提到了代码覆盖率,那么什么是代码覆盖率?

简单的说,覆盖率是指我们代码在测试中能够被覆盖的程度。所以,覆盖率理论上来说越高越好,代码覆盖率高说明我们的每一段代码都经过了测试,得到了预期的答案。但我们也不应该太纠结于代码覆盖率的高低,客观地说:
并不是越高的代码覆盖率表示代码质量越好BUG越少
代码覆盖率高只能表示代码都被测试过,但是否可靠并不确定
虽然高的覆盖率并不一定是好代码,但覆盖率低很大程度上代码质量会有问题
没有覆盖的代码应该引起我们的重视,有存在问题的风险

  1. 第三章3.3 职业发展的方式不止一种,如何选择适合自己的一条路,或者是在多种方式之间如何平衡?

未来展望。长远来看,实现职业生涯的跨越需要持之以恒的激情。
1.考虑是否适合自己
2.付出与收获是否成正比
3.坚持不懈地学习

  1. 第九章 9.5中,有这么一句话."没有风险,就是最大的风险".这句话该怎么去理解,在本段之前刚刚对于风险管理水平进行了分层,那这句话是否是可以理解为:风险会从多方向来袭,企图缩短软件的生命周期,而所谓“没有风险”只是没有预见风险,并且没有对其未来的风险情况进行评估呢?

只要是投资行为,总会伴随着各种各样的风险,甚至还有些不像是风险的风险.风险会从多方向来袭,企图缩短软件的生命周期,而所谓“没有风险”只是没有预见风险,并且没有对其未来的风险情况。

3.2 新的问题
有人认为软件开发时,一个错误发现得越晚,为改正它所付出的代价越大。作为项目经理,该如何管理自己的软件项目?
经过这学期的学习,你掌握到了哪些以前没有的技能,你是如何掌握的。
体会比较深的就是在于团队开发和测试,以前都是小组内分模块进行划分工作,多个人同时开发一个效率可能会更低,如何做到结对编程的高效率其中有很多的学问.
其次就是软件测试,以前做项目的时候,对于软件的测试可能呢并不是很到位,通过构建执法这门课让我对于软件测试有了一个新的了解.

3.3课后感受

通过这门课程在一定程度上了解了什么是软件工程,如何去完成一个优秀的软件以及如何去做到软件的工程化管理和如何提高软件的开发效率。软件并不只是简简单单地开发就完事了,在软件开发之前一定要讲需求分析做到位,明白用户到底遇到的是什么样的软件。
软件工程包括几个领域:软件需求分析、软件设计、软件构建、软件测试和软件维护。因此这门课程的学习,就是把相关的技术和过程统一到一个体系中。而对这个体系的学习就是软件工程这门课程的核心——如何提高软件开发、营运、维护的效率,并提高软件的质量、用户的满意度、可靠性和软件的可维护性。


4. 张祥个人总结

4.1 问题

  • 对于问题一
    软件开发人员忙于写代码,大多是懒得测试的
  • 对于问题二
    现在企业需要的更多是‘’T‘’型人才,而不是“ | ”型,比如前端工程师必须懂点后端,后端工程师必须懂点前端,这样前后端才能高质量地协同开发
  • 对于问题三
    开发前做好基本需求分析,系统分析设计
  • 对于问题四
    pull request
  • 对于问题五
    其实不做优化也挺好的,代码敲的特别爽
  • 第一次博客地址
    https://www.cnblogs.com/humblezx/p/11508050.html

4.2 学会技能

  • 写作能力,学会用Markdown写博客
  • 前端开发能力,独立构建前端应用
  • 结对编程,协同开发
  • scrum开发,极限编程
  • 单元测试

4.3 总结

不得不说,这个课程真是太牛逼了,原本我是一个连html,css都不会的小白,通过这个课程我掌握了html,css,js等开发技术,以及使用react,webpack,nodejs,and-design,es6,等技术利用模块化组件化工程化的编程思想独立开发一个前后端分离的项目,让我熟练了git控制版本技术,体验了团队开发项目的魅力,我特别感谢开设这个课程的人,让我学会了这么多,也特别感谢助教们,真的特别负责,也感谢我们的授课老师,他讲课讲得特别好,从来没遇到过讲课讲得这么好的老师,最后再次感谢所有为开设这个课程付出努力的人


5. 杨模个人总结:

第一次博客

5.1 对于第一次问题的解答

问题一:我在第三章55页看了职业发展—考级之路这一段,有个问题“这些证书真的有企业认可么?行业认可度怎么样?”,我查了一些招聘要求,发现行业对这些证书不太认可的样子,我的困惑是“现在去考这些证真的有必要么?他们的认可度不太高的样子。

答:其实还好,这半学期我也去了解过一些招聘的文章,也发现了很多HR还是会对证书感兴趣的,但是也不是很高,有证的必要性也不是那么的高,但是也可以作为一个亮点,其次的话,有证也相当于对自己职业的一种认可吧!

问题二:我的困惑是“是不是我们以后工作时写代码时只需要写上完全的注释,而不用向上兼容代码的使用者呢?

答:通过这学期的团队项目,我发现,关键的注释是必要的,这样会节省你和下一个来接手你代码的人的大量时间,而对于使用者的话,你只需要保证自己的代码不出错,且告诉使用者如何合理的去使用这些东西即可。

问题三:既然敏捷开发在国内受到文化差异的影响,甚至已经丢弃了敏捷开发所带来的优点,为什么这么多互联网公司还是在乐此不疲的采用敏捷开发呢?

答:在团队项目的开发中,其实我们也遇见了同样的问题,队员之间由于陌生,以至于在每日站立会议的时候无法给出合理的建议,也无法合理的说出缺点,都过于委婉了,但是我们也在其中收到了很多好处,敏捷开发的确能帮我们开发出我们想要的产品。这可能就是国内互联网公司采用这种开发的原因吧,毕竟花取少量时间就能获取足够的成果,这种开发模式又有哪个老板不喜欢呢?

问题四:身为程序员如何明白的表达这个需求做不了之类的观点?项目经理又如何让一堆技术人员明白他的要求呢?又何以服众呢?

答:这个还是得说说,我们组得项目组长其实也不太能理解其他人的代码,但是组长非常乐于听取他人意见,并给出合理的对策,使得我们在需求分析和需求确认阶段的每个需求都有专门的人去负责,故我认为i,只要组长足够服众,就算他不是技术人员,也不碍事的。

问题五: 对于一个大型的,拥有足够多用户的软件产品来说,这个软件可能遇到的情况,也是”荒诞“的。因为一个软件开发者(团队),永远无法在测试中穷尽他们设计的软件会被怎样的使用,和遇到什么样的状况。,但是,我还是想问,是否存在一种标准去量化这些测试的有效度呢?

答:经过这次团队项目,我认为这种东西是无法去度量的,因为我们无法知道我们得系统到底有多少bug,所以无法用数学去度量它,在我们项目开发的过程中,我们每次都认为这次的BUG完全修复,但是总是有其他新奇的BUG被其他组测试出来。

5.2 是否产生了新的问题?

  • 软件工程的人如何快速的掌握写文档的技巧?
  • 繁多复杂的文档会不会占用太多的编码时间?

5.3 回顾

​ 其实,通过这门课的学习,让我掌握了很多软件工程得过程方法这些,也明白了软件工程为什么要叫软件工程。了解到原来程序员也不单单的只是去负责编码,在项目开始阶段有着比编码更重要的东西,明白了团队间协作的重要性,掌握了墨刀等原型工具,知道在编码之前如何向客户展示他们所需求的东西。理解用户需求,远远要比编码重要得多。这些东西,都在课程中源源不断的反复练习着。

5.4 体会

​ 学了两年的软件工程,直到这学期才知道我们学的是什么,为什么要去学,在学习的过程中,的确因为作业出奇的多而各种抱怨老师,殊不知只有让我们自己去经历一下才能让我们对软件工程有更深刻更全面的理解。其次呢,这门课让我认识了很多人,很多志同道合的人,自己也掌握了很多和原来不一样的技术,唯一一点的遗憾就是,这次的课程似乎也没有提高自己的编码能力,不过编码本身就不是这门课的重点,没有锻炼到也在气力之中。


6. 胡思荣个人总结

离别赠言

以前博客

​ 对于现在来说,这两次博客之间发生事情挺多的,我的方向也越加明确。我还是很满意当初对我们专业的选择,也在里面学到了许多知识。经过长时间的学习,我深刻意识到狭义的编码能力并不是最重要的,反而会掣肘我们的步伐,软件工程让我体会到,工程对于软件行业的重要。

​ 这学期我拓宽了我的朋友圈,也认识了更多的人,他们方向各不相同,但都有特点,有一个就是他们方向明确。我们大三了,马上面临着考研,找工作的烦恼,这是不同于其他时间的,而我选择出国留学,为了更深入的学习,希望能够获取更多的知识,也希望晚一点离开。

​ 在我心中,编码能力是次要的,所以我更倾向于更多的学习,当然,代码量不能少,我也喜欢编码。

​ 对于我来说最大的问题是不能平衡学校的学习,和自己学习之间的矛盾,结课之后会轻松一点,我也想

投入更多的时间在英语学习上

回顾之前

1.人工智能实际是多领域的结合,确实是软件工程的产物,软件工程同其他工程的区别在于,对软件工程更倾向与人,为了更好的作用于人

2.任何的发现都不是偶然的,各个领域之间的联系也会有不同的,相互推动,相互发展,微积分也推动了计算机产业的发展

3.拥有并不代表成功,我们要掌握管理与发展的平衡,不能顾此失彼,当达到平衡之后会呈现出更蓬勃的生命力

本来人为因素也不是公司所能表达的,宏观的调控可以确保总方向的确定和人为影响的不确定性

道德在某方面也会根据法律而定,并不是一昧的唯心,在法内道德,法外守德才是最好的做法


7. 翟仕佶个人总结:

链接:第一次个人作业

7.1 对自己提出问题的解答

问题1:第四章两人合作。书上68页

提到注释使用的字符应该只用ASCII字符,否则会影响程序的可移植性,这里我不是很懂,一是移植性,二是为何使用ASCII字符。想起之前在使用GBK编码后去其他平台会出现乱码,提倡只使用utf-8字符集,这两者有什么关系或者冲突么?

回答: 移植性是指使用高阶语言写成的软件,在不同环境下,是否具备可以被重复使用的性质。打比方说在我的PC上能运行的程序,在美国的一个不同计算机上能否正常执行。ASCII毕竟是计算机最基础的字符集,所以用ASCII注释的移植性没有什么问题;而utf-8、utf-16等编码都是基于Unicode字符集的不同映射结果,如果有的电脑底层没有的Unicode字符集,移植后就白瞎...你就慢慢整吧。


问题2: 第四章两人合作。书上69页

4.3.2小标题,认为函数最好有单一的出口,为了达到这一目的,可以使用goto语句,可是之前我们接收到的思想是goto语句破坏了程序结构,使程序可读性变差,尽量不要有goto语句。如何权衡?

回答: 这一点在我和朋友做结对编程的时候深有感触。我们为了追求性能,不仅使用了C++,还没有用正则表达式,导致算法比较复杂。不过即使未优化时代码有些冗余,我们也坚持不搞多个程序出口,保持了程序出入口只有一个这个好习惯。所以我认为在时间不是特别紧张,代码逻辑不会因不写goto语句就非常复杂的话,能不写就不写。


问题3:八章需求分析。书上155~156页

在谈到做用户调研时使用的焦点小组方法,提到讨论者对于他们不熟悉的事物(如全新市场,颠覆式的创新)不能表达有价值的想法,那么该如何做需求调研呢?用类似事物诱导讨论者么,那这又是另一个弱点——讨论者容易受到主持人有意或无意的影响。所以,该如何做呢?

回答: 这个问题似乎当时问的有点太刁钻了哈哈(没想到自己要回答了)。从本次我们团队项目,个人角度看与其说解释很长时间,不如先做个有核心功能的成品原型出来,拿给用户先试用一下。


问题4:第六章敏捷流程。书上117页

提到Scrum Master不是一个官,而是一个没有行政权力的沟通者,还要在团队中做具体的工作,那么这个Scrum Master到底是一个什么样的角色,技术力压众人的大牛么?在团队中是否还需要负什么重要责任呢?

回答: 技术并需要力压大牛,比如我们这个七人团队六个人都很能打,而我这样的技术菜鸡,在项目中的编码工作相较轻松(要么就是较简单的任务,要么就是复杂任务做不好还可以请教他人)。作为Scrum Master / PM,我最主要的任务是:安排例会、了解进度、督促和协调任务和撰写各种报告等,不能因为某个人的工作僵住了影响到整体的进度。


问题5:第十一章软件设计与实现。书上226页

ERD的小标题似乎有点小问题,ERD应该翻译为“实体联系图”而不是“实体关系图”

回答: 这个已经得到数据库老师的回复确认了,不过这是小事,无伤大雅。

7.2掌握到了以前没有的技能,是如何掌握的?

最大的收获就是使用git和github了。

真不是一次性掌握的!每次用完都忘,也遇到了各种push出错问题——文件太大、网络不好、没有权限等等。
这里感谢(da lao)杨模同学,一遍遍的教我。


对C++及其编译器VS的使用更上一层楼。

结对编程中,我主要负责面向过程,陶一同学更面向对象。
不管是命令行还是MFC,都是他编码,我观赏的,所以跟着他学了不少东西。
VS做C++效能分析也是得到了锻炼,因为网上C#效能分析多,C++很少,我们花了很长时间才搞定一个VS编译器的莫名其妙bug。


学会了python web框架一些基础知识

起码我知道怎么把机器学习成果展示在网页上了。
再次感谢(ju lao)杨模同学,一遍遍的教我。


知道了一些博客园美化方法、画燃尽图等等

当然了,作为每次都要写博客的PM,这些现在都是小事了。


7.3 新的提问

这门课让大家很累,为什么?

  • 首先我是觉得这门课一方面很有意思,它不交给我们技术,但是用一种新的开发模式(我们团队使用的就是Scrum)去让我们在大的实践中去自己解决细节问题,但是一开始大家可能都不适应,不是合作的不适应,而是对团队合作方式的不适应。
  • 另一方面我也相信,时间跨度、任务要求的冗长,技术应用上的不断翻山越岭,让我身边的同学仿佛在跑一次马拉松。也有一些很优秀、起点很高、领先很久的同学突然就说“算了算了”,当然,我发现他只是调侃,并没有放弃。
  • 当然究其疲惫的根本原因,还是同学们太多太想做好。

7.4 深刻体会与总结

  1. 写代码的角色
    我终于将自己的所学知识转化为了对项目的贡献。
    作为一个Python/C++爱好者,基本没啥机会做一些我稍微擅长的点的事,身边的大佬几乎都是精通Java web,以往做的小组项目或是参加比赛都是这方面,我只能抱紧大腿划水。但是这次不同了,当团队有打卡需求,而人脸识别又是网上随处可见的关键词时,我们的项目就是一个很自然的一个连接整合,实用且不失新颖,队友也很给力,这个过程使我体会到从未有过的存在感

  2. 做PM的角色——感谢队友
           非常高兴能与我的队员在一起做项目,这也是我做的最舒心的一次团队合作。每次立会都能有新颖的想法,每次安排任务时可以提出给自己安排挑战的任务,最后也能够将自己的任务做的优秀。不仅仅是因为我的队友都是各自技术方向上的佼佼者,使我们的项目进度飞快。
           合理的团队沟通和有安排的任务分工比实际能力更重要,我很高兴我们选择了正确的方式,一个团队分成三个组先各自完成最初的模块。在这个过程中,web组有很好的交流与沟通,工作也不会被后勤组所打断;在web组完成网站框架后,安卓组获取了接口,后勤组暴露了接口,各种的功能自然而然交叉上线。作为PM,我也感受到了团队的凝聚力和执行力。


八、项目资料——上传至github

web前端

使用方法

  1. ctrl+c复制上面的网址
  2. 安装git(这里就不介绍了)
  3. 打开git-bush界面(怎么打开就不介绍了)
  4. 随便找个目录cd进入
  5. 输入 git clone 然后按下ctrl+v(粘贴),然后按回车,(一定记得按回车不然命令运行不了)
  6. 克隆完成后,安装nodejs(不介绍,自行百度)
  7. 进入刚才克隆项目的根目录,按ctrl上面那个shift的键+鼠标右键,选择在此处打开命令行窗口
  8. 输入npm start命令,过一会儿你就能看到浏览器跳出来的页面了
  9. 部署输入npm run build 过一会儿就生成一个打包的dist文件夹(怎么用自行百度)

web后端

安卓端

  1. 安卓端只需要安装APP即可,已经适配了市场上绝大部分安卓10的系统。
  2. 项目APP分为两个版本
    下载地址为
    https://github.com/chenval/ThePunchSystemAndroid/tree/master/app/release
    版本1 83:可以不需要在特定网络坏境下打卡,便于测试。
    版本2 80:最终版本,需要在特定环境下
  3. 所有资源绝来自于服务器端,只要安装APP 连接网络即可。

在这里插入图片描述
在这里插入图片描述

九、一个小小的希望

我们的项目上线较早,很多人使用了很长时间了,除了个别测试数据,绝大多数用户都是真实信息。
虽然我们网站的安全性还算比较高,但毕竟能力有限。
希望download我们源码的来访朋友,都是成年人了,不要搞恶作剧,也不要用爬虫去爬我们Python后端了(人脸照片在课程结束后即删除)。

十、联系方式

QQ:   	2597759547
TEL:	13281897532
原文地址:https://www.cnblogs.com/xiaxiaoshux/p/12040528.html