Being With Rails App For 3 Years
-
Upload
deeeki -
Category
Technology
-
view
497 -
download
0
description
Transcript of Being With Rails App For 3 Years
Being With Rails App For 3 Years
RubyHiroba 2014 生活発表会 2014-09-21
deeeki
Me
• deeeki
Job
• Freelance Programmer
• Ruby / Rails
#mydev
• Slidegate
• http://slidegate.herokuapp.com/
• Talked at個人開発を支える技術Night
Contributions
• Rails (3 times)
• DatabaseRewinder
Background of Talk
• 3 years have gonesince I start to work with Rails
• Want to share something
Topics
• How Did I Develop
• Tips
• Thoughts
How Did I Develop
Question
• How long do you maintainyour app at work?
A Rails App
• Insurance Industry
• Introducing Customers to Planners
• Some Kind of Users
• Customer / Planner / Admin …
Environment
• Rails4.0 / Ruby2.0
• Apache / Passenger / MySQL
• AWS (EC2 / RDS)
1st Year: 2011
1st Year: 2011
• A half year has passedsince launching
• 2 Developers and 1 Manager
• Original Developer Has Quitted
• Assigned a Subapp of Existing App
Stats
• Some Complex Logic and DB Schema
• Not Rails Way in Places
• No Test
Mission
• Launch a Subapp
• Migrating Rails2 to 3
!
• Figure Out Somehow Finally
How to Learn
• Rails Study Meetup at Tokyo
• “Ruby on Rails 3アプリケーションプログラミング”
• RailsCasts
• Existing Codes
Interval
• Quitted the Job
• 2 Months Later
• Got an Offer as a Freelancer
the MostImpressive Commit
My 1st RSpec
• Request Spec
• CommitDate:Mon Oct 17 08:05:56 2011 +0900
Looking back - RSpec
• New Feature with New Layout
• "Write integration test first"
• Got Relief and ComfortBeyond Expectation
Markup Improvement
• Twitter Bootstrap
• Haml
• Simple Form
Drastic Changes
• Replace 2 Admin Sites withUseful View Libraries
• Mobile / Smartphone Site
• Write Integration Tests Eventually
Summary of 2011
• Improve a LotBecause of Starting as a Beginner
• Take Care of Choosing a Gem
• Write Tests as Soon as Possible
2nd Year: 2012
Summary of 2012
• Implement New Features
• Return Technical Debts
• Try Advanced Features
• STI / Polymorphic AssociationSerialize
2012: As a Freelancer
• Try External Projects
• CrowdWorks
• Reuse Knowledge
• RSpec / Bootstrap / Several Gems
3rd Year: 2013
Big Upgrade
• Ruby1.9 -> Ruby2.0
• Rails3.0 -> Rails3.2-> Rails4.0
Issues to Upgrade
• Outdated Gem
• Meta Search -> Ransack
• Assets Pipeline
• Decided Not to Use
Looking back - Upgrade
• Tests Help Us
• Compromise is OK
2013: As a Freelancer
• Work Only With Offers
• "Get work as a reward for work"
• Try to Work Abroad
Tips
Personal Tiny Tips
File Structure
• Keep Rails' Structure as Possible
• Put Non-Rails Files into “lib”
• Put Custom Initialisersinto Subdir
• “YAGNI”
Migration
• Use :after Option
• Arrange Columns Meaningfully
• **Only Available In MySQL**
• Squach Migrations(Squasher)
Any Related Codes on VCS
• Cron(Whenever)
• EC2 scripts
• Middleware Configuration
• Apache / Logrotate
How to Keep Up
Surf the Internet
• Twitter / GitHub
• Follow Remarkable Developers
• Hatena::Bookmark / Qiita
• Read Feeds Filtered by Tag like “Rails”
rails commit log 流し読みなるようになるブログ id:y_yagi
GoRails“Continue your Ruby on Rails education.”
Ruby Weekly!
“once–weekly e-mail round-up of Ruby news and articles.”
Thoughts
Principle
• Keep Maintainable Codes
• Taking Over Anyone Anytime
• Follow the Rails Way
• Convention over Configuration
About Rails
• Enough for Me
• Worry Only Using Rails
• Go Well For the Near Future
Concerning
• Team Development
• Teach / Review
I appreciate
• Gave Me a Lot of Things
• Knowledge / Opportunity / People
• Enjoyable
Recap
Recap
• Share My Experience (And You?)
• Tips for Maintainable Codes
• Change Continuously
Thank You