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

这个作业属于哪个课程 2020春S班
这个作业要求在哪⾥ 作业要求
这个作业的⽬标 对整个课程进行一个总结
作业正⽂ 个人作业——软件工程实践总结&个人技术博客
其他参考⽂献 暂无

回望

对比当前

哪些方面达到了我的期待和目标:
确实提高了个人的iOS开发水平,掌握了许多原生开发的内容,这样有助于更好地理解第三方SDK的实现

哪些方面还存在不足:
对于网络编程和并发编程的理解还是不够深入,各种消息队列掌握的也不够好

是否达到预期:
为此我特意翻看了我先前的博客,说句实在话,其实都有做到,但是都不够深入,那我当然是不满意的,还是需要更加深入的去研究,去理解。

印象最深刻的作业

印象最深刻的作业应该是那次软件评测了吧,至少对于我个人而言是第一次做这种事情,也是第一次尝试接入这种即时通信的SDK,也没接触过这种技术,当时还没来得及把源码扒出来看看,看看他到底是怎么实现的,接下来一些日子我应该会去做这件事。

个人纪录

共计个人完成的代码量5-6k行左右 其中项目代码占4-5k

1.作业花费时间

软工实践各次作业 花费时间(h)
软工实践寒假作业(1/2) 5
软工实践寒假作业(2/2) 15
结对第一次—疫情统计可视化(原型设计) 10
结对第二次作业—某次疫情统计可视化的实现 20
个人作业—软件评测 15
个人作业—软件工程实践总结&个人技术博客 10
团队作业第一次—团队展示和项目演示 10
团队作业第二次—团队Github实战训练 10
团队作业第三次—项目需求分析 10
团队Alpha冲刺 40
团队Beta冲刺 50
团队总结 5

2.累计花了多少个小时在软工实践上?平均每周花多少个小时?
根据上述计算 总共190h 平均每周10h

3.学习和使用的新软件;
Axure、Postman、Charles等

4.学习和使用的新工具;
VSCode代码编辑器、mac terminal终端

5.学习和掌握的新语言、新平台;
JS、ObjC;平台的话可能浏览器也算一个平台?

6.学习和掌握的新方法
NABCD模型、PSP时间分析等

7.工程能力的提升
工程能力的话主要表现在更加注重代码质量和代码的可用性可维护性可延展性吧,使代码能够构建成一个成熟的系统

8.团队合作上的提升
我在团队合作上的提升主要是在Git上吧,学了很多Git的知识,提高了合作开发的能力

9.其他方面的提升
其他方面的话主要还是沟通交流方面的吧,提高了沟通交流的能力

团队总结

个人评价

我是组员,我觉得我可能在前期对项目组织和想法构思以及类图设计方面贡献较大吧;可以改进的问题主要是拖拉的毛病问题手机静音的问题(因此我经常忘记开组会);具体改进措施的话就比较简单了,做什么事的话每天要完成每天的任务,今日事今日毕不要拖到明天,以及关掉手机静音及时接收消息。

对他人的评价

我认为我的组员同伴和组长对此项目非常的认真负责,对项目充满了十足的动力而且技术水平很高,组长也发挥出了自己的作用,团结整个团队;我认为还可以再提高的地方就是我们的沟通,有时候有问题的话沟通虽然很到位但有时并不是很及时(包括我本人)具体改进措施就是在此基础上更多的关注团队的信息和动态。

团队发展

构建之法提到团队发展的几个阶段为萌芽阶段-磨合阶段-规范阶段-创造阶段,我认为我们的团队已经达到了规范阶段,即磨合已经结束,团队开始步入正轨,但是距离创造阶段还有一定的距离。

我的角色

我在团队中担任了iOS开发的角色,任务的话由于有一些事情以及对原生开发的执念(事实上开发效率较低),相比安卓完成了80%;我自认为我还是适合的,最大的问题就是我太懒了。

人月神话

我们的团队

1.研发出符合用户需求的软件
我们的项目“松果生活”是有其官网的 后续也做了宣传 iOS的话由于需要个人独立开发者账号暂时没有上架 用户量这点的话,没有做很多统计

2.能够在预计的时间内发布 “足够好” 的软件
在项目初期我们进行了需求分析和规划、进行类图和数据库的设计
我们通过基本每日开会汇报进度、制定新一天的进度 确保项目按时保质完成
项目发展后期 我们进行了后续的发布和维护工作

3.软件是可以维护和继续发展的
至少在iOS端,软件代码放在了我的Github上,随时可以查阅、下载、更新、查看
开发文档的话暂时没有形成单独的文档,但是代码中字里行间的注释比较详尽,可以保证快速上手
代码采用Objective-C编写,不会存在像Swift3-5之间版本跨度过大大面积无法编译的情况 当然如果苹果官方修改了API,那自然也是过不了编译的
项目发展资料的话目前主要体现在commit记录上 可以看到项目是怎么一步步编写和维护的

我自己

在团队项目实践中,我担任iOS开发,也是唯一一个,这给我造成了不小的压力吧,但我也充满着动力,因为这对我而言是一个提升个人水平的好机会。
于是我选择了从没用过的Objective-C语言开发项目 我之前的项目全部是用Swift语言进行开发
同时我也真实的体会到了iOS的几大知识点:属性、并发、Runtime、KVO、响应链、网络编程、设计模式等
也自己实现了许多东西
比如响应链中的扩大响应范围 来实现tabBar中间大按钮的点击范围扩大
比如网络请求的封包,现在把接受返回数据的容器统一封装成一个类,再提交到上层应用层处理数据
比如单例和MVVM的设计模式 MVVM设计模式非常的好用,项目中大部分代码都是用该方式组织,刚才提到的上层应用层也就是此处的ViewModel
比如实现了图片的下载器、CollectionView的瀑布流视图、Runtime黑魔法方法交换替代原生present方法等等。
总而言之 收获非常的多 也让我对iOS、OC开发有了更多的认识吧 非常感谢这次软工实践提供给我了一个宝贵的机会 去接触、理解这些再经典不过的技术了。

建议

对新生

如果打算进入互联网 好好学计算机基础知识(组原、OS、网络、DS)很重要,无论就业或者考研。

对自己

我是一个嘴巴努力的懒鬼,最大的建议就是别天天在床上躺着了,看看书刷刷题不香吗)

对助教

首先感谢助教的付出,指导帮助我们完成整个课程。
建议的话也没什么建议,可以稍微多互动一下课程之外的东西

对课程

感觉有些内容还是有点形式,比如PSP表格统计时间,说实话我感觉没多少人会去留意计算这些东西,至少对于现阶段的我们

个人技术总结

浅析iOS开发中UITableViewCell的复用机制
概述:
该博客将会提到iOS开发中常用表视图单元格的复用机制和一些优化性能的策略

posted @ 2020-06-25 20:16  菜朋  阅读(203)  评论(3编辑  收藏  举报