The Radiant Ethic

1,191 views
1,118 views

Published on

A discussion of the principles behind the development of Radiant CMS, and how it has affected

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,191
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
2
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide







  • *** T/BDD, Test-first
    *** DRY
    *** Convention over configuration
    *** "Beautiful code"
    **** Efficiency, Expressivity, Elegance






  • [Why is this ethical/moral?]
    *** Originally for ruby-lang.org
    *** "Static++" - flat, but easy to do typical site-management tasks
    *** Always had auto-expiring page cache
    **** 2006 custom-built expiring page cache (YML + content)
    **** 2009 converted to customized Rack::Cache (HTTP-friendly)
    *** Page/parts/snippets/layouts model strikes balance between generation and curation
  • [Why is this ethical/moral?]
    *** Originally for ruby-lang.org
    *** "Static++" - flat, but easy to do typical site-management tasks
    *** Always had auto-expiring page cache
    **** 2006 custom-built expiring page cache (YML + content)
    **** 2009 converted to customized Rack::Cache (HTTP-friendly)
    *** Page/parts/snippets/layouts model strikes balance between generation and curation
  • [Explain Pilsbury dough boy - tastes great, but leaves you fatter and wondering the contents of what you ate]
    [Why is this ethical/moral?]
    Core is < 6000 LOC (not including tests)
    Move non-core things to extensions and libraries
    Stand on others’ shoulders (Rails, Rack::Cache, RedCloth)
  • [Why is this ethical/moral?]
    *** if-else vs. ternary operator
    *** tag design - if/unless, first/last (designer and content-model focused, not generic)
    *** Haml - simplifies default templates, emphasizes structure
    *** avoiding long chains of methods
    *** List for page tree is more pure, but harder to control and extend - uses table with classes

  • [Why is this ethical/moral?]
    *** if-else vs. ternary operator
    *** tag design - if/unless, first/last (designer and content-model focused, not generic)
    *** Haml - simplifies default templates, emphasizes structure
    *** avoiding long chains of methods
    *** List for page tree is more pure, but harder to control and extend - uses table with classes

  • [Why is this ethical/moral?]
    *** if-else vs. ternary operator
    *** tag design - if/unless, first/last (designer and content-model focused, not generic)
    *** Haml - simplifies default templates, emphasizes structure
    *** avoiding long chains of methods
    *** List for page tree is more pure, but harder to control and extend - uses table with classes

  • [Why is this ethical/moral?]
    *** if-else vs. ternary operator
    *** tag design - if/unless, first/last (designer and content-model focused, not generic)
    *** Haml - simplifies default templates, emphasizes structure
    *** avoiding long chains of methods
    *** List for page tree is more pure, but harder to control and extend - uses table with classes

  • [Why is this ethical/moral?]
    No ivory-tower content model
    No standard:
    * comment system
    * file-management
    * version-control
    * event calendar...
    etc.
  • [Why is this ethical/moral?]
    241 Extensions in the registry.
    Top 3 types:
    1) Tweaks to admin UI or data model
    2) Enhancements to page capabilities
    3) Integration with external services and APIs
    Some core features are moving into extensions

  • The simplicity, clarity and strong principles of Radiant have inspired others to copy it (Frog and Wolf) or take it as the basis for new systems (Webvanta), or even write reactions to it (Browser CMS).

  • Extensions: proliferate, enable developer freedom
    Tags: some of my favorites are yield, children:if_first/last, aggregate
  • Extensions: proliferate, enable developer freedom
    Tags: some of my favorites are yield, children:if_first/last, aggregate
  • Extensions: proliferate, enable developer freedom
    Tags: some of my favorites are yield, children:if_first/last, aggregate
  • Extensions: proliferate, enable developer freedom
    Tags: some of my favorites are yield, children:if_first/last, aggregate
  • Extensions: proliferate, enable developer freedom
    Tags: some of my favorites are yield, children:if_first/last, aggregate
  • Extensions: proliferate, enable developer freedom
    Tags: some of my favorites are yield, children:if_first/last, aggregate
  • Static
    Lean code
    Clarity
    General usefulness
    New features in extensions
  • Static
    Lean code
    Clarity
    General usefulness
    New features in extensions
  • Static
    Lean code
    Clarity
    General usefulness
    New features in extensions
  • Static
    Lean code
    Clarity
    General usefulness
    New features in extensions
  • Static
    Lean code
    Clarity
    General usefulness
    New features in extensions
  • Extensions and initializers are difficult to test code that is hyper-critical to the system. Extensions were a hack around Rails’ weak plugin system in 1.1+, but break many boundaries of modularity. Rails 3 Engines are better.

    Admin::ResourceController - lots of class_eval, class-level DSLs, unclear design decisions.


  • Extensions and initializers are difficult to test code that is hyper-critical to the system. Extensions were a hack around Rails’ weak plugin system in 1.1+, but break many boundaries of modularity. Rails 3 Engines are better.

    Admin::ResourceController - lots of class_eval, class-level DSLs, unclear design decisions.


  • Extensions and initializers are difficult to test code that is hyper-critical to the system. Extensions were a hack around Rails’ weak plugin system in 1.1+, but break many boundaries of modularity. Rails 3 Engines are better.

    Admin::ResourceController - lots of class_eval, class-level DSLs, unclear design decisions.


  • Extensions and initializers are difficult to test code that is hyper-critical to the system. Extensions were a hack around Rails’ weak plugin system in 1.1+, but break many boundaries of modularity. Rails 3 Engines are better.

    Admin::ResourceController - lots of class_eval, class-level DSLs, unclear design decisions.







  • ×