SlideShare a Scribd company logo
Being With Rails App 
For 3 Years 
RubyHiroba 2014 生活発表会 
2014-09-21 
deeeki
Me 
• deeeki
Being With Rails App For 3 Years
Job 
• Freelance Programmer 
• Ruby / Rails
#mydev 
• Slidegate 
• http://slidegate.herokuapp.com/ 
• Talked at 
個人開発を支える技術Night
Being With Rails App For 3 Years
Contributions 
• Rails (3 times) 
• DatabaseRewinder
Being With Rails App For 3 Years
Being With Rails App For 3 Years
Background of Talk 
• 3 years have gone 
since 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 maintain 
your 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 passed 
since 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 Most 
Impressive Commit
Being With Rails App For 3 Years
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 Comfort 
Beyond Expectation
Markup Improvement 
• Twitter Bootstrap 
• Haml 
• Simple Form
Drastic Changes 
• Replace 2 Admin Sites with 
Useful View Libraries 
• Mobile / Smartphone Site 
• Write Integration Tests 
Eventually
Summary of 2011 
• Improve a Lot 
Because 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 Association 
Serialize
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
Being With Rails App For 3 Years
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 Initialisers 
into 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

More Related Content

What's hot (20)

PDF
Migrate PHP E-Commerce Site to Go
Weng Wei
 
PDF
The New JavaScript: ES6
Rob Eisenberg
 
PDF
RubyConf Taiwan 2016 - Large scale Rails applications
Florian Dutey
 
PPTX
Hands on Gradle
Mushfekur Rahman
 
PDF
User-percieved performance
Mike North
 
PPTX
UWP apps development - Part 2
Jiri Danihelka
 
PPTX
Scaling Tech in Asia
Lester Chan
 
PPTX
Architecture - why so serious?
Barbara Fusinska
 
PPTX
Training on iOS app development - Samesh Swongamikha & Neetin Sharma
MobileNepal
 
PDF
ES2015 / ES6: Basics of modern Javascript
Wojciech Dzikowski
 
PDF
Refactoring Rails applications with RubyMine
Andrzej Krzywda
 
PPTX
Migration from ASP.NET MVC to ASP.NET Core
Miroslav Popovic
 
PDF
eMusic: WordPress in the Enterprise
Scott Taylor
 
PDF
Introduction to Rails by Evgeniy Hinyuk
Pivorak MeetUp
 
PDF
Lecture #5 Introduction to rails
Evgeniy Hinyuk
 
PDF
Deployment Nirvana
Adrian Pike
 
PDF
SGCE 2015 REST APIs
Domingo Suarez Torres
 
PPTX
Moving Beyond WordPress At Tech in Asia
Lester Chan
 
PPTX
Novmeber 2015 WordPress News 'n' Stuff
WordPress Sydney
 
PDF
Reacting to the Isomorphic Buzz
Bruce Coddington
 
Migrate PHP E-Commerce Site to Go
Weng Wei
 
The New JavaScript: ES6
Rob Eisenberg
 
RubyConf Taiwan 2016 - Large scale Rails applications
Florian Dutey
 
Hands on Gradle
Mushfekur Rahman
 
User-percieved performance
Mike North
 
UWP apps development - Part 2
Jiri Danihelka
 
Scaling Tech in Asia
Lester Chan
 
Architecture - why so serious?
Barbara Fusinska
 
Training on iOS app development - Samesh Swongamikha & Neetin Sharma
MobileNepal
 
ES2015 / ES6: Basics of modern Javascript
Wojciech Dzikowski
 
Refactoring Rails applications with RubyMine
Andrzej Krzywda
 
Migration from ASP.NET MVC to ASP.NET Core
Miroslav Popovic
 
eMusic: WordPress in the Enterprise
Scott Taylor
 
Introduction to Rails by Evgeniy Hinyuk
Pivorak MeetUp
 
Lecture #5 Introduction to rails
Evgeniy Hinyuk
 
Deployment Nirvana
Adrian Pike
 
SGCE 2015 REST APIs
Domingo Suarez Torres
 
Moving Beyond WordPress At Tech in Asia
Lester Chan
 
Novmeber 2015 WordPress News 'n' Stuff
WordPress Sydney
 
Reacting to the Isomorphic Buzz
Bruce Coddington
 

Similar to Being With Rails App For 3 Years (20)

PPTX
SELF - Becoming a Rails Developer - The Rest of the Story
Nathanial McConnell
 
KEY
Freelancing and side-projects on Rails
John McCaffrey
 
PDF
Rails - getting started
True North
 
PDF
The Birth and Evolution of Ruby on Rails
company
 
KEY
Becoming a more productive Rails Developer
John McCaffrey
 
KEY
Becoming a more Productive Rails Developer
John McCaffrey
 
PDF
Migrating Legacy Rails Apps to Rails 3
Clinton Dreisbach
 
PDF
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
peter_marklund
 
PDF
Connecting the Worlds of Java and Ruby with JRuby
Nick Sieger
 
KEY
Keeping Rails on the Tracks
RubyX
 
PDF
Welcome To Ruby On Rails
Kevin Lawver
 
PPT
Ruby On Rails Introduction
Gustavo Andres Brey
 
PDF
Your first rails app - 2
Blazing Cloud
 
