Tech
编程中的Forth方法论
1.开始,开始,再开始
识别并摒弃无用的幻象和想法。2.识别并摒弃非问题
找出阻碍你问题解决的非问题,或者利用它们帮助解决真正的问题。3.优先考虑别人会首先排除的选项
最大的算法改进往往隐藏在这里。4.精心构建周密的解决方案
5.尽可能优化该解决方案设计
6.摒弃从头开始是不好的幻象
返回第一步,以更深入的理解继续寻找所有可能的好解决方案。7.比较解决方案
进行实验、基准测试、模拟等,确认找到最佳方案。8.继续返回第一步
直到想法在设计上是正确的。9.在编码前将问题简化
通过分解,使编程任务变得微不足道。10.编码
构建有助于解决问题的自定义工具,编写简单明了的代码,确保代码设计上的正确性。使用简短的一行代码,交互式测试每个Forth词语,扩展核心语言,向解决方案迈进,返回第一步,直到代码解决方案自然浮现。11. 编写清晰简单的文档
确保文档设计正确,创建词汇表描述每个词语,享受工作的成就感。
如果方法运用正确,最简单的步骤是第9步。如果从第9步开始,只理解了1%的方法论。
这种方法论可以应用于硬件设计,也适用于任何类型的问题。
Forth的发明者Charles Moore说他的语言设计是为了“避免”计算机科学中的“无法解决”的问题。他认为“真正”的问题是你想解决的问题,而增加无法解决的问题才是你的问题。
每次迭代都能更好地理解问题,每次循环都会发现新的优化点。找到并消除最后一个瓶颈后,在每次迭代中找到下一个最大的瓶颈。
Moore先生在软件上重复了步骤1-10达20年,他宣布编程问题已经解决,剩下的问题是硬件问题。Moore先生研究并构建了自己的新工具。
Moore先生在硬件/软件上再次重复步骤1-10,计算机是硬件/软件的结合,Moore先生不断接近解决方案。
他采用逐步迭代的方式。他说在某些节点上犯了错误,必须返回寻找正确的上行楼梯。学会识别何时离开了上行楼梯。我敬佩他多次告诉我们他在方法或结论上出错了,走错了路径或告诉我们一些不真实的东西。
我看到很多人试图跳跃或攀爬垂直的墙。我告诉他们有楼梯,这条路更长但更简单更好。但有些人会试图逆着下行扶梯向上走。考虑使用上行楼梯。
本文译自 ultratechnology,由 BALI 编辑发布。