タグ

oopに関するbleu-bleutのブックマーク (9)

  • より良いプログラムを書くための究極の奇策 – 「Data first, not code first」 | POSTD

    (訳注:2015/10/31、いただいた翻訳フィードバックを元に記事を修正いたしました。) 開発者は嫌うでしょう。 ここでは、標準的なコツや策略について書きますが、当に興味があるのは、別のことです。究極の奇策を見つけたいと思います。策略をひとつずつ試して、プログラミングの聖域に少しでも近づければ良いのですが。 はじめに 私が初めて書いたビデオゲームは、 Ninja Wars (忍者戦争)でした。 そう、これは、画像で埋めたHTMLのtableです。 src 属性を変えることで、動きを実現しています。JavaScriptファイルの冒頭は下記のようになっています。 var x = 314; var y = 8; var prevy= 1; var prevx= 1; var prevsw= 0; var row= 304; var endrow= 142; var sword= 296; v

    より良いプログラムを書くための究極の奇策 – 「Data first, not code first」 | POSTD
    bleu-bleut
    bleu-bleut 2015/11/12
    「変数にアクセスできるのはそのオブジェクトのメソッドだけ」
  • コードレビューのベストプラクティス | POSTD

    Wiredrive では、私たちはかなりの数のコードレビューを行います。しかし、ここで働き始める前には私はコードレビューなどしたことがありませんでした。今回は、私がコードレビューをする時に何に注目するようにしているかや、私の考え出したベストなコードレビューのやり方をお話したいと思います。 コードレビューとは、簡単に言うと2人以上の開発者で問題を引き起こしそうなコードの修正について話し合うことです。コードレビューをすることのメリットについては多くの記事で語られており、知識を共有できること、コードのクオリティが上がること、開発者が成長できることなどが挙げられています。しかし、レビューを行う上で、どのように進めていくかという具体的なことについてはあまり多く語られてないように私は思いました。 レビューで何に注目するか アーキテクチャ/デザイン 単一責任原則 : 1つのクラスは変更する理由が2つ以上

    コードレビューのベストプラクティス | POSTD
    bleu-bleut
    bleu-bleut 2015/06/14
    単一責任原則:1つのクラスは変更(?)する理由が2つ以上あってはいけない。開放/閉鎖原則:拡張に対して開いていて修正に対して閉じているか。
  • O/Rマッピングとは?

    皆さん、はじめまして。連載を担当するビーブレイクシステムズの山之内と申します。連載ではO/Rマッピングについて検討していきます。 O/Rマッピング機能を提供してくれるフレームワーク(O/Rマッピングツール)はデータベースと連携するJavaアプリケーション開発において、既に必須となりつつありますが、O/Rマッピングツールはたくさん存在します。 しかし、各O/Rマッピングツールには特徴やクセがあり、実際の開発現場においてどのO/Rマッピングツールを導入すべきか迷っている人も多くいることでしょう。目的にあわせて適切なツールを選択しないと、思ったような効果が得られなかったり、かえって工数が増えたりする状況にもなりかねません。 そこで連載では、代表的な3つのO/Rマッピングツール(iBATIS、Torque、Hibernate)を取り上げて、実際に各O/Rマッピングツールを利用したサンプルを作

    bleu-bleut
    bleu-bleut 2013/10/02
    O/Rマッピング
  • SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?

    https://2021.pycon.jp/time-table/?id=273396 Webアプリ開発とデータベースマイグレーションには密接な関係があり、Pythonでよく採用されるDjangoSQLAlchemyには、DBのスキーマを変更するマイグレーション機能があります。一般的に、プログラムを実装するときはリポジトリでブランチを作りそれぞれのブランチで実装作業を進めます。Webアプリの開発でも同様ですが、各ブランチDBスキーマを変更する場合には注意が必要です。例えば、複数のブランチで同じテーブルのカラムを追加して使いたい場合や、DBスキーマの変更が競合する場合は、ブランチのマージ時に競合してしまいます。多くの機能を並行開発したり、マージするまでの期間が長い場合には、このような競合が増えてしまいます。 このトークでは、Djangoを例に、データベースマイグレーションの仕組みから、実

    SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
    bleu-bleut
    bleu-bleut 2012/12/07
    O/Rマッパー
  • 依存性反転の原則について

    こんにちは、増田です。 今回は"依存性反転の原則"についてObjective-Cで解説します(Objective-Cは筆者が好きな言語です)。 私はこの原則を理解する前は依存関係がスパゲティ状態になったプログラムを書いていました。 プログラムの処理はそうめんのように道筋の立った分かりやすいコードを書いたとしても、依存関係がスパゲティであることがよくあります。そのようなコードを書くと、一箇所を変更するために既に動いているところをいじらなければならず、この際のテストにかかるコストはとてつもなく膨大になってしまいます。 モジュール間の依存は必ずしも悪になるというわけではないですが、「意図して依存を残す」という意識がないと後で痛い目を見ます。依存性を残すところ、断ち切るところを意図してプログラムを組むことができるようになれば、何かしらの変更を迫られた際、変更箇所だけのテストでシステム全体の正常な動

    依存性反転の原則について
  • オブジェクト指向できていますか?

    Visual Studio Users Community Japan #1 で発表した資料になります。 https://vsuc.connpass.com/event/143114/

    オブジェクト指向できていますか?
    bleu-bleut
    bleu-bleut 2012/08/29
    read_books:ThoughtWorks アンソロジー / アジャイルソフトウェア開発の奥義 / Clean Code / プレファクタリング / リファクタリング / パターン指向リファクタリング(120/129)
  • PHPでの「ORMライブラリ」機能比較

    CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

    PHPでの「ORMライブラリ」機能比較
    bleu-bleut
    bleu-bleut 2012/02/13
    O/Rマッパー
  • オブジェクト指向の考え方

    UML、Java、デザインパターンなどの言葉をソフトウェア業界の人で聞いたことがないという人はいないでしょう。また、これらはすべてオブジェクト指向と深い関係があるということも、もはや常識です。しかし、あらためてオブジェクト指向とは何かと問われると、一部の人を除いてはよく分からないというのが現状ではないでしょうか。 オブジェクト指向に基づく応用技術が徐々に普及してきていますが、オブジェクト指向の基概念をきちんと理解しておかないとこれらを使いこなすことはできません。せっかくJavaC++などのオブジェクト指向言語を活用しても、その特徴を十分生かすことができず、Cと同じプログラミングを行ってしまうことになります。UML入門書を読んだだけでは、モデリングはできないのです。 オブジェクト指向の基的な考え方をあらためて学ぶことは、結果としてオブジェクト指向の応用技術を使いこなすための近道です。形

    オブジェクト指向の考え方
  • 5分で絶対に分かるオブジェクト指向 ― @IT情報マネジメント

    開発の世界では一般常識化 オブジェクト指向――Object Oriented(OO)という考え方は、JavaやUMLの普及に伴っていまや開発の世界では一般常識化してきました。OO関連の書籍や専門誌特集記事など多数出版されていて、開発に携わっている皆さんはある程度オブジェクト指向の考え方について自分なりに理解できていると思います。そもそもオブジェクト指向の考え方の歴史は古く、最後の“指向―Oriented”は余韻を含んだ言葉ですが、人によりOOの理解の仕方に若干幅があるようです。今回は筆者流にオブジェクト指向の基的考え方を5枚の図を用いて簡単に整理してみたいと思います。 もう 少し時間のある人は、連載「ここから始めるオブジェクト指向―オブジェクト指向基礎講座」(全8回)をご参照ください。さらに時間と興味のある人は、連載「オブジェクト指向の世界」をご参照ください。

    5分で絶対に分かるオブジェクト指向 ― @IT情報マネジメント
  • 1