AMO:v4/Planning: Difference between revisions

2,620 bytes removed ,  16 October 2009
m
Replaced content with 'Info on this page moved to: AMO:v4/Planning/Goals'
m (Replaced content with 'Info on this page moved to: AMO:v4/Planning/Goals')
 
Line 1: Line 1:
<small>[[AMO:v4]] &raquo; Planning</small>
Info on this page moved to: [[AMO:v4/Planning/Goals]]
 
''' Just throwing out ideas for now.  Please fill in your thoughts, we can focus this document down later.'''
 
== Goals ==
 
* New codename
** [http://en.wikipedia.org/wiki/Cuttlefish Cuttlefish?]
** zamboni
** samson
* Useful DBAL:  Object based, smart caching/expiration, smart master/slave, smart escaping
** ...doesn't pull too much data unless you ask for it
** composable queries
** easy pagination, sorting, filtering
* As close to brainless escaping as possible for data in views
** But be mindful of performance - the current escaping does too much
*** Escaping only when things are actually printed is as good as it gets
* Unit tests that don't run out of memory and can be monitored.  Expanded test data.
** ...and that aren't a hassle to write and don't kill you inside.  To me, that means powerful introspection and mocking so I can look at the running code at any point in the response cycle.
* Continuous integration with automatic(ish) production deployment (database stuff will be harder...)
* Form validation with or without models.
* Easy ajax or rest.  Possible to separate content/data from html markup in a view.
* Transparent unicode support
** Doesn't all of AMO use UTF-8? --[[User:Wenzel|wenzel]] 17:39, 5 October 2009 (UTC)
** Not when we forget to use mb_* strings; anyways, I was including unicode more to make sure we think about it
* Easy debugging/development
** When there's an error, I want a full report of the stack leading up to the error plus the actual line where we have a problem.
* Logging
* Message queue / offline work queue
** Sometimes you want to do things that aren't part of a web request.  That should not be impossible.
** See also: gearman, rabbitmq
* Templates should not be so verbose:
** 7 characters, one of them meaningful: <?=$x?>
** 7 characters, one of them meaningful: <nowiki>{{ x }}</nowiki>
*** So...maybe verbosity isn't the right metric.  The second one still looks incredibly more appealing than the first. (jbalogh)
 
== How are we going to get there? ==
 
* Try to replace one major section / block of functionality at a time, incrementally.
** Wholesale rewrites tend toward disaster.
* Make a more poweful API and just build off that?
** Would that fix the broken escaping, testing, querying, & so on?
** Could gradually convert bits of AMO to APIs, build new frontends, then replace the APIs
 
* Potential framework changes:
** Any framework change will require some substantial planning regarding operating while migrating.
** Could upgrade to cakephp 1.2.  I fear the dev team will riot.
*** Rabble rabble!
** Could switch to kohana
** Could switch to django
Confirmed users, Bureaucrats and Sysops emeriti
1,737

edits