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.5k
Why is building the Ruby environment hard?
hsbt
6
8.8k
開発環境へのこだわり
hsbt
16
13k
OSS ことはじめ
hsbt
5
1.6k
GMO DevNight 05 在宅勤務開始から2ヶ月でやったこと
hsbt
2
620
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
慶應義塾大学 AI実践05 論文執筆の仕組み化
keio_smilab
PRO
6
3.6k
bpf_arenaとstruct_opsを使うのが難しかった話
masu_mi
1
140
サボる子はいねぇがー!AgentCoreハーネスの脆弱性に学ぶ、エージェントの入力バリデーション
iwamot
PRO
4
220
Deep Data Security 機能解説
oracle4engineer
PRO
3
1k
In-Context Learning再入門。ICLの勾配降下的解釈の研究動向を追ってみる。
dai08srhg
1
290
AIに任せられるFlutterコードベースを作る 〜仕様をコードで表し、ハーネスで守る〜
myohei
1
630
なぜ東京にいる私が、新潟の技術コミュニティを運営するのか by 八雲慎之助
yakumo
0
220
cdkd (CDK Direct)
gotok365
3
230
Kiro Crew の Bot (続く役目を任せる窓口) | 目指せ Kiro マスター 12
inariku
PRO
0
200
AIで選択肢が広がった組織設計の理想と現実
konifar
16
7.7k
kintoneで在庫管理システムを作るときの要件定義・設計ポイント
kai0707
0
230
あなたのDartコードは丸見えかもしれない ~reFlutterで暴くFlutterアプリの中身と多層防御~
zozotech
PRO
0
770
Featured
See All Featured
Designing for Performance
lara
612
70k
Google's AI Overviews - The New Search
badams
0
1.7k
Thoughts on Productivity
jonyablonski
76
5.4k
Code Reviewing Like a Champion
maltzj
529
40k
Speed Design
sergeychernyshev
33
2.2k
Building Flexible Design Systems
yeseniaperezcruz
330
41k
The World Runs on Bad Software
bkeepers
PRO
72
12k
RailsConf 2023
tenderlove
30
1.6k
Building AI with AI
inesmontani
PRO
1
1.4k
Unsuck your backbone
ammeep
672
58k
The SEO identity crisis: Don't let AI make you average
varn
0
630
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
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