Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

現在絶賛開発中のkirimoriですが、なんとGolang界隈で有名なmattnさんにリファクタリングをして頂くという、とても嬉しい事態がありました✨ kirimoriについてはこちら↓ syossan.hateblo.jp リファクタリング前提でかなり雑に書いていたのですが、めちゃくちゃ良い感じにコードを直して頂けたので自分の勉強のために読み解いてみます👏 リファクタリング前 kirimoriは以下の機能を有しています。 initコマンドでkirimoriの設定ファイル(toml形式)を作成します addコマンドでコマンドライン引数に指定したプラグインを追加します removeコマンドでコマンドライン引数に指定したプラグインを削除します listコマンドでプラグインの一覧を表示します で、構成的には kirimori.go に全てのコマンドの処理をベタ書きにしてある感じになっております
簡単な思考実験をさせてください。コードをASCIIとしてディスクに保存する必要がないとしましょう。僕たちがシンボルを使うコードの書き方を変えられたら? そして何よりもその”読み方”を変えられたら? 想像できるすべてを読めて、編集できて、書ける魔法のコード・エディタがあるとしましょう。さらに、同じように機能する魔法のコンパイラがあるとしましょう。理想のコードはどのようになるでしょうか? まず区切り文字から自由になれるでしょう。どうしてそんなものがあるのか? コンパイラが十分賢くないから。 引用符のような区切り文字はコンパイラにシンボルが終わるときとリテラルが始まるときを知らせるためにあります。なぜ変数が数字で始められないかも同様です。コンパイラは変数名なのか数値リテラルなのか知りようがありません。もし代わりにタイポグラフィを使ってそれらを区別できるとしたらどうなるでしょうか。 例をあげましょ
おととい、渋谷JVMというイベントがあって登壇させてもらったんですが、そのあとビール飲んでるときに、ぼくが「コード書く前にコメントだけ書くのいいよね」と言ったあとの返答としてきょんくん(kyon_mm)が言った言葉。 全体としては 「コード先に書いてそのコードに対してテストを書くと実装に対するテストになるし、コードを先に書いてそのコードに対してコメントを書くと実装に対するコメントになる」 という感じ。 ここに至るまでの話もおもしろかったんだけど、ここでは、コメントについて書いてみます。 まず、実装に対するコメントってどういうのかというと、こういうの。 id = findId(name); if(id == -1){ // idが-1だったとき登録 register(name); } いやそれはコード見ればわかるから、ってやつですね。 これは、こうやるとより適切です。 id = findId
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く