了解我们的含义我们,作为个人,团队和组织的代码,我们编写的代码和我们设计的软件(即所有这些行为的修辞尺寸)“可以告诉我们如何承担更细微和道德的方法来创造,使用,并在公共,专业和学术背景下讨论软件“1
这次我正在分享某些社区正在采用的一个有趣的想法而不是具体的经验发现。因此,没有方法论或结果部分,而是我描述了这个想法背后的理由。
人们认为他们正在写入,读取或执行的计算机代码的主要方式是产生效果的乐器工具中的计算机代码。虽然这是不可否认的,但它有更多。
程序员在发展中掌握他们的思想的心理模型,隐藏的假设应该是什么,世界作品如何影响我们如何以简单而复杂的方式产生的文化偏见。
已根据其编码的修辞尺寸与其预期和预期的执行和产出一起关注的软件可能很好地预示着将计算机使用的有价值的创新,特别是尤其是代码组合物 - Brock(2019)
我对了解理解我们代码的含义的想法的反应很迷人,但也很困惑。虽然逻辑,这个想法似乎对我来说太抽象了。因此,我寻求在实践中地概念的具体例子。
在某种程度上,干净的代码2,编程书籍的语用基石,旨在将程序员归因于其代码的含义来改变意义。更具体地说,这本书的核心思想是“通信是专业开发人员的第一阶商业”。因此,代码应该首先将其解释为从程序员到读者的消息,了解如何在第二个实例中执行某种东西,只能为机器指令。
您创建的功能在下一个版本中有很大的变化机会,但您的代码的可读性将对曾经制造的所有变更产生深远的影响 - Martin(2009)
另一个有趣的应用程序是观察我们实际所做的事情 - 而不是我们认为我们的工作 - 而编程。例如,Chris Lindgren 3仔细观察了在数据新闻团队上的Web开发人员编码,并发现:
他致力于更多的编码,以突出问题(〜60%)而不是明确的目标(〜35%)。这表明我们开发的大部分可能与我们的原始设计直接相关,而是从我们在过程中解决的问题出现。鉴于这一点,我们可能希望找到圈出这些新兴问题的方法,并在我们的团队中更广泛地讨论它们;
正如他在遇到的突然问题所在,他决定了关于什么地下和历史因素问题。这表明我们对(i)数据的洞察力,(ii)计划改造,(iii)任务和(iv)任务与事先经验之间的关系;可能会显着影响我们决定发展的内容;
重视人与代码之间的互动的性质,也有助于提出更明智的技术决策。这是因为它不仅可以考虑到某些技术的仅仅函数效益和局限性,而且还要考虑到某些技术的限制和增强功能,这些限制和增强功能可能出现,因为该技术暴露于人类。
例如,Paul Ford 4认为,这就是为什么我们很少采用新的编程语言,尽管潜在的技术效益以及在现场投资的许多发展时间:
制作一个新的[编程]语言很难。制作一个流行的语言仍然更加困难,需要财富的微笑。并且改变了一种流行的语言作品似乎是人类可以做的最困难的事情之一,需要多年的协调来使标准对齐。语言很大,复杂,人类文化的动态表达。 - 福特(2015)
说到技术抽象的含义,系统设计具有驱动设计的历史,即指导系统设计的特殊方法。一些例子是
面向对象的设计侧重于清楚地识别和定义构成系统的对象;
测试驱动的设计,通过首先定义代码必须遵守的行为和仅在实现实际逻辑之后且仅在实现实际逻辑之后进行安全代码的方法;
域驱动设计5认为成功的软件与其应用程序的业务域匹配,因为这确保了真实和数字(及其用户)之间的概念一致性;
设计标准系列的最新补充是价值驱动的设计6,这旨在确保我们的系统反映对其用户有意义的。用Joe Edelman的话语,在设计和发展时,我们需要能够回答这个问题
我需要了解一个人,评估我是否帮助或伤害他们?
对我来说,设计系统似乎是通过对我们的思考和发展方式执行特定意义的自以为是。
要掌握不同的社区对我在这里呈现的想法的看法,我将列出一些哈希特标签,并尝试总结每个特征的推文 注意:复杂性理论是一个比这里讨论的更大的概念。 然而,其跨学科心态和方法是高度相关的。 如果您知道此空间中的任何其他有趣的倡议和想法,请评论以下! 1克凯文。 修辞编码研究:在代码中发现论点。 密歇根大学出版社,2019年出版社。 3 Lindgren,Chris Aaron。 用数据写作:对数据新闻团队编码的研究。 书面沟通,2021。