第一次阅读和准备作业

 

 

 

这个作业属于哪个课程

https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2713

这个作业要求在哪里

https://edu.cnblogs.com/campus/xnsy/SoftwareEngineeringClass1/homework/2713

我在这个课程的目标是

<学习软件中的各个部分对软件的影响和作用>

这个作业在哪个具体方面帮助我实现目标 

<一些具体的学习方法>

一.博客地址以及个人简介

  1. 博客地址:https://www.cnblogs.com/TANGYILI/
  2. 17级软件工程唐弋力
  3. 喜欢看电影 听歌 看NBA球赛

 

二.阅读与思考

(1)我初入大学时对软件工程专业的畅想

  • 我是如何做出选择软件工程专业的决定的?
  • 当时不知道自己喜欢什么  就选择了几个专业  然后被录取到软件工程了
  • 过去两年中接触到的课程是否符合我对软件工程专业的期待以及原因
  • 大部分符合,因为就像之前了解的一样,是与代码打交道的专业
  • 软件工程是喜欢的领域吗,它是擅长的领域吗?

  没有喜欢也没有不喜欢  感觉实际操作时间还是太少了 不够熟练 所以也不是擅长

  • 将来会选择从事软件开发相关的工作吗?想去的城市、公司和岗位

  还不确定 但大概率是这一专业的工作 如果选择了这一专业方面 会想去上海 杭州 公司没有想过  岗位 架构师之类的吧

(2)即将大三的我,对照前人们走过的路和描述未来发展,现在的我

  • 自我感觉已经具备的专业知识、技能、能力有哪些?已经写过的代码量是多少?

      自我感觉掌握的并不多,很多学了久了不用就忘掉了 数据库 数据结构方面的知识也只是大概了解  并不能熟练地使用 已经写过的代码量三四千还是有吧 主要还是平常的作业 实验报告 和自己有时的练习

  • 离成为一个合格的软件工程专业本科毕业生,在专业知识、技能、能力上还差距哪些?

  缺乏熟练度 对技能的 认知 掌握,操作的时间不够 能力较弱

 

(3)大三是一个人生选择的十字路口,考研、工作、考公、出国,不同的选择在大三就有不同的努力方向。而无论考研还是工作的每条路径,也有许多不同的分支。

  • 对照阅读的前人们的经历,的选择是什么?
  • 目前我会选择考研
  • 在这种选择下,认为相比其他同学来说有何优势,有何劣势?
  • 优势是能获得一个更高的平台,劣势是会缺乏实际的工作经验
  • 针对的选择,给自己的大三设定的规划安排是什么?
  • 学习的课程不落下,并开始复习准备考研   考试过CET6
  • 博客D[1]的作者提到“加强实践与执行力。不要欠生活,不要欠工作。出来混,总是要还的,你不会的知识,你懒于想通的东西,总是会在一个必要的时候提醒你、惩罚你。将没有搞懂的、希望做到的东西,写在纸上、贴在面前,认真实践,当你做到的越来越多的时候,你就会越来越自信,你的层次会提高的。相信我,人与人之间的差距很大,原因在于自我控制力有差距。”
  • 我很认同这些话 欠下的东西总是要还的 所以一定要把每件事做好  尽量去做好 大一大二就要把基础打好 为考研做好准备
  • 博客L[2]的作者认为“兴趣和热情只能让你很执着,但并不一定能让你走好这条路,只有你的能力和你的强项才能让你走好这条路”是的 没人能随时保持兴趣和热情,所以最重要的是提高自己的能力 这样才能立足
  • 博客A[3]的作者写到“谈我面临的问题。他很干脆地给了一个建议:做好短期时间规划。具体而言,要把每天把要做的事情分成A、B、C、D四类:
    A——紧迫且重要;B——重要不紧迫;C——紧迫不重要;D——不重要不紧迫。
    然后按顺序为每件事情安排一段专属的处理时间。关键的是,一定要在专属时间内专心致志地做好当前的事情,不受其他任务的干扰,这样才能提高效率。
  • 的确是这样 做事就应该有条理的做 才能提高效率
  • [1] https://book.douban.com/subject/4006425/discussion/22803961/
  • [2] https://coolshell.cn/articles/4561.html
  • [3] https://book.douban.com/subject/4006425/discussion/22803733/

三. 提出的问题

问题一、

①问题一的来源:《构建之法》1.2.4软件工程的目标章节提到”It's not a bug,it's a feature(这不是缺陷,这是一个功能)”

②问题一的具体阐述:很多人认为有BUG就是质量不合格,没有BUG就是质量完美,其实这也未必.

③对于问题一的个人思考:我认为之所以不能消除所有的BUG 是因为软件工程的重要任务,实在是时间,成本等多种约束条件下决定一个软件在什么时候能“足够好”,可以发布,更多的是在各种要求内做出符合用户需求的软件,且是可以维护和继续发展的,在客户有限时间内,只能尽量的消除BUG,满足使用要求,这才是最重要的。

