• 个人作业——软件工程实践总结&个人技术博客


    1.回望

    1 对比开篇博客对课程目标和期待,“希望通过实践锻炼,增强软件工程专业的能力和就业竞争力”,对比目前的所学所练所得,在哪些方面达到了你的期待和目标,哪些方面还存在哪些不足,为什么?

      定目标时设想的都是编程方面的,希望经过软工实践能够较全面得提升我的编程能力。但是实践里,主要锻炼的只是一两个方向。有的时候,做作业为了完成量,就很赶,锻炼效果没有想象得好。

    1.2在第一次作业的个人简历中描述了这门课程结束后,你预期你将增长的能力、技术、技能,并绘制了学习路线图。对比当前所学所得,达到了当时的预期值吗?

      在我第一次作业里,预期获得的工程能力的描述是:能够写出易于修改和维护、兼容性高的程序。现在看,只能说提高了程序的可维护性、兼容性,距离设想的目标还有一段距离吧。

      第一次作业里预期获得的技术与技能是:在课程结束后能够做出小而精致的软件。在软工实践期间,我提升了前端实现能力,也小学了一把运维。如果综合这学期自学或其他课程里的知识,似乎可以自己实现些小小的综合程序,算是达到预期值了吧。

      在学习路线图里,我定下了关于vue和react的学习计划,但是这学期里用到的几乎都是vue,就搁置了react的学习。并没有达到预期。

    1.3哪次作业让我印象深刻,为什么

      最印象深刻的应该是口罩预约系统那期。

      起床的时候人还挺懵,就看到《团队Github实战训练》。密密麻麻十几点要求,还必须在当天完成。

      好在大家效率高,默契好。组长一下就把大家组织起来了,我们迅速定下方案、分配任务然后进行开发。在中午12点前,我们就开始测试性地接入前后端数据交互,记得当时心里想:接入交互就意味着成功一半了。

      虽然那是大家第一次合作,但是我感觉我们完成得真的不错。当时我主要负责前端,页面推进不一会,就收到了后端同学提供的各种接口。后续点亮前后端交互的时候也是颇为欣喜的,感觉大家的努力都有所回报。

      那天也挺累的,非常累。截止时间是晚11点,一直到忙到最后五分钟。收拾完电脑桌上的零碎,到客厅走几步路,也只能准备洗洗睡了,再过8个小时左右又要准备上课。

    1.4个人记录

    1.4.1代码量:7000行左右
    1.4.2各次作业耗时
    作业标题 所用时间
    软工实践寒假作业(1/2) 6h
    软工实践寒假作业(2/2) 10h
    结对第一次—疫情统计可视化(原型设计) 13h
    团队作业第一次—团队展示和项目展示 6h
    结对第二次作业——某次疫情统计可视化的实现 30h
    团队作业第二次——团队Github实战训练 10h
    团队作业第三次—项目需求分析 10h
    团队作业第四次—项目系统设计与数据库设计 18h
    个人作业——软件评测 16h
    团队作业第五次——站立式会议+alpha冲刺 50h
    团队作业第六次——beta冲刺+事后诸葛亮 40h
    个人作业——软件工程实践总结&个人技术博客 5h
    1.4.3累计花了多少时间在软工实践上?平均每周花多少时间?

      累计花了210h左右。平均一周10.5h。

    1.4.4学习和使用的新软件、新工具

      学习和使用了postman、Typora、Resolution Test

    1.4.5学习和掌握的新语言、新平台

      学习了Linux相关知识

    1.4.6学习和掌握的新方法

      掌握了编写运维脚本的小技巧、spring boot项目部署方式

    1.4.7工程能力的提升

      提高了前端熟练度。小学了一些运维知识。

      对于软件的整体实现过程有了个不模糊的认识。

    1.4.8团队合作上的提升

      我觉得团队合作也讲究软件工程模式的。怎么进行程序交接、怎么合作查错、怎么做数据交互等等等等,都大有学问。软工实践里就是这样提升团队合作能力的,更多了几分程序员的默契。

    1.4.9其他方面的提升

      会写博客了,get到了很好用的笔记应用Typora。

    2.团队总结

    2.1关于我

      我是组员。我觉得我有点负责,能够按要求完成组织分配下来的任务;我觉得有些时候我太心急了,火急火燎的反而帮了倒忙。

    2.2关于组长

      组长非常强大。认真负责有能力,能够很好地组织大家完成各种任务。组长的一系列技能也震撼到了我,会编程、会UI、会画图。就想到某个手圆圆的卡通人物,能够从四维口袋里拿出各种奇妙道具。也非常感谢组长这个学期一路带领我们帮助我们。
      其实也有可以改进的地方:组长太肝了,做了很多工作,可以适当把一些任务分下来给我们。
     

    2.4关于团队

      我们团队属于规范阶段。到了冲刺阶段的时候大家都非常有默契了。松果生活里很多技术对我们来说都是新的,开发过程中有种筚路蓝缕有种摸着石头过河的感觉,但是能够明显感受到我们是一整个团队在努力。我们的团队在软工实践里,一路发展,一路成熟,走过beta冲刺后,我们已然成为了一支极具力量的团体。

    2.3关于角色

      我在团队里担任了开发人员的角色,主要负责网页开发和一些小运维。冲刺阶段,电脑常同时开着Webstorm、Chrome、XShell、WinSCP、Navicat、Postman等一系列工具,我叫它们“工作餐”。开发期间也挺喜欢这种在各个软件间切换执行任务的方式。在软工实践里也基本上完成了该角色的任务。我觉得我还蛮适合这个角色的。

    人月神话

    3.1.1研发出符合用户需求的软件

      在beta冲刺后期,我们发布松果生活内测版。并通过各类社交平台把APP投放出去。投放后几天一直保持80-240的用户活跃度。

      松果生活下载地址:松果生活官网

    3.1.2通过一系列工具,流程,团队合作,能够在预计的时间内发布 “足够好” 的软件

      在alpha冲刺中期,我们就将项目部署到服务器上,可供管理员测试、开发、体验。同时后端服务包也在开发中阶段性更新。在beta冲刺阶段,我们制作了面向用户的松果生活官网,并在冲刺后期将其发布。

    3.1.3通过数据展现软件是可以维护和继续发展的

      我们的项目分为安卓客户端、iOS客户端、后台网页、后端服务四个部分,各种有独立的github仓库。

      项目还配有一套运维脚本,能够帮助我们快速更新、部署后端服务包。

      github仓库可见:Androidios数据库后台系统

    3.2我的人月神话

      软工实践里养了个习惯,大干一场前先定个小目标,然后当日的计划就是编程到实现目标为止。

      想到疫情统计实现那期,正值学期课最多的时候,那个星期里,就每晚安排一两张图表实现。如果目标提前达成了,就去写写博客或者添加些小组件小样式。就像背包问题,用各种大小不一的方块把一个区域尽可能填满。对我来说编程也是这样,工作时间里主要处理大功能模块,时间空余则去实现零散的小模块。最怕的是今日把某模块功能实现了一半,明日接着实现。这样就打断了逻辑的连贯性。

      比起算法作业,软工实践里我所编写的程序大多没有太复杂的逻辑,像是一种连线题,要做的只是在特定的点间画条线。但是这样的点有成千上万个。这会儿点连错了,那会儿线打结了,有时逻辑纠在了一起,有时模块糊成了一团。曾经看到那种德国机房布线图,虽然电线有成千上万条,但是都排布得工工整整。我也希望自己的程序将来也能这般工整,这就需要一个良好的设计。

      软工课程里有一句话一直记很清楚——软件质量是设计出来的。现在越发理解这句话的含义。设计得好,软件才能打能扛。除了系统设计/数据库设计那期,几次个人作业里我也有尝试编码前先做些简单设计工作。但是经验不足,花费时间也短,弄得有点毛毛糙糙的。博客一里我写,希望能实现小而精致的软件,就要有一个滴水不漏的设计。软工实践里也诞生了各种计划,希望从设计做起,细致地制作一些小程序。

    4.建议

    4.1对大一同学的建议

      大一课余时间还是比较充足的,可以去广泛地了解各种技术。这样想尝试做某些项目时会有个快速入手的方向。

    4.2对下一届同学的建议

      软工实践前一定要做好技术铺垫。可以练习性地去具体实现一下项目里可能会出现的关键模块。

    4.3对自己的建言

      还是太怠惰了,不要把时间浪费在没有意义的事情上。

    5.个人技术总结

    配合springboot的快速运维脚本
    概述:
    介绍了如何使用sh脚本来对spring boot项目导出的jar包进行简易管理

  • 相关阅读:
    Servlet第六篇【Session介绍、API、生命周期、应用、与Cookie区别】
    Servlet第五篇【介绍会话技术、Cookie的API、详解、应用】
    Servlet第四篇【request对象常用方法、应用】
    Servlet第三篇【request和response简介、response的常见应用】
    Tomcat就是这么简单
    JProfiler远程监控Linux上Tomcat的安装过程细讲(步骤非常详细!!!)
    FileChannel类的理解和使用
    Lifetime-Based Memory Management for Distributed Data Processing Systems
    Spark的核心RDD(Resilient Distributed Datasets弹性分布式数据集)
    Hadoop与Spark之间的比较
  • 原文地址:https://www.cnblogs.com/radishbear/p/13192792.html
Copyright © 2020-2023  润新知