タグ

ブックマーク / nishiohirokazu.hatenadiary.org (12)

  • リスコフの置換原則 - 西尾泰和のはてなダイアリー

    拙著「コーディングを支える技術」のp.216では、リスコフの置換原則について説明しています。しかし、p.217の「条件qを満たさないTが発生する」という表現はわかりにくいようですので、ここでストーリー仕立てにして補足説明をします 今日 まず、現時点でT型の値はすべて条件qを満たしているとします。 あなたはT型の引数をとる関数fを実装したいとします。あなたはきっと「T型の値はすべて条件qを満たしている」ということを前提としてコードを書くことでしょう。 1ヶ月後 あなたはSを作ろうと考えます。S型の値の中には条件qを満たさないものもありますが、あなたはあまり意識していません。 あなたは「SはTを継承して作ると楽だな」と思ったので、そうしました。 Javaなどの言語処理系では、SがTを継承すると、T型の変数にS型の値を入れることができるようになります。つまりこの時点でT型の引数を取る関数fにS型

    リスコフの置換原則 - 西尾泰和のはてなダイアリー
    ama-ch
    ama-ch 2014/06/26
    「このクラスを継承したのは誰だ!」
  • 「エンジニアの学び方」を執筆しました。 - 西尾泰和のはてなダイアリー

    4月24日発売のWEB+DB PRESS Vol.80に、特別企画として「エンジニアの学び方」という記事を書きました。 Vol.80自体は4月発売ということもあって「新人さん大歓迎!」と銘打っています。「エンジニアの学び方」もこの4月に就職・進学をした人を想定読者にしています。ですが、きっとその他の人にも役に立つ内容だと思います。 この記事を書くきっかけとなったのは、ベストセラーにもなった拙著「コーディングを支える技術」のコラムです。余白があるからコラムを書けと言われて、学び方についてのいくつかのコラムを書きました。 p.23「理解を確認するためにはまずアウトプット」 p.26「何を学べばよいかがわからない理由」 p.79「具体的な知識と抽象的な知識」 p.80「噛み砕く」 p.82「必要なところからかじる」 p.134「おおまかにつかんで徐々に詳細化する」 p.235「端から順番に写経す

    「エンジニアの学び方」を執筆しました。 - 西尾泰和のはてなダイアリー
    ama-ch
    ama-ch 2014/04/27
    読まなきゃ!
  • 「原稿を書いては消ししている」という状況を解決するには - 西尾泰和のはてなダイアリー

    「原稿を書いては消し書いては消ししていて全然進まない」という話をよく聞きます。 これって「よくない精神状態」にハマり込んでいると思います。 考えてみましょう。人間が脳内で保持できる情報はどれくらいでしょう?原稿に文章Aを書いて、しっくりこないので消して、文章Bを書いた後で、文章Aのことをどれくらい覚えていますか?文章Aを書いている時に何を伝えることが重要だと考えていたか覚えていますか? 「書いて消して」を繰り返している間、時間は消費されていますが、何も蓄積されていません。何も蓄積されないのであれば、問題はやさしくなったりはしません。ずっと同じ難易度のまま、あなたの前に立ちふさがり続けます。 原稿と戦っているうちに視野が狭くなって、自分が「よくない精神状態」にハマり込んでしまっていることを自覚できなくなるのは怖いことです。さらにはTwitterで愚痴ったり、ネットサーフィンをしてこんなサイト

    「原稿を書いては消ししている」という状況を解決するには - 西尾泰和のはてなダイアリー
  • サイボウズ・ハッカソンで優秀賞を頂きました - 西尾泰和のはてなダイアリー

    先週、サイボウズ社で行われた「サイボウズ・ハッカソン2013冬」に参加して、なんと優秀賞を頂いてしまいました。 ちょっと経緯を解説します。サイボウズは今年、学生さん向けのインターンとしてしてハッカソンを実施しました。3日間で、自分が作りたいと思うものを作る、というイベントです。来年も行われる予定なので興味のある学生さんはエントリー末尾のリンクをチェック!で、ハッカソンを運営してみて「これは面白いな!自分たちでもやろう!」と盛り上がったので、今回のハッカソンが行われました。 正確な人数は忘れましたが20人以上、東京開発部だけでなく松山開発部からも参加がありました。昼ごはんを会社が用意してくれるので昼休みが非常に盛り上がる感じ。テーマは「それ業務だろ」とかイジられながら仕事に密結合なものを作る人もいれば、アカデミックな興味で突っ走る人もいてバリエーションゆたか。多様性があるのはよいことですね

    サイボウズ・ハッカソンで優秀賞を頂きました - 西尾泰和のはてなダイアリー
    ama-ch
    ama-ch 2013/12/15
  • 何をどう学ぶか? - 西尾泰和のはてなダイアリー

    何をどう学ぶか? from nishio 「コーディングを支える技術」を執筆している時に考えていたことをスライドにまとめました。

    何をどう学ぶか? - 西尾泰和のはてなダイアリー
    ama-ch
    ama-ch 2013/04/11
  • アジャイルな見積りと計画作り:レバレッジメモ - 西尾泰和のはてなダイアリー

    PySpaで id:Yoshioriに「見積りって難しい」という話をしたら「アジャイルな見積りと計画づくり ~価値あるソフトウェアを育てる概念と技法~」を教えてもらった。さっそく読んでみたのでレバレッジメモ。 「不確実性に対処するためにバッチサイズを小さくしてアジャイルに開発しよう」とか言いつつ「見積りはプロジェクトの最初に立てて変更しません」という運用をしているのはおかしい。見積りや計画づくりもアジャイルに、状況に応じて変わって行かなければ、という。 要するに「プロジェクトの最初に正確な計画・見積りが作れるはずがない。最初に正確な計画・見積りづくりをしようとして過剰にコストを掛けるのではなく、イテレーションごとにより精度の高い見積りへと更新していく形を取ろう」ということ。 従来型の見積りの仕方が失敗するパターンがいくつか上げられていて興味深い。 例えば「タスクXに何日掛かるか見積もれ」

    アジャイルな見積りと計画作り:レバレッジメモ - 西尾泰和のはてなダイアリー
    ama-ch
    ama-ch 2012/11/12
  • つくりたいもの:原稿のレビューが手軽にできるシステム - 西尾泰和のはてなダイアリー

    最初のプロトタイプはだいぶ前にできていて、実際に自分の原稿のレビューにも使って見ている。デモ用のサイトは http://sphinxweb.rackbox.net/ ユーザ名とパスワードを聞かれるのでguest:guestで。 http://sphinxweb.rackbox.net/usage/ とかにアクセスすれば段落ごとにコメントを付けられることがわかるかと思う。 これは結城浩さんの書籍執筆とオンラインレビューを参考に作ったシステムで、その一番の特徴は「レビュワーは他のレビュワーのコメントを見ることができない」にある。モヒカン技術者のいっぱいいるチャットなりなんなりに燃料として原稿を投下すれば「これは厳密にはこうだ」「Xだと説明してあるが、極稀に起こるYのことに言及しないのはダメじゃないか?」などと盛り上がっていっぱいツッコミが入るだろうとは思う。でもそれをやっても「間違いのない

    つくりたいもの:原稿のレビューが手軽にできるシステム - 西尾泰和のはてなダイアリー
    ama-ch
    ama-ch 2012/07/02
    ほしい
  • Dive into .git 資料を公開しました - 西尾泰和のはてなダイアリー

    「Gitのいろんな概念が難しい」だって? じゃあ概念は置いといて、「物理的にはどうなってんの?」を確認してみよう! 社内勉強会でそういう趣旨の10分間デモをやった時の資料を公開しました。Gitがどんなものかイメージしやすくなれば幸いです。 Dive into .git語版 View more presentations from nishio

    Dive into .git 資料を公開しました - 西尾泰和のはてなダイアリー
    ama-ch
    ama-ch 2012/05/25
  • 30歳になりました&入籍しました - 西尾泰和のはてなダイアリー

    60歳還暦までの折り返し地点を迎えました。一緒に走ってくれる人も見つかりました。これからも頑張っていきたいと思います。今後ともよろしくお願いします。 参考文献(何) こんな嫁です: Q:「「嫁の参考文献」がまったく読み解けないぞ……。単に欲しいものを列挙してるだけなんだろうか?」 A: 嫁「欲しいものではありません!構成要素です!」僕「えっ、おなかにルンバ入ってるの?!」嫁「ルンちゃんは家族!まどかは概念!」

    30歳になりました&入籍しました - 西尾泰和のはてなダイアリー
    ama-ch
    ama-ch 2011/07/25
    おめでとうございます!!
  • 「プログラミング言語を理解するにはどうしたらいい?」という話を聞いて思うこと - 西尾泰和のはてなダイアリー

    「プログラミングとか特定のプログラミング言語とかを習得したくて色々勉強したけど、いまいち理解できた感じがしない、何がいけないのだろう、何を学べばいいんだろう」という話を聞いて思ったこと。 それって、目的が曖昧だから達成感が得られないというだけじゃないのか? 僕の今までの人生の中には「プログラミングを習得した!」と思える瞬間も「Pythonを理解した!」と思える瞬間もなかった。具体的な「Pythonで継続のある言語を実装できた!」とかならある。でも「継続の概念を完全にマスターしましたか」と言われるとそんな気はまったくしない。まだまだ先は長い。しかし僕よりはるかに継続に詳しい人たちが集まって継続に関する議論をしてたりするのを見ると、この道に明確なゴールはないことがわかる。どこまで行っても「まだ先がある」という感じが残るに違いない。 手段が間違っているのではなく、目的が間違っているんだ。「○○を

    「プログラミング言語を理解するにはどうしたらいい?」という話を聞いて思うこと - 西尾泰和のはてなダイアリー
    ama-ch
    ama-ch 2009/04/19
  • 「サイボウズ2年目研修」に行ってきました - 西尾泰和のはてなダイアリー

    サイボウズ社の同期と一緒に1泊2日で研修合宿に行ってきました。TJKの保養所(金谷城?)で、山奥かと思いこんでいたら海の見えるきれいなところでした。「事実と解釈は違う」とか「失敗は悪ではない。失敗しない最も簡単な方法は達成できて当たり前の目標を立てること。重要なのはどれだけ成長できるかであって、失敗しないことではない。」とかそんな感じのレクチャーを受けたり、グループワークをしたりしました。あと社長を取り囲んで質問攻めにしたり深夜まで飲んだり、逆にみんなの前で会社に現在ある問題点やビジョン、自分が1年後までに達成したい目標を発表したり。 当初の予想以上に面白かったです。 企業ってものは意志決定を迅速にするために縦方向のツリーがあるわけですけど、こうやって定期的に同期が交流することで横方向のつながりを強化するんだなぁ、と思いました。縦糸と横糸。サイボウズはそもそも自社製品の開発なので「営業が

    「サイボウズ2年目研修」に行ってきました - 西尾泰和のはてなダイアリー
    ama-ch
    ama-ch 2008/06/17
  • Re: すべての文字を各1回使ってできる文字列パターン - 西尾泰和のはてなダイアリー

    すべての文字を各1回使ってできる文字列パターン - テックノート@ama-ch http://d.hatena.ne.jp/ama-ch/20080523/1211529804 オリジナル: def pat(arr, level=0, base=""): num = len(arr) if num == 0: print base for i in range(num + level): if num > i: arrclone = arr.replace(arr[i], "") pat(arrclone, level+1, base+arr[i]) いらないところを削ってみた。 def pat(arr, base=""): num = len(arr) if num == 0: print base for i in range(num): arrclone = arr.replace(

    Re: すべての文字を各1回使ってできる文字列パターン - 西尾泰和のはてなダイアリー
  • 1