タグ

クラスに関するMukeのブックマーク (24)

  • オブジェクト指向とは何ですか?

    回答 (8件中の1件目) 英語では「object-oriented」で「OO」と略され、1960~1980年代のプログラミング手法(OOP)から始まり、その応用としてソフトウエアの設計・分析の手法(OOD/OOA)、近年はユーザーインターフェース・エクスペリエンスのデザイン(OOUI/OOUX)、オブジェクト指向存在論(OOO)なる哲学分野にまで、広く使われる用語です。ここではOOPについて説明を試みます。 オブジェクト指向の「オブジェクト」は、1967年に発表されたSimula 67 [1] というプログラミング言語に組み込まれた当時としては新しい同名の言語機能(あるいはそれに準ずる...

    オブジェクト指向とは何ですか?
  • Railsで学ぶSOLID(1): 単一責任の原則(翻訳)|TechRacho by BPS株式会社

    追記: 訳文修正いたしました(2018/03/28)。 概要 原著者の許諾を得て翻訳・公開いたします。 英語記事: SOLID Principles #1: Single Responsibility Principle | Netguru Blog on Ruby/Ruby on Rails 原文公開日: 2018/02/13 著者: Marcin Jakubowski サイト: netguru 翻訳記事の相互リンクは今後更新いたします。 「SOLIDの原則シリーズ」へようこそ。このシリーズ記事では、SOLIDの原則をひとつずつ詳しく説明し、分析します。シリーズの最後にはいくつかのヒントや考察を含む総括記事をお送りしますのでどうぞご期待ください。 それでは始めましょう。「SOLIDの原則」とはそもそも何なのでしょうか?SOLIDとは、オブジェクト指向プログラミング設計における一般的な原則

    Railsで学ぶSOLID(1): 単一責任の原則(翻訳)|TechRacho by BPS株式会社
  • 2NT -無料ブログ 無料ホームページ 等-

    2NTは無料ブログ、無料ホームページ等、楽しいWEB Lifeをお届けするポータルサイトです。

  • コードレビューのベストプラクティス | POSTD

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

    コードレビューのベストプラクティス | POSTD
  • Swiftでアプリの画面を作ろう! ~Objecive-Cとの比較で学ぶ

    はじめに 前回までにSwiftの基的な文法とクラスの使い方について説明しました。連載第4回では、実際にアプリの画面を作成する方法について説明します。 対象読者をObjective-Cが分かる方としている関係上、Objective-C自体の言語仕様やXcodeの使い方については解説を割愛する場合があることをご了承ください。同様にSwift自体の説明も必ずしも十分でない場合があります。そのような場合は末尾の参考文献等を参照してください。 対象読者 記事は、次の方を対象にしています。 Objective-Cの基的なプログラムが出来る方 Xcodeを使える方 画面の構成 iOSアプリの開発は、簡単に言うと画面の上に画像やテキストなどのコンテンツを配置して進めます。画面の上に配置して表示するという基幹のクラスはUIViewクラスです。そして画面上に配置されるコンテンツは全てUIViewクラスの

    Swiftでアプリの画面を作ろう! ~Objecive-Cとの比較で学ぶ
  • Rubyのオブジェクトとか - opamp_sando's blog

    2011-07-24 Rubyのオブジェクトとか なんか今日は最後にしますとか言っておきながらもう一つだけ書く。Rubyのオブジェクトについて。 Rubyは完全なオブジェクト指向言語(Object-Oriented Programming)なのですべて値はオブジェクトとしてみることができる. RubyではすべてのオブジェクトはObject型を継承している。つまりObject型で定義されたメソッドはすべてのオブジェクトから利用可能である.ちなみに今日の記事は今日借りてきたRubyの内容を言い換えたり補完したり逆に削ったりしてまとめてる感じに書いてる。 今回の記事ではすべてのオブジェクトが共通してもつ機能を使ってみる。 によると、Rubyでオブジェクトを操作するとき、実際に操作しているのはオブジェクトの参照らしい。 変数に値を代入するときはその変数の中にオブジェクトをコピーするので

  • 権限管理を実装するときの地味な話 - ✘╹◡╹✘

    「あるユーザがXをYできるかどうか」というメソッドを定義したいとき、Userに実装するよりも、Xに実装した方がうまくいくことが多かった。例えば「ユーザが投稿を編集できるか」という、ブログの共同編集のような機能で使うやつで考える。つまり、User#can_edit?(entry) みたいなやつにするか Entry#editable_by?(user) みたいなやつにするかという話になる。 後者の方でうまくいった理由は、Webアプリだとログイン中のユーザが存在しない場合というのがあるが、後者ではuserがnilの場合でも対応できたというのと、Userクラスが長大にならなかったという点 (Abilityクラスとかを全ての場所で統一して使えている場合はそれで良いので各自適当にやっていってほしい)。あとメソッドの命名規則の問題があって、名詞形 (例:User#name) か、xxx?で終わるメソッド

    権限管理を実装するときの地味な話 - ✘╹◡╹✘
  • RubyのClassクラスとかのモヤッと感をズバッと解決したい - Qiita

    ClassクラスとかModuleクラスの継承関係やら、 それ自体のクラスとかの関係てなんかモヤっと感あるなあと思っていて、 上手い事キレイに説明したいなと思い色々考えていたらそっぽい答えが出たので書きます. まあひとまず以下のコード見て頂いてモヤっとしなければこんなクソ記事すぐ閉じるが宜しいかと. もしモヤっとした方で興味があったらお読み頂ければなと. '1'.class => String '1'.class.class => Class '1'.class.superclass => Object '1'.class.class.class => Class '1'.class.class.superclass => Module '1'.class.class.superclass.class => Class '1'.class.class.superclass.superclas

    RubyのClassクラスとかのモヤッと感をズバッと解決したい - Qiita
  • 【艦これ】皆は鈴谷みたいな子が同級生にいたら仲良くなれそうだった? : 艦これ速報 艦隊これくしょんまとめ

    2014年09月07日15:00 カテゴリ艦隊これくしょん 【艦これ】皆は鈴谷みたいな子が同級生にいたら仲良くなれそうだった? 78: 名無しさん@おーぷん 2014/09/06(土)11:50:29 ID:CYhr2agkb 皆は鈴谷みたいな子が同級生にいて仲良くなれそうだった? 80: 名無しさん@おーぷん 2014/09/06(土)11:51:10 ID:SbURYEMay >>78 コミュ障なので無理w 81: 名無しさん@おーぷん 2014/09/06(土)11:51:29 ID:eOw6G2mbX >>78 無理やろあんなん クラスどころか学年中の人気者やで 83: 名無しさん@おーぷん 2014/09/06(土)11:51:51 ID:7GRauyWeq >>78 絶対無理 クラスの中心でいつも明るく笑ってる鈴谷を 遠くから見てるだけ 84: 名無しさん@おーぷん 2014/

    【艦これ】皆は鈴谷みたいな子が同級生にいたら仲良くなれそうだった? : 艦これ速報 艦隊これくしょんまとめ
    Muke
    Muke 2014/09/08
    やめるんだ!!現実でうまくいかなかったから二次に逃げ込んだだろうが!!
  • Haskellを愛する若者たちへ | POSTD

    この手紙は、”熟練者”ならではの知識を語るものではありません。新人かベテランかに関わらず、私たちの誰もが繰り返し学び、覚えておくべきことについて書いています。ここでは、一般的な傾向や、聞けばなるほどと思うような傾向、重要とされていることを新たに学んで興奮している時に見られる傾向を紹介します。また、学んだことの面白さや重要性を人にきちんと伝わるように話すことの難しさについてもお伝えします。この手紙はかなり具体的に書いています。一般的な話をするなら具体的なことも併せて話さなければ理解してもらえないと悟ったからです。これは代数的構造やその他の抽象的な概念についても言えることですね。この手紙には、私が頭に入れておきたい、また皆さんに共有したいアドバイスが詰まっています。インターネット上で適切とは言えない振る舞いをしている人に出くわした時、そんなことはめったにないでしょうが、そんな時に思い出したい内

    Haskellを愛する若者たちへ | POSTD
  • 関数型プログラマのためのRust | POSTD

    この投稿はEdward Z. Yangが2010年に書いた OCaml for Haskellers 、私自身が今年頭に書いた Haskell for OCaml programmers の流れに沿っています。 目次 プロローグ なぜRustを学ぶべきか 直接対応が可能なもの トレイト:Rustの型クラス アドホックなオブジェクトとメソッド 安全な参照 寿命と記憶域、そして管理オブジェクト オブジェクトの共有:RcとArc マクロとメタプログラミング リテラル 謝辞 参照 Copyright and licensing 注 : この記事の最新版は下記サイトで見られます。 http://science.raphael.poss.name/rust-for-functional-programmers.html 他のフォーマット: Source , PDF プロローグ C言語プログラマのための

    関数型プログラマのためのRust | POSTD
  • リファクタリング「コードの不吉な匂い」 - プログラミングの魔物

    リファクタリング 3章 リファクタリングを行うタイミングについては明確な定義を持つことが出来ない。 だから経験の中から「匂い」を感じて時期を決める。 この章との裏表紙にある表にはいつリファクタリングを行うかのヒントが書かれている。 重複したコード 言うまでもなく無駄。 同一クラスの複数メソッドに同じ式>「メソッドの抽出」 重複しているコードが複数の兄弟クラスに存在する場合>「メソッドの抽出」後、「メソッドの引き上げ」 コードが似ているけど完全に同一ではない場合>「メソッドの抽出」後、場合によっては「TemplateMethodの形成」 複数のメソッドが同じ処理を異なるアルゴリズムで実装している>「アルゴリズムの取り替え」 関係のないクラス間で重複コード>「クラスの抽出」をして新しいクラスに委譲、あるいはどちらかのクラスに持って委譲 長すぎるメソッド メソッドは長いほど理解しにくくなる。

    リファクタリング「コードの不吉な匂い」 - プログラミングの魔物
  • ポリモーフィズムを使ったリファクタリングの実践例 - Sacrificed & Exploited

    ポリモーフィズムを使ってないひどいコード設計を見たので、どうリファクタリングするべきだったのかを書いておく。 やばい匂いのするコード そのシステムでは、複数の銀行とのやりとりを行うため、銀行コードに基づいて処理を分岐していた。そうこんな風に void 入金(銀行コード, ユーザID, 金額){ if(銀行コード==0001){ // A銀行用の処理 ... } else if(銀行コード==0002){ // B銀行用の処理 ... } else { // エラー } } void 出金(銀行コード, ユーザID, 金額) if(銀行コード==0001){ // A銀行用の処理 ... } else if(銀行コード==0002){ // B銀行用の処理 ... } else { // エラー } } ここでは2つしか出してないけど、実際はもっと数が多いと思って欲しい。30個くらいはあった

    ポリモーフィズムを使ったリファクタリングの実践例 - Sacrificed & Exploited
  • intro-to-aop

    複雑なアプリケーションではロギング、 トレーシング 、メトリクスといったサポートの機能により、関数にすぐ負荷がかかってしまいます。これらのコードブロックはあらゆるコードベース上でそれぞれ少し変形して繰り返し使用されるのですが、これを 横断的関心事(cross-cutting concerns) と言います。 アスペクト指向プログラミング (AOP)は、アスペクトと呼ばれるモジュール内にコードブロックを引き入れて、 関心の分離 (separation of concerns)を手助けします。 AOPの実装 Phoneクラス ^(1) 不自然な例だというのは承知の上で、 dial メソッド1つを使って簡単なPhoneクラスを構築してみました。 function Phone() {}; Phone.prototype.dial = function (friend) { var start =

    intro-to-aop
  • テスト先に書きたい若者よ - hitode909の日記

    弊社では毎年インターンを受け入れているのだけど,いまもインターンが来てて,テスト先に書きたいけど油断すると先に実装を書いてしまう,とか話してた. 個人的には,テスト先に書くのが大事というよりかは,意識して仕様を先に考えるのが大事だと思っている.テストを先に書くと,先に仕様を考えざるを得ないので,良いスタイルが身につく. 僕がよくやるのは,関連しそうなクラスの絵をひと通りノートに書いてみて,その図だけで,うまく動くことを説明できるくらい考えてみる.その時点でおかしかったら,コード書いてもおかしくなる.ノートに方眼ついてるとクラス図書きやすい.UMLとかじゃなくても,自分で見て分かるくらいでもいいと思う. 紙でうまくいったら,外部仕様だけソースコードに書いてみる.クラス名と,メソッドの定義と,メソッドの上くらいに,ひと通りコメントでも書いてみて,この関数はこういうことをするんです,こういう引数

    テスト先に書きたい若者よ - hitode909の日記
    Muke
    Muke 2014/08/14
    Mnemosyneも使いやすいよ。書きやすいし方眼もあるしね。
  • PHP5.4 で実装された trait のまとめと実際の利用例|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ

    PHP5.4 で実装された trait のまとめと実際の利用例 弊社技術ブログへお越しのみなさま、こんにちは。今年度入社の新人、 YamaYuski です。 先日、社内勉強会にて「traitを使って楽したい話」という演目で簡単に trait について発表しました。 trait が実装された PHP5.4 は2年も前にリリースされたものなので、何故今更、という話になると思います。 しかし、ネット上(特に日語圏)においての trait の記事はまだまだ少なく、具体例を探すのも大変だったので、「もしかして trait はあまり浸透していないんじゃないか?」と考え、 trait の有用性を世に広めるためにこの記事を作り始めました。 今回は、初心者ながら個人的に調べたり考えたりしたことを、 trait とはなにか trait の実装方法と利用方法 どのようなケースで実装するか 実装時の小ネタ の4

    PHP5.4 で実装された trait のまとめと実際の利用例|技術ブログ|北海道札幌市・宮城県仙台市のVR・ゲーム・システム開発 インフィニットループ
    Muke
    Muke 2014/08/10
    Moduleみたいなかんじかなぁ勉強しなきゃ(使命感
  • Rails開発を面白くするアクションコントローラーの5大機能とルーティングの基本

    連載目次 前回の「ActiveRecordにおけるモデルの「関連」とコールバックの使い方」までではMVCモデルにおけるRailsのモデルをつかさどる機能を理解できたかと思います。 今回は、MVCモデルにおけるコントローラーをつかさどる「ActionController」の機能について解説していきます。ActionControllerは開発者が実装する各コントローラーの親クラスである「ApplicationController」の親クラスです。従って、開発者が実装する各コントローラーはActionControllerのメソッドを継承しています。 ActionControllerの機能に迫る前にコントローラーの基について「book_library」のディレクトリ「06」を基におさらいしておきましょう。 まずコントローラーの基についておさらい サーバーにリクエストが来ると、ルーティングによっ

    Rails開発を面白くするアクションコントローラーの5大機能とルーティングの基本
  • Scala の implicit parameter は型クラスの一種とはどういうことなのか - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    なんか型クラスとか言うと型の怖いひとたちが怖い話をワイワイしてるイメージがありますよね。わたしはあります。「で、それって何がうれしいのよ」とか、そういう話はあまりされていないような印象がありますね(あくまで印象です)。その上 "Scala の implicit parameter は型クラスの一種" とか言われると「暗黙的な引数がなんで型クラスの一種なんや!!!意味がわからん!!!!」となります。わたしはなりました。 というわけでそのへんについて勉強したので書きます。 そもそも型クラスってなんや Haskellとかにあるやつですね。アドホック多相を実現するもの、らしいです。すごい、いきなり意味がわからない。 というわけで、まずは「アドホック多相ってなんなの」という話からして行きます。 さて、まずは「多相」から行きましょう。この文脈で言う多相とは、簡単に言えば「引数にいろんな型を取れる」とい

    Scala の implicit parameter は型クラスの一種とはどういうことなのか - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • Rubyist Magazine - スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編)

    『るびま』は、Ruby に関する技術記事はもちろんのこと、Rubyist へのインタビューやエッセイ、その他をお届けするウェブ雑誌です。 Rubyist Magazine について 『Rubyist Magazine』、略して『るびま』は、Rubyist の Rubyist による、Rubyist とそうでない人のためのウェブ雑誌です。 最新号 Rubyist Magazine 0063 号 バックナンバー Rubyist Magazine 0063 号 Rubyist Magazine 0062 号 Kaigi on Rails 特集号 RubyKaigi Takeout 2020 特集号 Rubyist Magazine 0061 号 Rubyist Magazine 0060 号 RubyKaigi 2019 直前特集号 Rubyist Magazine 0059 号 Rubyist

    Muke
    Muke 2014/06/27
    んっと、つまり「class << self」は自オブジェクトを参照してるって認識でいいのかな。PHPでいう$this的なやつ?
  • mitukiii.jp | Rubyでコマンドラインスクリプト書くならThorが便利そう

    経緯 PadrinoというRuby製のWebフレームワークのジェネレータ周りのコード読んでるとThorというライブラリでタスクが書かれていました。コードがエレガントで読みやすかったので調べてみました。 Thorとは GithubのREADMEのDescriptionより意訳。 wycats/thor – GitHub Thorは自己ドキュメント化されたコマンドラインツールを効率よく作るツールです。これ使うことによりコマンドラインオプションのパースや使い方を書くという面倒な作業から解放されます。Rakeの代わりに使うことも出来ます。書き方もRakeに近いので既にRakeを使っている人もすぐに馴染むことが出来ます。 Thorってなんなんだろう。 – pochiのメモ帳 rakeとの主な違いは記述方式と、コマンドラインオプションです。 rakeを利用すると基的なコマンドラインオプションを用いて