技术开发 频道

程序员高效编程之超实用高效搜索技巧

  隐性知识(专业知识、经验及直觉)——基于软件系统实现过程中所积累的个人经验,在大脑中形成的内在知识。通过强大的大脑功能,隐性知识可以综合并协调其他两种知识。这类知识很难传授,因为它的大部分都存储在我们的潜意识中。在特定环境下,它和直觉一同发挥作用,能够在经验、对概念性和实践性知识的反馈和评估的基础上,制定非常好的决策。

  用途:利用自己的专长、经验及直觉来实现非常好的解决方案。

  收获:构建软件并从结果中学习知识。

1
 

  设计模式(还有架构、领域及其他)是不同类型知识相结合的有趣的例子:“如何做”的例子,这些例子中隐含的概念及实现过程中积累的经验。这种知识的表现方式是模式成功及广泛应用的原因之一。

  随着越来越多的可供使用的实践性解决方案和示例出现在网络上,人们大脑中的实践性知识的价值越来越小。我们不需要记住实践性知识。现在我们能够处理软件构建过程中几乎所有可能遇到的常见编程问题。然而,除能够解决问题的示例或从哪搜索这些示例以外,一名大师级的程序员还知道更多的知识。他能够提出自己的解决方案,制定大部分非常好的决策,并采用最好的方式应用它们。此外,很难在网上找到新的、复杂的、领域性的及特定环境下的问题的解决方案。而且,对所有重要的软件工程,在制定优秀解决方案的过程中,都需要高水平的软件开发理论、这些理论的应用经验、对系统的深入了解、问题空间及环境等相关知识。

  因此,在软件开发过程中,概念知识和隐性知识仍然是非常重要的。在使用搜索技术时,我们应当努力扩充各种知识,而不是仅仅解决特定问题。随着解决更高级问题的能力的提高,你会取得成功,成为更高效的程序员。

1
 

  可解决实际问题的高效搜索

  A. 查找

  1. 定义——弄清楚要解决什么问题,并以要查找的内容为焦点。网络上有如此多的有趣的材料,以至于搜索过程能轻易地占掉你全部的工作时间(和个人时间)。

  2. 检索(使用标准的Google、代码搜索或其他的检索引擎)—有很多关于如何高效的使用检索引擎的建议。

  3. 浏览结果(内容的质量、可信度及专业技术的水平;如果资料的可信度过低,无须再看)-> 阅读 -> 评估(人力物力、所需工具及函数库)

  B. 使用

  1. 复制代码 - 单独复制(针对这一目的,带有长钉技术的显式单元测试最适合)

  2. 清除代码 - 仅保留最小限度、相关性代码,清除解决方案中的其它代码。

  3. 在系统中应用代码。

  C. 学习

  1. 理解——你做了什么及你为什么那样做——从代码和实现中学习。

  2. 扩充知识——

  a. 实践性知识:解决问题的特定方法、技巧及风格;

  b. 概念知识:学习新概念、提炼现有的并构建自己的概念;

  c. 隐性知识:明智地使用并学习搜索到的解决方案,经验会自然而然地得到增长。

  3. 收集(链接、意见、参考文献、阅读清单)—任何对你今后搜索、发现及学习有用的有趣信息。为这些目标积累知识。

0
相关文章