並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 17 件 / 17件

新着順 人気順

object-orientedの検索結果1 - 17 件 / 17件

  • オブジェクト指向には、カメラがやっとついたころのガラケーのイメージがある - きしだのHatena

    某所でオブジェクト指向についていろいろ書いたのでまとめておく。 問題意識としては初学者がなにかというと「オブジェクト指向できるようになりたい」のようなことを言うけどそこまでの優先順位でがんばるものではないんでは、というところです。 まず前提として、オブジェクト指向は1980-2000年くらいに流行って発達したものの、それ以降は時代にあわせた進歩はしていない20年以上前の技術ってのがあります。 そのころは今だとCPUのキャッシュにも満たないようなメモリをやりくりしてプログラムを書く必要があったので、オブジェクト指向はメモリ上のデータをコピーすることなくうまく使いまわせるようなプログラム技術になっています。 そしてオブジェクト指向にはそこから目だった更新はなく、タイトルに書いたように、カメラがやっとついたくらいのガラケーのような古い技術という感じがします。 オブジェクト指向について、アプリケー

      オブジェクト指向には、カメラがやっとついたころのガラケーのイメージがある - きしだのHatena
    • 2021年の「オブジェクト指向」を考える

      きしださんが先日もたのしいお題を投下されていました。 出遅れましたがこのネタについて少し掘り下げてみます。 念のため個人的なスタンスをあらかじめ表明しておくと、オブジェクト指向に対してはそれなりに好意的ですが、別に時代の最先端だとかソフトウェア開発に必須の知識というほどではない(でも知っておくと便利というか、知らないと不便なこともあるかもしれないのでわざわざ避けるのはおすすめしない)というくらい温度感です。 オブジェクト指向 is 何 そもそも「オブジェクト指向」という言葉自体、座りの悪い言葉です。 意味が明確なのは「オブジェクト指向プログラミング(OOP)」、「オブジェクト指向プログラミング言語(OOPL)」、「オブジェクト指向設計(OOD)」「オブジェクト指向分析(OOA)」といった「オブジェクト指向なんとか」の方で、それらをふわっとまとめた(ような気がする)単語が「オブジェクト指向」

        2021年の「オブジェクト指向」を考える
      • オブジェクト指向宗教史

        OOC 2024 の発表資料です。後のフィードバックを参考に、より妥当な文言に改訂してあります。 ※ 本コンテンツには、一部特定の宗教思想の迫害に言及する表現がございますが、そのような行いを肯定する意図の内容ではございません。

          オブジェクト指向宗教史
        • 現代のオブジェクト指向の class の割れ窓化と宣言的プログラミング

          オブジェクト指向には、カメラがやっとついたころのガラケーのイメージがある - きしだの Hatena の件。基本的には同意。ただちょっと切り口が違うので自分の意見を言っておく。ただ、このテーマで何度か書こうとして失敗していて、今回も成功しているとはいえない。 宣言的プログラミングの時代 現代の主流は「宣言的プログラミング」であると思っている。これはリソースの宣言と、その状態遷移の手続きや振る舞いの付与が中心にある。 宣言型プログラミング - Wikipedia その代表的な例がフロントエンドの React と、バックエンドの k8s で、どちらも時系列に基づいた状態の宣言と、フレームワーク側による状態遷移処理、 Reconcillation(調停) が基礎にある。 フロントエンドとバックエンドという両極端な世界で、この変化が起きたのがこの時代を反映したものであると思う。 例えば、jQuer

            現代のオブジェクト指向の class の割れ窓化と宣言的プログラミング
          • オブジェクト指向は必要なのか / Is object-oriented needed?

            2024/3/24に開催されたObject-Oriented Conferenceでの登壇資料です。 https://ooc.dev/2024/

              オブジェクト指向は必要なのか / Is object-oriented needed?
            • 時代がstaticおじさんに追いついてきた(追記あり) - きしだのHatena

              この文章みてください。 オレはもう20年以上システム業界にいるけどな、その長い経験から言うと、オブジェクト指向なんてものは、理論としては面白いけど、およそ実用的とは言い難いものだな。まぁ、例えばGUIのコンポーネントとかはオブジェクト指向に基づいて作られているようだから、そういうツールとかを作る人には必要なものなのかもしれない。しかし君たちがいずれ作ることになる業務アルゴリズムにはまったく無縁のものだと思ってもらって間違いない。どうもこの業界、オブジェクト指向でなければダメ、というような風潮がまかりとおっているけどな、オブジェクト指向なんか本当に使っている人はほとんどいないよ。オレも少し勉強してみたけど、カプセル化とかポリ何とかとか、どうにも利点が理解できなかったね。実際、実業務で使ったことなどないしな…… 「またお前、オブジェクト指向の話をしてるのか」と思ったかもしれませんが、2010年

                時代がstaticおじさんに追いついてきた(追記あり) - きしだのHatena
              • 教える側が知らないプログラミングの3つのこと

                2022/3/25に行われた「第一回プログラミング教育について話し合う会」でのLT資料です。 https://opt.connpass.com/event/240392/

                  教える側が知らないプログラミングの3つのこと
                • オブジェクト指向プログラミングは終わった - Qiita

                  追記: 振り返りを書いてみました~ -- ここから元記事 別題: 抽象化って言葉もう。。 社内の記事にて、オブジェクト指向のこころ (SOFTWARE PATTERNS SERIES) | アラン・シャロウェイ, ジェームズ・R・トロット, 村上 雅章 |本 | 通販 | Amazonを紹介してもらいました。 取り上げられた、共通性/可変性分析の解説を見て、はっと思うことがありポエムを仕立てました。 共通性/可変性分析 共通性/可変性分析については、書籍を読むかググって頂けると良いですが、社内記事が良かったので引用させて頂きます。 問題領域にある概念を見つける(共通性の分析) その流動的要素を洗い出す(可変性の分析) 流動的要素を見ながら、その概念が持つ責務を果たすための抽象的側面(≒インタフェース)を導く 各流動的要素の実装上の観点から、インタフェースが適切かどうかを見極め、補正する オ

                    オブジェクト指向プログラミングは終わった - Qiita
                  • 「DIは必ずしも善ではない」| Dependency injection is not a virtue by DHH

                    DHHの Dependency injection is not a virtue(2013) という記事は有名ですが、ちゃんとした日本語訳が意外とないようなので、書き出してみて思ったことを要約してみた。[1] Rubyのエンジニアの中には、何も考えずに他のモデルのnewを書いてる人の割合が多いという(コードレビュー時のヒアリングによる)体感があり、また8年前の記事なので経験の浅い人は読んだことがない人もいると思う。該当する方は是非読んでほしい。 全部読む時間が無い人は要約へ. 原文と訳文 In languages less open than Ruby, hard-coded class references can make testing tough. If your Java code has Date date = new Date(); buried in its guts,

                      「DIは必ずしも善ではない」| Dependency injection is not a virtue by DHH
                    • 契約による設計事始め

                      Object-Oriented Conferenceの発表資料です。 https://fortee.jp/object-oriented-conference-2020/proposal/1224f293-8624-4448-866f-5d1b991d377f カンファレンスの感想はこちら。 …

                        契約による設計事始め
                      • フロントエンドとオブジェクト指向

                        フロントエンドの実装にオブジェクト指向をどのように取り入れるかを考えます。 動機 近年のフロントエンドは、Reactなどのフレームワークを使ったコンポーネントベースの設計が主流だと思います。コンポーネントは、HTMLによるマークアップ、CSSによるスタイリング、JavaScriptによる振る舞いがひとまとめにされた、再利用可能な部品です。 コンポーネントの設計を考えていると、次のような疑問が生じます。 何を基準にコンポーネントで分割すればよいか。 コンポーネントの粒度はどれくらいが適切なのか。 どのタイミングで抽象化すれば開発コストが無駄にならないか。 分業した際にコンポーネントの分割や粒度の基準をどのように統一するべきか。 そこで、いろいろ調べたり試したりしたところ、フロントエンドの設計にオブジェクト指向を取り入れることが、これらの答えの一つになるのではないかと考えました。 この記事では

                          フロントエンドとオブジェクト指向
                        • Rustを通して見るオブジェクト指向|TechRacho by BPS株式会社

                          こんにちは。yoshiです。夏のTechrachoフェア2022ということで、夏とは何の関係もない記事を書いていこうと思います。 業務ではC++をやっていながら前回、前々回にTechrachoで書いた記事に引き続きRustをやっていく訳ですが、定期的に炎上しがち(?)なオブジェクト指向の話です。みなさん、オブジェクト指向は好きですか? オブジェクト指向って何だろう? A. なんもわからん なんて言ってしまったら話が終わってしまうのですが。 歴史的な話をするとオブジェクトという用語はSimulaが初出で、オブジェクト指向はアラン・ケイがSmalltalkで導入したもの、という話になりますが、一方でビャーネ・ストロヴストルップがC++に導入した「カプセル化・継承・ポリモーフィズム」の組み合わせのことを指すことが多く、SmalltalkのそれとC++のそれにも違いがあるので定義が定まらない概念で

                            Rustを通して見るオブジェクト指向|TechRacho by BPS株式会社
                          • 高階関数は何であるかを簡潔に説明する - Qiita

                            はじめに なんか、高階関数で、一部界隈が盛り上がっているぽいので、なんとなくエントリを書いてみました。一言で言うと、「関数を引数に取る関数」あるいは「関数を返り値とする関数」が、高階関数と呼ばれます。それだけです。 あとは、各言語で、引数や返り値になれるような「値としての関数=第一級関数」をどのように実現するかが問題になります。ここで、「関数を引数に取る」というのは、「値としての関数」を引数に取る、という意味であることに注意してください。 というわけで、以降、いくつかの言語で、第一級関数をどのようにして表現しているかについて述べてみたいと思います。他にも方式があると思いますが、ツッコミ歓迎。 いわゆる「関数型プログラミング言語」の場合 多くの「関数型プログラミング言語」では、「関数」それ自身がプリミティブでかつ値なので言うまでもないのですが、いくつか例を挙げます。 たとえば、Schemeで

                              高階関数は何であるかを簡潔に説明する - Qiita
                            • MVC、3 層アーキテクチャから設計を学び始めるための基礎知識 - Qiita

                              はじめに アプケーション・アーキテクチャについて学ぶと「MVC」や「3 層アーキテクチャ」といった言葉にたどり着きます。 さらに勉強を進めると「MVVM」、「ドメインモデル」、「クリーンアーキテクチャ」など、よく分からない言葉がどんどん増えていきます。 また、「オブジェクト指向」を勉強しても、実際のアプリケーションでの使いどころが分からなかったりします。 この記事では、これらの用語の非常に分かりにくい関係を整理しました。 2 種類の 3 層 伝統的な Web アプリケーションは、以下のように 3 種類のサーバから成り立ちます。 このサーバ構成を 3 層アーキテクチャと言うことがあります。 一方、アプリケーションサーバで動いているプログラムの内部構造も、以下のように 3 層に分離することがあります。 これも 3 層アーキテクチャと言うことがあります。 この記事では、サーバの構成ではなく、アプ

                                MVC、3 層アーキテクチャから設計を学び始めるための基礎知識 - Qiita
                              • オブジェクト指向は差分プログラミングとデータ分類をまとめて扱おうとしたのが弱点 - きしだのHatena

                                オブジェクト指向の最大の特徴は、モジュールと型を一体に扱ったことです。 メイヤーの本では次のような「オブジェクト指向の基準」があげられています。 クラスが唯一のモジュールでなければならない すべての型はクラスに基づいていなければならない つまり、クラスはモジュールであり型であるということです。 ここで、モジュールにとって必要な、クラスで実現できる機能は、モジュール間で異なる部分だけをそのモジュールで実装するという差分プログラミングです。 型に求められるのは、データの分類です。 ということは、オブジェクト指向は差分プログラミングとデータの分類を同時に扱おうとしていたということになります。 けれども、データの分類と差分プログラミングを同時に行うのは大変です。 「できらぁ!データの分類と同時に差分プログラミングして、いいソフトウェアができるっていったんだよ!!」 というのがオブジェクト指向だった

                                  オブジェクト指向は差分プログラミングとデータ分類をまとめて扱おうとしたのが弱点 - きしだのHatena
                                • Dependency Injectionでやりたいことはモジュールimport - きしだのHatena

                                  Dependency Injection(DI)、最近のフレームワークには欠かせない気がする機能になってますね。 そしてDIの説明をみると「依存性の注入」みたいなことが書いてあって、ようわからんになりがちです。 実態としては高機能なimportなので、あまり難しいことを考えなくていいような気がします。 たとえば、こんな感じのMyServiceクラスがあってDIコンテナに管理させるとします。 @Component class MyService { void method() { } } そして、MyServiceを使うMyControllerがあるとします。 @Component class MyController { @Inject MyService service; void hello() { service.method(); } } これって、実際のところMyServiceの

                                    Dependency Injectionでやりたいことはモジュールimport - きしだのHatena
                                  • 「オブジェクト指向プログラミングと関数型プログラミングは対立するものではなく直交する」という主張があります。私は常々この主張は詭弁であると考えており、それは自己回答で補足します。如何思われますか?

                                    回答 (4件中の1件目) 質問者です。 まず、「オブジェクト指向プログラミングと関数型プログラミングは対立するものではなく直交する」という主張についてです。 このトピックにおいて「直交」という数学的な用語が、自分が知る限り、少なくとも日本国内で表明されたのは、 「関数型言語」に関するFAQ形式の一般的説明 - Qiita という記事が最初であると記憶しています。 ちなみに蛇足を先に処理しておくと、この記事は、モナドって?の章にしてもモナドの定義も説明内容も完全に間違っているし(書き手が理解できていない、モナドについて正しい知識は、30分でわかるJavaScriptプログラマの...

                                      「オブジェクト指向プログラミングと関数型プログラミングは対立するものではなく直交する」という主張があります。私は常々この主張は詭弁であると考えており、それは自己回答で補足します。如何思われますか?
                                    1