Является гибким с научной точки зрения доказанный? [закрытый]

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

Вы хотите этот шаблон:

async function testAsyncAwaitFunction() {
    let layerNames = await getCellLayers();
    const promises = [];
    layerNames.forEach(function(layerName) {
        promises.push(getRecord(cell_date));
    });
    const cell_records = await Promise.all(promises);
    cell_records.forEach(function(cell_record, idx) {
        cell_date = layerNames[idx].substring(3)+"_"+window['currentImage'].substring(17,25);
        console.log(cell_date+":");
        console.log("Matches: "+cellRecord.length);
        console.log("testAsyncAwaitFunction response: "+JSON.stringify(cellRecord));
    })
}
13
задан compie 22 March 2009 в 21:43
поделиться

9 ответов

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

6
ответ дан 1 December 2019 в 22:08
поделиться

Научный? Ну, я очень впечатлен работы Alistair Cockburn. Слушайте его здесь

Alistair Cockburn был аппаратным разработчиком и исследователем в течение 16 лет, когда IBM попросила, чтобы он записал методологию для объектно-ориентированных проектов. Он провел прошлое десятилетие, учась и пишущий о разработке программного обеспечения и узнал, что некоторые самые успешные проекты имеют самые простые процессы. В 2001 он и 16 других тяжеловесов разработки программного обеспечения, встреченных для обсуждения так называемых легких методологий и одного результата, были Манифестом Гибкой разработки программного обеспечения, который включает четыре оператора значения: люди и взаимодействия по процессам и инструментам; рабочее программное обеспечение по подробной документации; клиентское сотрудничество по переговорам о заключении контракта; и ответ переключается в соответствии с планом.

6
ответ дан 1 December 2019 в 22:08
поделиться

Laurie Williams от NCSU опубликовал много действительно интересных исследований эффективности парного программирования и затем начал иметь дело с большим количеством фасетов гибких.

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

Для INSERT / UPDATE / DELETE краткий ответ - «Да». База данных должна будет проверить, что ссылочная целостность не нарушена и создание / изменение разрешено. Или, в случае DELETE, может потребоваться некоторое каскадирование.

Для SELECT на самом деле все наоборот. Внешние ключи имеют секретное дополнительное преимущество, показывая вам, где именно вы, скорее всего, будете выполнять сложные JOIN, и у них есть очень часто используемые поля. Это значительно упрощает работу по индексации, и вы можете практически гарантировать, что все ваши поля FK должны быть проиндексированы. Это делает операции SELECT намного быстрее.

Было проведено довольно много эмпирических исследований различных частей схватки. Я слышал, как Джефф Сазерленд ( http://jeffsutherland.com/scrum/ изобретатель схватки) в своих выступлениях упоминал множество конкретных исследований и наблюдений.

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

5
ответ дан 1 December 2019 в 22:08
поделиться

Мне доказана статистическая неудача водопада, т. Е. научного управления применительно к разработке программного обеспечения. Agile как движение - всего лишь ответ на эти эмпирические данные (см., Например, отчеты CHAOS).

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

Я не думаю, что можно "доказать" такую ​​вещь.

Я пойду еще дальше и скажу, что не думаю, что действительно возможно изучить этот вопрос. "Производительность разработки программного обеспечения" с таким исследованием. Именно поэтому все доказательства, которые мы когда-либо на самом деле должны иметь, - это то, что нам рассказывают опытные люди (и, к сожалению, у каждого свой взгляд на разные методологии).

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

  1. Способности отдельных программистов.
  2. Преданность / усилия, вложенные программистами.
  3. Опыт работы с инструментами.
  4. Способности того, кто действует. в качестве руководителя группы (простого следования методологии недостаточно. Если кто-то не знает, как управлять командой, методология не будет хорошо представлена).

И, вероятно, есть много других факторов.

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

  • Способность того, кто действует в качестве руководителя группы (простого следования методологии недостаточно. Если кто-то не знает, как управлять командой, методология не будет хорошо представлена).
  • И вероятно, существует гораздо больше факторов.

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

  • Способность того, кто действует в качестве лидера группы (простого следования методологии недостаточно. Если кто-то не знает, как управлять командой, методология не будет хорошо представлена).
  • И вероятно, существует гораздо больше факторов.

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

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

    Нет, это не научно или иным образом доказано. «Доказать» это означало бы либо:

    • Продемонстрировать его достоверность с аналитической точки зрения.
    • Показать, что это работает на практике, а затем сделать вывод о его достоверности

    Аналитический подход неосуществим, поскольку мы здесь имеют дело с людьми, а не с простыми системами. Вы не можете формализовать команды и организации.

    С другой стороны, эмпирические исследования были проведены, но результаты неубедительны. Роберт Гласс показывает некоторые интересные результаты, например, в своей книге Software Creativity 2.0

    Так что нет, гибкость не доказана. Даже не близко. : -)

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

    В этой статье анализируется рентабельность инвестиций (ROI) Agile vs Традиционные методы. Он основан на реальных результатах опубликованных исследований.

    Из аннотации:

    Рентабельность инвестиций в Agile-методы была в четыре раза больше , чем у дорогих традиционных методов, в два раза меньше, чем у недорогих, и у лучших Agile и традиционных методов Методы имеют равную рентабельность инвестиций.

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

    Это интервью с Линдой Райзинг на InfoQ в некоторой степени отвечает на ваш вопрос. Она рассказывает об эффективности плацебо и наших убеждениях в медицине, а также о том, как эти же вещи могут иметь отношение к разработке программного обеспечения. По сути, мы в сообществе Agile даем себе «сахарную пилюлю»?

    Отрывок из интервью

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

    Мы привлекаем всех возможных заинтересованных лиц, мы привлекаем клиентов, мы привлекаем пользователей, тестировщики работают с разработчиками. Мы всегда внимательно изучаем эти сахарные пилюли. Действительно ли это работает? Как вы думаете? Вы довольны результатами? Это единственное, что нас спасает - сам Agile. Это серия небольших экспериментов.

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

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