(图片来源网络,侵删)
让我们讨论一下软件工程领域的初学者和学生最常见的错误和不良做法> Photo by Pankaj Patel on Unsplash 众所周知,Git是一种高效的分布式VCS(版本控制软件)工具,可以处理任何规模的软件项目 它的主要优点在于使多个开发人员或团队可以独立工作,而不会干扰其他人的工作现在,出现的一个问题是,在大学期间,您将从事单个项目,因此您无需使用源代码控制系统,因为不涉及任何协作 如果一个项目只有一个工程师,那么他/她为什么要避免使用源代码控制,尤其是在他们以前没有使用源代码控制的情况下,这是可以理解的 但是,一旦找到工作,就无法避免了 根据我自己的经验,许多毕业生一旦被录用就拥有了Git的第一次经验,因为他们现在确实需要与多个工程师一起从事多个项目在阅读了Sukru Eraslan等人的"使用Git¹的软件工程学生的错误和不良实践"之后,我认识到这些错误在软件工程领域的初学者中也很常见 在本文中,我将讨论一些论文的结果,这些结果可以轻松地映射到与初学者软件工程师及其使用Git有关的行业情况应用Git工作流程> Photo by Campaign Creators on Unsplash 什么是Git工作流程? Git工作流程是一种"食谱",描述了如何使用Git来提高工作效率 有关更多详细信息,您可以在此处阅读有关Git工作流程成功的原因在前面提到的文章中,与Git工作流程有关的最常见错误如下:· 即使他们创建了功能分支,学生也将所做的更改提交到开发分支而不是功能分支· 学生将他们的某些更改提交给所需的功能分支,并将其他更改提交给其他分支· 学生需要在其功能分支之一上工作,但他们忘记签出所需的分支来确保他们在适当的版本中工作创建提交就创建提交而言,许多学生似乎使用不提供信息的消息来提交他们的更改,而没有遵循GitHub标准 此外,他们应用了大型提交而不是小型/常规提交,并在提交中添加了不必要的文件,这可能导致分支难以理解我也经历过的另一个糟糕的做法是注释掉代码的某些部分,而不是摆脱它们并提交这些更改,即使我们知道Git完全是为了保留代码的先前版本Push Commit> Photo by Tim Mossholder on Unsplash 推动提交是学生努力进行的基本操作之一 他们中的许多人提交了未编译或未通过测试的代码 此外,他们绝望地使用了强制推送,因为他们无法解决如何将其工作合并到团队资料库中的问题,这导致其他学生推送的内容丢失 而且,学生完全不知道他们可以在一次操作中将多个提交推送到其存储库中合并 Merge合并是理解Git的最困难的部分之一 即使是经验丰富的Git用户,您也可能会遇到合并冲突,并且解决冲突的过程并不总是很顺利 根据他们的研究,新手似乎有从错误分支合并到错误分支的趋势 此外,当要求他们使用需要的合并工作流时,它们会重新提交以集成代码(反之亦然)Pull正如预期的那样,学生没有进行定期提取Pull,最终他们进行了大量整合自己的更改的提交,从而导致发生冲突的可能性更高和/或进行不必要或不正确的合并分支/标记> Photo by Zach Reiner on Unsplash 第一次尝试学习Git时,分支是另一个令人困惑的部分 从创建错误提交的标签到不遵循分支/标签命名约定,我们都熟悉这些问题 该论文的一些更有趣的结果如下:· 学生创建一个本地分支机构,称为"起源/母版" 该分支有时会推送到远程,因此远程跟踪分支称为"源/源/主"· 学生创建一个名为" HEAD"的分支,该分支是显示活动工作行的最后一次提交的指针的名称 该分支机构有时是本地分支机构,但已被推到偏远地区,使整个团队感到困惑· 当情况不需要时,学生在新分支上创建一个孤儿提交结论总而言之,我鼓励您阅读全文,以了解实现这些结果的环境 我认为,这些结果在当前的软件工程行业中是完全有效的,并且许多初学者可能会遇到相同的Git问题希望您喜欢阅读本文并祝您愉快参考文献[1]:Sukru Eraslan等人(2020年1月) 软件工程专业学生使用Git的错误和不良实践:https://dl.acm.org/doi/pdf/10.1145/3372356.3372364(本文翻译自Rachel Zane的文章《Poor Practices of Future Software Engineers in Using Git》,参考:https://medium.com/swlh/poor-practices-of-future-software-engineers-in-using-git-e42d37a12b72)
0 评论