タグ

ブックマーク / nowokay.hatenablog.com (13)

  • 読みやすいコードのための暗黙の了解がつまってる「リーダブルコード」 - きしだのHatena

    そういえばidがkdmsnrの児玉サヌールという人から「を訳したよ!」と献いただいたのだけど、届いたを見てみると訳者は角 征典という人だったのでとまどっていたところ。 出版したときにいただいてたので、もう半年近くになるけど、時間がかかったのは、ちまちまと一日1ページとか2ページとか読んでたから。普通に読めば、たぶん土日で読めます。 リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック (Theory in practice) 作者:Dustin Boswell,Trevor FoucherオライリージャパンAmazon 関係ないけど、一時期、角さん、角田さん、角谷さん、という一文字ずつ成長する東のほうの人と一気に知り合いになって「かっくん」と言われてるのがどの人かわからないことがあった。懐かしい話。 それはそれとして、ぼくは「きれいなコードをかきましょう」系の話

    読みやすいコードのための暗黙の了解がつまってる「リーダブルコード」 - きしだのHatena
    dagjmpd
    dagjmpd 2012/10/31
    読みやすいコードの為の暗黙の了解がつまってる「リーダブルコー...
  • 勉強することで何がいいのか実力者がいないことでデメリットはあるか - きしだのHatena

    「この辺を勉強してどういう良いことがあったか教えて欲しい。」というコメントがついてた。 良いこととして、一番は、まあ勉強するのが楽しくなった、ということなのだけど、それは循環してるので置いておいて。 実務的に一番いいのは、プログラムを組むのが楽になったということ。 とくに、質的な間違いが少なくなっていくので、後戻りが減るというのが楽。組んでみたけど動かない、途中でそれ以上組めなくなる、というのが少ない。まあ、ミスはあるので、そこの修正はするけど。 あと、できないことができないとわかりやすい。そのデータの持ち方でそのデータ数でその処理ではその精度の要求は満たせない、ということが原理的に判断しやすくなる。なので、むだな努力をしない。そして、どの条件を緩和すれば要求が満たせるかにも気づきやすい。 初見のライブラリや言語、ツールの理解が早くなる、とかも。 もちろん、前のエントリにも書いたように「

    勉強することで何がいいのか実力者がいないことでデメリットはあるか - きしだのHatena
    dagjmpd
    dagjmpd 2012/10/13
    勉強することで何がいいのか実力者がいないことでデメリットはあるか
  • トランザクションの分離レベルを実装する - きしだのHatena

    データベースの勉強に、最初はかわいかったけどだいぶゴツくなったデータベースを作っています。 http://d.hatena.ne.jp/nowokay/20120817#1345197962 前回で、なんとなくトランザクションがちゃんと動いたんですけど、 id:kiwanami に「隔離レベルとかの検討とか。」と言われて、そのときはちょっと難しいから後回しかなーと思ったんだけど、案外簡単に実装できそうだったので、ちょっとやってみました。 トランザクションの分離レベルというのは、他のトランザクション内での変更がどのように見えるかというレベルです。 次のような4つのレベルがあります。 READ UNCOMMITTED 未コミットの操作も見えちゃう READ COMMITTED コミットした操作は見えちゃう REPEATABLE READ コミットした追加・削除は見えちゃう。更新は見えない SE

    トランザクションの分離レベルを実装する - きしだのHatena
    dagjmpd
    dagjmpd 2012/08/29
    トランザクションの分離レベルを実装する
  • 詭弁にだまされないための「詭弁論理学」 - きしだのHatena

    昨日のエントリでは「考えることの科学」を紹介した。 人はどのように考え間違えるか「考えることの科学」で考える その「考えることの科学」の冒頭で紹介されている「詭弁論理学」もいいなので、ここで紹介しておきます。 「考えること科学」はどのように考え間違えるかというだったのだけど、この「詭弁論理学」は、そうやって考え間違った結果、どのような論理が現れるかというと言っていいと思う。 これを読んで上手に詭弁をつかったりしちゃダメ絶対。 詭弁論理学 (中公新書 (448)) 作者: 野崎昭弘出版社/メーカー: 中央公論新社発売日: 1976/10/25メディア: 新書購入: 30人 クリック: 190回この商品を含むブログ (152件) を見る このは、大きく「強弁術」「詭弁術」と「論理のあそび」の3章に分かれている。このうち、「論理のあそび」は、ふつうの論理の話なので、このならでは、という

    dagjmpd
    dagjmpd 2012/07/06
    詭弁にだまされないための「詭弁論理学」
  • 人はどのように考え間違えるか「考えることの科学」で考える - きしだのHatena

    「どのように考えるか」ってのを書いたは「なんたらシンキング」とか「脳科学でどうたら」みたいな名前で結構たくさん売られてるんだけど、「どのように考え間違えるか」ってはなかなかない。 その点で、この「考えることの科学」っては、おもしろい。 考えることの科学―推論の認知心理学への招待 (中公新書) 作者: 市川伸一出版社/メーカー: 中央公論社発売日: 1997/02/01メディア: 新書購入: 20人 クリック: 150回この商品を含むブログ (59件) を見る 人がどうやって考え間違えるかを、論理的側面、確率的側面、心理的側面から説明していて、そもそも考えるということのやり方は、大別するとその3つになるのだなっていうことがわかる時点でも、結構収穫。 論理的側面の話では、抽象的な論理問題を、具体的事例にあてはめると正解率があがるという話がおもしろい。 「カードの表が母音なら、裏には偶数が

    人はどのように考え間違えるか「考えることの科学」で考える - きしだのHatena
    dagjmpd
    dagjmpd 2012/07/05
    人はどのように考え間違えるか「考えることの科学」で考える
  • MVCは死んだ。MOVEするときがきた - きしだのHatena

    Conrad Irwinさんの「MVC is dead, it's time to MOVE on.」を訳してみました。 MVC is dead, it's time to MOVE on. この訳文も原文のライセンスを引き継いでCC-BY-3.0ライセンスで利用可能とします。 追記13:58 すでに訳してた方がいました。MVCの時代は終わった。MOVEを使い始めましょう。 - ふじこのプログラミング奮闘記 MVCは死んだ。MOVEするときがきた MVCはすばらしいアイデアだ。モデルを持ち、モデルは内部に少しの状態をもつ。ビューは内部に少しのUIをもつ。そして、コントローラは内部に少しの・・・ 何を持つ? 私は確かにこのことに気づいた最初の人物ではない。しかし示されたようなMVCの問題のために、あなたは最後には過剰なコードをコントローラに詰め込むことになる。なぜなら、他にどこに入れていいか

    MVCは死んだ。MOVEするときがきた - きしだのHatena
    dagjmpd
    dagjmpd 2012/07/04
    MVCは死んだ。MOVEするときがきた - きしだのはてな
  • ファーストサーバの手順の問題点 - きしだのHatena

    えらいことなってますが。 正規手順と今回の現象の説明などを含めた中間報告が出されています。 http://support.fsv.jp/info/nw20120625_01.html ここで、正規手順で、途中でオペレーションミスがあったときに復旧できない状態になってしまう可能性があることがわかります。 具体的には「原因3:メンテナンス仕様」のこの部分。 脆弱性対策のメンテナンスに関しては対象サーバー群とそのサーバー群のバックアップ領域に対して同時に更新プログラムを適用する この時点でこの更新プログラムに不具合があった場合には、リストアできなくなることになるわけです。そして今回はそれがおきたようです。 より安全な手順であれば、バックアップ側にパッチをあてている間は正常系がバックアップのバックアップということになるはず*1ですが、どこにもバックアップがない状態になってしまったわけです。 手順1

    ファーストサーバの手順の問題点 - きしだのHatena
    dagjmpd
    dagjmpd 2012/06/25
    ファーストサーバーの手順の問題点
  • スタンフォードの授業でデータベースの英語を勉強する - きしだのはてな

    Database Management Systems」を読み始めたので、英語に慣れるためにスタンフォードのデータベースの授業を見ようかと思った。 Algebraとか、なかなか音で聞く機会がないので、なじむのにいいかと。 http://www.db-class.org/course/video/preview_list スタンフォードといっても、内容はデータベースの基礎なんで、リレーショナルモデルとか内容自体はそんなに難しくない。 右下の噴出しをクリックすると、英語字幕が出るので、文字と音の対応もつけやすい。面白いのは、1.5倍速という精神と時の部屋モードがあること。ちょっと機械っぽくはあるんだけど、これに慣れると通常の速さが聞き取りやすくなるし、10分聞けば下界の15分の勉強に相当する。 ところで、「Database Management Systems」は、インデックスやクエリー評価

    スタンフォードの授業でデータベースの英語を勉強する - きしだのはてな
    dagjmpd
    dagjmpd 2012/02/29
    スタンフォードの授業でデータベースの英語を勉強する
  • 形式仕様記述Alloyを試してみる - きしだのHatena

    試してみるよ。 とりあえず商品をまとめたセット商品についての仕様を書いてみる。 まず商品の定義 module exec/shohin sig Shohin{} pred show{ } run show sigはJavaとかのclassだと思えばだいたいOK。 なんか商品がみっつ出た。 じゃあ、セット商品を定義してみる。 sig SetShohin{ bundle: set Shohin } おー、同じ商品が3つのセットに含まれてしまった。Alloyさんイヤらしいとこついてくる。 ということで、ひとつの商品は多くてもひとつのセットにしか含まれない、っていう制約を加えます。 fact { all s: Shohin | lone bundle.s } 書き下ろすと「すべての商品について、商品をbundleとして持つのはたかだか1つ」になるんですけど、この、フィールドを左に書く書き方は通常のプ

    dagjmpd
    dagjmpd 2012/01/02
    形式仕様記述Alloyを試してみる
  • Scalaでパーサーを作ってみる〜4:ブール値とif式 - きしだのHatena

    Scalaの勉強をはじめたので、とりあえず簡単なパーサーを作ってみてます。 http://d.hatena.ne.jp/nowokay/20111101#1320102262 前回で、簡単な計算ができるようになりました。 http://d.hatena.ne.jp/nowokay/20111105#1320463263 ということで、今回は、ブール値とif式を導入してみます。 ブール値はtrue/falseなんですが、「true」「false」といったリテラルは実装せず、比較演算子「<」だけ導入してみます。 そして、if式として「if(〜)〜else〜」という形式のものを導入します。 ASTオブジェクトは、これ。 case class IfExpr(cond:AST, pos:AST, neg:AST) extends AST case class LessOp(left: AST, ri

    Scalaでパーサーを作ってみる〜4:ブール値とif式 - きしだのHatena
    dagjmpd
    dagjmpd 2011/11/06
    Scalaでパーサーを作ってみる〜4:ブール値とif式
  • プログラム言語の部屋 - きしだのHatena

    ジョン・サールの「中国語の部屋」という話がある。 http://www.h5.dion.ne.jp/~terun/doc/chugokugo.html 部屋に閉じ込められたイギリス人が、中国語の手紙をうけとる。イギリス人は、手元にある「中国語で返信」手順書にしたがって、手紙にかかれた記号から導き出される記号を紙に書いて送り返す。手順書がよくできていてイギリス人はまじめに膨大な手順を実行しているので、送り返された手紙を見た人は、部屋の中のイギリス人が中国語を理解していると考える。 果たしてそのイギリス人は中国語を理解していると言えるか、と。 さて、「プログラム言語の部屋」というのを考える。 部屋に閉じ込められたサラリーマンが、日語の仕様書をうけとる。 手元によくできた手順書はないが、仕様書はある程度パターン化され、そのパターンに近い過去プログラムからコードをコピペして送り返す。 監視体制が

    プログラム言語の部屋 - きしだのHatena
    dagjmpd
    dagjmpd 2011/10/24
    プログラム言語の部屋
  • システムはどのくらいのデータを扱うか。 - きしだのHatena

    ちょっと気になったので調べてみたら、営業のためのデータはどんな業態でも一社だいたい月10億件くらいで頭打ちっていう感じになった。 追記 2011/9/17 15:54 業態を比べたいので、国内の最大シェアっぽい企業で比べてます。 世界に広げたとしても、実業にからむなら、だいたいは会社が分かれてシステムも分けるだろうし、トヨタの販売台数が世界770万台、国内130万台でせいぜい6倍というのを見ても、一体だとして10倍の差は出ないし。 トヨタの2011年国内販売台数、130万台の見通し | ロイター 追記ここまで コンビニ 最初にたくさんデータが発生しそうだと思って考えたのがコンビニ。 フランチャイズ協会のデータによると、全国の店舗数が43690店舗、月間客数が13億人で、客単価が600円。 http://www.jfa-fc.or.jp/particle/42.html 一番でかい7-11の

    システムはどのくらいのデータを扱うか。 - きしだのHatena
    dagjmpd
    dagjmpd 2011/09/17
    システムはどのくらいのデータを扱うか。
  • プログラマになるための勉強をしている人の前で話をしてきた - きしだのHatena

    イデアルITスクールというところで、1時間ほど話をしてきました。 プログラマとしてやっていくために大事なことというテーマ。 資料を作らずに、というか構想すら練らずにやってしまったので、ここで整理とまとめと補足を。実際にこれをしゃべったというのではなくて、だいたいこんなことをしゃべろうとしてたという内容をかなり盛って書いてます。 当然ですが、プログラマの仕事はプログラムを書くことです*1。 プログラマとしてやっていくためには、どこで動くプログラムを書くか、なにをするプログラムを書くかということを意識することが大事です。 ということで、まずはプログラムが動くところがどう変わったかという話。 1970年代ころは、デバイスを動かすためのプログラムが多かったのではないかと。 あと、ここには書いてないけど、業務アプリはほぼメインフレームで動いてたと思います。 それが、1980年代くらいからパソコンが出

    プログラマになるための勉強をしている人の前で話をしてきた - きしだのHatena
    dagjmpd
    dagjmpd 2011/09/16
    プログラマになるための勉強をしている人の前で話をしてきた
  • 1