Как разработать дизайн с использованием карт CRC?

Если я не ошибаюсь, поскольку вы используете загрузчик файлов, вы можете использовать его так же, как и любой другой. Webpack превратит require("./logo.svg") в путь к файлу, который он испустит, когда он свяжется.

import React, { Component } from 'react'

import mySvg from './logo.svg'

class Header extends Component {

  render() {
    return (
        <div className='header'>
            <img src={mySvg} />
        </div>
    );
  }
};

export default Header
29
задан Statement 19 February 2010 в 11:58
поделиться

6 ответов

Я попытаюсь дать ответ. Таким образом, карты CRC обычно используются для моделирования в Объектно-ориентированной среде для получения лучшего понимания системы, которая должна быть разработана (но что я думаю, что Вы уже будете знать). Карты CRC прибывают в самый конец, когда Вы прибываете непосредственно перед фактической реализацией. Различные шаги для достижения того уровня могли быть следующими:

  1. начальная точка должна сделать сбор информации требования. Вовлечение клиента рано и непрерывно предлагается здесь (смотрите на Гибкие подходы, т.е. Экстремальное программирование)
  2. требования могут тогда быть смоделированы или со схемами Варианта использования (UML) или с Пользовательскими историями (гибкий подход экстремального программирования). Ключевая проблема здесь состоит в том, чтобы найти, что включенное право возражает. Это зависит очень от домена, Вы находитесь в, конечно. При движении "твердого" пути можно применить методы как "извлечение существительного". Таким образом, Вы анализируете документ спецификации и извлекаете все существительные (включая составные имена и тех, которые имеют прилагательные). Проанализируйте всех их и отбросьте несоответствующие.
  3. , Как только у Вас есть правильные существительные->, возражает, что можно начать создавать карты CRC. Таким образом, что сделано на сессии CRC? Основная задача состоит в том, чтобы найти и возложить обязанности Ваших (ранее) найденных объектов, которые тогда положены на маленькие учетные карточки (наши карты CRC). "Обязанности" являются главным образом базовой функциональностью конкретного объекта, и часть "сотрудничества" необходимые другие объекты для выполнения определенных технических возможностей (это зависимости среди различных объектов в Вашей модели). Важные моменты для того, чтобы возложить обязанности - то, что обязанности распределяются хорошо в целой системе некоторым сбалансированным способом. Другой очень важный момент должен избежать любого дублирования обязанностей среди объектов (это - то, где карты CRC помогают).
    сессия CRC А должна запуститься со встречи мозговой атаки, имея активное обсуждение среди разработчиков, и она должна быть выполнена на фактических учетных карточках непосредственно.

я надеюсь, что смог так или иначе помочь Вам.

С уважением,
Juri

13
ответ дан DJ. 19 February 2010 в 11:58
поделиться

перейти к источнику - Кент Бек, Уорд Каннингем, когда-нибудь слышал о них?

7
ответ дан Steven A. Lowe 19 February 2010 в 11:58
поделиться

Самый простой способ использовать их, на мой взгляд, без проблем - записать маленькие CRC-карты в заголовки файлов, например:

///////////////////////
//* CRC CARD
//*  Class: UISliderEvent
//*  Responsability: Event that holds the value and id of a Slider's movement
//*  Collaborators: UISlider, UIEvent
//////////////////////

Затем каждый раз, когда вам нужно добавить функцию, проверьте свою карту. и будьте уверены, что вы не нарушите ни один из контрактов, которые вы в нем указали. Например, внезапно, в зависимости от UIMouseEvent, его нет на Карте, поэтому нет необходимости его включать.

5
ответ дан Robert Gould 19 February 2010 в 11:58
поделиться

Трудно подвести итог в ТАК ответ, но я попробую. Одна из проблем разработки объектов балансирует взгляды с полной точки зрения с размышлением с точки зрения отдельного объекта. Вам нужна полная перспектива для завершения вычисления, но Вам нужна перспектива отдельного объекта для эффективного подразделения логики и данных.

Сохранение этого равновесия состоит в том, где карты CRC входят. Когда они находятся там на таблице, Вы добираетесь для рассмотрения вычисления в целом. Когда Вы берете единственную карту, тем не менее, Вы физически, кинестетически поощряетесь взять точку зрения того одного объекта - у меня есть этот маленький кусочек этого вычисления, чтобы сделать с ограниченными ресурсами, как я собираюсь выполнить его?

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

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

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

33
ответ дан Kent Beck 19 February 2010 в 11:58
поделиться
  • 1
    Это будет цениться, чтобы знать, как Вы выполнили этот код? – Baig 27 June 2018 в 18:10

Я думаю Ваш оператор , "Я не знаю никого здесь, кто использует карты CRC" , в значительной степени подводит итог состояния карт CRC в разработке. Карты CRC, по-моему, были шагом на дороге от традиционной, управляемой планом разработки до гибкой разработки. Мир шел дальше. Вместо того, чтобы фокусироваться о том, как использовать карты CRC, я исследовал бы методы как TDD, который может использовать методы как UML и карты CRC как промежуточные артефакты, но который концентрируется на коде, и более подробно на тестах. Это - направление, которое взяли изобретатели карт CRC, и я рекомендовал бы взять также.

7
ответ дан tvanfosson 19 February 2010 в 11:58
поделиться
  • 1
    @Alexander: можно хотеть попытаться поместить остроту (все в одинарных кавычках) в фактическом сценарии со строкой хижины удара. Я думаю filter-branch, вероятно, пытается выполнить это в sh, не bash. – Cascabel 29 October 2010 в 01:51

В своей книге Дизайн объектов: роли, обязанности и сотрудничество , опубликованной в 2003 г. Ребекка Вирфс-Брок и Алан МакКин подробно обсуждают карты CRC . Они действительно подчеркивают разницу во всей процедуре, заключающуюся в том, что это должно быть очень тактильное переживание, и это ослабляет мышление людей, когда они пытаются обойти физический объект при попытке конкретизировать дизайн / требование.

Подзаголовок этого В главе говорится, что использование карточек является частью фазы «исследовательского проектирования», поэтому, вероятно, оно предшествует написанию большого количества кода, но я не вижу причин, по которым вы бы не стали возвращаться к ним на каждой итерации Agile-проекта и напоминать себе куда вы думали, что собираетесь, и при необходимости просматриваете это (конечно же, всей группой).

3
ответ дан 28 November 2019 в 01:11
поделиться