21. ORM
✓maps perfectly to chunks
✓simpler queries
✓more focused
✓object centric
- rather GUI driven
22. Triggers
• for simple stats!
• for simple stats!!!
• for simple stats!!!!!!
• support laziness
• easy to refactor later
23. Triggers
class Tag(models.Model):
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=50, unique=True)
num_uses = models.PositiveIntegerField(default=1)
CREATE TRIGGER au_tag AFTER UPDATE ON tag
FOR EACH ROW CALL update_tag_num_uses(NEW.tag_id);
CREATE TRIGGER ai_tag AFTER INSERT ON tag
FOR EACH ROW CALL update_tag_num_uses(NEW.tag_id);
CREATE TRIGGER ad_tag AFTER DELETE ON tag
FOR EACH ROW CALL update_tag_num_uses(OLD.tag_id);
42. templates
pub/sub
ORM
DB URLs
Server loading headers
order
render time
CDN Scaling
cache
#requests
HTML JS media
CSS
code packaging
XHR JS
loading
JSON chunks structure