Slash, the code that runs the popular "News for Nerds" site, Slashdot,
started as a small bit of Perl code running on a shared web server.
Slashdot quickly grew, and the code did, too. It was not long before the
code became hard to manage. It needed to be rewritten. First, the code
had to be cleaned up; global variables, hardcoded HTML, SQL interspersed
with Perl, lack of coherent API, and other problems needed to be
straightened out. Further, there was a lot of room for optimization,
taking advantage of many of the features mod_perl and
Apache have to offer.
This session will go over the architecture of the system (LAMP: Linux,
Apache, MySQL, Perl), including how we solved the issue of having multiple
database backends, moved to a template system to make customization easier,
and created a plugin structure to make the system's functionality easily
extensible.
This is the story of what was wrong with Slash, how its problems were
fixed, and how it was made better.