Giter Site home page Giter Site logo

readable-code-workshop's Introduction

リーダブルコードワークショップ

このリポジトリーは、クリアコードが実施する「日々リーダブルコードを書くことを当たり前にする」ワークショップ用の資料を管理するリポジトリーです。

このワークショップはリーダブルコードの解説を書いた須藤が設計しました。

対象者

  • リーダブルコードを読んで理解はしたが実践はできていない開発者
  • リーダブルコードの解説に書いている次のことを実践したい開発チーム
    • 自分が日々リーダブルなコードを書くプログラマーになりたい方
    • 自分のチームがリーダブルなコードを書くチームになりたい方
    • 自分のチームに新しいメンバーが入ってきたら自分たちが書くリーダブルなコードでリーダブルなコードの書き方を伝えるようになりたい方

対象プログラミング言語

ワークショップでは実際にコードを読み書きしながらリーダブルコードを書くことを当たり前にしていきます。リーダブルコードは言語に依存しない概念なので、普段使っているプログラミング言語を使って参加できます。例えば、次のプログラミング言語で参加できます。このリストに載っていないプログラミング言語で参加したい場合はお問い合わせください。

  • Ruby
  • Python
  • Perl
  • PHP
  • C
  • C++
  • JavaScript
  • Java
  • Objective-C

内容

ワークショップの内容は次の資料を参考にしてください。「日々リーダブルコードを書くことを当たり前にする」という目的を実現するための内容になっています。

このリポジトリーにある資料はCC-BY-SA-4.0(著作者:株式会社クリアコード)のライセンスで自由に利用できます。ワークショップに参加した人が周囲の人たちにさらに広めるために使うこともできます。

開催予定

  • なし

過去の開催

問い合わせ先

このワークショップはコードリーダー育成支援サービスの一環として実施しています。リーダブルコードを当たり前にしたい開発会社の社内研修としても実施しています。開催依頼・ご質問などはお問い合わせフォームからお問い合わせください。

readable-code-workshop's People

Contributors

kou avatar okkez avatar piroor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

readable-code-workshop's Issues

2015-12-22: リーダブルコードメモ

「自分が書いたリーダブルコード」と「自分が見つけたリーダブルコード」をここにメモしていっていてください。目的は「リーダブルコードを見つける練習」です。単に「書く」「見つける」だけでなく、「メモとしてまとめる」ことまですることで「再利用可能な状態」(=他の人に説明できる、他の場面で同じ書き方を適用できる)まで自分の中で整理されることを期待しています。

1つのリーダブルコードにつき1つのコメントにしてください。

各コメントには次の内容を含めてください。

  • サマリー(あるいはタイトルあるいは一言説明)
  • 実際のコード
  • どうしてリーダブルだと考えたかの説明
  • 「見つけた」場合のみ:見つけた経緯(あるいはきっかけ)

コメントに書くときは次のテンプレートを使ってください。

### サマリー

(ここにサマリーを書く)

### 実際のコード

```java
(ここに実際のコードを書く)
```

### どうしてリーダブルだと考えたかの説明

(ここに説明を書く)

### 見つけた経緯

(「見つけた」場合のみ。ここに見つけた経緯を書く。)

以下は具体例です。


サマリー

自己記述的定数名

実際のコード

https://github.com/doraemon13x/doraemon13x-sezemi-2014-readable-code-2/blob/master/mission3.c#L9

exit(EXIT_FAILURE); /* エラーの場合は異常終了する */

どうしてリーダブルだと考えたかの説明

コマンドの終了ステータスは、正常終了するときは0、異常終了するときは0以外の値を返すのが通例です。そのため、このコードは次のようにしても通例通りの動きになります。

exit(1);

ただ、動くのは動きますが、EXIT_FAILUREという名前を使っている方が「失敗して終了するんだな」というのがわかりやすいのでリーダブルだと考えました。

なお、EXIT_SUCCESSというのもあるので、同様の理由で正常終了するときはそれを使うのがよいと思います。

見つけた経緯

ちゃんとエラー処理をしていて立派だなぁと思って読み進めたら異常終了することがわかりやすいコードだと気づきました。


今後の課題メモ

気付いたことをメモしていく。

  • PCを貸し出すときは、基本的な環境を構築しておく
  • git client も確認しておく。特にWindows
  • 言語ごとに一般的な開発環境についてまとめておく

「そのレシピ情報をデータとして別のファイルに保存し」という箇所で別のファイルに出力するという意味に取ってしまう人がいた。

2015-12-22: コミットメール用メーリングリストに登録

次の内容のEメールを送信する。

To: [email protected]
Cc: [email protected]
Subject: Subscribe

subscribe

#{自分のGitHubアカウント名}

1年間投稿がないと勝手に消滅するメーリングリストなので、明示的に退会処理をする必要がありません。

明示的に退会するときは次の内容のEメールを送信します。注意点は「HTMLメール」ではなく「テキストメール」にすることです。

To: [email protected]
Subject: Unsubscribe

unsubscribe

2015-08-11: リーダブルコードメモ

「自分が書いたリーダブルコード」と「自分が見つけたリーダブルコード」をここにメモしていっていてください。目的は「リーダブルコードを見つける練習」です。単に「書く」「見つける」だけでなく、「メモとしてまとめる」ことまですることで「再利用可能な状態」(=他の人に説明できる、他の場面で同じ書き方を適用できる)まで自分の中で整理されることを期待しています。

1つのリーダブルコードにつき1つのコメントにしてください。

各コメントには次の内容を含めてください。

  • サマリー(あるいはタイトルあるいは一言説明)
  • 実際のコード
  • どうしてリーダブルだと考えたかの説明
  • 「見つけた」場合のみ:見つけた経緯(あるいはきっかけ)

コメントに書くときは次のテンプレートを使ってください。

### サマリー

(ここにサマリーを書く)

### 実際のコード

```ruby
(ここに実際のコードを書く)
```

### どうしてリーダブルだと考えたかの説明

(ここに説明を書く)

### 見つけた経緯

(「見つけた」場合のみ。ここに見つけた経緯を書く。)

以下は具体例です。


サマリー

自己記述的定数名

実際のコード

https://github.com/doraemon13x/doraemon13x-sezemi-2014-readable-code-2/blob/master/mission3.c#L9

exit(EXIT_FAILURE); /* エラーの場合は異常終了する */

どうしてリーダブルだと考えたかの説明

コマンドの終了ステータスは、正常終了するときは0、異常終了するときは0以外の値を返すのが通例です。そのため、このコードは次のようにしても通例通りの動きになります。

exit(1);

ただ、動くのは動きますが、EXIT_FAILUREという名前を使っている方が「失敗して終了するんだな」というのがわかりやすいのでリーダブルだと考えました。

なお、EXIT_SUCCESSというのもあるので、同様の理由で正常終了するときはそれを使うのがよいと思います。

見つけた経緯

ちゃんとエラー処理をしていて立派だなぁと思って読み進めたら異常終了することがわかりやすいコードだと気づきました。


Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.