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
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.1k
Ruby で作る Ruby (物理)
mtsmfm
1
190
GraphQL Ruby benchmark
mtsmfm
1
770
タイムアウトにご用心 / Timeout might break application state
mtsmfm
6
2.5k
Build REST API with GraphQL Ruby
mtsmfm
0
300
GraphQL Ruby をちょっとだけ速くした / Make graphql-ruby faster a bit
mtsmfm
1
700
Gaming PC on GCP
mtsmfm
0
700
How to introduce GraphQL to an existing React-Redux application
mtsmfm
1
230
Canary release in StudySapuri
mtsmfm
0
3k
Other Decks in Programming
See All in Programming
CloudNativePGを布教したい
nnaka2992
0
120
PHPカンファレンス名古屋2025 タスク分解の試行錯誤〜レビュー負荷を下げるために〜
soichi
1
720
はじめての Go * WASM *OCR
sgash708
1
110
CSS Linter による Baseline サポートの仕組み
ryo_manba
1
160
PRレビューのお供にDanger
stoticdev
1
240
AWS Step Functions は CDK で書こう!
konokenj
4
530
[JAWS DAYS 2025] 最近の DB の競合解決の仕組みが分かった気になってみた
maroon1st
0
130
Ça bouge du côté des animations CSS !
goetter
2
150
ソフトウェアエンジニアの成長
masuda220
PRO
12
2.1k
Serverless Rust: Your Low-Risk Entry Point to Rust in Production (and the benefits are huge)
lmammino
1
160
ABEMA iOS 大規模プロジェクトにおける段階的な技術刷新 / ABEMA iOS Technology Upgrade
akkyie
1
220
なぜイベント駆動が必要なのか - CQRS/ESで解く複雑系システムの課題 -
j5ik2o
14
4.7k
Featured
See All Featured
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
12
1k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Testing 201, or: Great Expectations
jmmastey
42
7.2k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.3k
Writing Fast Ruby
sferik
628
61k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
21
2.5k
RailsConf 2023
tenderlove
29
1k
How to Ace a Technical Interview
jacobian
276
23k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
How STYLIGHT went responsive
nonsquared
98
5.4k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.2k
Git: the NoSQL Database
bkeepers
PRO
427
65k
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