Грамотное программирование

Я думаю, вам нужно иметь столько же флажков, сколько длина массива.

Вы можете перебрать список с помощью ngFor и сохранить состояние выбранных элементов в отдельном массиве.

  checked = [];

  data = [  
         {  
            "id":1,
            "applicationId":1,
            "permissions":"Edit"
         },
         {  
            "id":2,
            "applicationId":1,
            "permissions":"View"
         }
  ];

  checkItem(item) {
    const idx = this.checked.indexOf(item);
    idx >= 0 ? this.checked.splice(idx, 1) : this.checked.push(item);
  }

  submitData() {
    const applicationIds = this.checked.map(it => it.applicationId);
    console.log(applicationIds);
  }

и шаблон будет что-то вроде

<ul>
  <li *ngFor="let item of data">
    {{item.permissions}} <input type="checkbox" (change)="checkItem(item)">
  </li>
</ul>

<button type="button" (click)="submitData()">Submit</button>
11
задан Raymond Hettinger 15 March 2017 в 04:03
поделиться

8 ответов

Благодарность Вам для попытки улучшить путь Ваша команда работает. Пока Вы пытаетесь сделать это, Вы имеете преимущество перед теми, которые не делают.

Я использовал Грамотное программирование для проекта однажды. Это было действительно твердо, и результаты были действительно хороши. Походивший разумный компромисс.

Однако сегодня я проявил бы другой подход: вместо прозы для людей и кода для машин, я написал бы код, который является столь четким, что люди не возражают читать его. Когда я чувствую желание записать комментарий, я думаю, что "Мог сделать этот код более четким". Это означает, что я пишу меньше документации, не больше.

Ну, удача с любым путем Вы выбираете.

13
ответ дан 3 December 2019 в 03:05
поделиться

+1 для попытки улучшить процесс Вашей команды

- 1 для потери работоспособности по тупиковому пути

со всем должным уважением к Knuth модульные тесты лучше, чем документация

  • модульные тесты не могут стать устаревшими
  • загрязнение кода с прозой является огромным отвлечением при отладке
  • если Ваш код действительно требует так большого количества выставки, он, вероятно, плохо разработан и багги
4
ответ дан 3 December 2019 в 03:05
поделиться

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

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

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

7
ответ дан 3 December 2019 в 03:05
поделиться

Единственным нетайным языком, который я знаю, которых на самом деле имеет поддержку LP, является Haskell, и честно говоря, я не услышал большого спроса на LP на современных языках программирования. Большинство людей, кажется, satisified с использованием встроенных форматов документации (javadoc, rdoc, и т.д.)

2
ответ дан 3 December 2019 в 03:05
поделиться

Мои извинения. Я должен был упомянуть, что мы уже используем Doxygen с автоматизированным сценарием сборки документа. Мы используем теги документа.NET, если это возможно, и где теги документа XML.NET терпят неудачу, мы смешиваемся в тегах doxygen. Это работает вполне хорошо. Дело в том, что производство уменьшается вполне очень при записи документации: Мы (люди) очень плохи в создании документации без любого WYSIWYG-редактора. Не говоря уже о чувствительной ошибке.

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

Существует рынок здесь для плагина VS, который делает это, я предполагаю.

Кроме того, Doxygen действительно, кажется, хороший инструмент для того, чтобы активно использовать решение для метода LP этой проблемы. Хотя это очень ограничено используемый.

1
ответ дан 3 December 2019 в 03:05
поделиться

Я не знаю, что любое современное оснащает для Грамотного программирования. Я сделал некоторое Веб-программирование 15 лет назад.

Doxygen является хорошим инструментом, но не помогает вообще с LP. Проблема состоит в том, что LP фокусируется на написании кода для людей для чтения. Нет никакой хорошей поддержки последовательного улучшения/раскрытия. LP нужно представление об исходном коде, который имеет другую структуру, чем file-class-attribute/method в VS. NSpec мог бы быть несколько лучше, но также и является слишком много восходящим.

1
ответ дан 3 December 2019 в 03:05
поделиться

Однако сегодня я проявил бы другой подход: вместо прозы для людей и кода для машин, я написал бы код, который является столь четким, что люди не возражают читать его. Когда я чувствую желание записать комментарий, я думаю, что "Мог сделать этот код более четким". Это означает, что я пишу меньше документации, не больше.

Это - то, что мы делаем также. Хотя для большого количества кода мы производим, писание четкого, человекочитаемого кода просто не достаточно. Что, если Вы хотите объяснить изображение, представляющее функцию? Лучше объясните это с помощью изображения, вместо того, чтобы писать половину страницы, описывающую это.

1
ответ дан 3 December 2019 в 03:05
поделиться

Здравствуйте, авторы романов,

Как кто-то сослался на DOxygen здесь: хотя это не позволяет реально Грамотный Программирование (в качестве примера ограничений, это не позволяет переупорядочить взгляд на источники) , однако, похоже, его собственные защитники признают его ценным инструментом в этой области (LP защитников) : прямо вверху этой справочной страницы упоминается об инструментах LP: Инструменты грамотного программирования

0
ответ дан 3 December 2019 в 03:05
поделиться
Другие вопросы по тегам:

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