热门标签 | HotTags
当前位置:  开发笔记 > 程序员 > 正文

构建之法:第三次心得

在之前一周学习过个人能力的发展的重要性以及软件工程师个人的成长之后,这一周我主要学习了团队之间的合作的重要性。具体就是学习了构建之法的第四章和第五章。第四章第四章,讲的是两人合作。在软件行业的逐步发展

在之前一周学习过个人能力的发展的重要性以及软件工程师个人的成长之后,这一周我主要学习了团队之间的合作的重要性。具体就是学习了构建之法的第四章和第五章。

第四章

第四章,讲的是两人合作。在软件行业的逐步发展中,一个软件基本上一个人是完成不了的,软件都是在相互合作中完成的。

首先,代码除了要足够正确简洁外,还要清晰,让人一目了然。简单来说,代码风格的原则:简明,易读,无二义性。但是,最重要的代码设计规范还是程序设计、模块之间的关系。毕竟,一个软件的流行与否与它的性能与客户需求还是密不可分的。其次,在编写代码的时候,我们就要考虑到它之后可能出现的错误,修改错误,慢慢调试花费的时间会更长。在这之后,代码写完之后,就是需要同伴来给我们进行代码复审。代码复审的主要作用就是找出代码的错误,并且不断改进,然后团队之间相互传授经验。这是非常必要的。对我们亦或是团队的成长都有很大帮助。有的错误在这一次犯了之后,就要吸取经验教训,不能再犯第二次。复审不仅仅有代码复审,还有设计复审、设计计划复审和文档复审。在一个软件设计的最后过程就是结对编程,这是一个不断复审的过程,提高设计和编码质量,及时发现并解决问题,避免把问题拖到最后。

在以上这么多步骤中,两个人又或者是更多人没有默契是做不来的。团队也不会从一开始就合作默契,一定会有一些矛盾,但在不断的相处过程中,这些矛盾很有可能会变成坚不可摧的力量督促我们前进。在团队中,对于他人的错误,要及时给予指责,不能藏着掖着。最好能够在自己行动之前,考虑到他人的感受,不那么自私。这些因素都与个人性格有关,因此,在团队中,同样可以磨练我们的性格。

第五章

第五章,讲的主要是团队和流程。从第四章,我们可以看出,团队对我们有多重要,无论个人的能力有多强,不在集体中的话,也不能完全发挥出来。

首先,团队的定义就是团队成员有各自的分工,互相依赖合作,共同完成任务。软件团队有各种形式,适用于不同的人员和需求。基于直觉形成的团队模式未必是最合适的。而在书中提到了十几种模式:一窝蜂模式,主治医师模式,明星模式,社区模式,业余剧团模式,秘密团队,特工团队,交响乐团模式,爵士乐模式,功能团队模式,官僚模式。我们不必去一味迎合这些模式,需要根据自己团队的现状来决定自己团队的模式。

然后,最主要的是团队合作的流程。其中基础的流程是瀑布模型。在自己团队工作的时候,我们可以根据瀑布模型进行各种变形,调整到最适合我们的状态。当然还有其他流程,统一流程包括许多工作流和四个阶段。工作流:业务建模,需求,分析和设计,实现,测试,部署,配置和变更管理,项目管理以及环境。四个阶段:初始阶段,细化阶段,构造阶段,交付阶段。另外,还有老板驱动的流程以及渐行交付的流程。就是要不断地进行开发,发布,听取反馈还有根据反馈做改进等等。在自己团队没有什么明确的方向时,我们可以参考这些流程。如果有明确的目标,就要按照团队的需求,基于以上的流程,制定最适合自己的方案。

最后,我想每个团队都有自己的软件生命周期,我们需要在不同的阶段提高自己,提高团队,提高我们自己做制作的软件的水平和软件的质量。


推荐阅读
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • 本文详细介绍了 MySQL 中 LAST_INSERT_ID() 函数的使用方法及其工作原理,包括如何获取最后一个插入记录的自增 ID、多行插入时的行为以及在不同客户端环境下的表现。 ... [详细]
  • PHP中去除换行符的多种方法及应用场景
    本文将详细介绍在PHP中去除换行符的各种方法,并结合实际应用场景进行说明。通过本文,您将了解如何根据不同操作系统的特点,选择最合适的换行符处理方式。 ... [详细]
  • 使用Dreamweaver创建用户注册表单的详细步骤
    本文将详细介绍如何使用Adobe Dreamweaver创建一个功能完整的用户注册表单。通过本教程,您将掌握从插入表单元素到设置属性的每一个步骤,帮助您快速上手并完成高质量的网页设计。 ... [详细]
  • 本文探讨了《魔兽世界》中红蓝两方阵营在备战阶段的策略与实现方法,通过代码展示了双方如何根据资源和兵种特性进行战士生产。 ... [详细]
  • 本文探讨了领域驱动设计(DDD)的核心概念、应用场景及其实现方式,详细介绍了其在企业级软件开发中的优势和挑战。通过对比事务脚本与领域模型,展示了DDD如何提升系统的可维护性和扩展性。 ... [详细]
  • 使用GDI的一些AIP函数我们可以轻易的绘制出简 ... [详细]
  • 本文介绍了如何利用npm脚本和concurrently工具,实现本地开发环境中多个监听服务的同时启动,包括HTTP服务、自动刷新、Sass和ES6支持。 ... [详细]
  • 深入了解 Windows 窗体中的 SplitContainer 控件
    SplitContainer 控件是 Windows 窗体中的一种复合控件,由两个可调整大小的面板和一个可移动的拆分条组成。本文将详细介绍其功能、属性以及如何通过编程方式创建复杂的用户界面。 ... [详细]
  • 本文介绍了如何通过配置 Android Studio 和 Gradle 来显著提高构建性能,涵盖内存分配优化、并行构建和性能分析等实用技巧。 ... [详细]
  • 单片机与PLC:入门难易度及应用场景对比
    本文探讨了单片机和PLC的学习难度及各自的应用场景,帮助读者根据自身需求选择合适的学习路径。单片机是一种微控制器,而PLC(可编程逻辑控制器)则专为工业自动化设计。两者各有优劣,适合不同的应用领域。 ... [详细]
  • 本文将详细介绍如何在Linux操作系统中执行PHP脚本,包括环境配置、命令使用及验证方法。对于需要在Linux环境下开发或部署PHP应用的用户来说,这是一篇非常实用的文章。 ... [详细]
  • 深入解析JMeter中的JSON提取器及其应用
    本文详细介绍了如何在JMeter中使用JSON提取器来获取和处理API响应中的数据。特别是在需要将一个接口返回的数据作为下一个接口的输入时,JSON提取器是一个非常有用的工具。 ... [详细]
  • 实体映射最强工具类:MapStruct真香 ... [详细]
  • dotnet 通过 Elmish.WPF 使用 F# 编写 WPF 应用
    本文来安利大家一个有趣而且强大的库,通过F#和C#混合编程编写WPF应用,可以在WPF中使用到F#强大的数据处理能力在GitHub上完全开源Elmis ... [详细]
author-avatar
热情的海浪公主
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有