在这个专业已经待了一年多了,也写了不少程序,虽然大都是老师布置的作业,但是每次遇到困难时,我总是一个人死磕。
从来没想过团队合作的事,有的时候看见别人在一起讨论问题,还感觉很不好意思。
但是,现在,我感觉自己错了,我们这个行业不同于别的行业,一个人哪怕再牛逼,也是没法独自撑起一片天的。
几乎可以说,比较伟大的发现,或者讲的再近点,比较好的项目背后通常都是有着一个比较牛逼的团队。
团队的作用不言而喻。
俗话说得好,三个臭皮匠赛过诸葛亮。一个人哪怕再厉害,但他的精力也是有限的,所以,团队的作用就自然而然的体现了出来。
那么,我们从最基本的二人合作开始谈谈,我们该怎么和周围的人进行沟通交流,怎么才能有效的合作。
作为一个程序员,大部分的时候,自己写的程序不单单是自己看,还得给别人看,那么,代码的规范就是一件很重要的事。
而代码规范又分为两个部分:
一是代码风格规范包括:1.缩进 2.行宽 3.括号 4.断行与空白的{}行 5.分行 6.命名 7.下划线 8.大小写 9.注释
二是代码设计规范包括:1.函数(一个函数只做一件事,并且要做好) 2.goto(函数最好有单一的出口) 3.错误处理(1.参数处理 2.断言) 4.处理C++中的类
没有人的代码能够做到十全十美,哪怕是大牛,也有犯错的时候,所以,对于我们来说代码复审同样是件重要的事情。
而自己给自己复审的效果不大,于是乎结对编程应运而生。
所谓的结对编程就是说,一个人编程,另一个人在旁边给他进行复审,结对进行编程。
所以可以看出,结对编程就是代码复审做到极致的表现。
于是乎,两个人之间的相互反馈就变得的尤为重要,而反馈分为三个层次:
一是行为与后果层;二是习惯和动机层;三是本质和固有属性层。
在与人进行沟通反馈的时候要能很好的运用,才能做到愉快的合作。
当一堆人的关系处理好之后,就得想想团队的软件开发模式了,它包括:
一、写了再改模式(顾名思义,所以不做介绍)
二、瀑布模型(软件行业早期的开发模式,存在很多弊端)
三、瀑布模型的各种变形(在瀑布模型的基础上演变而来)
四、统一流程
五、老板驱动的流程
六、渐进交付的流程,MVP,MBP
七、TSP的原则
而今,敏捷流程开始倡导。
敏捷的步骤:
一、找出完成产品需要做的事情
二、决定当前的冲刺需要解决的事情
三、冲刺
四、得到软件的一个增量版本,发布给用户。