Можем ли мы отладить пользовательский интерфейс задом наперед, начиная с его текущего состояния? - PullRequest
1 голос
/ 14 апреля 2020

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

Я использую React, и мне было интересно, можем ли мы отладить противоположный путь: начиная с текущего состояния:

  • Пользователь дает нам снимок экрана с недопустимым состоянием пользовательского интерфейса.
  • Через devtools мы меняем реквизиты компонентов, чтобы они соответствовали и находили указанную c перестановку (давайте представим, что все компоненты не сохраняют состояние).
  • Подайте перестановку в "программу", которая показывает нам вещи в нашем коде, которые заставил реквизит измениться таким образом.

С технической точки зрения мне интересно, возможно ли это вообще: можем ли мы go назад во времени из определенного c состояния программы?

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

Есть ли какие-либо ресурсы или инструменты, на которые я могу обратить внимание, чтобы найти, если это возможно?

РЕДАКТИРОВАТЬ : чтобы сделать это немного более ясным, я ищу способ дать системе в качестве входных данных «состояние» и вернуть возможный список «трассировок пути» в то время, когда мой код мог выполнить для достижения такого состояния:

showHowWeCanArriveTo({
  name: 'Bob',
  showPopup: true,
  colors: ['blue', 'green']
});

// Returns:
[
  [setName('Bob'), setShowPopup(true), addColor('blue'), addColor('green')]
]

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

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

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

0 голосов
/ 14 апреля 2020

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...