读《构建之法》

《系统分析与设计》第一次作业:

这个作业属于哪个课程

<课程的链接>

这个作业要求在哪里

<作业要求的链接>

我在这个课程的目标是

通过这门课程更好的认识什么是软件工程,学习什么是系统的分析与设计。

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

项目管理工具的使用,以及将来的就业方向。

个人博客主页

https://www.cnblogs.com/pastrain/

 

关于我:

西南石油大学一名普通到不能再普通的软件工程专业的2017级的学生。喜欢打网游,所以对游戏开发方面的东西比较感兴趣。还有喜欢玩玩吉他,自娱自乐。另外觉得自己比较乐观,面对大多事都能保持良好的心态。

 

阅读与思考:

 

(1)我为什么会选择软件工程呢?

  早在初中的时候,就喜欢打游戏,差点成为“网瘾少年”。后来到了高中时,没有时间玩很多的游戏了,就想以后要做这方面有关的事情,好让自己有理由继续打游戏。然后了解到了编程和游戏制作与开发,便决定往这方面去靠近,最后决定选择软件工程实现自己的想法。

  现在到了大三,回想自己前两年的大学生活,我觉得跟我的期望还算符合。因为课程都挺基础,并且时间上不算特别紧,给我的自由时间很多,好让我去学习我喜欢的技术。不过可惜的是软件工程这个专业没有以C++为基础语言的课程,也没有C++的教学课程。

  自己选的专业,自然是很喜欢的。至于擅长与否的问题,我觉得熟能生巧。

  将来自然会选择本专业的工作,是本事,更是梦想。希望是成都、杭州或者上海吧,岗位就是游戏开发或者是普通后台开发类吧。

 

(2)我拥有的专业技能?

  现在的我,自学过C++及STL,MFC,Windows编程,以及对两大游戏引擎也有一定的接触。还跟着学校的课程学习了C#和桌面程序的开发,JavaWeb开发。代码量不清楚,一万?感觉没写多少hhhh。做过的最复杂的项目应该是跟研究生学长合作的一个MFC项目。我当时负责项目里面界面的主要开发和他们专业的图像处理的代码跟界面的整合交互。其实也没有多复杂hh,就是OpenCV代码的处理与环境的配置当时有点烧脑。

  一个合格的本科毕业生?我觉得还差很多。我现在的专业知识感觉都很“浅”,很少有深入的去分析底层的代码,还有很多的接口只是看过,没有具体去用过。再就是没有很多的项目开发经验。与其他人合作开发的经历太少,没有积累自己的经验和教训。

 

(3)我将来的方向选择?

  我的意向是去考研。因为游戏开发要学的东西我感觉有很多,至少我觉得没法通过大学这四年的学习就找到称心如意的工作岗位。所以想去读研,深入学习一下。跟其他同学相比,我会有更多的学习时间,更晚一点进入社会。劣势就是要顶住压力复习考研,万一没考上...到时候再去找工作更是难上加难。

  规划安排:排我想在大三的上学期对学过的这些专业知识进行一个整合,练习做几个项目。然后下学期开始准备复习考研。

  为了实现我的梦想?已经做了:上大学。计划准备:读研。

 

 

我的问题:

  1.  我看到4.2的代码风格规范里面,说缩进“是用Tab键好,还是2、4、8个空格?”后面的结论是“4个空格”更好。而我本人的缩进习惯却就是Tab,而且用了很久了。难道说缩进的方式不应该是按照每个人的不同习惯来的吗?再者说,4个空格相对1个Tab键来说要浪费更多的时间,没必要一定要用4个空格来缩进吧?
  2. 在7.2.6“保持敏捷,预期和适应变化”中,说“干脆别幻想客户的需求会在第一时刻很明确,然后保持不会变。”那么就是说,在客户的需求并不是很明确的时候,就将项目接下来么?这样会不会不太谨慎?不应该确定好了客户的需求之后再开始开发的工作吗?
  3. 在9.4“领导力——高效的团队讨论”这一篇中,“目的”这里,“目的并不明确”,“每周一次,每天一次”,“对细节的争执”,这些问题我都不是很理解。开会的目的是为了解决问题,那么开会的频率应该是确定的吗?而且开会的内容是应该由leader来确定还是由开发的程序员来提出?至于细节方面,难道是应该粗略说明,然后再下去解决吗,如果沟通出现问题怎么办?
  4. 我看到在11.6中有这么一个问题:“你的团队的源代码控制用的是什么系统?”怎样根据自己的团队的情况来确定源代码管理工具?参考的点有哪几个?
  5. 第15章的15.1.8“招数:逐步冻结”,说“要让程序的各个方面有次序地‘冻结’,这样才能把稳定的软件交付给用户”。那么万一冻结了一部分程序后,后面的小部分在调试的时候发现出现问题,要对前面的冻结程序进行修改时该怎么办?冻结真的是有必要的吗?

 

 

源程序版本管理工具:

  我了解的软件有Git、GitHub、Bitbucket。

  首先是Git。Git的优点有,首先适合分布式开发,每个人的电脑上都会有一个完整的版本库,也就是说,在工作的时候,其实是并不需要联网的。而且Git的速度很快,足够灵活。缺点的话,就是不太符合我们的常规思维,学习起来需要很长的时间,而且代码的保密性较差,因为如若开发者把整个库克隆下来就可以完全公开所有的代码和版本信息。

  其次是GitHub。GitHub虽然在名字上跟Git很像,但其实是完全不同的另一个管理工具。GitHub的优点是,首先它支持直接复制图片上传,这一点其实非常好,因为好多地方需要直接来一张图来补充内容。GitHub还是一个网络平台,把代码上传到这上面后,可以通过手机端查看。还支持标签功能。缺点嘛,其实我的使用感受不错的,非要说,那大概就是它在国内使用,不挂VPN的话,访问速度真的慢。

  最后是Bitbucket。其实这个工具我并不太了解,所以它的相关内容我大部分是在网上看的,没有实际用过。优点是,首先它对于小团队来说是免费的,并且它可以通过社交媒体和GitHub认证。还可以直接导入现有的Git项目。缺点就是,不是开源的,并且系统现在还不够稳定。

 

posted @ 2019-09-11 14:15  pastrain  阅读(148)  评论(2编辑  收藏  举报