8

假设您必须实现一些重要的功能(至少需要 1 个工作周)。您有一个 SDK/API/库,其中包含(大量)代码示例,演示了 SDK 部分用于实现该功能的用法。

您如何学习所有样本,提取必要的信息、技术等,以便使用它们来实现“真实的东西”。关键问题是:

  • 您是否使用一些工具来绘制控制流、SDK 中的功能之间的交互以及示例本身?你觉得哪种图表有用?(在这种情况下,我认为 UML 序列图与调试器一起非常有用)。

  • 您如何在必须用作参考的示例程序中保留有关 SDK/API 函数调用、一般结构和调用顺序的相关且经常相互关联的信息 - 思维导图、一些纯文本注释、示例代码中的添加注释, 对示例代码进行一些重构以适合您的个人编码风格以使学习更容易?

4

3 回答 3

7

我个人使用原型设计方法。将开发保持在可管理的迭代中。一开始,这些迭代非常小。作为其中的一部分,不要害怕扔掉代码并重新开始(每次我说项目经理在某个地方心脏病发作)。

如果您的特定任务不能轻松或合理地划分为非常小的起始任务,那么从一些替代品开始,直到您开始。

你想让它尽可能简单(众所周知的“Hello world”)只是为了让自己熟悉构建、部署、调试、错误消息的样子、一开始可能出错的简单事情等等。

抱歉,我没有使用图表工具(我几乎看不出这对我的工作有什么意义)。

一旦你开始尝试一些事情,你就会掌握它的窍门,即使一开始你不知道发生了什么以及为什么你正在做的事情有效(或无效)。

于 2009-02-19T11:40:37.553 回答
2

我通常会编译和修改示例,使它们适合我自己需要做的事情。我倾向于在使用和注释相应的文档时这样做。作为一个有点老派的人,我通常用于绘制图表的工具是铅笔,或者用于真正复杂的东西的两支或更多彩色笔。

于 2009-02-19T11:42:27.050 回答
2

我绝不是一个经验丰富的程序员。事实上,我正在学习 C++,而且我主要从书本上学习这门语言。例如,当我试图偏离书本时(这种情况经常发生,因为我想开始为 LibreOffice 之类的程序做出贡献),我发现自己迷失了方向。此外,当我使用库的功能时,我的实现是错误的,因为我并不真正了解库是如何创建的和/或为什么需要这样做。当我查看示例源代码时,我看到了一些事情是如何完成的,但我不明白为什么这样做会导致我的程序设计不佳。结果,我不断地猜测如何做某事并在遇到错误时处理它们。非常低效和令人沮丧。

回到我的书评,我不止一次地从头到尾准备好两本书,分别是 Ivor Horton 的《Beginning Visual C++ 2010》和《从 C++ 开始:早期对象(第 7 版)》。我真正喜欢 Ivor Horton 的书的地方在于,它包含对为什么需要以某种方式完成某事的详尽解释。例如,在开始任何 Windows 编程之前,首先给出了很多关于 Windows 工作原理的解释。了解事物如何以及为什么以某种方式工作确实有助于我开发软件。

所以贡献我的两分钱来回答你的问题。我认为最好的方法是拿起写得很好的书,坐下来开始学习图书馆、API、SDK,无论是结构化的方法,提供真实世界的例子,并解释事物是如何以及为什么实现的是。

我不知道我是否完全错过了你的问题,但我想我没有。

干杯!

这是我在这个网站上的第一篇文章。不要太用力地撕扯我。(:

于 2011-08-26T01:26:22.947 回答