阅读与准备作业
这个作业属于哪个课程 |
<课程的链接> |
这个作业要求在哪里 |
|
我在这个课程的目标是 |
学会以更好的方式开发软件 |
这个作业在哪个具体方面帮助我实现目标 |
规范编程习惯 |
作业正文 .... |
博客正文
|
其他参考文献 ... |
无 |
一、介绍自己
我是17级软件工程的学生。让我介绍自己的话,我会介绍自己的闪光点,我的闪光点是思考的很深入。但是这个闪光点让我的自学能力变得很差,因为老是在不必要的地方花时间思考。所以我的专业技能不是很强,但是我最近对app开发很感兴趣,这也让我花更多的时间去学习这个领域的知识。
介绍自己当然还要介绍自己的爱好,我唯一与艺术相关的爱好是古诗歌朗诵。所以说我艺术上的造诣还是有待提高的。
二、阅读与思考
1、当初从专业实用性的角度考虑,软件工程专业就业率最高;符合我的期待,两年的学习让我从对计算机一无所知到懂得其中工作原理;这个专业是我喜欢并且擅长的领域;毕业后我会从事相关的工作,想去北京,那是年轻人追求梦想的地方,想成为管理层人员。
2、感觉已经具备的网站开发安卓应用开发相关专业知识,代码量应该是上万行;最难的作业是自己开发一款社交软件的 测试版,有很多功能。
我觉得我java、c#这两门主要的语言学得不深,自主学习的能力较弱
3、我想考研;因为我喜欢思考,在一个问题上想的会比较多,更适合研究和有新的创造:我大三的规划是,因为保研的几率很小,所以对我而言学分绩点都不重要了,我把重心放在专业课学习和复习考研上,并把大部分时间放在数学上;我做的准备仅仅是把大二的兼职丢下了,找了考研数学要用的资料,并且正在自学app开发测试。
三、
1、如何提高软件工程师的核心竞争力?核心竞争力是什么?(第三章软件工程师的成长,p60)
2、为什么要把项目放在TFS上?(这样会存在签入签出的问题)如何解决签入签出的问题?(第11章)
3、开发软件过程中是要把质量还是速度哪个放在第一位?(P235十一章)
4、如何保证软件测试结果是长期影响而不是短期刺激?(p256第十二章)
5、每日构建是什么?它有什么意义?(p235第十一章)
6、如何避免“不分主次,想解决所有依赖问题”这一思维误区?(p48第三章)
四、源程序版本管理软件
1、
SVN是Subversion的简称,是一个开放源代码的版本控制系统,采用了分支管理系统。
Microsoft TFS是一个高可扩展、高可用、高性能、面向互联网的分布式文件系统,主要针对海量的非结构化数据,它构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问。
Git是一个分布式的版本控制系统,最初由Linus Torvalds编写,用作Linux内核代码的管理。在推出后,Git在其他项目中也取得了很大的成功,尤其是在Ruby社区中。目前,包括Rubinius、Merb和Bitcoin在内的很多知名项目都是用了Git。Git同样可以被诸如Capistrano和Vlad the Deployer这样的部署工具所使用。
GitHub是一个代码托管平台和开发者社区,开发者可以在Github上创建自己的开源项目并与其他开发者协作编码。创业公司可以用它来托管软件项目,开源项目可以免费托管,私有项目需付费。
2、优缺点
SVN
缺点:
(1)、 服务器压力太大,数据库容量暴增。
(2)、 如果不能连接到服务器上,基本上不可以工作,看上面第二步,如果服务器不能连接上,就不能提交,还原,对比等等。
(3)、不适合开源开发(开发人数非常非常多,但是Google app engine就是用svn的)。但是一般集中式管理的有非常明确的权限管理机制(例如分支访问限制),可以实现分层管理,从而很好的解决开发人数众多的问题。
优点:
(1)、 管理方便,逻辑明确,符合一般人思维习惯。
(2)、 易于管理,集中式服务器更能保证安全性。
(3)、 代码一致性非常高。
(4)、 适合开发人数不多的项目开发。
(5)、大部分软件配置管理的大学教材都是使用svn和vss
Microsoft TFS
优点:(1)、它采用了HA架构和平滑扩容,保证了整个文件系统的可用性和扩展性。同时扁平化的数据组织结构,可将文件名映射到文件的物理地址,简化了文件的访问流程,一定程度上为TF提供了良好的读写性能。
(2)、任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用,集成了项目管理、版本控制、BUG 跟踪,能有效实现 SCRUM,能与 VS 无缝接合
缺点:搭建、维护tfs比较复杂,硬件要求也比较高。
GitHub:
优点:GitHub是一个非常万能的工具。对于任何大小的项目,他都是理想的工具;他也是伟大的web工作流工具。首先,他可以作为一个版本控制系统和协作工具,用它来发布工作。
利用GitHub,你可以将项目存档,与其他人分享交流,并让其他开发者帮助你一起完成这个项目。优点在于 ,他支持多人共同完成一个项目,因此你们可以在同一页面对话交流。
创建自己的项目,并备份,代码不需要保存在本地或者服务器,GitHub做得非常理想。
学习Git也有很多好处。他被视为一个预先维护过程,你可以按自己的需要恢复、提交出现问题,或者您需要 恢复任何形式的代码,可以避免很多麻烦。Git最好的特性之一是能够跟踪错误,这让使用Github变得更加简 单。Bugs可以公开,你可以通过Github评论,提交错误。在GitHub页面,你可以直接开始,而不需要设置主机或者DNS。
缺点:如果,你是Github使用新手,首先的挑战就是摆正心态——需要不断实践和时间。他可能不是捕捉创意过程和记录创意点子的最佳工具。对于这种特殊功能模拟可以选择LayerVault 或其他相 似工具。
之前,我们已经强调过Github非常适用代码跟踪,但是却不是最好的设计跟踪工具。将图片内容转 化为代码,或者将设计用于产品设置,看起来依旧不是那样顺利。这是由设计者决定的,然而,一些人发现 GUI 有点混乱,选择CLI代替。一些开发人员学习主要使用Git命令 ,这样可以解释为什么他们不太喜欢GUI的原因了。
稍加练习,命令的学习是不太困难的。然而,你喜欢天天 写命令吗?特别是跟踪项目历史或解决冲突的时候。所以就有了另外一群喜欢GUI的人们。将提交、修改、移 动文件等操作可视化,会有一个更好的体验。而这些,就如之前提到的,需要时间来适应。
如果,你专门在GIthub上工作,版本控制存储库就值得你拥有,也需要你长期付出。