Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Learn ruby with doukaku
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Fumiaki MATSUSHIMA
April 28, 2016
Programming
2.1k
2
Share
Learn ruby with doukaku
西日暮里.rb ゴールデンだよLT大会 @ 秋葉原UDX!!
Fumiaki MATSUSHIMA
April 28, 2016
More Decks by Fumiaki MATSUSHIMA
See All by Fumiaki MATSUSHIMA
Learning from performance improvements on GraphQL Ruby
mtsmfm
1
1.3k
Ruby で作る Ruby (物理)
mtsmfm
1
270
GraphQL Ruby benchmark
mtsmfm
1
900
タイムアウトにご用心 / Timeout might break application state
mtsmfm
6
2.7k
Build REST API with GraphQL Ruby
mtsmfm
0
390
GraphQL Ruby をちょっとだけ速くした / Make graphql-ruby faster a bit
mtsmfm
1
780
Gaming PC on GCP
mtsmfm
0
800
How to introduce GraphQL to an existing React-Redux application
mtsmfm
1
300
Canary release in StudySapuri
mtsmfm
0
3.2k
Other Decks in Programming
See All in Programming
GoogleCloudとterraform完全に理解した
terisuke
1
150
Cache-moi si tu peux : patterns et pièges du cache en production - Devoxx France 2026 - Conférence
slecache
0
290
Programming with a DJ Controller — not vibe coding
m_seki
3
150
PicoRuby for IoT: Connecting to the Cloud with MQTT
yuuu
2
650
AI時代のエンジニアリングの原則 / Engineering Principles in the AI Era
haru860
0
600
[RubyKaigi 2026] Require Hooks
palkan
1
230
Server-Side Kotlin LT大会 vol.18 [Kotlin-lspの最新情報と Neovimのlsp設定例]
yasunori0418
1
180
의존성 주입과 모듈화
fornewid
0
150
PCOVから学ぶコードカバレッジ #phpcon_odawara
o0h
PRO
0
280
Claude Codeをカスタムして自分だけのClaude Codeを作ろう
terisuke
0
140
年間50登壇、単著出版、雑誌寄稿、Podcast出演、YouTube、CM、カンファレンス主催……全部やってみたので面白さ等を比較してみよう / I’ve tried them all, so let’s compare how interesting they are.
nrslib
4
800
How We Benchmarked Quarkus: Patterns and anti-patterns
hollycummins
1
150
Featured
See All Featured
The Language of Interfaces
destraynor
162
26k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
220
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
61
43k
Making the Leap to Tech Lead
cromwellryan
135
9.8k
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
170
Statistics for Hackers
jakevdp
799
230k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
160
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.1k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
380
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
180
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
810
Transcript
(株)永和システムマネジメント @mtsmfm 松島 史秋 どう書くで学ぶ Ruby
松島 史秋 GitHub, Twitter, Nintendo ID @mtsmfm
None
どう書く
https://yhpg.doorkeeper.jp/
http://nabetani.sakura.ne.jp/hena/orde03nofconv/
多角形の頂点のうち、 内角が180度より小さいも のの数を計算する プログラムを書け。
スタート!!!
...
1時間後
Emoji provided free by Emoji One
Emoji provided free by Emoji One
できても できなくても 発表
Emoji provided free by Emoji One
おもしろい!
None
1時間という枠
素振り重要 Photo by cambodia4kidsorg
文字列操作
どう書くの 入力は 文字列
/*0*/ test( "1a2t3s2s", "11" ); /*1*/ test( "1a1c1d00", "22" );
/*2*/ test( "00", "20" ); /*3*/ test( "3q", "6" ); /*4*/ test( "3t2a", "8" ); /*5*/ test( "3t3a", "8" ); /*6*/ test( "3t4a", "12" ); /*7*/ test( "004q2g", "32" ); /*8*/ test( "4c2g2k4i", "24" ); /*9*/ test( "1o1a4f4i1t", "26" ); /*10*/ test( "4t3a4g2a2o2p", "24" ); /*11*/ test( "4i4o3i3c3n3h2c", "30" ); /*12*/ test( "4m3n3m002b1b3a", "34" ); /*13*/ test( "001b2a3t4s3s2s1s", "27" ); /*14*/ test( "1n1j3o4o1h2n2r1k", "36" ); /*15*/ test( "4o2a2j1m2e4l2l3m3o", "42" );
String#scan '1a2t3s2s'.scan(/\d\w/) #=> ["1a", "2t", "3s", "2s"]
String#chars
String#ord Integer#chr ?a.ord #=> 97 97.chr #=> "a"
配列操作
Array#zip Array#rotate
Array#combination a = [1, 2, 3, 4] a.combination(1).to_a => [[1],[2],[3],[4]]
a.combination(2).to_a => [[1,2],[1,3],[1,4],[2,3],[2,4],[3,4]] a.combination(3).to_a => [[1,2,3],[1,2,4],[1,3,4],[2,3,4]] a.combination(4).to_a => [[1,2,3,4]]
Array#transpose [ [1,2], [3,4], [5,6] ].transpose => [[1, 3, 5],
[2, 4, 6]]
Enumerable#each_slice Enumerable#each_cons
&.
Ruby 組込みだけで 超便利!
便利 gem
gem 'activesupport', require: 'active_support/all'
あれ? AS だっけ? 標準だっけ?
Emoji provided free by Emoji One
gem 'pry-rescue'
例外上がった ところで 止まる
Bundler
require 'bundler/inline' gemfile do source 'https://rubygems.org' gem 'activesupport', require: 'active_support/all'
end
結果の共有に 便利
フィードバック
'1a2t3s2s'.scan(/\d\w/) #=> ["1a", "2t", "3s", "2s"]
'1a2t3s2s'.scan(/../) #=> ["1a", "2t", "3s", "2s"]
'1a2t3s2s'.scan(/../) #=> ["1a", "2t", "3s", "2s"] Emoji provided free by
Emoji One
別言語で解く
Ruby の表現力
“Rubyをキメると 気持ちいい” - matz