《构建之法》——软工学习进度(3)

合作与审核

首先是代码的规范问题。关于这个代码规范,我并没有花很多时间去阅读,可能是自己的习惯,代码风格一向都是简约而规范。就比如在写一些if语句的嵌套时,很多人都习惯了不加括号,即使加括号可能是多此一举但我还是习惯加括号,不为别的,就为自己甚至别人看上去能更加清楚,这并不是画蛇添足,我觉得更像是画龙点睛。不过这一节对变量的命名我倒是深有感触,我们习惯了教科书上的一些命名,所以有时候看到问题不假思索的就为变量命了书上常出现的名字。但是当我们之后再去复核时,我们往往不懂这些变量在这个问题中的意义,很快就忘了我们为这个问题所设的变量的作用。这是很麻烦的一件事,本来就是我们自己敲的代码,自己思考着写出来的逻辑,过了一段时间看着代码却不记得了,如果当初对一些关键变量的命名可以直截了当的点明,我们很快就可以想到以前的思路了。

其次就是注释。我们敲代码的时候都没有写注释的习惯,起码我没有。这一问题值得我去反省,写注释花不了多少时间,但是我们在敲代码的时候这些时间却显得弥足珍贵,其实注释是在帮助我们理解代码行的作用,并不是在浪费时间,跟变量的命名所起的作用相似,都是起到帮助的作用。

代码的复审有“教育”和“传播知识”的作用。重要的是,不管多么厉害的开发者都会或多或少的犯一些错,有欠考虑的地方,如果有问题的代码已签入到产品代码中,再要把所有的问题找出来就更困难了。我们学习软件工程的都知道,越是项目后期发现的问题,修复的代价就越大。代码复审正是要在早期发现并修复这些问题。除了代码复审以外,还有编程结对,在结对编程模式下,一对程序员并肩、平等地、互补地进行开发工作。他们并排坐在一台电脑前,面对同一个显示器,使用同一个键盘,同一个鼠标一起工作。他们一起分析,一起设计,一起写测试用例,一起做单元测试,一起做集成测试等等,这些搭档关系就是结对编程,也就是合作关系。

合作关系有不同的阶段。1、萌芽阶段。两人刚刚认识,大家都有礼貌,一般交流不少,试图避免冲突和容易引起挑战的观点。2、磨合阶段。手足无措,显得很笨拙。3、规范阶段。一些成文或不成文的规则逐步建立起来了。4、创造阶段。5、解体阶段。散伙。那么,在两个人合作阶段,如何说服对方呢?首先双方要意识到,问题早点出现要比晚点出现要好很多,我们有机会早日解决问题。除了技术方面的考虑之外,一个成熟的工程师要琢磨对方的话语和观察对方的肢体语言,了解它们所表示的潜台词。试着从对方的角度看待问题。同时也要根据情况采取不同的方法影响别人。书上写了几种影响他人的方法:断言、桥梁、说服、吸引。

总结一下这章内容,主要讲了我们程序员该如何规范的敲代码,让我们自己甚至别人能更容易的理解,以及如何合作、如何影响他人去接受你的观点。看完这章,我明白了团队中还有更小的团队,两人为一组时,必不可少的就是观点的碰撞,这时候需要的就是观点的陈述了,这一章对合作方面讲述的很深刻,让我对团队流程有了一个更深入的了解。

时间: 2024-07-30 13:34:26

《构建之法》——软工学习进度(3)的相关文章

《构建之法》——软工学习进度(2)

如何衡量一个软件工程师 如何衡量一个软件工程师?这是<构建之法>第三章的核心问题.第一章讲述了团队的流程,第三章则是对第一章的具体描述,从笼统的团队具体到个人.软件开发流程不光指团队的流程,还包括了个人开发流程,因为软件团队是由个人组成的,简而言之,个人在团队中也有独立的流程.那么问题来了,如果我们去面试,该如何定义我们自身呢?又或者说,看到一个同行的软件工程师,该如何形容他的技术? 第三章通过对足球的比喻,向我们形象的阐述了这个问题的关键.足球中有传接.盘带.射门等具体技术,映射到软件工程上

《构建之法》——软工学习进度(5)

敏捷流程 1.定义: 敏捷流程是一系列价值观和方法论的集合.流行做法的价值在得到肯定的同时,我们也发现敏捷的做法更能带来价值. 2. 敏捷开发的原则: ①.尽早并持续地交付有价值的软件以满足顾客的需求. ②.敏捷流程欢迎需求的变化,并利用这种变化来提高用户的竞争优势. ③.经常发布可用的软件,发布间隔可用从几周到几个月,能短则短. ④.业务人员和开发人员在项目开发过程中应该每天共同工作. ⑤.以有进取心的人为项目核心,充分支持信任他们. ⑥.无论团队内外,面对面的交流始终是最有效的沟通方式. ⑦

