编程策略和情绪以及它们如何影响您的决策

2020-09-18 03:06:40

我刚刚开发了一种将食谱添加到我的应用程序中的方法。我点击了底部的“添加食谱”。但是食谱没有加进去。我实施了它。但它就是不起作用。它坏了。亲爱的读者,我需要帮助!!?我很沮丧,我被…卡住了。我怎么才能解决这个问题呢?

如果你碰巧还在看(博客文章的第一段是什么疯狂而放肆的作者寻求帮助??),你可能会反对,因为你不知道这里发生了什么。告诉我更多:什么语言,什么框架,按钮应该是如何工作的,你有多确定你正确地使用了这些API?

识别错误的程序输出验证错误的输出是错误的设置输出到产生错误输出的行定义手动过程验证给定行l验证l如果l无效,则停止(发现缺陷)否则将D设置为动态控制和数据依赖关系l对于D中的每个依赖关系d,验证(D)验证(输出)。

策略作为解决问题的机制而存在,将问题与解决方案联系起来。研究解决问题的心理学家长期以来一直将解决问题比作在迷宫中导航:你从一开始就开始,选择要走的路,当它不起作用时就走回头路。

作为一名经验丰富的开发人员,我可以利用我对事物如何工作的知识来选择采取哪条道路。查看代码,我可以决定,如果我知道在这种情况下这个错误确实不应该发生,并且肯定有其他错误,也许我应该去检查服务器本身是否关闭了,或者我的依赖项是否具有错误的版本。

但这种推理似乎都有点抽象。心理学家和管理学家将知识区分为隐性知识和显性知识。每当你不假思索地系鞋带时,那就是默契。当你慢慢地向你5岁的孩子解释如何做到这一点的步骤时,这就是明确的知识。

那么,在您的Web应用程序中调试CSS问题的策略如何呢?或者在C程序中解决争用条件?或者找到正确的超参数来使您的TensorFlow模型工作?如果你每一个都做了一千次,你可能会想,没什么大不了的,有什么问题吗?但是一旦您走出您的舒适区,尝试一种新的框架或一种新的语言,使用一种新的代码库,或者发现一个非常奇怪的问题,以前看起来很简单的事情可能就不再是那么简单了。在这些情况下,知道什么时候应用什么技巧不是很棒吗?

为了学习一种新的策略,我们需要一种方法来使日常编程习惯变得明确。

那么什么是战略呢?战略要求你对世界进行观察,并根据你的发现做其他事情。有时您可能需要记住一些事情以便以后使用(哪个方法再次触发该事件?)。或者,您可能需要做一些事情,直到某些事情正常工作,或者对每个实例都这样做。

表达战略的一种自然方式是作为一个计划。但与运行你面前的浏览器的程序不同,这个程序不是在微处理器上运行的。它在你的大脑里运行。

那么为什么不干脆把它写成程序呢?一旦它成为一个程序,就有可能为一个战略构建编程环境。您的环境可能会帮助您系统化、循序渐进地执行策略,并记住您可能会忘记的事情:

想亲自试一下吗?在这里尝试一种解决合并冲突的策略。或者这里的调试策略。

战略有参数和变量。这不是一个答案,而是一种创造答案的方式。好的策略适用于许多不同的情况。战略描述了如何走出去获取信息,并根据发现的情况提供不同的前进道路。

遵循明确的策略可以使您的工作更有组织、更系统、更可预测,并帮助您更成功。在规定要做什么时,它也可以更具约束性。

有些策略有他们自己的支持者,并且已经声名鹊起。你可能以前见过这个策略:

Strategy testDrivenDevelopment(Requirements)#测试驱动开发的第一步是枚举所有#用户场景。您希望确保枚举#特定的需求,这些需求集中且小#并且可以用一句话或更少的内容来描述。您应该尝试#查找可能存在的所有用户场景。#您应该用逗号分隔每个方案。将方案设置为每个方案';方案';的需求中的可测试用户方案的简短描述。为场景#创建一个新测试#检查新测试是否表明该场景尚未实现#方法是:检查新测试在新测试未通过之前不会通过#修复新测试,使其不能通过#使其正常工作实现代码以使测试通过运行测试直到所有测试都通过编辑代码以解决测试失败的问题运行测试#使其正确#查看是否存在任何使设计低于理想的问题。将#39;design Issue';设置为未解决的设计问题,否则设置为未解决的设计问题;在##39;design Issue';为Nothing之前,编辑代码以修复设计问题;如果有或没有设置测试集,则将其设置为未解决的设计问题;否则#使其快速#查看是否存在任何可能导致#it在某些情况下变慢的性能问题设置为未解决的性能问题,如果在';之前有任何或没有任何其他情况下设置为未解决的性能问题##39;请快一点#查看是否存在任何可能导致#it在某些情况下变慢的性能问题。如果在';之前有任何或没有任何其他问题,请将其设置为未解决的性能问题。PerformIssue';无关紧要编辑代码以修复性能问题运行测试集PerformIssue';是否为未解决的性能问题

通常,您可以使用不止一种策略来解决问题。而且,根据你的选择,你的工作可能会更难。或者更容易。

那么,你是如何解决问题的呢?考虑到所有这些选择,你会选择哪一个?你会修修补补吗?还是读了很多文档?找出答案,看看你与其他人相比如何,并通过回答几个问题帮助科学家了解更多关于编程策略的知识。

这是乔治梅森大学(George Mason University)和华盛顿大学(University Of Washington)的研究人员发起的国家科学基金会(National Science Foundation)项目的一部分,目的是探索编程策略的本质。

托马斯·D·拉托萨、玛丽亚姆·阿拉伯、达斯蒂尼·洛克萨和艾米·J·科。(2020)。明确的编程策略。经验软件工程(ESE),25,2416-2449。