Data Access Serialization Deploying Performance Cloud Unit Testing AMQP Messaging Community Dog Food Service Oriented RESTful #sqlalchemy #pylons groups.google.com/group/sqlalchemy groups.google.ca/group/pylons-discuss Grow Commits to SQLAlchemy [diana@devimage ~]$ source mydevenv/bin/activate (mydevenv)[diana@devimage ~]$ cd workspace/evolve (mydevenv)[diana@devimage evolve]$ python setup.py develop $$ Cash Money $$ (mydevenv)[diana@devimage evolve]$ nosetests --exclude=integration (mydevenv)[diana@devimage evolve]$ paster serve --reload development.ini serving on 0.0.0.0:5000 view at http://127.0.0.1:5000 I’ve got a little secret to share about our technology stack here at FreshBooks. Although by all appearances we are just another PHP shop, FreshBooks has actually been powered by Ruby on Rails for about three years now. Here’s how we did it: FreshBooks is a rails shop, right? I blame this guy Developer Blog: routes.rb: FreshBooks is a PHP shop then? Understanding the Python GIL (mydevenv)[diana@devimage evolve]$ python setup.py sdist bdist_egg evolve-2.29-py2.6.egg ]evolve-2.29.tar.gz requests/sec, fast enough, metrics RailsConf 09: Robert Martin, "What Killed Smalltalk Could Kill Ruby, Too" http://pylonshq.com/docs/en/1.0/gettingstarted/#installing http://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html anonymous comment in response... Language ... Questions? Memory Old-style vs. New-style classes Dynamical Mappings Brute Force Sharding Python Weakref Dict Bugs Garbage Collection Connect Give Back Decorators testing is hard -- like proofs are hard nose Legacy Rewrite? Evolve Founded in 2003 Filled a Void Got it to Market Legacy Code Tangled PHP + HTML + SQL Tons of One-Off Queries Code Duplication Huge Blocks Global Scope Abuse LegacyDatabase MyISAM No Transactions No Foreign Keys Insane sharding Back-Ups Priming the Cache The Hard Part Why *not* PHP? Developer Satisfaction Not the Legacy Language Community & Tools Gulf of Expectation Oh, the hilarity ... What? Database Back-end Front-end http://developers.freshbooks.com/blog/ It's Complicated. http://blip.tv/file/2089545 def test_<method_under_test>___<edge_case1>___<edge_caseN> Generated Code folder.child_folders() folder.parent_folder() base_dao coverage What would it take to transform our code base into something we were actually proud of? Hibernate Like SQL Expression Language Defined Relationships Lazy/Eager Loading Insane Sharding ORM ORM Spike Zend_db, Propel, Doctrine, Django ORM SQLAlchemy (complete, sharding) Django Web Framework + Django ORM Pylons Truth(iness) Automatic Type Conversion developers. freshbooks.com/ api/webhooks/ How? php + python A Poor Carpenter Blames His Tools 'cause every tool is a weapon if you hold it right whatever... Test Drive Mitigate Risk Unit Test Go Slow Release Often Follow Through http://us.pycon.org/2010/conference/schedule/event/76/ Focused on Correctness Extended Query Second Level Cache AltertSite Latency Curl Repoze AccumulatingProfileMiddleware cProfile
More presentations by Diana Clarke
Popular presentations
What is Prezi, really? And how to create a really good one?
Adam Somlai-Fischer on
Keynote talk at Login 2011 conference in Vilnius for 3000+ audience
13 Consejos para celebrar el Año Nuevo chino
Estampas Multimedia on
Este gran año corresponde al Dragón de Agua y se celebra desde el 23 de enero de 2012. Las ceremonias por el feng shui tienen ...
More popular prezis in Explore>