作业正文
一、建立博客并介绍自己
我的名字叫刘冬,目前就读于西南石油大学软件工程专业,对了,我大三了。
这是我的博客主页:https://www.cnblogs.com/liudong123/ 欢迎大家来检查作业。
本人目前主攻Java,希望找到志同道合的朋友一起研究,生活中我是一个比较爱和朋友玩闹的人。
我平时放松多选着打打篮球或者打游戏,当然我还会很多其它的运动比如:游泳、乒乓球、足球等等,
期待有机会和你一起哦。对了我最近在学自由泳,有没有会的或者想一起学的,欢迎来找我哦。
二、阅读与思考
1.
回想一下你初入大学时对你所在专业的畅想,当初你是如何做出选择你所在专业的决定的?
答:我当初就觉得人类不可能脱离计算机,选它错不了。同时个人对计算机也不讨厌,当然说喜欢吧也算不上。
你认为过去一(两)年中接触到的课程是否符合你对你自己所在专业的期待,为什么?
答: 基本符合,就是没想到计算机是这么大一个知识海洋,学到今天,顶多算个入门选手,计算机理论真的要认真研究才行。没想到自己学了几年连个像样的软件都写不出,这是我填选这个专业所没想到的。
你觉得你所在的专业是你喜欢的领域吗,它是你擅长的领域吗?
答:不算喜欢,也不讨厌。毕竟这是一项劳动,谁喜欢劳动呢?头它不冷吗?
将来你会选择从事和你专业相关的工作吗?是的话给出你想去的城市、公司和岗位,否的话给出原因
答:从目前来看是打算从事软件行业的,我想去BAT,位置不重要。因为它们是站在风口的大肥猪。我也想去吃坨肉,是吧。
2.
对照前人们走过的路和描述未来发展,现在的你,自我感觉你已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?描述你做的最复杂的项目/作业。离成为一个合格的本科毕业生,在专业知识、技能、能力上还差距哪些?
答:目前做过最复杂的项目是暑假项目,网上学生信息管理系统,类似于极简版教务系统。感觉自己做的东西远远不够,虽然目前接触的知识还算多,能用的有:c、c#、Java、数据库、Javaweb相关知 识、数据结构,但是没有一样能算得上很熟练的技能。目前写程序依赖编译器,依赖网上资料。代码量说不来,硬要说就一8千行吧。感觉距离合格毕业生还有很长的路要走,至少熟练掌握一门语言。
3.
目前是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。对照以上你阅读的前人们的经历,你的选择是什么?
答:工作
在这种选择下,你认为你相比其他同学来说有何优势,有何劣势?
答:优势是提前进入社会,经历社会的历练。更早获得工作经验,给未来的时间也相对充足。劣势:专业技能可能吃不透,难以进入更高的平台,后劲相对不足。
针对你的选择,你给自己的大三设定的规划安排是什么?
答:上课认真听课外,努力学习Java技术体系,争取找到有关大公司的工作
你对于实现自己的梦想已经做了或者计划做什么样的准备?
答:准备就是,心里准备,不管未来如何,至少不放弃现在。这个计划也算我的准备吧。
三、提有质量的问题
在略读构建之法后我有以下几点思考:
问题一:
第一章概论中我对:软件=程序+软件工程的说法不是很理解。这样写是不是就是程序和软件工程是分开的意思呢?意思说软件工程不包括程序是吗?
个人观点:我认为这里的软件工程是一种狭义的说法,将程序本身认为是工程的原料,而不是要达成的目标。意思是:软件是将原料通过工程后的产物;这相当于从来源定义软件。还有一种说法是:软件等于程序加文档,这应当是从组成来定义软件的。
问题二:
在第四章两人合作结对编程中,两个人共同完成一个任务,如何确保两人的工作量?如果有人偷懒岂不是很难发现?
个人观点:这应该是这个模式最大的缺点,合作必然造成极大的耦合,责任难分。在允许的条件下可以加入第三方监督者,这样既可以发挥结对编程的优势又可以避免其带来的负面影响。
问题三:
第十三章中讲了很多种软件测试方法,但是我怎么知道要用哪种合适呢?
个人观点:既然没有明确提出测试程度分类,是否可以认为这是个极大依赖经验的地方呢。
问题四:
第五章团队和流程中,5.3.5老板驱动流程中作者归纳该方法的原因为如下四点:1.订单靠老板个人关系 2 .大型企业,往往软件功能由行政部体系决定 3.老板更懂市场和竞争 4.团队未成熟
个人观点:我认为还可能老板本身就是技术大牛,团队也很成熟,所以老板可以把方案说得很仔细,也是一种因素吧。
问题五:
第十一章软件设计与实现的11.5.3构建大师一节中,将构建的任务交给每次导致构建失败的人,会不会容易导致项目构建出现不稳定,或者增加隐藏bug呢?
个人观点 :将构建的任务交给每次导致构建失败的人,因此这个人大概是轮换的,不是专业的,容易出现问题,还可能发生责任不明确的问题。
四、了解和调查源程序版本管理工具
重点说一下最近流行的GitHub
1.Team Foundation Server
概述
Team Foundation Server 是一种为 Microsoft 产品提供 源代码管理、 数据收集、 报告和项目跟踪,而为协作 软件开发 的项目。 可作为独立的软件,或 Visual Studio Team System (VSTS) 在服务器端后端平台。
2.GitHub
概述
GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。
GitHub的优缺点:
优点:这里有很多开源项目供你参考学习,资源非常丰富,代码管理该有的功能这儿都有。GitHub提供Git存储库服务,基于web,允许你使用Git的源代码管理功能,或者其特性。GitHub提供Git存储库服务,基于web,允许你使用Git的源代码管理功能,或者其特性。
缺点:可能不是捕捉创意过程和记录创意点子的最佳工具。对于这种特殊功能模拟可以选择LayerVault 或其他相似工具。之前,我们已经强调过Github非常适用代码跟踪,但是却不是最好的设计跟踪工具。将图片内容转化为代码,或者将设计用于产品设置,看起来依旧不是那样顺利。
3.svn
概述
SVN是subversion的缩写,是一个开放源代码的版本控制系统,通过采用分支管理系统的高效管理,简而言之就是用于多个人共同开发同一个项目,实现共享资源,实现最终集中式的管理。
subversion的优缺点:
优点:支持文件重命名提交系统会提示删除旧文件,创建新文件,删除本地文件提交库中文件也被删除
缺点:要将权限控制文件保存为svn支持的UTF-8格式,一个库可以有多个工作目录但一个工作目录只能对应一个库虽然可以更改库位置但是要求很严格,库中文件存放方式,看不到文件真正的内容。
4.Coding
概述
Coding 是一个面向开发者的云端开发平台 [1] ,目前提供代码托管,运行空间,质量控制,项目管理等功能。此外,还提供社会化协作功能,包含了社交元素,方便开发者进行技术讨论和协作。