進め方

: author

須藤功平

: institution

株式会社クリアコード

: content-source

SEゼミ2015 - リーダブルコード勉強会

: date

2015-06-06

: allotted-time

15m

: theme

clear-code

SEゼミの立場一覧

* 参加者(みなさん)
* スポンサー
* 運営

立場別SEゼミの目的

* 参加者
  * (('wait'))OSSを開発したい!
* スポンサー
  * (('wait'))一緒に働きたい人をみつけたい!
  * (('wait'))一緒にOSSを開発するとわかりそう!
  * (('wait'))→((*参加者のOSS開発参加を支援*))
* 運営:↑をサポートしたい!

参加者のふるまい方

* 選ばれている!と気負わない
  * 目的(OSSの開発)に集中すればよい
* スポンサー
  * 本来の参加者に興味
* 仮面をかぶらない
  * 入社→ミスマッチ→お互いに不幸!\n
    (('note:仮面をかぶり続けられるならアリ'))\n
    (('note:「m_seki ロールプレイングゲーム」で検索'))

スポンサー

* たくさんいる
* 勉強会中
  * 企業は気にしない
  * 担当メンターの人から学ぶ
* ランチ・懇親会
  * 様々な企業の様々なメンターと交流
  * →今まで知らなかった((*新しい視点*))!

スポンサー(1)

* クラウドワークスさん
* エス・エム・エスさん
* 万葉さん
* スマートエデュケーションさん
* クックパッドさん

スポンサー(2)

* ビズリーチさん
* VASILYさん
* Treasure Dataさん
* ピクシブさん
* 楽天さん

スポンサー(3)

* CROOZさん
* ミラクル・リナックスさん
* フリークアウトさん
* ぐるなびさん

トレーナー

((‘tag:center’))((‘tag:margin-bottom * 2’)) 須藤

* 運営
* 進行と全体を気にかける係
* リーダブルコード(本)の\n
  「解説」の著者

メンター

* 参加者のサポート係
* 現役超優秀エンジニア
* スポンサー企業または運営
* ((*新しい視点*))を与えてくれる
  * →困ったり悩んだら積極的に相談

この勉強会の目的

((‘tag:center’))((‘tag:large’)) 参加者のn リーダブルコード力のn レベルアップ

((‘ ’))

目的の理由

OSSの開発にn 役立つから

役立つ場面例

((‘tag:center’)) ((‘tag:margin-bottom’)) Pull Requestを送るとき

* 開発者にリーダブルなコード
  * (('wait'))→なるほど、こうしたいのか!
  * (('wait'))→話が進みやすい

参加者の目的の再確認

* SEゼミ
  * OSSを開発したい!
* リーダブルコード勉強会
  * リーダブルコード力のレベルアップ
  * ↑はOSSの開発に役立つから

目的の実現方法案

(1) テクニックを知る
    * (('wait'))本を読む(すでに読んだはず!)
    * (('wait'))教えてもらう
(2) テクニックを見つける
    * (('wait'))((*他の人のコードを読む*))

テクニックを知る

* メリット
  * すぐにレベルアップできる
    * まとまっているから
* デメリット
  * レベルアップに上限がある
    * 明文化されていないテクニックは知れない

テクニックを見つける

* デメリット
  * すぐには見つけられない
    * まとまっていないから
* メリット
  * レベルアップに上限がない
    * 世の中には野生のリーダブルコードが\n
      たくさんあるのだ!

テクニック発見パターン

(1) よいテクニックを盗む
    * この書き方読みやすいな!
    * →自分のコードに取り入れよう!
(2) よいテクニックを発想する
    * この書き方読みにくいな…
    * →こうすると読みやすくなるな!

目的の実現方法

(1) テクニックを知る
    * 本やWebサイトで学んで
(2) ((*テクニックを見つける*))
    * この勉強会で体験して

実現方法の概要

((‘tag:center’)) ((‘tag:large’)) コードをn 読まざるを得ないn 状況で開発

((‘ ’))

具体的な実現方法

(1) 全員共通の課題を用意
(2) 課題を実装
(3) 実装を交換
(4) 交換した実装で開発継続
    * ↑他の人のコードを読まないと\n
      継続して開発できない!

今日の流れ - 午前

* 10:00- 進め方の説明
* 10:40- 実装
* 12:00- 無料ランチ\n
  (フリークアウトさん提供!)
* 13:00- スポンサーのLT

今日の流れ - 昼下がり

* 13:30- メビュー
* 13:40- チェンジして実装
* 15:30- グループふりかえり
* 16:10- ふりかえり内容紹介

今日の流れ - 夕方

* 16:20- メビュー
* 16:50- まとめ
* 17:00- 質疑応答
* 17:30- アンケート記入
* 18:00- 無料懇親会

参考情報

OSSの開発とn リーダブルn コード

リーダブルコード?

((‘tag:center’)) リーダブルn コードはn どんなコード?

リーダブルコード

読む人がn 読みやすいならn リーダブル

リーダブル

* 読む人違えばリーダブルも違う
* OSS毎に読む人が違う
  * →OSS毎にリーダブルも違う!
  * どうすれば…

ヒント:OSSの開発

((‘tag:center’)) ((‘tag:margin-bottom’)) コードを読むことは当たり前

* オープンソースの定義(2/10):
  * 「((*ソースコードを含むこと*))」
* コードを読めること
  * →オープンソースの特徴の1つ

((‘note:オープンソースソフトウェアとは「オープンソースの定義」を’))n ((‘note:満たしたライセンスが設定されているソフトウェアのこと’))

OSSのリーダブルを知る方法

コードを読むn ↓n リーダブルがn わかる

今日やること

(1) コードを読む
(2) テクニックを見つける
(3) ↑を活かしてコードを書く

((‘tag:center’)) ↓n OSSの開発で当たり前のことをやるn ↓n リーダブルコード力アップ!