天天看点

个人博客作业Week1

一.遇到的问题

1.一个软件开发团队里编程能力参差不齐如何合理地给他们分配角色和任务?

2.作为一个合格的PM所需的几种能力,根据重要程度的排名是什么?

3.敏捷开发当然可以做到使产品快速上线,但是这样idea也被他人所了解,此时团队的实力可能还不强,如何防止他人抄袭?

4.如何通过测试样例来证明自己程序的正确性,是通过穷举?

5.怎样形成适合自己团队的代码风格

二.软件和软件工程的提出

  软件:最早的软件概念由Richard R. Carhart在1953年8月提出,使用于工程背景。真正电子上的软件由John Tukey于1958年提出于"The Teaching of Concrete Mathematics",并发表在JSTOR。

  软件工程:由Margaret Hamilton于开发阿波罗11号软件系统期间发明。当时的软件开发处于起步阶段,没有工程化的方法,在开发大型程序时阻力很大。Hamilton为了让软件获得拥有的尊重,开创了软件的科学——软件工程。

三.项目管理软件:

  Git是一个开源的分布式版本控制系统,用以有效、高速的处理从很小到非常大的项目版本管理,帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件.优点:适合分布式开发,强调个体;速度快,灵活;离线工作。

  TFS(Taobao FileSystem)是一个高可扩展、高可用、高性能、面向互联网服务的分布式文件系统,主要针对海量的非结构化数据,它构筑在普通的Linux机器集群上,可为外部提供高可靠和高并发的存储访问。

      SVN是Subversion的简称,是一个开放源代码的版本控制系统,它采用了分支管理系统,它的设计目标就是取代CVS。

三.源程序版本管理软件

GitHub可以托管各种git库,并提供一个web界面,但与其它像sourceforge或google code 这样的服务不同,GitHub的独特卖点在于从另外一个项目进行分支的简易性。为一个项目贡献代码非常简单:首先点击项目站点的“fork”的按钮,然后将代码检出并将修改加入到刚才分出的代码库中,最后通过内建的“pull request”机制向项目负责人申请代码合并。已经有人将GitHub称为代码玩家的MySpace。