我是一位具有多年经验的程序员。我意识到我有一定的习惯。我不确定这是否真的是个坏习惯。
我会列出要为解决方案执行的任务的清单,例如一些小的小任务,
- 更改此用户控件的资源
- 更改另一个尺寸
- 在另一个用户控件上添加一些HTML和编码
所有这些任务都很小。我的意思是,它们可以在10分钟内完成,但是我习惯于进行一些小的更改,然后在Web浏览器中一次又一次地测试它们。这是一个好习惯吗?
还是我应该一次执行所有这些,然后一起测试?
如果这确实是个坏习惯,那么我该如何改正它,因为这就像浪费时间反复测试小变化?
我是一位具有多年经验的程序员。我意识到我有一定的习惯。我不确定这是否真的是个坏习惯。
我会列出要为解决方案执行的任务的清单,例如一些小的小任务,
所有这些任务都很小。我的意思是,它们可以在10分钟内完成,但是我习惯于进行一些小的更改,然后在Web浏览器中一次又一次地测试它们。这是一个好习惯吗?
还是我应该一次执行所有这些,然后一起测试?
如果这确实是个坏习惯,那么我该如何改正它,因为这就像浪费时间反复测试小变化?
Answers:
What you see is what you get为使用HTML,CSS,Widget等的开发人员创建了这么多工具的原因...
进行许多小的更改并测试每个都不是一件坏事。它使您可以查看每次更改的影响,然后当一个更改导致问题时,更容易知道哪个更改导致了问题-最近的一个!
如果您有一个包含10个项目的任务列表,并且一次完成所有任务,然后测试该页面,然后注意到该页面看起来不正确,则可能更难知道哪个更改破坏了该页面。
当然,可以将这种方法发挥到极致。找到平衡是关键,并附带获得一个更好地了解什么你改变和变化会如何影响对方。
您的问题分为两个部分:
我应该全部执行一次然后一起测试吗?
我假设您正在使用VCS。
为了跟踪完成了哪些任务,将任务列表分配到提交列表是有意义的:一个任务,一个提交。
这使得管理当前代码库的不同版本变得容易。您可以恢复到先前的状态,选择要进入主干的更改,依此类推。
答案很明确:
不,只能一对一地完成一项更改,一次提交。
但是我习惯于进行一些小的更改,然后在Web浏览器中一次又一次地测试它们,这是一个好习惯吗?
不管怎样,测试代码/ UI都是一个好习惯,但是在浏览器中一遍又一遍地进行测试是毫无意义的。有一些工具可以自动为您做到这一点(Selenium,PhantomJS / Casper,ZombieJS)
这种情况的答案是:
是的,多次测试软件是一个好习惯,但是要使用自动化
对于开发人员的任何习惯,有两个主要问题:
如果两者的答案都是“让它变得更好”,请养成习惯,并教给他人!
如果一个答案是“更好”,另一个答案是“更差”,那么这是一种风格,您必须对此有所意识。它并不总是适用,您可能需要不时地抑制它。
如果两者的答案均为“否定”,则说明您遇到了严重的问题。
当然,对于前两个案例,您还应该考虑“积极效果是否可以自动化或制度化?”。也许编写测试比每次尝试不同的浏览器都更好?(请注意,我知道在Web开发中测试适当的布局并不是那么容易,我并不是说这总是可能的或值得的)。
在这种特殊情况下,在我看来质量提高了,生产率可能降低了。对于较小的更改,它可能有点不好(尤其是如果更改是相互关联的);对于较大的更改,这可能是好的。只要您也测试了最终结果(请避免“每个模块都已测试并且可以正常工作,因此整个过程也可以正常工作,无需测试!”)。
因此-除非您每天有90%的工作要做很小的改动,否则这是一个非常好的习惯。如果您的工作日是这样,那么也许您可能想要查看您的工作方式(或工作地点)。
这取决于域。对于布置网页,它可以正常工作,您可以立即获得反馈(甚至可以直接在浏览器中完成!)。同样,它对于不需要很长时间初始化的任何事物也能很好地工作。这是首选,因为它可以减少您的精神工作量并减少出错的可能性。
但是,对于真正的大型项目,您必须编译代码并且花费的时间很短(几分钟),这可能会导致大量的停机时间,因此您通常必须采取以下措施:
(可能还有其他方法。)
正如其他人所说,这绝对不是一个坏习惯。我通常更喜欢一次只进行一些修改。唯一的例外是,如果我有一大堆不会互相影响的更改(例如,对次要样式或副本的更改,在不同页面上的更改等)。如果要修改布局,请一次更改一个,以便在进入下一个问题之前,可以确认所有受支持的浏览器中的所有内容都是100%。