第一次个人作业

阅读与准备作业

这个作业属于哪个课程课程链接
这个作业要求在哪儿 作业要求
我在这个课程的目标是 1.件工程的相关基础知识,并且熟练掌握相关的实用工具,比如Markdown等
2.最后有能力去编写自己的小程序或者项目(远大目标,不一定实现😅)
3.能够自己独立地高效地写出所需代码
4可以熟练写博客并且学会寻找学习资源,在论坛中学习大佬优点
这个作业在哪个具体方面帮我实现目标 1.熟练掌握markdown的编辑和初次使用
2.还有对课程的简单认识
3.对教材的解读
4.对博客的初步使用和学习
作业正文 https://i.cnblogs.com/EditPosts.aspx?opt=1
参考文献 1.GitHub相关
2.管理软件
3.TFS
4.Mercurial

一.建立博客并介绍自己

  • 我的博客地址:我的博客
  • 自我介绍:我叫张伟,一个普通的石油大学大三准考研生。身高不高,体重偏重😝,五官端正,身体健康。正在努力积极地准备考研院校资料中,有许多的困惑和烦恼。喜欢打篮球,热爱生活,喜欢听慢旋律的和有味道的歌,是一个好久不写文艺的肥宅青年,对代码的兴趣不是很高,希望这门课可以给我带来一些改变吧,加油中😃!

二.阅读与思考

回想一下你初入大学时对你所在专业的畅想

  • 这个专业很有可能需要很多地理知识,完全不擅长自己是理科生,怎么选了个文科专业😳?
  • 这个专业好像是导航啊,以后是要去高德地图嘛emmmm…
  • 好想转专业
  • 还有必然是调剂过来的啊😑
  • 将来有可能从事吧,先考研再说
  • 专业前景还是不错,不过感觉自己没有学到什么,很担忧啊😟

对照前人们走过的路和描述未来发展,现在的你

  • 自己的专业知识可能就是Arcgis?画图这么一项技能吧,可能会用水准测量仪也算么。代码量除了上课写作业写过的几百行就没了,课后自学几乎没有。
  • 最复杂的估计就是上学期C#的建立一个和数据联系的系统吧,很小很小的一个东西,不过自己还是不能独立做出来

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

  • 考研啊,已经决定了,就要好好走下去
  • 优势可能就是记忆背诵比较好?考研政治占据先机?劣势就多了,英语没过六级,雅思托福没有,数学大一大二混子一个,基础一般,专业课显然不如985本校生啊
  • 大三先好好地学好本专业知识,然后才是英语和数学的基础复习,活动就少参加,少玩一点,水滴石穿,金石为开这两种精神要坚持啊
  • 准备还比较少,网上读了一些经验帖,问过老师,身边同学,还有家长有一些交流。还很少,没有自己的完整计划来的,so long the way!

三.问题

Q1.大学生都是眼高手低么?【3.4技能的反面】

这里是引用:(p58)志向远大,上了一些课程。就很想解决高层次的问题…这些知道高层次理论的人士在实践上怎么样呢?

A1:
1.现在社会的普遍风气是追逐立竿见影并且有很大的实际效果可以马上展现出来的,不过我们大学生往往因为实际生活和学习中存在的知识层面的不完全和知识量的偏少,会造成“理想”和“实际”之间的不符合,所以我们中的相当一大部分人都是“眼高手低”。
2.不过我们中的很大一部分却还是踏踏实实的,相当勤恳地对待我们的“理想”和“现实”之间的“矛盾”,在积累自身的同时会做一些小的尝试,没有囫囵吞枣的想法,没那么“痴人”,所以我觉得只要我们自己肯花时间并且对一个东西表现出自己的兴趣,那么会相当不错的

Q2.为什么要结对进行和代码复审?【4.4两人合作,代码复审】

这里是引用:(p73)目的在于:…

A2:
1.我觉得双人进行对于班级来说容易造成我们的抄袭现象和弱势一方的技能得不到提升,以至于形成的代码快或者是最终的结果是一个人的单方面结果,在我们行进之前,进行实力相当的匹配,不过大家都是小白,进度会很慢,这是一个痛点吧。
2.代码复审有利于较小的程序的或者在一个模块里面的逻辑、算法、语法及时的检查纠正还有对于优化提出目标或者及时进行局部的优化,会大大减少后期的时间并且加快进度

Q3.老板带领驱动团队真的好么?【5.3开发流程】

这里是引用:(p103)单的获得不是主要靠技术实力…

A3:
1.有些项目因为存在市场竞争的原因,更多的是因为是国企或者这是政府单位,招投标是由行政领导来决定的,在两方领导的交涉过程中,会带来许多的非软件工程方面的其他要求和因素,导致整个的进程缓慢和中间可能的进度条断裂
2.由于行政领导的可能的因为一些政治因素而导致要求不断更改,使得工作量会很大,带来一些不必要的人力资源的浪费

Q4.什么是敏捷思想和敏捷宣言带来的好处【6.5敏捷的问答】

这里是引用:(p119)敏捷是一股思潮…

A4:
敏捷有他自己的适用范围,写一个微博网站对比于用计划驱动和形式化的开发方法来说,敏捷确实更加好用,但是产品的可靠性不是很高,经常性地容易出错。敏捷思想带来的是一种解决问题的不同的解决方法和途径,在某些方面确实能够起到很大的作用,这也激发了我们的自己的思考和追求提升的想法。敏捷宣言是敏捷的开始,就像是每一个历史事件的发生最后总结出来的开头的总领性的东西,有提纲挈领的东西。

