Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Learn ruby with doukaku
Search
Fumiaki MATSUSHIMA
April 28, 2016
Programming
2
2k
Learn ruby with doukaku
西日暮里.rb ゴールデンだよLT大会 @ 秋葉原UDX!!
Fumiaki MATSUSHIMA
April 28, 2016
Tweet
Share
More Decks by Fumiaki MATSUSHIMA
See All by Fumiaki MATSUSHIMA
Learning from performance improvements on GraphQL Ruby
mtsmfm
1
1.2k
Ruby で作る Ruby (物理)
mtsmfm
1
230
GraphQL Ruby benchmark
mtsmfm
1
860
タイムアウトにご用心 / Timeout might break application state
mtsmfm
6
2.6k
Build REST API with GraphQL Ruby
mtsmfm
0
360
GraphQL Ruby をちょっとだけ速くした / Make graphql-ruby faster a bit
mtsmfm
1
760
Gaming PC on GCP
mtsmfm
0
760
How to introduce GraphQL to an existing React-Redux application
mtsmfm
1
270
Canary release in StudySapuri
mtsmfm
0
3.2k
Other Decks in Programming
See All in Programming
Cell-Based Architecture
larchanjo
0
120
ViewファーストなRailsアプリ開発のたのしさ
sugiwe
0
470
connect-python: convenient protobuf RPC for Python
anuraaga
0
410
AtCoder Conference 2025「LLM時代のAHC」
imjk
2
480
Canon EOS R50 V と R5 Mark II 購入でみえてきた最近のデジイチ VR180 事情、そして VR180 静止画に活路を見出すまで
karad
0
110
実は歴史的なアップデートだと思う AWS Interconnect - multicloud
maroon1st
0
150
20251212 AI 時代的 Legacy Code 營救術 2025 WebConf
mouson
0
160
生成AIを利用するだけでなく、投資できる組織へ
pospome
2
330
認証・認可の基本を学ぼう後編
kouyuume
0
190
【Streamlit x Snowflake】データ基盤からアプリ開発・AI活用まで、すべてをSnowflake内で実現
ayumu_yamaguchi
1
120
チームをチームにするEM
hitode909
0
330
Findy AI+の開発、運用におけるMCP活用事例
starfish719
0
560
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
127
17k
[RailsConf 2023] Rails as a piece of cake
palkan
58
6.2k
Java REST API Framework Comparison - PWX 2021
mraible
34
9k
Making the Leap to Tech Lead
cromwellryan
135
9.7k
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
YesSQL, Process and Tooling at Scale
rocio
174
15k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Designing for humans not robots
tammielis
254
26k
Raft: Consensus for Rubyists
vanstee
141
7.2k
Building Adaptive Systems
keathley
44
2.9k
Practical Orchestrator
shlominoach
190
11k
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