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