タグ

設計と視点に関するkoemuのブックマーク (8)

  • だんだん開発スピードが遅くなっていくのをどうやってとめたら良かったんだろう? - Mitsuyuki.Shiiba

    先日、モブプロをやってきた。その中で、モブプロとは別で、いくつか感じたことがあって、今日はその中のひとつを思い浮かんだままにメモ。 bufferings.hatenablog.com 要件を満たすプロダクトをより早く出す モブプロでTDDしながら、要件を満たすプロダクトをより早く出すことに集中してみた。例えば、第2ラウンドのお題はTDDBCなどでお馴染みの「自販機」。 「100円を入れてボタンを押すとコーラが1買えること」 最初に「100円を入れてボタンを押すとコーラが1買えること」と言われ。 assertThat(get(100), is("コーラ")); みたいなテストを書いて。 String get(int money) { return "コーラ"; } みたいな実装を書いた。爆速! 「200円を入れてボタンを押すとオレンジジュースが1買えること」 次に「200円を入れてボタ

    だんだん開発スピードが遅くなっていくのをどうやってとめたら良かったんだろう? - Mitsuyuki.Shiiba
    koemu
    koemu 2019/11/07
    お互いが思い浮かべたゴールがすれ違ったり、後から浮かんだ別のゴールがあったりすると、ありがち。キックオフ時にどこまで詰められるか。
  • デザインの「悪い方がよい」原則 The Rise of "Worse is Better"

    デザインの「悪い方がよい」原則 The Rise of "Worse is Better" rpg@lucid.com 日語訳: daiti-m@is.aist-nara.ac.jp 私や Common Lisp と CLOS のデザイナーのほとんどは、MIT/Stanford 方式の設計に親しんでいる。 この方式の核心は、「正しい」やり方をせよ、という ことにつきる。デザイナーにとっては、以下の点をすべて正しく満たすことが 重要である。 簡潔性 デザインは実装と使用法の両面において単純でなければならない。 このとき、使用法が単純な方が、実装が単純なことより重要である。 正当性 デザインはすべての点において正しいものでなければならない。 誤りは許されない。 一貫性 デザインは一貫性を欠いたものであってはならない。一貫性を保つ ためには完全性は少しだけ犠牲にしてもよい。一貫性は 正当性と同

  • 高い互換性と寿命の長いWebAPIをつくるには - トレタ開発者ブログ

    Web APIの開発を担当しているswdyhです。 以前からWebサービスのサーバサイドの開発をしていたんですが、トレタに入るまでアプリのためのWeb APIの開発というのはしていませんでした。トレタに入って2年半くらいずっとアプリのためのAPIを開発していて、同じサーバサイドの開発でも、それまでとの開発とは違う点があり、悩ましくも面白く感じたのでまとめてみました。 サービスとアプリの話 トレタで提供しているサービスは、飲店むけの予約管理サービスで、電話などで予約を受け付けたときに、iPadのアプリを操作して予約を入力してもらい、実際にお客さんが来店したときにはiPadを見て案内するというふうに使ってもらうものです。他にもいろんな機能やこだわりポイントがあるサービスなんですが、そのへんはWebサイトを見てみてください。 トレタのアプリはiPadのネイティブアプリで、ほぼ全てのデータをサー

    高い互換性と寿命の長いWebAPIをつくるには - トレタ開発者ブログ
  • My Philosophy on Alerting

    The ideas in this paper form the foundation for Monitoring distributed systems: A case study in how Google monitors its complex systems, Which is a chapter in Site Reliability Engineering: How Google Runs Production Systems; those versions are more detailed and more carefully edited for tybograbhical emors. For some other discussion, see the Hacker News post from mid-2014. My Philosophy on Alertin

  • Introduction to Microservices | NGINX

    Registration is now open for Microservices March 2023. See the agenda and sign up here. Editor – This seven‑part series of articles is now complete: Introduction to Microservices (this article) Building Microservices: Using an API Gateway Building Microservices: Inter-Process Communication in a Microservices Architecture Service Discovery in a Microservices Architecture Event-Driven Data Managemen

    Introduction to Microservices | NGINX
  • (あなたの周りでも見かけるかもしれない)インスタンス変数の間違った使い方 - Qiita

    (2021-8-28追記) この記事の改訂版を書いてみました。改訂版の方が易しい内容になっているので、プログラミング初心者の方はこちらを参考にしてみてください。 はじめに:「引数があるよりは、ない方が良い」? 先日、同僚の西見さん(@mah_lab)がこんな技術ブログを書いていました。 インスタンスメソッドとクラスメソッドはどのようにして使い分けるべきか?(Rubyの場合) 同じ内容を僕だったらどういうふうに書くかな~?と思って、ちょっと書き始めてみたんですが、わかりやすく実践的な説明をするのは意外と難しく、内容も西見さんのブログとほぼ同じになりそうだったので、途中で断念しました。 というわけで、インスタンスメソッドとクラスメソッドの使い分けが未だにあやふやだという方は、ぜひ西見さんのブログを読んでみてください! ・・・なんですが、1点だけ気になる点がありました。 それはインスタンスメソッ

    (あなたの周りでも見かけるかもしれない)インスタンス変数の間違った使い方 - Qiita
  • マルチスレッド・プログラミングの落とし穴、その2

    ずいぶん前に、「マルチスレッド・プログラミングの落とし穴、その1(かもしれない)」というエントリーを書いたが、今回はPhotoShareサーバーを運営していて、まさにこのあたりの深い考察が必要になって来たので、良い機会なので続編エントリー。 PhotoShareのバックエンドのようにCRUD(Create/Read/Update/Delete)のAPIをサポートするバックエンドを作る場合、Create/Update/Deleteのリクエストに対してはクライアントからのAPIコール時にすぐに(HTTP Requestに返事をする前に)データベースに変更を加え、Readの際にも(キャッシュを使う・使わないを別にして)データベースの最新の状況を反映するデータを返すように設計するのが普通である。 このアーキテクチャの問題は、ユーザーのアクティビティが増えた時に、データベースやI/Oがボトルネックと

    koemu
    koemu 2008/09/26
    サービスの目的によってキューイングも一手
  • 親世代に PC

    親世代に PC 2003-09-02-2 [Book] 両親にインターネットを使わせるとしたら <http://www.zdnet.co.jp/news/0309/01/cjad_kodera.html> (via <http://papalagi.org/diary/200309.html#20030902>) なるべくトラブルが少ないようにせよ、ということですね。大いに賛成。残り少ない人生なのに、しょうもないトラブル対処法を覚えても仕方がない。私だったら、還暦過ぎてまでバッドノウハウなんか覚えたくない。 以下、D.A.ノーマンの「パソコンを隠せ、アナログ発想でいこう!」からの受け売り。 ■パソコンを隠せ、アナログ発想でいこう! 1922 年のラジオの取り扱い説明書には、真空管をどうたら、加減抵抗器をどうたら、フィラメントがどうたら、再生コイルをどうたら、など、なんだかとても複雑な操作方

    親世代に PC
    koemu
    koemu 2008/03/13
    Simple is best. うちの親には使い方を教室/会社で覚えてもらい、細かい話はすべて自分がフォローするようにした。十分楽しんでいるみたい。
  • 1