Notes from my general review:
## General
* The heart isn't centred
* Don't show the survey when the beta signup form is visible
* The beta signup form isn't uniquely identified
* ~~No browser tests~~
* **No unit tests**
## ~~QuickSurveys.hooks.php~~
* ~~No validation~~
* ~~No class that models an internal/external survey~~
* ~~No factory that creates the appropriate class from configuration~~
* ~~More sophisticated hooks can be broken out~~
Addressed in T110196.
## ext.quicksurveys.init/init.js
* Using jQuery to construct a DOM element that might not be necessary
* ~~Rightwards drift~~
* Generating a token with `mw.user.generateRandomSessionId` when we can simply use '+'
* ~~We hit local storage before testing two constants~~
* `quicksurvey` rather than `quicksurveys` parameter name
* Undocumented, ~~untested~~ insertion point selection
* [ASSUMPTION] Is the `ext.quicksurveys.views` really that big that it's worth deferring it?
## ext.quicksurveys.views module
* Why can't we just use normal JavaScript class style? Is there a MediaWiki/Wikimedia style for defining JavaScript classes?
* How does VE construct complex layouts? With Mustache?
* The QuickSurvey.widget method is generic when it needn't be -- it's only used for the panels
* The QuickSurvey.log method shouldn't be on a view
* What does a view do?