Being With Rails App For 3 Years

55
Being With Rails App For 3 Years RubyHiroba 2014 生活発表会 2014-09-21 deeeki

description

#RubyHiroba 2014 生活発表会 2014-09-21

Transcript of Being With Rails App For 3 Years

Page 1: Being With Rails App For 3 Years

Being With Rails App For 3 Years

RubyHiroba 2014 生活発表会 2014-09-21

deeeki

Page 2: Being With Rails App For 3 Years

Me

• deeeki

Page 3: Being With Rails App For 3 Years
Page 4: Being With Rails App For 3 Years

Job

• Freelance Programmer

• Ruby / Rails

Page 5: Being With Rails App For 3 Years

#mydev

• Slidegate

• http://slidegate.herokuapp.com/

• Talked at個人開発を支える技術Night

Page 6: Being With Rails App For 3 Years
Page 7: Being With Rails App For 3 Years

Contributions

• Rails (3 times)

• DatabaseRewinder

Page 8: Being With Rails App For 3 Years
Page 9: Being With Rails App For 3 Years
Page 10: Being With Rails App For 3 Years

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

Topics

• How Did I Develop

• Tips

• Thoughts

Page 12: Being With Rails App For 3 Years

How Did I Develop

Page 13: Being With Rails App For 3 Years

Question

• How long do you maintainyour app at work?

Page 14: Being With Rails App For 3 Years

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

Environment

• Rails4.0 / Ruby2.0

• Apache / Passenger / MySQL

• AWS (EC2 / RDS)

Page 16: Being With Rails App For 3 Years

1st Year: 2011

Page 17: Being With Rails App For 3 Years

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

Stats

• Some Complex Logic and DB Schema

• Not Rails Way in Places

• No Test

Page 19: Being With Rails App For 3 Years

Mission

• Launch a Subapp

• Migrating Rails2 to 3

!

• Figure Out Somehow Finally

Page 20: Being With Rails App For 3 Years

How to Learn

• Rails Study Meetup at Tokyo

• “Ruby on Rails 3アプリケーションプログラミング”

• RailsCasts

• Existing Codes

Page 21: Being With Rails App For 3 Years

Interval

• Quitted the Job

• 2 Months Later

• Got an Offer as a Freelancer

Page 22: Being With Rails App For 3 Years

the MostImpressive Commit

Page 23: Being With Rails App For 3 Years
Page 24: Being With Rails App For 3 Years

My 1st RSpec

• Request Spec

• CommitDate:Mon Oct 17 08:05:56 2011 +0900

Page 25: Being With Rails App For 3 Years

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

Markup Improvement

• Twitter Bootstrap

• Haml

• Simple Form

Page 27: Being With Rails App For 3 Years

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

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

2nd Year: 2012

Page 30: Being With Rails App For 3 Years

Summary of 2012

• Implement New Features

• Return Technical Debts

• Try Advanced Features

• STI / Polymorphic AssociationSerialize

Page 31: Being With Rails App For 3 Years

2012: As a Freelancer

• Try External Projects

• CrowdWorks

• Reuse Knowledge

• RSpec / Bootstrap / Several Gems

Page 32: Being With Rails App For 3 Years

3rd Year: 2013

Page 33: Being With Rails App For 3 Years

Big Upgrade

• Ruby1.9 -> Ruby2.0

• Rails3.0 -> Rails3.2-> Rails4.0

Page 34: Being With Rails App For 3 Years

Issues to Upgrade

• Outdated Gem

• Meta Search -> Ransack

• Assets Pipeline

• Decided Not to Use

Page 35: Being With Rails App For 3 Years
Page 36: Being With Rails App For 3 Years

Looking back - Upgrade

• Tests Help Us

• Compromise is OK

Page 37: Being With Rails App For 3 Years

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

Tips

Page 39: Being With Rails App For 3 Years

Personal Tiny Tips

Page 40: Being With Rails App For 3 Years

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

Migration

• Use :after Option

• Arrange Columns Meaningfully

• **Only Available In MySQL**

• Squach Migrations(Squasher)

Page 42: Being With Rails App For 3 Years

Any Related Codes on VCS

• Cron(Whenever)

• EC2 scripts

• Middleware Configuration

• Apache / Logrotate

Page 43: Being With Rails App For 3 Years

How to Keep Up

Page 44: Being With Rails App For 3 Years

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

rails commit log 流し読みなるようになるブログ id:y_yagi

Page 46: Being With Rails App For 3 Years

GoRails“Continue your Ruby on Rails education.”

Page 47: Being With Rails App For 3 Years

Ruby Weekly!

“once–weekly e-mail round-up of Ruby news and articles.”

Page 48: Being With Rails App For 3 Years

Thoughts

Page 49: Being With Rails App For 3 Years

Principle

• Keep Maintainable Codes

• Taking Over Anyone Anytime

• Follow the Rails Way

• Convention over Configuration

Page 50: Being With Rails App For 3 Years

About Rails

• Enough for Me

• Worry Only Using Rails

• Go Well For the Near Future

Page 51: Being With Rails App For 3 Years

Concerning

• Team Development

• Teach / Review

Page 52: Being With Rails App For 3 Years

I appreciate

• Gave Me a Lot of Things

• Knowledge / Opportunity / People

• Enjoyable

Page 53: Being With Rails App For 3 Years

Recap

Page 54: Being With Rails App For 3 Years

Recap

• Share My Experience (And You?)

• Tips for Maintainable Codes

• Change Continuously

Page 55: Being With Rails App For 3 Years

Thank You