这个作业属于哪个课程 | 课程 |
这个作业要求在哪里 | 作业要求 |
我在这个课程的目标是 | 1.学习创建项目的基本工具和基本方法 2.巩固学过的编程语言 3.通过实际的操作提高自己代码编写能力 4.开发一个自己的小产品 |
这个作业在哪个具体方面帮助我实现目标 | 1.对教材理论知识的学习 2.和小组合作构建项目 3.个人项目构建 4.对构建项目的管理工具的学习 |
一、建立博客并介绍自己
1.个人博客:https://www.cnblogs.com/Mr-Chopper/
2.自我介绍:我是一名大三的学生,不上课的大部分时间宅在寝室,尽管如此,我还是有规律地去做运动。正在确立自己的目标,为自己接下来的生活做一个小规划。迷茫毕竟是一件可怕的事。
二、阅读与思考
1.回想一下你初入大学时对你所在专业的畅想
- 当初你是如何做出选择你所在专业的决定的?
转专业到地信,初衷仅仅是不喜欢原来的专业而已 - 你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?
符合自己的期待;两学期的学习,了解到专业所涉及的学科很广,可以了解到非常多的信息。 - 你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
正在更多地去了解这各专业,兴趣是最好的老师。因此,谈不上擅长。 - 将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
就业肯定优先选择本专业相关工作,但对我来说,有的岗位不是长远打算(5年以上)。想去工作的地点:成都,武汉。公司现在并没了解到什么。
2.对照前人们走过的路和描述未来发展,现在的你 - 自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目
具备的专业知识就是对专业的基本认知,技能则是软件的安装,能力好像还没有表现出来;写过的代码量大概1000行左右;还没做过项目 - 离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
专业基础知识与基本原理的理解;对专业软件的操作不熟练;地理空间数据库的开发以及开发过程中对算法的理解。
3.目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。 - 对照以上你阅读的前人们的经历,你的选择是什么?
工作,找份稳定职业做3到5年。 - 在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
我没有考虑过,只是希望不要太高风险。 - 针对你的选择,你给自己的大三设定的规划安排是什么?
努力学习专业知识。掌握一门编程语言。 - 你对于实现自己的梦想已经做了或者计划做什么样的准备?
首先从生活习惯上改变自己。并没计划太远,毕竟计划是赶不上变化的。
三、提有质量的问题
Q1:第二章提到单元测试必须由最熟悉代码的人(程序作者)来写,尽管代码作者是最了解代码的人,但是代码作者对于写代码时的思维应该是不变的,而且不能走出原来的思维模式,所以我个人认为,单元测试时需要一位经验丰富的人辅助进行。
Q2.第三章软件工程师的职业发展软件工程师在工作时应有的职业道德和态度应该是什么?
Q3.第九章提到领导力————高效的团队讨论,本学期我们有必须做的团队项目,大家都想把它做好,因此在项目实施过程中就需要大家一起讨论,如何高效进行?
Q4.第十二章《用户体验》:好的用户体验当然是所有人都想要的,如果它和质量有冲突,怎么办?牺牲质量去追求用户体验,用户能接受么?质量是确定软件收益的一个重要因素,但用户体验也是非常重要的,软件本身就是面向很多用户,因此在这两者之间的权衡如和选择?
Q5.第十四章《质量保障》:软件开发过程有三个主要的特征:“好”,“快”,“便宜”。通俗的理解是“软件在功能、成本、时间三方面满足利益相关者的需求”软件开发过程的成本很高,那么如何做到在较低成本下,做出满足功能要求的软件,而且还有合同时间限制?
四、了解和调查源程序版本管理工具
优点 | 缺点 | |
---|---|---|
Git | 1.免费且开源。 2.用于敏捷高效地处理任何或小或大的项目。 3.Git支持分支功能(branch)。如果你想开发一个新的产品功能,你可以建立一个分支,对这个分支的进行修改,而不至于会影响到主支上的代码。 4.可拿Git做备份系统,或者同步两台机器的文档,很方便。 5.支持离线工作。本地提交可以稍后提交到服务器上,不用和集中的代码管理服务器交互。 只有最终完成的版本才需要向一个中心的集中的代码管理服务器提交。 6. Git 提交都是原子的,且是整个项目范围的,而不像 CVS 中一样是对每个文件的。 7.Git 中的每个工作树都包含一个具有完整项目历史的仓库。 8.简易的初始化。对于随便写两行代码就要放到代码管理工具里的人来说,再合适不过。 |
1.学习成本大。由浅入深的过度很漫长,需要大量时间的投入。 2.Git版本库需要频繁的手动维护。 |
Trac | 1.Trac做一个SCM配置管理平台,意味着它有良好的扩充性 2.Trac的权限体系是比较完备的设计 3.非常灵活,可以随心所欲的定制,可以和TortoiseSVN集成。 |
1.不支持多项目, 2需求和缺陷没有分离, 3.用 wiki 来替代 Word 等工具编写文档对于产品策划来说门槛太高了, 核心功能很少,不安装插件基本上没法用。 |
Microsoft TFS | 1.任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用 2.集成了项目管理、版本控制、BUG 跟踪,能有效实现 SCRUM 3.能与 VS 无缝接合 |
1.整个系统是用 asp 实现的,用浏览器访问相当慢(不知道是不是服务器性能太低还是我个人用的电脑配置太低) 2.从 IE 上访问、填写各种开发、测试记录,也是很慢,感觉不如 mantis BT 这样基于 php 的那么方便、迅速 3.XP 系统无法访问,还得是64位的。所以把电脑的整体性能拖下来了 |
Mercurial | 1.学习门槛较低。整体上看,hg需要掌握的命令要比git少很多。 2.可以一键完全恢复到历史版本的某一个切面。 3.封装好。相比git,hg很少暴露一些实现内的细节。 4.照顾 svn 的迁移用户。hg 的很多命令是迁移自 svn 命令的,目标其实是为了让 svn 用户更容易接受。这使得已经习惯 svn 命令的团队,几乎零成本的切换到 hg。 5.hg 的 pull 更多的时候可以让你避免创建分支。hg 好比苹果系统,git 好比 Linux,前者在常用命令上更好用更易用,后者在功能上更强大更灵活。 6.hg的版本库不需要维护。 |
分支管理不灵活。Mercurial的branch管理和Git相比不是很方便。 |