Запись нового плагина рефакторинга для Eclipse?

Мне нравится ответ BradC (использование предложений в статье Ned Batchelder), но я хочу добавить другой уровень к нему. Вы можете рандомизировать не только имена полей, но также и полевые положения и код, который делает их невидимыми .

Теперь, этот последний бит является твердой частью, и я не знаю точно, как сделать это, но кто-то с большим количеством JavaScript и опыта CSS смог понимать это. Конечно, Вы не можете только сохранить те же положения все время, потому что сценаристы просто выяснят, что элемент с положением (x, y) является реальным. У Вас должен был бы быть некоторый код, который изменяет расположение элементов формы относительно других элементов, чтобы переместить их от страницы, наложить их друг на друге, и т.д. Затем запутывают код, который делает это с некоторой случайностью, введенной в него. Автоматически изменяйте путаницу ежедневно, прежде чем новый объект будет сделан доступным. Идея состоит в том, что без надлежащего CSS и реализации JavaScript (и код для чтения расположения страницы, поскольку человек был бы) бот не сможет выяснить, какие элементы показывают пользователю. Ваш серверный код, конечно, знает, какие поля реальны и которые являются фальшивкой.

, Таким образом:

  • имена полей случайны
  • , полевой порядок случаен
  • , полевой код сокрытия сложен
  • , полевой код сокрытия запутывается - случайным образом
  • , случайные факторы автоматически изменяются каждый день серверным кодом

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

21
задан Triptych 21 August 2009 в 21:48
поделиться

1 ответ

I found the eclipse.org article the most helpful to get me started. To be honest you're probably best off debugging some of the Eclipse refactorings to get a real feel for how they work.

A good place to get started debugging the code is to set breakpoints on org.eclipse.jdt.core.dom.rewrite.ASTRewrite, particularly the rewriteAST() method, then trigger some refactorings.

Here are a few you might find useful. Are you looking for anything in particular or a general sense of how to process the AST?

16
ответ дан 29 November 2019 в 22:00
поделиться