SlideShare a Scribd company logo
1 of 10
Download to read offline
課題の実装の進め方 Powered by Rabbit 2.1.3
課題の実装の進め方
須藤功平
株式会社クリアコード
実践リーダブルコード
2015-06-24
課題の実装の進め方 Powered by Rabbit 2.1.3
実装する目的
午後の作業の布石
↓
課題の仕様を理解するため✓
読まれることを意識して
書かれたコードを用意するため
リーダブルなコードを書いて!✓
✓
課題の実装の進め方 Powered by Rabbit 2.1.3
目的じゃないこと
テクニックをたくさん覚える✓
難しいプログラムでも
実装できるようになる
✓
速く実装できるようになる✓
課題の実装の進め方 Powered by Rabbit 2.1.3
課題の傾向
技術的に難しいことは
意図的に避けている
✓
段階的に改良していく✓
時間内で実装しきれない分量
すべて実装する必要はない!✓
✓
課題の実装の進め方 Powered by Rabbit 2.1.3
メモを書く
工夫したことはissueに書く
1つのissueに1つの工夫でOK✓
✓
メモに含めること
実際のコードのURL✓
リーダブルな理由✓
✓
課題の実装の進め方 Powered by Rabbit 2.1.3
メモ例
タイトル: 統一されたスタイル ← リーダブルな書き方の名前
↓本文↓
--
URL: https://github.com/kou/.../commit/eb02be
コード:
@@ -64,7 +64,7 @@ void add_recipe_to_RecipeList(...) {
void open_RecipeList(RecipeList *list, char *path) {
FILE *fp;
/* ファイルを開く */
- if ((fp = fopen(path , "r")) == NULL){
+ if ((fp = fopen(path , "r")) == NULL) {
fprintf (stderr, "ファイルが開けませんn");
fclose(fp);
exit(EXIT_FAILURE);
理由:
ファイル内でスタイルを統一しているので読みやすくなっている。
課題の実装の進め方 Powered by Rabbit 2.1.3
リーダブルコードとは
読む人基準
「読む人」が 読みやすいなら
リーダブル
✓
✓
読む人の視点を意識してみて
どんな人が読む?✓
どんな前提知識がある?✓
✓
課題の実装の進め方 Powered by Rabbit 2.1.3
困ったら1
チューターに相談
チューターは答えを教えない✓
一緒に考えてくれる✓
✓
答えを教えない理由
参加者が考える機会を奪わないため✓
一緒に考えると新しい視点が増える✓
✓
課題の実装の進め方 Powered by Rabbit 2.1.3
困ったら2
まわりの参加者に相談
答えを教えてもよい✓
一緒に考えてもよい✓
✓
条件
答えを教えるときは理由も伝える
(教える参加者が考える機会になる!)
✓
聞く人は理由も聞く
(考え方を知ると新しい視点でコードを読める!)
✓
✓
課題の実装の進め方 Powered by Rabbit 2.1.3
実装開始
仕様
task.md✓
✓
練習
講師がtask.mdを読んで説明✓
仕様1をみんなで実装✓
実装できたら休憩→仕様2以降実装✓
✓

More Related Content

What's hot

Scrum始めました
Scrum始めましたScrum始めました
Scrum始めましたminamo
 
GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方Hiroyuki Tanaka
 
ゲーム向けマネジメントツール 「Hansoft」の概要と コンシューマ開発で1年間 運用した事例
ゲーム向けマネジメントツール「Hansoft」の概要とコンシューマ開発で1年間運用した事例ゲーム向けマネジメントツール「Hansoft」の概要とコンシューマ開発で1年間運用した事例
ゲーム向けマネジメントツール 「Hansoft」の概要と コンシューマ開発で1年間 運用した事例Hiroyuki Tanaka
 
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?Yasuhiko Yamamoto
 
Serverless LT 20201202
Serverless LT 20201202Serverless LT 20201202
Serverless LT 20201202ssuserebdd2a
 
チラ見せ♡ナイト@20150410 LT公開用
チラ見せ♡ナイト@20150410 LT公開用チラ見せ♡ナイト@20150410 LT公開用
チラ見せ♡ナイト@20150410 LT公開用Keisuke Utsumi
 
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!慎一 古賀
 
アプリケーション開発目線から考える テストの書き方について
アプリケーション開発目線から考える テストの書き方についてアプリケーション開発目線から考える テストの書き方について
アプリケーション開発目線から考える テストの書き方についてbitbank, Inc. Tokyo, Japan
 
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップJavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ慎一 古賀
 
PMBOKで学ぶマネジメント基本のキ
PMBOKで学ぶマネジメント基本のキPMBOKで学ぶマネジメント基本のキ
PMBOKで学ぶマネジメント基本のキHiroyuki Tanaka
 
ペアプロのオイシイ料理法、おしえます。
ペアプロのオイシイ料理法、おしえます。ペアプロのオイシイ料理法、おしえます。
ペアプロのオイシイ料理法、おしえます。takepu
 
計算力学技術者試験勉強会の告知
計算力学技術者試験勉強会の告知計算力学技術者試験勉強会の告知
計算力学技術者試験勉強会の告知Shigenori Ueda
 
コンシューマゲーム開発におけるHansoftの活用事例
コンシューマゲーム開発におけるHansoftの活用事例コンシューマゲーム開発におけるHansoftの活用事例
コンシューマゲーム開発におけるHansoftの活用事例Hiroyuki Tanaka
 
Redmineによる試験勉強管理の結末
Redmineによる試験勉強管理の結末Redmineによる試験勉強管理の結末
Redmineによる試験勉強管理の結末Shigenori Ueda
 
Jenkinsを使ったコンシューマゲームでのデプロイとテスト
Jenkinsを使ったコンシューマゲームでのデプロイとテストJenkinsを使ったコンシューマゲームでのデプロイとテスト
Jenkinsを使ったコンシューマゲームでのデプロイとテストHiroyuki Tanaka
 
俺とInstant team building
俺とInstant team building俺とInstant team building
俺とInstant team buildingMasayuki KaToH
 
リーダブルコード勉強会 in 筑波大の進め方
リーダブルコード勉強会 in 筑波大の進め方リーダブルコード勉強会 in 筑波大の進め方
リーダブルコード勉強会 in 筑波大の進め方Kouhei Sutou
 

What's hot (20)

Scrum始めました
Scrum始めましたScrum始めました
Scrum始めました
 
GCSアジャイル開発を使ったゲームの作り方
 GCSアジャイル開発を使ったゲームの作り方 GCSアジャイル開発を使ったゲームの作り方
GCSアジャイル開発を使ったゲームの作り方
 
ゲーム向けマネジメントツール 「Hansoft」の概要と コンシューマ開発で1年間 運用した事例
ゲーム向けマネジメントツール「Hansoft」の概要とコンシューマ開発で1年間運用した事例ゲーム向けマネジメントツール「Hansoft」の概要とコンシューマ開発で1年間運用した事例
ゲーム向けマネジメントツール 「Hansoft」の概要と コンシューマ開発で1年間 運用した事例
 
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
Visual Studio 2015 の新機能: Pex はユニットテストの福音となるか!?
 
Serverless LT 20201202
Serverless LT 20201202Serverless LT 20201202
Serverless LT 20201202
 
チラ見せ♡ナイト@20150410 LT公開用
チラ見せ♡ナイト@20150410 LT公開用チラ見せ♡ナイト@20150410 LT公開用
チラ見せ♡ナイト@20150410 LT公開用
 
本当に怖いパフォーマンスが悪い実装 #phpcon2013
本当に怖いパフォーマンスが悪い実装 #phpcon2013本当に怖いパフォーマンスが悪い実装 #phpcon2013
本当に怖いパフォーマンスが悪い実装 #phpcon2013
 
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!
本になりました! ~ チーム開発の教科書 C#によるモダンな開発を実践しよう!
 
アプリケーション開発目線から考える テストの書き方について
アプリケーション開発目線から考える テストの書き方についてアプリケーション開発目線から考える テストの書き方について
アプリケーション開発目線から考える テストの書き方について
 
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップJavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
JavaScriptを使った開発を始めるなら!TypeScriptをはじめよう ~ ステップアップ
 
PMBOKで学ぶマネジメント基本のキ
PMBOKで学ぶマネジメント基本のキPMBOKで学ぶマネジメント基本のキ
PMBOKで学ぶマネジメント基本のキ
 
ペアプロのオイシイ料理法、おしえます。
ペアプロのオイシイ料理法、おしえます。ペアプロのオイシイ料理法、おしえます。
ペアプロのオイシイ料理法、おしえます。
 
導入
導入導入
導入
 
計算力学技術者試験勉強会の告知
計算力学技術者試験勉強会の告知計算力学技術者試験勉強会の告知
計算力学技術者試験勉強会の告知
 
コンシューマゲーム開発におけるHansoftの活用事例
コンシューマゲーム開発におけるHansoftの活用事例コンシューマゲーム開発におけるHansoftの活用事例
コンシューマゲーム開発におけるHansoftの活用事例
 
Git入門
Git入門Git入門
Git入門
 
Redmineによる試験勉強管理の結末
Redmineによる試験勉強管理の結末Redmineによる試験勉強管理の結末
Redmineによる試験勉強管理の結末
 
Jenkinsを使ったコンシューマゲームでのデプロイとテスト
Jenkinsを使ったコンシューマゲームでのデプロイとテストJenkinsを使ったコンシューマゲームでのデプロイとテスト
Jenkinsを使ったコンシューマゲームでのデプロイとテスト
 
俺とInstant team building
俺とInstant team building俺とInstant team building
俺とInstant team building
 
リーダブルコード勉強会 in 筑波大の進め方
リーダブルコード勉強会 in 筑波大の進め方リーダブルコード勉強会 in 筑波大の進め方
リーダブルコード勉強会 in 筑波大の進め方
 

Viewers also liked

Viewers also liked (6)

Publicidad Julio
Publicidad JulioPublicidad Julio
Publicidad Julio
 
Eterotopie Manageriali
Eterotopie ManagerialiEterotopie Manageriali
Eterotopie Manageriali
 
RailswayCon 2010 - Dynamic Language VMs
RailswayCon 2010 - Dynamic Language VMsRailswayCon 2010 - Dynamic Language VMs
RailswayCon 2010 - Dynamic Language VMs
 
Resume
ResumeResume
Resume
 
Hermandad de la Plaza
Hermandad de la PlazaHermandad de la Plaza
Hermandad de la Plaza
 
Php Ppt
Php PptPhp Ppt
Php Ppt
 

Similar to 実践リーダブルコード - 課題の実装の進め方

SEゼミ2015 - 練習
SEゼミ2015 - 練習SEゼミ2015 - 練習
SEゼミ2015 - 練習Kouhei Sutou
 
リーダブルコードワークショップ(パイオニア向け)の概要
リーダブルコードワークショップ(パイオニア向け)の概要リーダブルコードワークショップ(パイオニア向け)の概要
リーダブルコードワークショップ(パイオニア向け)の概要Kouhei Sutou
 
リーダブルコード勉強会 in 筑波大 - コードチェンジ
リーダブルコード勉強会 in 筑波大 - コードチェンジリーダブルコード勉強会 in 筑波大 - コードチェンジ
リーダブルコード勉強会 in 筑波大 - コードチェンジKouhei Sutou
 
リーダブルコードワークショップ(パイオニア向け)のまとめ
リーダブルコードワークショップ(パイオニア向け)のまとめリーダブルコードワークショップ(パイオニア向け)のまとめ
リーダブルコードワークショップ(パイオニア向け)のまとめKouhei Sutou
 
SEゼミ2014 - コードチェンジ
SEゼミ2014 - コードチェンジSEゼミ2014 - コードチェンジ
SEゼミ2014 - コードチェンジKouhei Sutou
 
SEゼミ2015 - コードチェンジ
SEゼミ2015 - コードチェンジSEゼミ2015 - コードチェンジ
SEゼミ2015 - コードチェンジKouhei Sutou
 
SEゼミ2015 - OSS Hack 4 Beginners - フィードバック
SEゼミ2015 - OSS Hack 4 Beginners - フィードバックSEゼミ2015 - OSS Hack 4 Beginners - フィードバック
SEゼミ2015 - OSS Hack 4 Beginners - フィードバックKouhei Sutou
 
Potatotops20141217
Potatotops20141217Potatotops20141217
Potatotops20141217Mogi Isamu
 
リーダブルコードを読んだ後
リーダブルコードを読んだ後リーダブルコードを読んだ後
リーダブルコードを読んだ後Kouhei Sutou
 
OSS Gateワークショップ(チュートリアル) - フィードバック
OSS Gateワークショップ(チュートリアル) - フィードバックOSS Gateワークショップ(チュートリアル) - フィードバック
OSS Gateワークショップ(チュートリアル) - フィードバックKouhei Sutou
 
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpテストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpkyon mm
 
開発者は仕事でリーダブルなコードを書けるのか?
開発者は仕事でリーダブルなコードを書けるのか?開発者は仕事でリーダブルなコードを書けるのか?
開発者は仕事でリーダブルなコードを書けるのか?Kouhei Sutou
 
ブラウザだけで学ぶWebアプリ開発
ブラウザだけで学ぶWebアプリ開発 ブラウザだけで学ぶWebアプリ開発
ブラウザだけで学ぶWebアプリ開発 schoowebcampus
 
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北Akiko Kosaka
 
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北Akiko Kosaka
 
SEゼミ2015 - OSS Hack 4 Beginners - まとめ
SEゼミ2015 - OSS Hack 4 Beginners - まとめSEゼミ2015 - OSS Hack 4 Beginners - まとめ
SEゼミ2015 - OSS Hack 4 Beginners - まとめKouhei Sutou
 
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例UnityTechnologiesJapan002
 
今、おさえておきたい DevOps
今、おさえておきたい DevOps 今、おさえておきたい DevOps
今、おさえておきたい DevOps 智治 長沢
 

Similar to 実践リーダブルコード - 課題の実装の進め方 (20)

SEゼミ2015 - 練習
SEゼミ2015 - 練習SEゼミ2015 - 練習
SEゼミ2015 - 練習
 
リーダブルコードワークショップ(パイオニア向け)の概要
リーダブルコードワークショップ(パイオニア向け)の概要リーダブルコードワークショップ(パイオニア向け)の概要
リーダブルコードワークショップ(パイオニア向け)の概要
 
リーダブルコード勉強会 in 筑波大 - コードチェンジ
リーダブルコード勉強会 in 筑波大 - コードチェンジリーダブルコード勉強会 in 筑波大 - コードチェンジ
リーダブルコード勉強会 in 筑波大 - コードチェンジ
 
リーダブルコードワークショップ(パイオニア向け)のまとめ
リーダブルコードワークショップ(パイオニア向け)のまとめリーダブルコードワークショップ(パイオニア向け)のまとめ
リーダブルコードワークショップ(パイオニア向け)のまとめ
 
SEゼミ2014 - コードチェンジ
SEゼミ2014 - コードチェンジSEゼミ2014 - コードチェンジ
SEゼミ2014 - コードチェンジ
 
SEゼミ2015 - コードチェンジ
SEゼミ2015 - コードチェンジSEゼミ2015 - コードチェンジ
SEゼミ2015 - コードチェンジ
 
SEゼミ2015 - OSS Hack 4 Beginners - フィードバック
SEゼミ2015 - OSS Hack 4 Beginners - フィードバックSEゼミ2015 - OSS Hack 4 Beginners - フィードバック
SEゼミ2015 - OSS Hack 4 Beginners - フィードバック
 
Potatotops20141217
Potatotops20141217Potatotops20141217
Potatotops20141217
 
リーダブルコードを読んだ後
リーダブルコードを読んだ後リーダブルコードを読んだ後
リーダブルコードを読んだ後
 
OSS Gateワークショップ(チュートリアル) - フィードバック
OSS Gateワークショップ(チュートリアル) - フィードバックOSS Gateワークショップ(チュートリアル) - フィードバック
OSS Gateワークショップ(チュートリアル) - フィードバック
 
テストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jpテストとリファクタリングに関する深い方法論 #wewlc_jp
テストとリファクタリングに関する深い方法論 #wewlc_jp
 
開発者は仕事でリーダブルなコードを書けるのか?
開発者は仕事でリーダブルなコードを書けるのか?開発者は仕事でリーダブルなコードを書けるのか?
開発者は仕事でリーダブルなコードを書けるのか?
 
ブラウザだけで学ぶWebアプリ開発
ブラウザだけで学ぶWebアプリ開発 ブラウザだけで学ぶWebアプリ開発
ブラウザだけで学ぶWebアプリ開発
 
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
 
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
AgileJapan2010 官公庁でも取り組み始めたアジャイル! NECソフトウェア東北
 
SEゼミ2015 - OSS Hack 4 Beginners - まとめ
SEゼミ2015 - OSS Hack 4 Beginners - まとめSEゼミ2015 - OSS Hack 4 Beginners - まとめ
SEゼミ2015 - OSS Hack 4 Beginners - まとめ
 
20130320 agile pm
20130320 agile pm20130320 agile pm
20130320 agile pm
 
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
【Unite Tokyo 2019】運用中超大規模タイトルにおけるUnityアップデート課題の解決手法と事例
 
DevOps、その前に
DevOps、その前にDevOps、その前に
DevOps、その前に
 
今、おさえておきたい DevOps
今、おさえておきたい DevOps 今、おさえておきたい DevOps
今、おさえておきたい DevOps
 

More from Kouhei Sutou

RubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache ArrowRubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache ArrowKouhei Sutou
 
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021Kouhei Sutou
 
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache ArrowRubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache ArrowKouhei Sutou
 
Rubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアRubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアKouhei Sutou
 
Apache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのかApache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのかKouhei Sutou
 
Apache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory dataApache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory dataKouhei Sutou
 
Redmine検索の未来像
Redmine検索の未来像Redmine検索の未来像
Redmine検索の未来像Kouhei Sutou
 
Apache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory dataApache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory dataKouhei Sutou
 
Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6Kouhei Sutou
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームKouhei Sutou
 
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムKouhei Sutou
 
MySQL 8.0でMroonga
MySQL 8.0でMroongaMySQL 8.0でMroonga
MySQL 8.0でMroongaKouhei Sutou
 
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!Kouhei Sutou
 
MariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システムMariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システムKouhei Sutou
 
PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!Kouhei Sutou
 

More from Kouhei Sutou (20)

RubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache ArrowRubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
RubyKaigi 2022 - Fast data processing with Ruby and Apache Arrow
 
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
Apache Arrow Flight – ビッグデータ用高速データ転送フレームワーク #dbts2021
 
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache ArrowRubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
RubyKaigi Takeout 2021 - Red Arrow - Ruby and Apache Arrow
 
Rubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェアRubyと仕事と自由なソフトウェア
Rubyと仕事と自由なソフトウェア
 
Apache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのかApache Arrowフォーマットはなぜ速いのか
Apache Arrowフォーマットはなぜ速いのか
 
Apache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory dataApache Arrow 1.0 - A cross-language development platform for in-memory data
Apache Arrow 1.0 - A cross-language development platform for in-memory data
 
Apache Arrow 2019
Apache Arrow 2019Apache Arrow 2019
Apache Arrow 2019
 
Redmine検索の未来像
Redmine検索の未来像Redmine検索の未来像
Redmine検索の未来像
 
Apache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory dataApache Arrow - A cross-language development platform for in-memory data
Apache Arrow - A cross-language development platform for in-memory data
 
Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6Better CSV processing with Ruby 2.6
Better CSV processing with Ruby 2.6
 
Apache Arrow
Apache ArrowApache Arrow
Apache Arrow
 
Apache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォームApache Arrow - データ処理ツールの次世代プラットフォーム
Apache Arrow - データ処理ツールの次世代プラットフォーム
 
Apache Arrow
Apache ArrowApache Arrow
Apache Arrow
 
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システムMySQL・PostgreSQLだけで作る高速あいまい全文検索システム
MySQL・PostgreSQLだけで作る高速あいまい全文検索システム
 
MySQL 8.0でMroonga
MySQL 8.0でMroongaMySQL 8.0でMroonga
MySQL 8.0でMroonga
 
My way with Ruby
My way with RubyMy way with Ruby
My way with Ruby
 
Red Data Tools
Red Data ToolsRed Data Tools
Red Data Tools
 
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
Mroongaの高速全文検索機能でWordPress内のコンテンツを有効活用!
 
MariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システムMariaDBとMroongaで作る全言語対応超高速全文検索システム
MariaDBとMroongaで作る全言語対応超高速全文検索システム
 
PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!PGroonga 2 – Make PostgreSQL rich full text search system backend!
PGroonga 2 – Make PostgreSQL rich full text search system backend!
 

実践リーダブルコード - 課題の実装の進め方

  • 1. 課題の実装の進め方 Powered by Rabbit 2.1.3 課題の実装の進め方 須藤功平 株式会社クリアコード 実践リーダブルコード 2015-06-24
  • 2. 課題の実装の進め方 Powered by Rabbit 2.1.3 実装する目的 午後の作業の布石 ↓ 課題の仕様を理解するため✓ 読まれることを意識して 書かれたコードを用意するため リーダブルなコードを書いて!✓ ✓
  • 3. 課題の実装の進め方 Powered by Rabbit 2.1.3 目的じゃないこと テクニックをたくさん覚える✓ 難しいプログラムでも 実装できるようになる ✓ 速く実装できるようになる✓
  • 4. 課題の実装の進め方 Powered by Rabbit 2.1.3 課題の傾向 技術的に難しいことは 意図的に避けている ✓ 段階的に改良していく✓ 時間内で実装しきれない分量 すべて実装する必要はない!✓ ✓
  • 5. 課題の実装の進め方 Powered by Rabbit 2.1.3 メモを書く 工夫したことはissueに書く 1つのissueに1つの工夫でOK✓ ✓ メモに含めること 実際のコードのURL✓ リーダブルな理由✓ ✓
  • 6. 課題の実装の進め方 Powered by Rabbit 2.1.3 メモ例 タイトル: 統一されたスタイル ← リーダブルな書き方の名前 ↓本文↓ -- URL: https://github.com/kou/.../commit/eb02be コード: @@ -64,7 +64,7 @@ void add_recipe_to_RecipeList(...) { void open_RecipeList(RecipeList *list, char *path) { FILE *fp; /* ファイルを開く */ - if ((fp = fopen(path , "r")) == NULL){ + if ((fp = fopen(path , "r")) == NULL) { fprintf (stderr, "ファイルが開けませんn"); fclose(fp); exit(EXIT_FAILURE); 理由: ファイル内でスタイルを統一しているので読みやすくなっている。
  • 7. 課題の実装の進め方 Powered by Rabbit 2.1.3 リーダブルコードとは 読む人基準 「読む人」が 読みやすいなら リーダブル ✓ ✓ 読む人の視点を意識してみて どんな人が読む?✓ どんな前提知識がある?✓ ✓
  • 8. 課題の実装の進め方 Powered by Rabbit 2.1.3 困ったら1 チューターに相談 チューターは答えを教えない✓ 一緒に考えてくれる✓ ✓ 答えを教えない理由 参加者が考える機会を奪わないため✓ 一緒に考えると新しい視点が増える✓ ✓
  • 9. 課題の実装の進め方 Powered by Rabbit 2.1.3 困ったら2 まわりの参加者に相談 答えを教えてもよい✓ 一緒に考えてもよい✓ ✓ 条件 答えを教えるときは理由も伝える (教える参加者が考える機会になる!) ✓ 聞く人は理由も聞く (考え方を知ると新しい視点でコードを読める!) ✓ ✓
  • 10. 課題の実装の進め方 Powered by Rabbit 2.1.3 実装開始 仕様 task.md✓ ✓ 練習 講師がtask.mdを読んで説明✓ 仕様1をみんなで実装✓ 実装できたら休憩→仕様2以降実装✓ ✓