第一次阅读作业
这个作业属于哪个课程 |
<课程的链接> |
这个作业要求在哪里 |
<作业要求的链接> |
我在这个课程的目标是 |
<了解软件开发的原理及过程> |
这个作业在哪个具体方面帮助我实现目标 |
<通过阅读教材及资料有了初步的了解> |
一.建立博客并介绍自己
- 博客地址:https://www.cnblogs.com/hj77/
- 自我介绍:我是软件工程17级的黄健。喜欢听歌、看电视、玩游戏,没什么特长。
二.阅读与思考
(1)回想一下你初入大学时对软件工程专业的畅想
当初是如何做出选择软件工程专业的决定的?
我原来是电子信息工程专业的,填志愿时对专业不了解,想去的是软件工程,误填了电信,后来转专业到了这边。我当初认为的软件工程专业就是编程,从第一次接触编程就感觉很有意思,就想学,就按着自己的兴趣选择了这个专业。
过去两年中接触到的课程是否符合对软件工程专业的期待,为什么?
基本符合我的期待吧。过去两年接触到的课程与这个专业联系都比较紧密。
你觉得软件工程是你喜欢的领域吗,它是你擅长的领域吗?
我觉得软件工程是我喜欢的领域,但是并不是我擅长的领域,感觉有点吃力。
将来你会选择从事软件开发相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
可能会吧,这还是要看自己学的怎么样。想去的城市是成都,公司不知道,岗位是软件开发工程师。
(2)即将大三的你,对照前人们走过的路和描述未来发展,现在的你
自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?
对c、c#有了初步了解,但并不熟练,代码写的少,可能就一两千行吧。
离成为一个合格的软件工程专业本科毕业生,在专业知识、技能、能力上还差距哪些?
没有一门精通的语言,欠缺很多专业知识,实践能力弱。
(3)大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。
对照以上你阅读的前人们的经历,你的选择是什么?
我的选择是考研。
在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
优势的话,就是目标明确吧;劣势就是学习自主性差,自律性差。
针对你的选择,你给自己的大三设定的规划安排是什么?
全力准备考研。
三.提有质量的问题
问题 一.2.1.3回归测试
书中提到“回归测试最好要自动化,以为这样就可以对于每一个构建快速运行所有回归测试,以保证尽早发现问题。”我无法理解这个“自动化”是什么意思,要如何才能实现自动化。
问题二.8.6计划和估计
“软件时间的估计事实上是多个估计值的乘除法(估计的需求,估计的需求复杂度,估计的技术难度,估计的人员能力,人员流动和不可替代性),如果这些估计都差一两个数量级,那么我们最终的结果就会偏离十万八千里。”我们该如何处理这些估计值才能使软件时间的估计更符合实际,要怎么才能提高估计能力。
问题三.16.3.4效能过剩和竞争的各个阶段
“那么如何判断一种技术已经到了维持性阶段呢?一个重要的特性就是效能过剩。”为什么有效能过剩特性的技术就到了维持性的阶段?
问题四.4.3.3错误处理
“如何验证正确性?那就要用断言。断言和错误管理是什么关系?”断言是什么?断言怎么使用?
问题五.12.1.6用户体验和质量
“好的用户体验当然是所有人都想要的,如果它和产品的质量有冲突,怎么办?牺牲质量去追求用体验么,用户能接受么?”该如何平衡质量和用户体验?
四.了解和调查源程序版本管理工具
优点:
1.完整的支持Markdown语言,而且支持Emoji表情
2.支持直接复制图片到页面,会自动上传图片
3.比较好的支持Mobile。
4.使用github原生的功能,就可以进行类似评论的功能
5.支持@用户功能
6.支持标签
7.强调个人,符合hacker更看重名誉/成就感的天性
8.功能设计简洁实用上手很快,可用性好
缺点:
(对个人而言)
1.GitHub 使用 git 分布式版本控制系统,而 git 最初是 Linus Torvalds 为帮助Linux开发而创造的,它针对的是 Linux 平台,git 和 Windows 从来不是最好的朋友,因为它一点也不像 Windows。GitHub 发布了GitHub for Windows,为 Windows 平台开发者提供了一个易于使用的 Git 图形客户端。
2.国内访问速度太慢,经常出现connect time-out
3.不能很好的解决GB2312/GBK,对中文不够友好
4.wiki功能太弱,直接导致文档(对于开源项目很重要)经常被分离到一个独立站点
(对企业而言)
5.免费套餐不支持私有项目,无非解决企业内部的需求,github:fi价格过高(最便宜要$5,000/年)
6.基于git,学习曲线陡峭,企业大规模用git根本不现实。尤其国内大家都刚学会svn
7.github有时可能被墙,或者不稳定
8.没有集成社交分享功能。比如后面可以分享到微博,微信朋友圈等。之前有人建议我去做插件,有时间看看这个。
(参考Tulipbaby第二次作业:Github的优点和缺点)
优点:
提高了团队生产力;在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动,为每个开发成员提供了必要的准则、模板和工具指导,并确保全体共享相同的知识基础。
缺点:
RUP只是一个开发过程,并没有涵盖软件过程的全部内容。没有支持多项目的开发结构,这在一定程度上降低了开发组织内大范围实现重用的可能性。
Trac:
优点:
Trac做一个SCM配置管理平台,意味着它有良好的扩充性
Trac的权限体系是比较完备的设计
非常灵活,可以随心所欲的定制,可以和TortoiseSVN集成。
缺点:
不支持多项目,
需求和缺陷没有分离,
用 wiki 来替代 Word 等工具编写文档对于产品策划来说门槛太高了,
中文化不完整,美术人员接触起来困难重重,
不显示中文名,本地化做得很差,
核心功能很少,不安装插件基本上没法用。
(参考于悦:管理软件的优缺点)