首页 > 编程语言 >每日反思之学会结对编程

每日反思之学会结对编程

时间:2024-03-13 23:34:49浏览次数:31  
标签:结对 一个 代码 编程 自测 反思 bug 拿主意

长时间独立开发让人容易进入心流,也容易走向习惯性思维的误区。
想起过去创业的时候,总是一个人写代码,自测,merge代码,分布上线,反馈之后再调整。整个过程全靠自己去思考并完成,在一些不复杂的情形下算是最简最快的方案。但当自己融入到一个大的团队和项目中,合作分工成为了主流,而不是单打独斗。
最近做的一个新项目,我和B大哥一起协作开发,学习了很多不错的思路,收获很大。

  1. 自测出所有可能性

自测非常重要,无数次提测之后发现bug的惨痛经历,必须警醒我们认真对待TC和自测。在一个成熟工作流的公司里面,如果把bug控制在自测阶段,对研发团队来说是成本最小的。而且没有bug,也应该是每一个成熟工程师最基本的要求。
2. 多次优化比一步到位更好
我的经验是:做好规划,进行技术设计讨论,形成方案。先实现这个方案,在过程中交叉审查代码,如果有更好的实现方式可以公开讨论,再选择调整。实现是最优先,好的算法往往都不是一次性写好的,而是多次迭代的结果。
3. 做一个可以拿主意的人

如果是做需求确定的功能都还能找产品经理,但遇到需求比较模糊的,那么就需要工程师根据经验去实现一版看看效果。很多人是很难拿定主意的,做决定是要背责任的,也是需要综合考虑的。我想说的不光是做技术,做任何事情都需要拿主意。小到明天中午吃什么,大到世界该怎么发展。我们最终都要拿主意,做一个勇敢坚毅的人。
4. 承认局限,接受新观点
在某个领域钻研时间越长,多多少少会带一些惯性思维和所谓直觉。当我们遇到一些特殊的问题的时候,这些经验可能变成了一叶障目。保持谦虚,承认自己看到的也是局限的,多听听别人的建议,集思广益,也许能发现新大陆。
5. 多思考扩展性

作为一个优秀的工程师,需要更多去思考一个功能(或者系统模块)的扩展性,不能只是简单的实现功能本身。因为功能和系统都是快速发展的,不要让代码过于耦合,好的实现是能拥抱变化的。
6. 不死磕,尽快结对
给自己足够独立思考时间后,如果还是得不到一个解决办法,赶紧结对研究吧。死磕是对时间的浪费,看起来很伟大,其实是思维上的懒惰。
行动起来吧,少年们!

标签:结对,一个,代码,编程,自测,反思,bug,拿主意
From: https://www.cnblogs.com/freephp/p/18069610

相关文章

  • 图解Java并发编程第一章总结【精炼版】
    【第一章】图解Java并发编程Java线程的基本操作yield操作:yield操作,在基于时间片轮转的cpu调度算法中,用来放弃当前时间片sleep操作:sleep操作分为三种情况普通sleep:在指定时间内放弃cpu使用权,不释放同步锁sleep(0):作用与yield相同sleep被中断:抛出中断异常......
  • 从JavaSE到项目部署——Java基础学习第八天(Java面向对象编程初级)
    目录一、类与对象(OOP)——类        1、类与对象概述    2、对象在内存中的存在形式     3、属性/成员变量/field(字段)     4、对象创建和使用    5、对象创建过程二、方法    1、方法基本演示    2、方......
  • 实验一_C语言输入输出和简单程序应用编程实验报告
    实验任务一task1_1 1#include<stdio.h>2#include<stdlib.h>3intmain()4{5printf("0\n");6printf("<H>\n");7printf("II\n");8printf("0\n");9printf(&qu......
  • # Java网络编程入门与实践:构建简单的Socket通信应用
    导言随着互联网的不断发展,网络编程在软件开发领域中变得愈发重要。本文将引导您进入Java网络编程的世界,通过简单而实用的Socket通信实例,帮助您理解网络编程的基本概念和技术。让我们一起动手,构建一个简单的客户端-服务器应用程序,并进行实际的编码练习。1.Java网络编程基......
  • 关于Socket网络编程粘包问题的思考
      首先,必须说明的是,粘包问题并不是源于通信协议TCP,TCP是基于连接的安全的协议,不会出现所谓的粘包问题,但这也只是对于流式传输是这样的。但我们需要不定长的分段数据包时,粘包问题就出现了。因此粘包问题是源自于我们的需求,而不是TCP。  解决粘包问题,明确来说,就是解决数据定界......
  • 实验1_C语言输入输出和简单程序应用编程实验报告
    实验任务一1.task1_1点击查看代码#include<stdio.h>#include<stdlib.h>intmain(){ printf("0\n"); printf("<H>\n"); printf("II\n"); printf("0\n"); printf("<H>\n"); printf(&quo......
  • 常见的编程概念
    常见的编程概念本章涵盖了几乎所有编程语言中出现的概念以及它们在Rust中的工作原理。许多编程语言的核心都有很多共同点。本章中提出的概念都不是Rust所独有的,但我们将在Rust的背景下讨论它们,并解释使用这些概念的约定。具体来说,您将了解变量、基本类型、函数、注释和控......
  • spark大数据快速编程入门
    1.Hadoop生态圈相关组件 namenode:master节点,处理客户端的请求。datanode:slave节点,存储实际数据,汇报存储信息给namenode。client:切分文件,访问hdfs,与namenode交互,获取文件位置信息,与datanode交互,读取和写入数据。secondarynamenode:辅助namenode,分担其工作量,紧急情况下和辅......
  • 突破编程_C++_C++11新特性(模板的改进与细节)
    1模板右尖括号的改进在C++11之前,模板的解析和实例化过程中,右尖括号>的处理有时会导致一些意外的结果,特别是在嵌套模板或模板模板参数中。这是因为C++编译器通常会试图“查看前方”来确定何时结束模板参数的列表,这有时会导致解析错误。C++11对模板的右尖括号处理进......
  • Windows编程:(一)汇编Hello World
    万事都讲究缘起,这次的缘起是要用WinDbg调试界面卡死。看不懂WinDbg的结果。以前都是靠猜,很受打击,索性学习一下。主要学习了几个步骤:1.什么是汇编?汇编的来龙去脉是啥?为什么需要汇编?它与C/C++有什么联系?2.跑一个汇编的HelloWorld。前几个问题,我就直接摘抄了。着重说一下跑Hello......