Как подойти к изучению нового SDK / API / библиотеки? - PullRequest
7 голосов
/ 19 февраля 2009

Допустим, вам нужно реализовать некоторые функции, которые не являются тривиальными (это займет не менее 1 рабочей недели). У вас есть SDK / API / библиотека, которая содержит (многочисленные) примеры кода, демонстрирующие использование части SDK для реализации этой функциональности.

Как вы подходите к изучению всех образцов, извлекаете необходимую информацию, методы и т. Д., Чтобы использовать их для реализации «реальной вещи». Ключевые вопросы:

  • Используете ли вы какой-либо инструмент для построения схемы потока управления, взаимодействия между функциями из SDK и самим образцом? Какие диаграммы вы считаете полезными? (Я думал, что диаграмма последовательности UML может быть очень полезна вместе с отладчиком в этом случае).

  • Как хранить актуальную и часто взаимосвязанную информацию о вызовах функций SDK / API, общей структуре и порядке вызовов в примерах программ, которые должны использоваться в качестве эталонных карт, некоторых текстовых заметок, добавлены комментарии в коде примеров, некоторый рефакторинг образца кода в соответствии с вашим стилем кодирования, чтобы облегчить обучение?

Ответы [ 3 ]

6 голосов
/ 19 февраля 2009

Лично я использую подход прототипирования. Продолжайте разработку до управляемых итераций. В начале эти итерации действительно малы. Как часть этого, не бойтесь выбрасывать код и начинать заново (каждый раз, когда я говорю, что у руководителя проекта случается сердечный приступ).

Если ваша конкретная задача не может быть легко или разумно разделена на действительно маленькие начальные задачи, начните с некоторой замены, пока вы не приступите.

Вы хотите, чтобы все было как можно проще (общеизвестный «Hello world»), чтобы просто ознакомиться со сборкой, развертыванием, отладкой, как выглядят сообщения об ошибках, с простыми вещами, которые вначале могут ошибаться и т. д.

Извините, я не захожу так далеко, как использовать инструмент для построения диаграмм (я едва вижу смысл в этом для моей работы).

Как только вы начнете пробовать что-то, вы поймете это, даже если вначале вы не знаете, что происходит, и почему то, что вы делаете, работает (или не работает).

2 голосов
/ 19 февраля 2009

Я обычно компилирую и изменяю примеры, чтобы они соответствовали тому, что мне нужно сделать самому. Я склонен делать это при использовании и аннотировании соответствующих документов. Будучи немного старой школой, инструмент, который я обычно использую для построения диаграмм, это карандаш, или для действительно сложных вещей две или более цветные ручки.

1 голос
/ 26 августа 2011

Я ни в коем случае не опытный программист. На самом деле я изучаю C ++ и изучаю язык в основном из книг. Например, когда я пытаюсь отойти от книг (что часто случается, потому что я хочу начать вносить вклад в такие программы, как LibreOffice), я теряюсь. Кроме того, когда я использую функциональные возможности библиотеки, мои реализации ошибочны, потому что я не совсем понимаю, как была создана библиотека и / или почему нужно что-то делать таким образом. Когда я смотрю на пример исходного кода, я вижу, как что-то делается, но я не понимаю, почему это делается таким образом, что приводит к плохому дизайну моих программ. И в результате я постоянно гадаю, как что-то делать, и когда я сталкиваюсь с ошибками. Очень непродуктивно и расстраивает.

Возвращаясь к комментарию к моей книге, две книги, которые я готовлю от обложки до обложки более одного раза, - это «Начало работы над Visual C ++ 2010» от Айвор Хортон и «Начало работы с C ++: ранние объекты» (7-е издание). Что мне действительно понравилось в книге Айвор Хортон, так это то, что в ней содержалось подробное объяснение того, почему нужно что-то делать определенным образом. Например, прежде чем началось какое-либо программирование Windows, сначала было дано много объяснений о том, как работает Windows. Понимание того, как и почему все работает определенным образом, действительно помогает в разработке программного обеспечения.

Итак, чтобы внести мои две копейки в ответ на ваш вопрос. Я думаю, что лучший подход - это взять хорошо написанные книги, сесть и начать изучать эту библиотеку, API, SDK, что угодно в структурированном подходе, который предлагает реальные примеры вместе с объяснениями того, как и почему вещи реализуются по мере их есть.

Я не знаю, полностью ли я пропустил ваш вопрос, но я не думаю, что понял.

ура!

Это был мой первый пост на этом сайте. Не рви меня слишком сильно. (

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...