《构建之法》——软工学习进度(7)

软件设计与实现 图形建模和分析方法:①表达实体和实体之间的关系: 思维导图:思维导图没有严格的语法定义,一般来说是从图形的正中开始写下一个概念,然后按照绘图者所关心的属性拓展.几乎每个人都能马上开始画图.思维导图形式灵活,适用于很多鼓励探索.发散思维的场合,但是它的图形元素缺乏严格的语法和语义. 实体关系图:着重于表现现实世界中的实体和它们之间的关系.在我们分析实体之间的关系时,这就是一个理解和抽象的过程.当我们要表示实体之间的静态关系时,ERD时一个合适的工具. UCD:用例图的元素简单,绘图

软工学习记1

这学期,我们分了方向,专业方向.也许向老师说的那样学习好的选了计科,我大概属于学习差的吧.高中的紧绷让我到了大学不知道该干嘛了,荒废了整个大一,到现在还不知道自己读了大学学会了干什么.现在我要追赶了,毕竟差的不是一点半点.分了方向,有了任务,也大概自导自己该干嘛了.开始感觉还是挺无从下手的,不过信心还是有的.也算亡羊补牢吧. 这俩星期自己抽空看了看这本构建之法.粗略明白了点要想开发一个堪称完美的软件是十分困难的.需要大量人力时间.软件等于程序加软件工程,软件开发的阶段不同,我们所需要的标准花费的

构建之法第八章学习心得

今天,我学习了构建之法第八章软件需求,人们为了解决现实社会和生活中的各种问题,要求助于软件.人们的需求五花八门,那么软件团队如何才能准确而全面地找到这些需求呢? 需求分析1.获取和引导需求 软件团队需要找到 软件的利益相关者,了解和挖掘他们对软件的需求,引导他们表达出对软件的需求. 不同的项目需要不同的手段,这一步骤也被叫做"需求捕捉",形容真正的需求稍纵即逝,需要靠火眼金睛和敏捷的身手来发现并抓住它们.另外,很多时候用户并不知道自己确切的需求,或者不愿意表达完整的需求,软件团队需要设

《构建之法》小组学习心得

baba爱你小组  组长:阮俊  组员:钱洪章.黄维.光萍.张启飞.王学飞 这周我们小组学习了<构建之法>第八章需求分析的内容. 人们为了解决现实社会和生活的各种问题,要求助于软件.人们的需求五花八门,那么软件团队如何才能准确而全面的找到这些需求呢?主要有这几个步骤: 1.获取和引导需求 软件团队需要找到软件的利益相关,了解和哇挖掘他们对软件的需求,引导他们表达出真实的需求.另外,很多时候用户并不知道自己确切的需求,或者不愿意表达完整的需求,软件团队需要设身处地,替用户着想,引导出需求. 2.

软工学习笔记——代码规范

上大学以来写了这几年的代码,却一直没怎么关注过代码规范相关的问题,直到软工课上讲了之后,才开始有所顾及.上课的时候回头看看自己写过的那些代码,真是丑死了,几个月前自己写的代码现在就已经读不懂了. 看了书上的相关章节,对于我来说,我觉得我的代码主要注意这几点: 1. 少写冗余代码,已经用不到的代码段就应该删去.(我今天刚刚发现我的昆特牌Online项目中竟然还存在有两个没用的类) 2. 多利用空行来将代码小规模地分段. 3. 大段的无用代码不要一直注释着,该删就删.(我的项目里经常会有一大堆没用的

软工学习记4

随着学习的进程越走越远,我们的团队也更加确定.在人员分工.开发项目方面都做出了明确的规划.有了个目标,我们便不是那么迷茫,困惑着去学习,学习了这么久到底能干什么?这个问题很关键.我和我的队友们也达成了共识,决定尝试着去做一下一个基ASP动态网页开发技术的二手书贩卖系统.我们的分工也十分明确. 牟得力主要负责总体的规划,也就是我们的小领导.钱政捷主要负责数据库的建立和对接,杨子琪版式设计后期处理美化,我呢,就是开发ASP网页主题的构建咯. 对于一群对编程并不太擅长的学渣来说,一个有着太复杂功能的系

构建之法第二周学习体验

首先我学习了个人能力的衡量与发展.软件工程中有一项是软件开发流程,目的是为了提高软件开发.运营和维护的效率.但是软件开发流程不光是指团队的流程,还包括个人开发流程,因为软件团队是由个人组成的.单个成员在团队中的流程包括:1.通过交流.实验.快速原型等方法,理解问题.需求或任务2.提出多种解决办法并估计工作量3.与相关角色交流解决问题的提案,决定一个可行的方案 4.执行,把想法变成实际中能工作的代码,同时验证方案的可行性和其他特性5.在测试环境中测试实现方案,修复Bug6.在解决方案发布出去后,对