Методы для следования, когда Вы застреваете, программируя [закрытый]

Вероятно, не самое элегантное решение, но вот другое:

var data = {
    rounds: [{
            team: "Dropkick Murphies",
            score: 75,
            course: 17
        },
        ...
    ]
};

var groups = {};
for (var o of data.rounds) {
    if (!groups[o.team])
        groups[o.team] = [];
    groups[o.team].push({
        score: o.score,
        course: o.course
    });
}
var result = [];
for (var g in groups) {
    result.push({
        team: g,
        rounds: groups[g]
    });
}
8
задан 7 revs, 3 users 53% 18 November 2011 в 06:48
поделиться

16 ответов

Пойдите и сделайте что-то еще. Нет, действительно. Я нашел, что убирание проблемы подсознательно помогает. Я не могу считать количество раз, я думал об отличном решении чего-то, что я продолжал работать, когда я работал над чем-то еще, или смотрел телевизор или ел. Кажется, что Ваш мозг все еще работает над проблемой в фоновом режиме.

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

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

Еще раз просмотрите то, что я думаю, могло бы быть релевантным, затем взять дремоту. Существует два других ответа, которые упоминают, что спали или дремали, но это заслуживает большего акцента. Теперь известно, что существует СЕРЬЕЗНОЕ оборудование там, которое идет для работы, когда Вы спите. Google ((НАУЧНЫЙ СОН CBS)) получит Вас к большому бесплатному видео.

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

Факт Вы застреваете, мог бы быть 'запахом кода'. Предложение, что их что-то не так с дизайном или подходом где-то в другом месте. Попытайтесь указать на то, что вызывает это, и зафиксируйте это вместо этого.

Когда Вы возвращаетесь к своей проблеме, она больше не могла бы существовать.

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

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

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

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

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

Спросите себя: решает эту конкретную хитрую проблему, действительно важную для какой Вы делающий?

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

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

Обычно я пытаюсь решить его, пока я не засыпаю.. Иногда я пишу на работе, что написал код, и затем я делю его на части; я пытаюсь знать, как переменные программы изменяются, когда она работает.

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

Часто лучше очистить Вашу голову путем выполнения чего-то другого, чем программирование на некоторое время. См. этот ответ для примера - я сделал это при борьбе с особенно тернистой ошибкой, и когда я возвратился к проблеме, я решил его приблизительно за минуту.

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

Не забывайте Google Code Search

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

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

  1. Поместите липкое примечание по моему монитору и продолжайте идти с чем-то еще
  2. Взгляд на примечание в течение следующих нескольких часов для хранения проблемы подсознательно
  3. Google для подобных проблем и методов используется
  4. Консультируйтесь с коллегой или другом
  5. Спросите относительно форума, такого как stackoverflow
  6. Сдайтесь и разработайте проблему далеко или разработайте путь на основе проблемы, таким образом, с этим можно иметь дело с некоторым другим временем и прикрепить примечание TODO на сайте упомянутого обходного решения
1
ответ дан 3 November 2019 в 12:28
поделиться

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

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

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

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

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

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

Объясните проблему коллеге или запишите ее для описания ее. Это будет заставлять Вас думать другой путь от другой точки зрения. Чтобы быть более точными, и описать контекст проблемы, Вы отступите, получить высокоуровневое представление проблемы, можно узнать, думают, что Вы пропустили что-то, что на самом деле важно.

Иногда, Вы даже находите объяснение прежде, чем закончить Ваше описание.

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

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

Испускание мочи для инноваций!:)

-1
ответ дан 3 November 2019 в 12:28
поделиться

Хорошо существует:

  • Google
  • Google
  • Google
  • Переполнение стека
  • Google
  • Google
  • Возможно, книга, если у меня есть тот.

Серьезно, я запустил (хобби) программирование в 1980-х, и даже в середину 90-х необходимо было знать вещи и иметь техническую библиотеку. Затем Google пришел, и это легче к Google что-то, чем это должно искать (отмеченный!) Документация API (Google "Java stringbuilder" получит меня там быстрее, чем навигация, будет) уже не говоря о фактической книге (электронный или бумага).

Большинство проблем, которые Вы пытаетесь решить, было решено прежде. Много раз.

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

"Разложением" я подразумеваю, что Ваше решение структурировано таким способом, которым маленькие части могут быть индивидуально протестированы и с готовностью поняты. Если у Вас есть 7 000 методов строки, Вы (вероятно), делаете что-то не так.

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

$fields = $_SESSION["fields"]; // $fields is an associative array
$fields["blah"] = "foo";

и я царапал голову, пытающуюся выяснять, почему она не работала (массив не обновлялся в следующий раз, когда я запросил $ _SESSION). Я произошел из среды Java, где Вы могли бы сделать это:

Map fields = (Map)httpSession.get("fields");
fields.put("blah", "foo");

и это совершенно определенно работало бы. PHP однако копирует массив. Рабочее решение состоит в том, чтобы использовать ссылки:

$fields =& $_SESSION["fields"]; // $fields is an associative array
$fields["blah"] = "foo";

или просто:

$_SESSION["fields"]["blah"] = "foo";

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

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

Если я не могу понять, как решить настоящую проблему, я пытаюсь рассмотреть упрощенную версию проблемы. Возьмем простой пример: недавно у меня возникла проблема с поиском набора маршрутов доставки, чтобы доставить товар из точки A в точку B, когда не обязательно прямой маршрут из A в B, но может быть из A в C. а затем от C до B, или от A до C, от C до D, а затем от D до B. (я уверен, что авиалинии и железные дороги делают это постоянно). Это было довольно сложно, поэтому я попытался сначала взглянуть на простые Случай: прямой путь от А к Б. Это было легко. Затем подумайте, как бы я справился с этим с одной остановкой по пути. Тогда рассмотрите две остановки. В этот момент я смог увидеть образец решения.

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

0
ответ дан 3 November 2019 в 12:28
поделиться
Другие вопросы по тегам:

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