Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
美しいコード?
Slide 2
Slide 2 text
自己紹介 - エキサイト株式会社 ニュースメディア技術sec - PHP - 学生時代の専門は計算理論 競技プログラミングを熱心にやっていました
Slide 3
Slide 3 text
No content
Slide 4
Slide 4 text
No content
Slide 5
Slide 5 text
No content
Slide 6
Slide 6 text
No content
Slide 7
Slide 7 text
美しいコード書いてますか
Slide 8
Slide 8 text
優れた設計のコード
Slide 9
Slide 9 text
優れた設計のコード 見た瞬間に理解できるコード
Slide 10
Slide 10 text
優れた設計のコード 見た瞬間に理解できるコード これらは美しい リーダーブルコードにそんな感じのこと書いてあった
Slide 11
Slide 11 text
優れた設計のコード 見た瞬間に理解できるコード これらは美しい 美しいのはこれらだけではない!
Slide 12
Slide 12 text
美しい ショートコーディングの世界
Slide 13
Slide 13 text
ショートコーディングとは プログラムのソースコードが どれだけ短く書けるかを探求すること 別名: コードゴルフ
Slide 14
Slide 14 text
ショートコーディングをやってみよう! 環境: Ubuntu 16.04.1 LTS PHP 7.0.8-0ubuntu0.16.04.2 (cli) php.iniの error_reporting(0); short_open_tag => On
Slide 15
Slide 15 text
問題 Fizz Buzz 1から30までのFizz Buzzの結果を出力しなさい ただし、各発言を1行に出力すること 例: 1 2 Fizz 4 Buzz Fizz
Slide 16
Slide 16 text
補足:FizzBuzzとは 1以上の整数を順に、以下のルールに従って発言していくゲームである。 3で割り切れる時には「Fizz」 5で割り切れる時には「Buzz」 3と5の両方で割り切れる時には「FizzBuzz」 それ以外の時はその数字を発言する 参考 AOJ2441 FizzBuzz
Slide 17
Slide 17 text
// 143byte for($i=1;$i<=30;$i++){ if($i%3 == 0 && $i%5 == 0){ echo "FizzBuzz\n"; } else if($i%3 == 0){ echo "Fizz\n"; } else if($i%5 == 0){ echo "Buzz\n"; } else { echo "{$i}\n"; } }
Slide 18
Slide 18 text
// 97byte 重複は排除!排除! for($i=1;$i<=30;$i++){ if(!($i%3)) echo 'Fizz'; if(!($i%5)) echo 'Buzz'; else if($i%3) echo $i; echo "\n"; }
Slide 19
Slide 19 text
// 78byte 三項演算子はショートコーディングの味方 for(;$i++<30;){ $s = ($i%3?'':'Fizz') . ($i%5?'':'Buzz'); $s = $s?$s:$i; echo"$s\n"; }
Slide 20
Slide 20 text
// 71byte さらに三項演算子を活用する for(;$i++<30;){ echo(($i%3?'':'Fizz') . ($i%5?'':'Buzz'))?:$i; echo"\n"; }
Slide 21
Slide 21 text
// 67byte 未定義定数は文字列として扱わられる for(;$i++<30;){ echo(($i%3?'':Fizz) . ($i%5?'':Buzz))?:$i; echo"\n"; }
Slide 22
Slide 22 text
// 63byte 職人達は60byte未満らしい…
Slide 23
Slide 23 text
まとめ ショートコーディングとは プログラムのソースコードがどれだけ短く書けるかを探求すること プログラミングは”道具”? “プログラミングをする” “プログラミングを読む” がコンテンツになるといいなーと思っております