PPT
Ruby On Rails Seminar Basis Softexpo Feb2010
arif44
 
PDF
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Nilesh Panchal
 
PPT
Ruby On Rails Tutorial
sunniboy
 
PDF
Aspose pdf
Jim Jones
 
PDF
Introduction to rails
Go Asgard
 
KEY
Ruby on Rails survival guide of an aged Java developer
gicappa
 
PDF
ORUG - Sept 2014 - Lesson When Learning Ruby/Rails
danielrsmith
 
SELF - Becoming a Rails Developer - The Rest of the Story
Nathanial McConnell
 
Freelancing and side-projects on Rails
John McCaffrey
 
Rails - getting started
True North
 
The Birth and Evolution of Ruby on Rails
company
 
Becoming a more productive Rails Developer
John McCaffrey
 
Becoming a more Productive Rails Developer
John McCaffrey
 
Migrating Legacy Rails Apps to Rails 3
Clinton Dreisbach
 
Ruby on Rails 101 - Presentation Slides for a Five Day Introductory Course
peter_marklund
 
Connecting the Worlds of Java and Ruby with JRuby
Nick Sieger
 
Keeping Rails on the Tracks
RubyX
 
Welcome To Ruby On Rails
Kevin Lawver
 
Ruby On Rails Introduction
Gustavo Andres Brey
 
Your first rails app - 2
Blazing Cloud
 
Ruby On Rails Seminar Basis Softexpo Feb2010
arif44
 
Ruby on-rails-101-presentation-slides-for-a-five-day-introductory-course-1194...
Nilesh Panchal
 
Ruby On Rails Tutorial
sunniboy
 
Aspose pdf
Jim Jones
 
Introduction to rails
Go Asgard
 
Ruby on Rails survival guide of an aged Java developer
gicappa
 
ORUG - Sept 2014 - Lesson When Learning Ruby/Rails
danielrsmith
 
Ad

More from deeeki (6)

PDF
個人開発 in フィリピン
deeeki
 
PDF
Geekmtsm memories
deeeki
 
PDF
Ruby Surroundings in Japan
deeeki
 
PDF
Ruby Movement in Japan
deeeki
 
PDF
How to learn Rails
deeeki
 
PDF
モトスミHack半年間ふりかえり
deeeki
 
個人開発 in フィリピン
deeeki
 
Geekmtsm memories
deeeki
 
Ruby Surroundings in Japan
deeeki
 
Ruby Movement in Japan
deeeki
 
How to learn Rails
deeeki
 
モトスミHack半年間ふりかえり
deeeki
 
Ad

Recently uploaded (20)

PDF
Market Insight : ETH Dominance Returns
CIFDAQ
 
PDF
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification
Ivan Ruchkin
 
PDF
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
PDF
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
PDF
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
PPTX
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
PPTX
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
PDF
introduction to computer hardware and sofeware
chauhanshraddha2007
 
PDF
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
PDF
Researching The Best Chat SDK Providers in 2025
Ray Fields
 
PDF
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
PDF
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
PDF
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
PDF
Build with AI and GDG Cloud Bydgoszcz- ADK .pdf
jaroslawgajewski1
 
PDF
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
PDF
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
PDF
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
PPTX
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
PPTX
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
PDF
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 
Market Insight : ETH Dominance Returns
CIFDAQ
 
State-Dependent Conformal Perception Bounds for Neuro-Symbolic Verification
Ivan Ruchkin
 
GDG Cloud Munich - Intro - Luiz Carneiro - #BuildWithAI - July - Abdel.pdf
Luiz Carneiro
 
MASTERDECK GRAPHSUMMIT SYDNEY (Public).pdf
Neo4j
 
Research-Fundamentals-and-Topic-Development.pdf
ayesha butalia
 
Agile Chennai 18-19 July 2025 Ideathon | AI Powered Microfinance Literacy Gui...
AgileNetwork
 
Agentic AI in Healthcare Driving the Next Wave of Digital Transformation
danielle hunter
 
introduction to computer hardware and sofeware
chauhanshraddha2007
 
Tea4chat - another LLM Project by Kerem Atam
a0m0rajab1
 
Researching The Best Chat SDK Providers in 2025
Ray Fields
 
Trying to figure out MCP by actually building an app from scratch with open s...
Julien SIMON
 
The Future of Mobile Is Context-Aware—Are You Ready?
iProgrammer Solutions Private Limited
 
How Open Source Changed My Career by abdelrahman ismail
a0m0rajab1
 
Build with AI and GDG Cloud Bydgoszcz- ADK .pdf
jaroslawgajewski1
 
OFFOFFBOX™ – A New Era for African Film | Startup Presentation
ambaicciwalkerbrian
 
A Strategic Analysis of the MVNO Wave in Emerging Markets.pdf
IPLOOK Networks
 
CIFDAQ's Market Wrap : Bears Back in Control?
CIFDAQ
 
Introduction to Flutter by Ayush Desai.pptx
ayushdesai204
 
AI in Daily Life: How Artificial Intelligence Helps Us Every Day
vanshrpatil7
 
How ETL Control Logic Keeps Your Pipelines Safe and Reliable.pdf
Stryv Solutions Pvt. Ltd.
 

Being With Rails App For 3 Years

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