问题二、

①问题二的来源:书中3.1写到“软件开发流程不光指团队的流程,还包括个人开发流程,因为软件团队是由个人组成的“

对于问题二的个人思考:软件团队就如同足球队一样,拥有个人流程,对于一些特定的角色,还有独特的技术要求,教练和球员之间,球员和球员之间都有很频繁的交流,有战前的计划和训练,有时候的总结和分析,当然还有争论,软件团队和团队中的工程师也是这样,软件系统的绝大部分模块都是由个人开发或维护的,因此同样需要和团队中的其他角色合作,通过交流,提出多种解决办法来实行。

问题三、

①问题的来源:《构建之法》3.2软件工程师的误区中提到的“过早扩大化”

②问题的具体阐述:在写一个程序的时候,让一个函数处理所有可能的类型

③对于问题的个人思考:想法固然是很美好的,但身为程序员,一定要了解必要性,难度和时机,因为软件工程的重要任务,是满足用户的需求,追求完美可以,但一定要考虑实际

问题四、

①问题的来源:《构建之法》8.5中提到的功能的定位和优先级问题

对于问题的个人思考:一个团队的资源是有限的,因此可以进行划分,在功能上分为杀手功能和外围功能,杀手功能可以在竞争中取得优势,另外,需求分为必要需求和辅助需求,这样进行分析,有了这些分析,就可以决定怎么处理不同类型的功能,怎样分配资源,这样的产品可以脱颖而出,获得用户的亲睐

问题五、

①问题的来源:书中9.4中提到的高效的团队讨论

②问题的具体阐述:要带着感情去讨论问题吗?在分析问题的时候要提不同意见吗?直觉和详细分析的矛盾?

③对于问题的个人思考:会议的组织者应该其最大作用,组织者应该明确会议目的,推动会议进程,促使与会者在每一个阶段做合适的事情,并让会议的参加者通过一系列有序的思维活动来分析问题,包括理清事实,表达直觉和感情,从乐观的角度分析问题,从悲观的角度分析问题,从创意角度分析问题,这样会议就变成了有序的会议,就可以避免抱怨,争吵,伤感情的现象出现。

四.了解和调查源程序版本管理工具

①GitHub

优点:

1、GitHub是一个非常万能的工具。对于任何大小的项目,他都是理想的工具;他也是伟大的web工作流工具。首先,他可以作为一个版本控制系统和协作工具,用它来发布工作

2、利用GitHub,你可以将项目存档,与其他人分享交流,并让其他开发者帮助你一起完成这个项目。优点在于,他支持多人共同完成一个项目,因此你们可以在同一页面对话交流。

3、学习Git也有很多好处。他被视为一个预先维护过程,你可以按自己的需要恢复、提交出现问题,或者您需要恢复任何形式的代码,可以避免很多麻烦。Git最好的特性之一是能够跟踪错误,这让使用Github变得更加简单。Bugs可以公开,你可以通过Github评论,提交错误。

4、在GitHub页面,你可以直接开始,而不需要设置主机或者DNS。

缺点:

1、如果,你是Github使用新手,首先的挑战就是摆正心态——需要不断实践和时间。

2、他可能不是捕捉创意过程和记录创意点子的最佳工具。对于这种特殊功能模拟可以选择LayerVault 或其他相似工具。之前,我们已经强调过Github非常适用代码跟踪,但是却不是最好的设计跟踪工具。将图片内容转化为代码,或者将设计用于产品设置,看起来依旧不是那样顺利。

②Apple XCode

优点:

1、为iOS和Mac开发而设计

2、代码自动补全 

3、便捷的代码管理器,自动生成类关系图、函数方法列表等

4、界面设计器

缺点:

1、为iOS和Mac开发而设计,局限性

2、有些在WINDOWS上使用会简单得多

③Microsoft TFS

优点:

1、在用户习惯上,TFS秉承了微软所有产品的特新,开发人员非常容易上手。软件使用过程中,用户会发现与日常导入操作系统、开发工具(VS),Office软件等有很多共同的体验。

2、TFS高度集成主流的开发工具和常见的办公工具。

   例如Visual Studio, Eclipse, XCode, ItelliJ,

      例如Excel, 浏览器,Project

      同时,TFS提供方便的API(.NET API, Java API, Rest API)集成,可以与企业现有的系统实现数据共享

3、可以通过TFS的源代码,查询到代码变更的依据(需求、任务、Bug等)

      反过来,可以通过项目管理的数据(需求、任务、Bug等),查询到相应代码的变动。例如,你可以查询到修复Bug所修改的代码行数。

4、你可以不需要任何开发工具,在浏览器上就可以完成代码的修改功能。

缺点:

1、搭建、维护tfs比较复杂,硬件要求也比较高。

posted @ 2019-03-19 12:13  t1L  阅读(225)  评论(2编辑  收藏  举报