Q5.思维导图带给我们的用处和劣处【11.2图形建模和分析方法】

这里是引用:(p225)人们经常用图形帮助他们了解概念…

A5:
1.在解决一些大型的项目的分析的时候,我们往往不想看那些赘述和冗长的描述,导致我们前期花费的时间和资源很多,这个时候我们用一些思维导图来做一些引领性的东西会起到事半功倍的效果,大大地缩短我们的时间
2.就我自己而言,有些时候的导图具有一定的难度,无法完全地解读出其中的含义,就有可能使得结果达不到我们想要的结果

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

GitHub

在这里插入图片描述

  • GitHub是一个面向开源及私有软件项目的托管平台,因为只支持git 作为唯一的版本库格式进行托管,故名GitHub。

优势

  • 完整的支持Markdown语言,而且支持Emoji表情
  • 支持直接复制图片到页面,会自动上传图片(非常好的功能,知乎也支持)
  • 支持@用户功能
  • 使用github原生的功能,就可以进行类似评论的功能
  • 功能设计简洁实用上手很快,可用性好,已有很多相当质量的各类项目和优秀开发者在上面

劣势

  • GitHub 使用 git 分布式版本控制系统,而 git 最初是 Linus Torvalds 为帮助Linux开发而创造的,它针对的是 Linux 平台,git 和 Windows 从来不是最好的朋友,因为它一点也不像 Windows。GitHub 发布了GitHub for Windows,为 Windows 平台开发者提供了一个易于使用的 Git 图形客户端。
  • 国内访问速度太慢,经常出现connect time-out
  • 基于git,学习曲线陡峭,企业大规模用git根本不现实。尤其国内大家都刚学会svn
  • 免费套餐不支持私有项目,无非解决企业内部的需求,github:fi价格过高(最便宜要$5,000/年)

Trac

在这里插入图片描述
-Trac是一个为软件开发项目需要而集成了Wiki和问题跟踪管理系统的应用平台,是一个开源软件应用。Trac以简单的方式建立了一个软件项目管理的Web应用,以帮助开发人员更好地写出高质量的软件;Trac应用力求不影响现有团队的开发过程。

优势

  • Trac做一个SCM配置管理平台,意味着它有良好的扩充性
  • Trac的权限体系是比较完备的设计
  • 非常灵活,可以随心所欲的定制,可以和TortoiseSVN集成。

劣势

  • 不支持多项目,
  • 需求和缺陷没有分离
  • 用 wiki 来替代 Word 等工具编写文档对于产品策划来说门槛太高了
  • 中文化不完整,美术人员接触起来困难重重
  • 不显示中文名,本地化做得很差
  • 核心功能很少,不安装插件基本上没法用。

Microsoft TFS

在这里插入图片描述

  • Team Foundation Server(TFS)是一种为 Microsoft 产品提供 源代码管理、数据收集、报告和项目跟踪,而为协作软件开发的项目。可作为独立的软件,或 Visual Studio Team System (VSTS) 在服务器端后端平台。它是Microsoft应用程序生命周期管理(ALM)工具的核心协作平台,简单的说它是管理和开发软件项目的整个生命周期的平台工具。

优势

  • 是对敏捷,msf,cmmi等项目、过程管理、过程改善的支持
  • 任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用。
  • 自动化构建
  • 完善的权限管理
  • 支持分布式开发
  • 任务版上能将需求、项目进度一览无余,对于小团队而言,比甘特图更有用,集成了项目管理、版本控制、BUG 跟踪,能有效实现 SCRUM,能与 VS 无缝接合。

劣势

  • 能应用起来的团队、公司的数量极少,多数真正用起来,也就是源代码管理这部分,这也仅仅是占TFS极小部分功能。
  • 搭建、维护tfs比较复杂,硬件要求也比较高。

Mercurial

在这里插入图片描述

  • Mercurial 是一种轻量级分布式版本控制系统,采用 Python 语言实现,易于学习和使用,扩展性强。其是基于 GNU General Public License (GPL) 授权的开源项目。

优势

  • 更轻松的管理。传统的版本控制系统使用集中式的 repository,一些和 repository相关的管理就只能由管理员一个人进行。由于采用了分布式的模型,Mercurial 中就没有这样的困扰,每个用户管理自己的 repository,管理员只需协调同步这些repository。
  • 更健壮的系统。分布式系统比集中式的单服务器系统更健壮,单服务器系统一旦服务器出现问题整个系统就不能运行了,分布式系统通常不会因为一两个节点而受到影响。
  • 对网络的依赖性更低。由于同步可以放在任意时刻进行,Mercurial 甚至可以离线进行管理,只需在有网络连接时同步。

劣势

  • 常会遇到合并分支时出现文件冲突、推代码时出现多个相同的分支。
  • 创建分支时要在default分支上进行创建,这样保证所有的分支没有瓜葛;若在其他的分支上直接创建分支时,则把上一个分支的修改保留了下来,不容易进行拆分
posted @ 2019-09-11 17:14  地信张伟  阅读(193)  评论(4编辑  收藏  举报