Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Crafting Rails Culture
Search
SHIBATA Hiroshi
September 27, 2014
Technology
1.2k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Crafting Rails Culture
SHIBATA Hiroshi
September 27, 2014
More Decks by SHIBATA Hiroshi
See All by SHIBATA Hiroshi
How to make faster release cycle of Ruby?
hsbt
2
6.4k
Ruby の開発を支えるエコシステム
hsbt
4
2.4k
Why is building the Ruby environment hard?
hsbt
6
8.6k
開発環境へのこだわり
hsbt
16
12k
OSS ことはじめ
hsbt
5
1.6k
GMO DevNight 05 在宅勤務開始から2ヶ月でやったこと
hsbt
2
610
Development Environment 2019
hsbt
1
390
How to become the Psychic
hsbt
0
2.1k
Software Development
hsbt
1
6.8k
Other Decks in Technology
See All in Technology
事業課題から技術的負債に向き合う
sansantech
PRO
2
2.4k
LLMに渡さなかった仕事
nanaism
0
11k
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
2
21k
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
12k
AIエージェントを最高のパートナーに育てる方法|評価と判断軸を育てる5つのステップ
koichiaoki
1
160
ADKで始める業務改善 - AIエージェント開発時の考えと設計
harappa80
2
290
「今盗んで、後で解く」に備える ― AWSのポスト量子暗号入門
yama3133
2
240
音声コミュニティを守るAI監視基盤_ 90%以上の入力削減を支えたServerless設計と運用判断
shuheioka123
0
110
「ピッケル本」日本語版は4.0(第6版)が出版されるべき / pickaxe4-nagoyark05
kakutani
2
300
AWS FinOps Agent 結局何が得意なの?
siromi
0
170
リアーキテクチャ後の障害ゼロを目指したShadow Testingの取り組み
nihonbuson
PRO
1
180
AIエージェントの一手は 誰も見ていない - Falco拡張OSS「Prempti」とeBPFで サーバーレス実行基盤を二層防御する
keitah
1
580
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
187
23k
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
250
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
330
HDC tutorial
michielstock
2
910
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
410
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
340
Chasing Engaging Ingredients in Design
codingconduct
0
340
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
520
Color Theory Basics | Prateek | Gurzu
gurzu
1
470
How to Think Like a Performance Engineer
csswizardry
28
2.8k
Transcript
Crafting Rails Culture to Your Company Hiroshi SHIBATA @hsbt RailsPacific
Thank you!
SHIBATA Hiroshi @hsbt
Tokyo Matze
RailsGirls in Japan
asakusa.rb
RubyKaigi 2014 RubyConf Taiwan 2014 RedDotRubyConf 2014 RailsPacific OedoRubyKaigi04
Ruby Committer
ruby rubygems rake rdoc psych syck ruby-build railsgirls railsgirls-jp kaminari
tdiary hiki jenkins.rb fastladder commit bit collector
My work of Ruby 2.2.0 Update test-unit and minitest (removed
from repository but bundled in tarball) coordinate to Ruby committers negotiate to sponsors make development environment
None
None
None
None
None
None
None
None
"MPOHUJNFBHP
None
None
None
Pepabo Hosting EC Media
0WFSQFPQMF
organizations which design systems ... are constrained to produce designs
which are copies of the communication structures of these organizations — M. Conway
PHP MySQL5 PHP MySQL4 Ruby and PHP Rails MySQL5 Pepabo
ϛυϧΣΞͷΞοϓάϨʔυ ࣾ։ൃج൫ͷߏங ౷ܭج൫ͷߏங +409ͷӡ༻උ HJUIVC ηΩϡϦςΟࠪ ίʔυϨϏϡʔ ςετج൫ͷߏங ΞΫηεղੳج൫ͷߏங ։ൃϓϩηε
৽ਓڭҭ ݪߘࣥච ΧϯϑΝϨϯεൃද 044։ൃ αʔόʔߏཧͷ৽ ϦʔϯελʔτΞοϓ +FOLJOT 3VCZ3BJMT 3%#.4 ٕज़ج൫νʔϜ
Pepabo ٕज़ج൫νʔϜ PHP MySQL5 PHP MySQL4 Ruby and PHP Rails
MySQL5
Ruby Rails MySQL5 Ruby Rails MySQL5 Ruby and PHP Rails
MySQL5 Pepabo ٕज़ج൫νʔϜ
Why Ruby?
3. references Why Ruby? 2. environment 1. testing
Testing
3. rspec powerful testing framework 2. minitest 1. test-unit
Capybara
1) Failure: TestPowerAssert#test_power_assert_failed [test/test_power_assert.rb:10]: assert { "0".class == "3".to_i.times.map {|i|
i + 1 }.class } | | | | | | | | | Array | | | [1, 2, 3] | | #<Enumerator: 3:times> | 3 String Power Assert
None
1) Failure: TestPowerAssert#test_power_assert_failed [test/test_power_assert.rb:10]: assert { "0".class == "3".to_i.times.map {|i|
i + 1 }.class } | | | | | | | | | Array | | | [1, 2, 3] | | #<Enumerator: 3:times> | 3 String class TestPowerAssert < Minitest::Test def test_power_assert_failed assert { "0".class == "3".to_i.times.map {|i| i + 1 }.class } end end testcase assertion
3. run test -> fail -> detect fail reason Typical
usecase 2. add inspection code 1. run test -> fail 5. run test -> success 4. fix code
3. run test -> fail -> detect fail reason Typical
usecase 2. add inspection code 1. run test -> fail 5. run test -> fail!!! -> turn to 2 4. fix code
Typical usecase 1. run test -> fail 5. run test
-> fail!!! -> turn to 4 4. fix code 1) Failure: TestPowerAssert#test_power_assert_failed [test/test_power_assert.rb:10]: assert { "0".class == "3".to_i.times.map {|i| i + 1 }.class } | | | | | | | | | Array | | | [1, 2, 3] | | #<Enumerator: 3:times> | 3 String
None
Development Environment 2. rbenv + ruby-build 1. osx + homebrew
Many references
Rails Good Parts Why Rails?
3. admin integration Why Rails? 2. oss way 1. modern
architecture
enforce modern architecture
case.1 Ruby 1.8.6 to Ruby 2.1.2
Ruby 1.8.6 Rails 2.0.2 Ruby 2.1.3 Rails 4.1.6 new!
Ruby 1.8.6 1.8.7 1.9.3 2.0.0 2.1 Rails 2.0/2.1 2.3 3.0
3.2 4.0/4.1
KyotoTycoon to memcached case.2 replace legacy middleware
app1 app2
begin require 'dalli' rescue LoadError => e $stderr.puts "You don't
have dalli installed in your application. Please add it to your Gemfile and run bundle install" raise e end rails4 need to dalli
kyoto tycoon is slower than mysql… dalli is not support
to kyoto tycoon…
None
enforce oss way
Ruby Rails MySQL5 Ruby Rails MySQL5 Ruby and PHP Rails
MySQL5 Pepabo ٕज़ج൫νʔϜ
None
class Bar def bar(foo = foo()) foo end def buzz(foo
= foo) foo end def foo :buzz end end p Bar.new.bar p Bar.new.buzz
% ruby -v r45272.rb ruby 2.2.0dev (2014-04-13 trunk 45580) [x86_64-darwin13]
:buzz nil % ruby -v r45272.rb ruby 2.1.2p80 (2014-03-01 revision 45231) [x86_64-darwin13.0] :buzz :buzz
None
admin integration
3. no console What’s admin? 2. payment/refund 1. customer support
organizations which design systems ... are constrained to produce designs
which are copies of the communication structures of these organizations — M. Conway
Developer Director Customer Support Our Typical Team
VONBJOUBJOFEʜ
3. other app better admin 2. Rails Engine 1. app
internal
app internal pros better testing better deploy cons including difference
application including effective code
Rails Engine pros splitting application code better deploy cons difficulty
testing can’t use production code directly
Other app pros definitely splitting app cons separated develop cycle
duplicated code
No silver bullet
Rails like a php MySQL5 Rails like a java MySQL5
Rails like a php MySQL5 Optimize Your Company ٕज़ج൫νʔϜ
Lern to Rails Internal step by step
Lern to Active Record Internal
github workflow
ChatOps github issue costomer’s contact nagios
DevOps
Go to the next 10 years