aboutsummaryrefslogtreecommitdiffstats
path: root/lib/htmlpurifier/docs/dev-code-quality.txt
diff options
context:
space:
mode:
Diffstat (limited to 'lib/htmlpurifier/docs/dev-code-quality.txt')
-rw-r--r--lib/htmlpurifier/docs/dev-code-quality.txt29
1 files changed, 29 insertions, 0 deletions
diff --git a/lib/htmlpurifier/docs/dev-code-quality.txt b/lib/htmlpurifier/docs/dev-code-quality.txt
new file mode 100644
index 000000000..bceedebc4
--- /dev/null
+++ b/lib/htmlpurifier/docs/dev-code-quality.txt
@@ -0,0 +1,29 @@
+
+Code Quality Issues
+
+Okay, face it. Programmers can get lazy, cut corners, or make mistakes. They
+also can do quick prototypes, and then forget to rewrite them later. Well,
+while I can't list mistakes in here, I can list prototype-like segments
+of code that should be aggressively refactored. This does not list
+optimization issues, that needs to be done after intense profiling.
+
+docs/examples/demo.php - ad hoc HTML/PHP soup to the extreme
+
+AttrDef - a lot of duplication, more generic classes need to be created;
+a lot of strtolower() calls, no legit casing
+ Class - doesn't support Unicode characters (fringe); uses regular expressions
+ Lang - code duplication; premature optimization
+ Length - easily mistaken for CSSLength
+ URI - multiple regular expressions; missing validation for parts (?)
+ CSS - parser doesn't accept advanced CSS (fringe)
+ Number - constructor interface inconsistent with Integer
+Strategy
+ FixNesting - cannot bubble nodes out of structures, duplicated checks
+ for special-case parent node
+ RemoveForeignElements - should be run in parallel with MakeWellFormed
+URIScheme - needs to have callable generic checks
+ mailto - doesn't validate emails, doesn't validate querystring
+ news - doesn't validate opaque path
+ nntp - doesn't constrain path
+
+ vim: et sw=4 sts=4