being with rails app for 3 years

Post on 21-Jun-2015

499 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

top related