タグ

2017年3月6日のブックマーク (4件)

  • 私的アンリーダブルコード―他人を発狂させるための 9 のテクニック

    コードはたいてい一度しか書かれませんが、何度も何人も読むことになります。 普段何気なく書いているコードが他人の時間と精神を削っているかもしれません。 そんなわけで、個人的に辛いなと思うことを 9 つ挙げてみました。共感してもらえるものもいくつかあるんじゃないかと思います。 実体にそぐわない変数名 見分けの付かない配列とハッシュの変数名 呼び出し元で true/false を指定するだけの引数 暗黙の実行順序 [] メソッドの定義・Array の継承 ハッシュの乱用 密結合した mixin 過剰な nil guard 条件によって異なる返り値の型 推薦図書 静的型付き言語を使うことで解消される問題もありますが、その選択肢はひとまずなしということで。 Ruby 前提になっていますが、他の言語にも言えることも多いと思います。 実体にそぐわない変数名 例えば Vehicle というクラスが定義され

    私的アンリーダブルコード―他人を発狂させるための 9 のテクニック
    takaesu
    takaesu 2017/03/06
    変数名の付け方など参考になる、ハッシュ(hash)やArrayの命名
  • 日本語形態素解析の裏側を覗く!MeCab はどのように形態素解析しているか - クックパッド開発者ブログ

    こんにちは、買物情報事業部の荒引 (@a_bicky) です。 前回、「検索結果の疑問を解消するための検索の基礎」で単語単位でインデキシングする前提で説明しましたが、今回は文などを単語単位で分割するために使う技術である形態素解析について触れます。 形態素解析器には色々ありますが、中でもメジャーと思われる MeCab の仕組みについて説明します。 MeCab の解析精度を上げるために辞書に単語を追加したことのある方もいると思いますが、動作原理を理解することで単語を追加する際に適切な生起コストを設定できるようになったり、学習の際に適切なパラメータを設定できるようになったりするはずです。 なお、MeCab は汎用テキスト変換ツールとしても使用できます が、簡単のため MeCab + IPA 辞書のデフォルト設定前提で説明します。 アジェンダ 形態素解析とは MeCab における最適な解析結果の推

    日本語形態素解析の裏側を覗く!MeCab はどのように形態素解析しているか - クックパッド開発者ブログ
  • YAPC::Kansai で RDBアンチパターン その2 について話してベストトーカー賞を取ってきた #yapcjapan - そーだいなるらくがき帳

    YAPC::Kansaiでトークしてきました。 yapcjapan.org RDBアンチパターンの話してきました。 去年、PHPカンファレンスでRDBアンチパターンの話をして盛り上がったのでそれの第二弾です。 b.hatena.ne.jp speakerdeck.com 僕が伝えたい事はたったひとつ。 このブログを読んだらすぐ自分たちのサービスのバックアップとリストア手段確認してください! お兄さんとの約束だぞ!! このトーク応募したらGitLab.comが大事故起こしたり、S3が落ちたり世の中では大変そうでした。 www.publickey1.jp ヒューマンエラーとかあるんですよほんと。 僕もいっぱい見てきたし、やったし(ぉぃ なので当にもうこれだけは絶対確認してほしいって思います。 実際に「バックアップ無いDBをバグで飛ばしたんですけどどうすればいいですか?」とか相談来ます。 ほん

    YAPC::Kansai で RDBアンチパターン その2 について話してベストトーカー賞を取ってきた #yapcjapan - そーだいなるらくがき帳
  • HTTP APIの詳細なエラー情報をレスポンスに持たせるための仕様

    今日では HTTP(s) で API が公開されることは当たり前の時代ですが、エラーをアプリケーションにどう伝えるかは、個々の API の設計に依存していました。特に、HTTP ステータスコードは有限であり、元々持っている意味があるので、自由に使うことはできません。API はそのドメインごとにもっと複雑で細かなエラー情報があるはずで、それらはレスポンスボディに載せてアプリケーションに伝えることになりますが、その書式に規定は今までありませんでした。 HTTP API にて、アプリケーションにエラー情報を伝達するための(レスポンスボディに載せられる)標準的な形式が、RFC7807 Problem Details for HTTP APIs で定められています。適用例としては、以下のようになります。 HTTP/1.1 403 Forbidden Content-Type: application

    takaesu
    takaesu 2017/03/06
    RFC7807