对于单独的程序员,最佳/众所周知的软件开发实践的最小子集是什么?[关闭]


16

很长一段时间以来,我一直是一个孤独的程序员。通常我会读有关的文章和帖子

  • 版本控制系统
  • 持续集成/交付
  • 开发方法:Scrum,瀑布,V模型,敏捷,XP等。
  • 软件项目管理

但是几乎所有人似乎都专注于TEAMS。我不是团队,那么对于一个程序员来说,最小的实践集是什么?请考虑以下条件:

  • 我与其他人的代码没有冲突。
  • 我不需要维护文件/目录树,我的开发环境只关心版本控制(基于图像的开发)。
  • 没有正式的要求,我的用户不知道他们想要什么,他们对此表示满意。
  • 唯一可能对发布版本或文档感兴趣的人是我,基本上客户希望获得结果,而不关心软件方法等

我的观点是,我不想花太多时间和精力在与客户需求没有直接关系的任何事情上。有什么建议吗?


您需要狂野修复多少个版本?

Answers:


17

没有权利这个问题答案,因为它取决于每个人。如果您使用iPad进行所有开发工作,并且客户对您感到满意,那么您根本就没有理由进行更改。

但是,如果我处于您的位置,我将强烈执行以下措施:

  • 版本控制系统 -尽管您可能认为基于映像的开发系统可以完成有关常规备份等方面的工作,但对于实验性功能(通常会使用分支),您拥有零蠕动空间。您也没有办法保留项目的重要版本(标签)。如果您扩展到不仅仅是您自己,那么加入的开发人员将认为他们陷入了困境。
  • 敏捷 -此方法非常适用于不知道自己想要什么的客户。迟早他们会意识到,他们不想花钱追赶他们的尾巴-他们会想看看进展。
  • 项目管理工具 -这是必须的。能够将所有内容保留在您的脑海中非常艰巨,但您不必这样做。受到纪律约束并使用项目管理工具(例如Redmine)将使您能够分离任务,并为您提供易于浏览的工作历史记录。这对于您每小时开始充电非常重要。

+2用于敏捷和项目管理。但是,对于实验性功能,我通常会派生一个虚拟映像(相当于分支),并最终打开环境的另一个实例。感谢您的答复。
2011年

16

对于任何程序员,甚至是一个单独的程序员,版本控制都是绝对必须的。这意味着您可以从错误的已删除文件和复杂更改中轻松快速地恢复。

基本上,它可以使您摆脱上班时的笨拙行为。


1
那不是唯一的好处。主要优点之一是能够复制该软件的早期版本。这在尝试重现问题和/或确定何时引入问题时很有用。
Marjan Venema

2
加号1,因为它挽救了我的宿醉之心,如此多次。
尼古拉斯·史密斯,

1
另外,分支机构。在很多情况下,我开始进行重大更改,并接到电话要求发布带有替换图形或其他次要内容的版本。使用分支,这非常容易,只需切换到我的主分支并构建软件即可。没有它?我本来可以拔出头发来完成突破性的更改或恢复它以产生稳定的释放。
陶Szelei

1
假设您编写了有用的签入注释,它还为您提供了一种时光倒流的好方法,可以及时回答以下问题:“写这堆垃圾时我在想什么?”

1
@ user869097,SE网站的部分意图是,问题和答案不仅对原始问题提问者有用。尽管您的不寻常要求可能会使版本控制变得不切实际(我必须说,我并不完全相信,因为您的分支方法似乎不允许合并),但大多数不使用版本控制的单一开发人员都应该这样做。
彼得·泰勒

6

正如其他人所说,版本控制或源代码管理非常重要。使用DVCS,并了解所有内容。哪一个并不重要,尽管如果您选择一种流行的git或mercurial可能会使您受益。

我没有提到的另一件事是一步构建脚本。这不是直截了当的持续集成(我认为这句话很容易成为BS),而是一个非常有用的工具。每当您需要进行紧急更新时,都可以运行脚本并对其进行处理。在接近项目结束时,每天也需要进行几次构建。我的经验是,即使构建过程不太复杂,它也会带来很大的回报。您甚至可以添加ftp上传功能,电子邮件报告,运行单元测试,构建安装程序,签名等。从一开始就编写脚本,随着项目的进行,可以轻松地维护和扩展更多步骤。


2

我只回答一个,版本控制对于任何项目都非常重要,而不仅仅是团队项目。使用时会花费很少的额外时间,但是它为您提供了丰富的历史记录,虽然不是万灵丹,但如果真的可以恢复到工作副本,当然很好。实验功能破坏了大多数应用程序。


2

版本控制是绝对必须的。不仅是因为保持源头正常,还因为源头考古。如果您尝试“修复”一些奇怪的代码,那么一年就可以检查类或过程的演化方式,可以避免很多麻烦。

对于方法-我强烈建议程序员声明。通常,由于开销为零,因此不必花很多时间在小型团队中就能取得很好的结果,而不必一堆J2EE Portlet启用的,基于JSR的,基于MVC角色的CMS Web服务应用程序容器框架

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.