Как Вы изучаете иерархию классов быстро?

Что-то, чем я не наслаждаюсь о программировании, изучает новый API. Например, прямо сейчас я пытаюсь изучить Windows Identity Foundation. Его срыв, потому что я собираюсь потратить объем времени, учась, как несколько классов работают и на самом деле только пишут несколько строк кода.

В.NET существует столько типов, которые я, кажется, провожу больше времени, ища вокруг в MSDN для класса, чем написание кода. Это также прерывает мой рабочий процесс, в то время как я работаю, потому что я должен ввести немного, чем ищут что-то.

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

Я задаюсь вопросом, есть ли у кого-либо там найденный способ запомнить (или искать более эффективно) эти иерархии объектной модели?

14
задан rsteckly 24 April 2010 в 14:32
поделиться

7 ответов

Я тоже был на вашем месте давным-давно, когда изучал Java и ее классы Collection (или SWING, или AWT, если на то пошло).

Вот несколько шагов, которые я сделал, и их результат:

  • Не удосужился делать заметки, продолжай использовать => запомнить только наиболее часто используемый класс
  • Сделать неорганизованные заметки => тот же результат, запомнить наиболее часто используемый класс
  • Простые диаграммы классов => улучшение, но неполный
  • Простые диаграммы классов, но в комплекте с подклассами, организованными по компонентам (пакет в Java) => Джекпот!

Еще несколько советов:

  • Удалите устаревшие классы
  • Найдите символ для обозначения класса потокобезопасный (поставьте TS или что-то в этом роде)
  • Вы можете опустить наименее используемые подклассы (возможно) по мере продвижения вашего приключения

Пример простой диаграммы классов:

Сравните с этим (не очень -simple):

Надеюсь, что это поможет.

Эд

1
ответ дан 1 December 2019 в 15:01
поделиться

Идея о том, что вы можете полностью изучить новый API, умерла давно, вероятно, с Windows 3.0. Windows API стал настолько сложным, что для большинства из нас действительно было невозможно изучить все это так, как вы могли бы, например, изучить все системные вызовы UNIX. и в этом не было необходимости - онлайн-документация, легко доступная для поиска, делала обучение ненужным.

Конечно, вам действительно нужно знать, как организован API (или библиотека классов) и каковы его возможности, но нет смысла изучать, что такое третий параметр вызова функции X.

8
ответ дан 1 December 2019 в 15:01
поделиться

Может помочь рисование некоторых диаграмм UML и их размещение рядом с монитором. В противном случае, я думаю, единственный способ действительно вбить в голову интерфейсы новых классов - это часто их использовать.

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

2
ответ дан 1 December 2019 в 15:01
поделиться

Обычно я не утруждаюсь изучением API, а пытаюсь понять общие концепции того, что делает API и как он это делает.

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

Да, какое-то время будет происходить обмен между документацией и кодом, но по мере того, как вы освоитесь с API, вы начнете замечать шаблоны и стиль кода, а другие области API станут больше естественно для вас (при условии, что это хорошо спроектированный API :)

HTH.

0
ответ дан 1 December 2019 в 15:01
поделиться

Черт, я просто подумал, что это я старею !!!

Я пишу код Java, используя JMS, EJB, JNDI, JDBC, JSP, Servlet, Struts, Struts, JTA, Swing, POI, GWT, GAE, JDO, IBM MQ MQ, JNI, XML, SAX, DOM, C ++, WIN32, а также наши собственные библиотеки классов и, возможно, еще несколько, которых я не могу вспомнить.

Когда мне нужно переключаться между технологиями, очень сложно запомнить все API. Некоторые из инструментов, которые используются сейчас, настолько совершенны, что можно начать новый проект, используя одну из новых технологий.

  • Eclipse и Visual Studio имеют автозаполнение .
  • Google очень помогает - используйте его каждый день.
  • онлайн-документация.

Кроме того, мы создаем собственные вспомогательные средства, то есть документируем пошаговые процедуры о том, как что-то делать, например, объединение ветки в систему контроля версий, развертывание на платформе. Мы храним эти элементы в Wiki для нашей группы.

0
ответ дан 1 December 2019 в 15:01
поделиться

Ничего особенного, чтобы предложить здесь ответ.

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

Хороший фреймворк

  • легко подобрать и использовать без документации. Он работает так, как вы ожидаете
  • , несмотря на пункт № 1, у него все еще есть отличная документация.
  • минималистичен. Наименьшее количество кода / классов / методов для выполнения работы.

Однако бывают случаи, когда у вас нет выбора; в этом случае остается только запачкаться в окопах. Начните с образца кода - тестируйте приложения - учитесь у людей, которые уже были там и сделали это / написали в блоге.

0
ответ дан 1 December 2019 в 15:01
поделиться

Да, меня тоже беспокоит запоминание всех этих API ...

Мои 2 цента (помимо хранения онлайн-документации) - написать тест код набора, использующий функции, которые я хочу изучить. Дело в том, что я считаю, что лучший способ понять какой-то API - заставить его работать. Если вы просто прочитаете его, вы не можете быть уверены, что поняли его правильно. И чтобы заставить все работать, вы обычно можете сортировать между тем, какие части необходимо понять (странно, что «сложная» часть довольно часто касается деталей настройки) и какие части вы можете оставить на потом. Не так давно я предоставил новую библиотеку рисования таким образом, и я еще не пробовал все примитивы рисования ...

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

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

0
ответ дан 1 December 2019 в 15:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: