omohayui blog

おも‐はゆ・い【面映ゆい】[形][文]おもはゆ・し[ク]《顔を合わせるとまばゆく感じられる意》きまりが悪い。てれくさい。

リーダブルコード読書会 1〜3章

第1章 理解しやすいコード

優れたコードって?

簡潔で短いコード < 理解しやすいコード

  • 1行にしたことでコードは短くなったけど、カッコがどこにかかっているのがわけわからん。
  • コメントをつけた方がよい場合もある
      -> 何をしているかより、何のためにしているか(個人談

まとめ

理解しやすいコードを意識しよう
(2章以降を読んで書けるようになろう)


第2章 名前に情報を詰め込む

名前は短いコメントのようなもの

NG)情報の一部を名前にする  
 ↓↓↓  
必要な情報を名前にする  

  • 汎用的な名前を避ける
    • メソッド: get, send, find, start, make
    • 変数: tmp, retval, results
    • ループイテレータ: i, j, k
  • プロジェクト固有の省略形
  • 具体的な名前を使う
  • 値の単位
  • 名前の長さ
    • スコープが小さければ短い名前でもいい
    • 単語補完のコマンド必須
  • 名前のフォーマット
    • クラス名: UpperCamelCase
    • メソッド: lowerCamelCase
    • 変数名: lower_separated
  • 定数: UPPER_CASE
     

第3章 誤解されない名前

誤解される名前に気を付けろ

他の意味にとらえられる、曖昧になる名前は使うべからず

  • 曖昧な名前
    • filter, Clip(text, length)
  • 未満・以下
    • limit -> 以下?未満?
    • max -> 以下!
  • 範囲
    • start, stop -> stopは範囲内?外?
    • first, last -> lastは範囲内
  • 排他的範囲
    • begin, end -> endは範囲外
  • ブール値の名前
    • true, falseの定義が明確であること
    • 頭に is・has・can・should 等をつける
  • ユーザの期待に合わせる
    • get(), size() ->は軽量なメソッドが期待される

ChromeでスマホUAに切り替える

スマホUAに切り替える方法を教えて下さいという話を頂いたので、
図入りで説明したくなりました。
chromeだとアドオンなしで超簡単にできます。

  1. Chromeのブラウザを立ち上げてから、Developer Toolsを開く

  Macなら → CommandOptionIキー

  Windowsなら → F12キー

  2.スマホマークをクリック

f:id:omohayui:20150606003153p:plain

  3.デバイスを選択

f:id:omohayui:20150606003241p:plain   (例) iPhone6

画面のサイズも切り替え可能。便利ですねー。

bundle install でエラー

MacOSⅩ(10.10.2)で通常通りにrailsで bundle install したらエラー

% bundle install
  :
  :
/Library/Developer/CommandLineTools/usr/bin/../include/c++/v1/iterator:341:10: fatal error: '__debug' file not found
#include <__debug>
         ^
1 error generated.

なんだかYosemiteのCommandLineToolsが悪さしてそう・・・

で、AppStoreでCommandLineToolsのバリデーションをアップデートしたら直った。

CommandLineToolsのバージョン:6.3

▼このあたりでお話あったようだ
https://github.com/knu/ruby-unf/issues/11

MacにPerlbrewをいれてみた

perlの環境構築するのにバージョンを切り替えられたりしたほうがいいので、 Perlbrewでインストールしてみた。

Perlbrew: http://perlbrew.pl/

インストール

$curl -kL http://install.perlbrew.pl | bash

homeディレクトリ下にperl5というディレクトリが作成される。

パスを通すための設定

$vim ~/.zshrc (bashの人は~/.bashrc等)
▼追記内容
source ~/perl5/perlbrew/etc/bashrc

設定反映

$source ~/.zshrc (bashの人は~/.bashrc等)

確認

$perlbrew --version
  ~/perl5/perlbrew/bin/perlbrew  - App::perlbrew/0.73

インストールできたもよう。

インストールできるバージョンの確認

$perlbrew available
  perl-5.21.10
  perl-5.20.2
  perl-5.18.4
  perl-5.16.3
  perl-5.14.4
  perl-5.12.5
  perl-5.10.1
  perl-5.8.9
  perl-5.6.2
  perl5.005_04
  perl5.004_05
  perl5.003_07

5.18.4をインストールしてみる

$perlbrew install perl-5.18.4

ログの確認しながら待つ。(結構時間かかる)

$tail -f ~/perl5/perlbrew/build.perl-5.18.4.log

インストールしたperlの確認

$perlbrew list
  perl-5.18.4

バージョンの切り替え

$perlbrew switch 5.18.4
$perl -version

This is perl 5, version 18, subversion 4 (v5.18.4) built for darwin-2level
・・・

完了!

hubotのインストール

slackにbot入れたいなと思ってhubotのインストールをしてみた。

環境

作業履歴

$ npm install coffee-script hubot
$ hubot -v
-bash: hubot: コマンドが見つかりません

おや?パス通ってない。 とりあえずパス指定実行。

$ node_modules/hubot/bin/hubot -v
/usr/bin/env: coffee: そのようなファイルやディレクトリはありません

coffee-scriptもパス通ってない・・・ 面倒なので、グローバルにインストールしてしまおう。

$ sudo npm install coffee-script hubot -g
$ coffee -v
CoffeeScript version 1.9.1
$ hubot -v
connect deprecated multipart: use parser (multiparty, busboy, formidable) npm module instead ../../../usr/local/lib/node_modules/hubot/node_modules/express/node_modules/connect/lib/middleware/bodyParser.js:56:20
connect deprecated limit: Restrict request size at location of read ../../../usr/local/lib/node_modules/hubot/node_modules/express/node_modules/connect/lib/middleware/multipart.js:86:15
2.11.2

なんかエラー出た。

色々とぐぐってみたら、 hubot 2.9.x から Yeoman と generator-hubot が必須らしい。

$ sudo npm install -g yo generator-hubot
$ mkdir mybot
$ cd mybot
$ yo hubot
? =====================================================================
We're constantly looking for ways to make yo better!
May we anonymously report usage statistics to improve the tool over time?
More info: https://github.com/yeoman/insight & http://yeoman.io
===================================================================== (Y/n)

レポートを取りたいと言っているが私はNo.

f:id:omohayui:20150314010939p:plain

なにやらかわいいロボット出てきた。

あとは、質問形式で設定を進めるだけ。