並び順

ブックマーク数

期間指定

  • から
  • まで

161 - 200 件 / 241件

新着順 人気順

オブジェクト指向の検索結果161 - 200 件 / 241件

  • Table of Contents · Game Programming Patterns

    Table of Contents Game Programming Patterns Acknowledgements Introduction Architecture, Performance, and Games Design Patterns Revisited Command Flyweight Observer Prototype Singleton State Sequencing Patterns Double Buffer Game Loop Update Method Behavioral Patterns Bytecode Subclass Sandbox Type Object Decoupling Patterns Component Event Queue Service Locator Optimization Patterns Data Locality

    • グローバルゲームジャムでクラス設計をやった話2020 - Qiita

      はじめに 毎年恒例のグローバルゲームジャム。今回も参加してきたのでそのまとめを書きます。 2016 -> グローバルゲームジャムでクラス設計をやったらスムーズに開発が進んだ話 2017 -> グローバルゲームジャムでクラス設計をやった話2017 2019 -> グローバルゲームジャムでクラス設計をやった話2019 グローバルゲームジャムとは GGJとは全世界同時に行われるゲームジャムのことです。ようするに、世界規模のゲーム開発ハッカソンです。 プログラマ、デザイナ、プランナ、グラフィッカなどさまざまな役職の人をごちゃまぜに、3~8人程度のチームを組み、48時間でゲームを作ろうというイベントです。(前回のコピペ)(前回のコピペ)(前回のコピペ) 今回も「ヒューマンアカデミー秋葉原会場」に参加しました。 ゲームの概要 今年のテーマ 今年のテーマは「REPAIR」でした。シンプルにわかりやすいテ

        グローバルゲームジャムでクラス設計をやった話2020 - Qiita
      • 日本のデジタル競争力、過去最低29位 中韓台にも後れ - 日本経済新聞

        スイスのビジネススクールIMDは28日、2022年の世界デジタル競争力ランキングを発表した。63の国・地域のうち、日本の順位は前年から1つ下がり29位だった。17年の調査開始以来、過去最低を更新した。人材不足やビジネスのスピード感の欠如など課題が多く、上位に入る韓国、台湾など東アジアの国・地域からも取り残されている。世界デジタル競争力ランキングは毎年、各国の統計データや経営者・管理職への聞き取

          日本のデジタル競争力、過去最低29位 中韓台にも後れ - 日本経済新聞
        • 【DDD練習】「JR 新幹線 料金ルールを実装してみよう」にチャレンジ(その1) - shimapapa.io

          前置き 『現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法』の著者の増田さんが、 ワークショップで使用する「JR 新幹線 料金ルールを実装してみよう」というサンプルコードをGitHubで公開されておりました。 現場で役立つシステム設計の原則 〜変更を楽で安全にするオブジェクト指向の実践技法 作者:増田 亨出版社/メーカー: 技術評論社発売日: 2017/07/05メディア: Kindle版 明日 12/14 の「現場でDDD ! 2nd」のワークショップで使う、サンプルコードです。 新幹線の運賃と特急料金の計算ルールを、値オブジェクトで表現してみよう、という内容。 イベントに参加されない方も、ぜひ、チャレンジしてみてください。https://t.co/LlLKA5h7Bt #genbadeDDD— 増田 亨. (@masuda220) 2019年12月13日

            【DDD練習】「JR 新幹線 料金ルールを実装してみよう」にチャレンジ(その1) - shimapapa.io
          • DDDとかドメインオブジェクトとかよくわからないけど、実際にコードに適用するとこうかな? - 技ビス : 技術、ビジネス、スタートアップ

            最近DDDや値オブジェクトやドメインオブジェクトの定義が一部界隈で話題です。kumagi sanとかとじゅんさんの間で熱い議論が何日にも渡って繰り広げられています。 kumagi.hatenablog.com blog.j5ik2o.me kumagi.hatenablog.com kumagiさん眠たいんですが…。続きは明日でもいいですか。 — かとじゅん (@j5ik2o) 2022年5月19日 大変ですね! ぼくも違うチャネルでkumagi sanに色々理解をぶつけてみたものの全然違うようで色々と教えてもらったりしました。 しかしながら、これ実際どこでどう使うのかなと。大先生がこんな事を言ってました。 言葉遊びしてるんじゃねえんだぞ、動くものを作れ — Yoshi Yamaguchi (@ymotongpoo) 2022年5月19日 というわけで、最近書いたコードを題材にちょっとリフ

              DDDとかドメインオブジェクトとかよくわからないけど、実際にコードに適用するとこうかな? - 技ビス : 技術、ビジネス、スタートアップ
            • 関数型言語で DDD - Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F# - Shin x Blog

              オブジェクト指向言語でドメインモデルを実装することが当然のように行われていますが、Go で開発したり、Haskell で遊んだりしている中で、他のパラダイムの言語で実装するのはどうなんだろうかという想いがありました。 そんな時に出会ったのが、Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F# という本です。 概要 構成 ドメインを理解し、モデリングする 端的なフレーズ Database-Drive-Design や Class-Driven-Design との違い 型、型、型 関数型言語による実用例 恐怖のモナド さいごに 参考 概要 本書は、とある会社の受注とその関連業務をドメインとし、モデリングして、実装していくという内容です。紙ベースで行われている業務

                関数型言語で DDD - Domain Modeling Made Functional: Tackle Software Complexity with Domain-Driven Design and F# - Shin x Blog
              • 昔から使われている技術用語をさかのぼる: Value Object編

                考えてみればソフトウェアパターンが賑やかだった時代からはすでに20年以上たっているわけで、20年も変わるといろいろ状況も変わりますし、そんな昔のことなんて知ってるわけない、というか知ったことではない、という人も少なくないと思います。 とはいえ今でも使われている用語について、その当時の使われ方を知ると、考察が深まることもあるかもしれません。 そんな感じでOOPとかパターン方面の用語とかを遡りたい! というときには、WikipediaとかではなくてC2 Wikiを見るのがおすすめです。 C2 Wikiとは Wiki(WikiWikiWeb)の元祖みたいなやつですね。iki-ikiで紹介されています。 例えばValue Objectについて掘りたい、と思った時にはValueObjectで探すと見つかります。単語と単語をつなげるときに、単語の先頭を大文字にする感じです。 とはいえ、C2 Wikiも

                  昔から使われている技術用語をさかのぼる: Value Object編
                • クラスが増えても大丈夫!成長するソフトウェアを支えるリファクタリングの技術 - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」

                  開発部門(基盤本部)でエンジニアの育成を担当している高玉です。 基盤本部ではさまざまな勉強会を開催しています。先日も、BIGLOBE Styleでその様子をご紹介しました。 style.biglobe.co.jp 「クラスを増やすの、怖くないですか?」 オブジェクト指向プログラミング(OOP)を学んでいた時に聞かれたことです。業務ではJavaやドメイン駆動設計を活用しているので、クラスベースのOOPが題材になることが多いのです。OOPに慣れていない人からすると、クラスの数が増えることで全体を把握しづらくなったり、適切なクラスを見つけるのが大変になりそう、と感じるそうです。 「大丈夫!クラスを増やしたほうが楽になることがあるよ!」 と伝えたくて、この記事を書かせていただきました。何が楽になるのでしょう?それは、ソースコードを読むこと、です。「クラスを増やすと、ソースコードを読むのが楽になる?

                    クラスが増えても大丈夫!成長するソフトウェアを支えるリファクタリングの技術 - BIGLOBE Style | BIGLOBEの「はたらく人」と「トガッた技術」
                  • Nimで知る「オブジェクト指向をする/しない」ということ

                    Nim は、「もしアラン・ケイがオブジェクト指向と言わなかったら」という歴史の if を感じさせてくれる言語だと思った話をします。 私自身は Nim 初心者です。細部の「こいつ慣れてないな」感はご容赦ください。この記事は、この言語については初心者だけれど、プログラミング言語とパラダイムを考えるうえでとても価値があると思った気付きがあったのを、図々しくも記事にしました。複数のプログラミング言語を歴史的な観点で評価するうえで、Nim を通して 70 年代以前の言語と 80 年代以後の言語、具体的には、C with classes と C++ の境界線を見つめ直すことができるんじゃないかと思います。 ズバリ言うと、Nim はアラン・ケイのオブジェクト指向が通じない言語です。 Nim の言語標準には class キーワードがありません(マクロを作れば語句の拡張は可能ですがオプションです)。が、そん

                      Nimで知る「オブジェクト指向をする/しない」ということ
                    • 2000年代のオブジェクト指向はやはり洗脳だったのか - naoya2kの日記

                      2000年から2010年にかけて僕はとある大きな会社でJava技術に関しての重鎮の一人だった。組み込み系なので「Javaの重鎮=Javaの処理系を作れたり速くて省メモリなプログラムを作れたりする」であり、オブジェクト指向べったりということにはならず、僕らは結局洗脳されていなかった。そもそもJavaの処理系は全てが全てオブジェクト指向で書かれているわけではなかった(でもクラスライブラリの実装はJavaの各クラスが何なのかを正しく理解するのにとても役立った)。 C++と比べて比較的遅いJavaで、当時の組込みプロセッサで十分な速度を出そうとすると、オブジェクト指向をピュアに推進するわけにはいかなかったというのも理由のひとつだった。 daiyamamoto.hatenablog.com そんなわけで僕がいた世界ではJavaエンジニアはスーパースターではなかった。世界のJavaの潮流からは微妙にズ

                        2000年代のオブジェクト指向はやはり洗脳だったのか - naoya2kの日記
                      • ICONIXプロセスから学ぶオブジェクト指向モデリング/ICONIX for Object-Oriented

                        2020.08.21 チェンジビジョンセミナー 株式会社ミライトデザイン CEO 林 宏勝 - なぜオブジェクト指向にモデリングは必要なのか? - ICONIXプロセスを使用したドメインモデリング https://astah.change-vision.com/ja/events/seminar.html

                          ICONIXプロセスから学ぶオブジェクト指向モデリング/ICONIX for Object-Oriented
                        • 『データ指向プログラミング』読んだ / OOP以前とDOPとの対比と差分などについて - Lambdaカクテル

                          先々月あたりに邦訳が出た『データ指向プログラミング』を読んだ。めちゃくちゃざっくり言うとオブジェクト指向における「データと振舞いの一体化」というドグマを手放させるもので、めちゃくちゃざっくり見るとC言語的な構造化プログラミングの世界に回帰するようにも見えることから、世間的には色々な評価があるらしい。 イミュータビリティが良い、みたいな話は重々承知なので適宜飛ばしながら読んだ。また、lodashまわりの話は単なるライブラリ紹介であり、特筆することがないので飛ばした。 こういう感じで言及されている zenn.dev slides.com 自分なりに読んで思ったことをまとめる。面白い本だったし、自分の思想にも近しいものがある。僕は普段ScalaやTSを書いているので、その観点からの感想が多いです。OOPの歴史に詳しいわけではないので、不足があったらすみません。 OOP以前の世界との差異 イミュー

                            『データ指向プログラミング』読んだ / OOP以前とDOPとの対比と差分などについて - Lambdaカクテル
                          • PlantUML使い方メモ - Qiita

                            長くなるので、図の書き方はクラス図とシーケンス図だけで。 その他の図については 続・PlantUML使い方メモ #PlantUML - Qiita を参照。 PlantUML とは テキストで UML 図を記述できる DSL の一種(たぶん) 本体は Java で書かれていて、単一の jar ファイルを落としてきてコマンドラインから実行できる plantuml/plantuml: Generate UML diagram from textual description ただし、実際に使うときは Visual Studio Code とかのプラグインを入れて実行することが多いと思う ライセンスは GPL v3 plantuml/license.txt at master · plantuml/plantuml 環境構築 OS は Windows10。 Java > java --versi

                              PlantUML使い方メモ - Qiita
                            • 「コンパイル時のユニットテスト」導入するとユニットテストを 書かなくてよくなるのか?

                              Scott Wlaschin氏は著書である"Domain Modeling Made Functional" (和訳本なし)に関する講演で、関数型言語を用いてドメインモデルを定義すると、テストを書く必要がなく、たくさんのフラグをチェックする必要もないと説明しています。 彼はこの方法を「自己文書化」と「コンパイル時のユニットテスト」と呼んでいます。 この話では、彼の言う「コンパイル時のユニットテスト」が具体的にどのようなものなのか、そしてこの方法を使うことでテストがどれほど効率的になるのかを扱います。ただし、ドメイン駆動開発の定義やC#やF#の詳細な文法については説明しません。 https://zenn.dev/jtechjapan_pub/articles/d4e1dacb6f00a2 こちらのブログで練習で話したセッションなども見ることが可能です。

                                「コンパイル時のユニットテスト」導入するとユニットテストを 書かなくてよくなるのか?
                              • [Object-Oriented Conference] 資料まとめ | Qrunch(クランチ)

                                技術ブログをはじめよう Qrunch(クランチ)は、プログラマの技術アプトプットに特化したブログサービスです 駆け出しエンジニアからエキスパートまで全ての方々のアウトプットを歓迎しております!

                                  [Object-Oriented Conference] 資料まとめ | Qrunch(クランチ)
                                • よくわかるSOLID原則1: S(単一責任の原則)|erukiti

                                  ソフトウェアエンジニアが知っているべきSOLID原則についての記事です。SOLID原則は、5つの原則の頭文字を並べた言葉で、S・O・L・I・Dそれぞれの原則について、5回に分けて説明します。 1) Single Responsibility Principle:単一責任の原則 2) Open/closed principle:オープン/クロースドの原則 3) Liskov substitution principle:リスコフの置換原則 4) Interface segregation principle:インターフェース分離の原則 5) Dependency inversion principle:依存性逆転の原則 今回はSingle Responsibility Principle(単一責任の原則 / SRP)についてです。 なぜSOLID原則が必要なのか?初回なので、なぜソフトウェア

                                    よくわかるSOLID原則1: S(単一責任の原則)|erukiti
                                  • ドメイン駆動設計に15年取り組んでわかったこと 「ビジネスルール・値オブジェクト・型」が3つのキーワード

                                    株式会社ビープラウドが主催するIT勉強会「BPStudy」。#151となる今回は、設計の代表格であるオブジェクト指向、モデリング、そして設計にフォーカスをあて、LT大会を開催しました。「ドメイン駆動設計に取り組んだ15年でわかったこと 」に登壇したのは、ドメイン駆動設計に15年取り組み続けている増田亨氏。ビジネスルールと値オブジェクトと型という3つのキーワードを軸に、ドメイン駆動設計をソフトウェア開発に落とし込む方法論について語りました。講演資料はこちら ビジネス活動に起因する複雑さに立ち向かうドメイン駆動設計 増田亨氏(以下、増田):よろしくお願いします。私は2006年ぐらいからドメイン駆動設計に実際に取り組んで、15年ぐらいやっているんですけど、今日はそれを私なりにわかったことというか、けっこう最近振り切ってこうやってますよという内容を、みなさんの参考になればと思って少しお話しします。

                                      ドメイン駆動設計に15年取り組んでわかったこと 「ビジネスルール・値オブジェクト・型」が3つのキーワード
                                    • Polly Want A Message (DeconstructConf)

                                      Object-oriented languages have opinions about how best to arrange code. These opinions lead OO to naturally offer certain _affordances_. Just as round doorknobs expect to be grasped and rotated, OO expects messages, polymorphism, loose-coupling and factories. The key to creating intuitive and maintainable OO applications is to understand and embrace these built-in affordances.

                                        Polly Want A Message (DeconstructConf)
                                      • よりよい開発手法 - ソフトウェア設計を考える

                                        ソフトウェア開発の問題点 従来のウォータフォール方式で、フェーズ分けと分業を重視し、手続き的なモジュール構造でソフトウェアを開発するやり方には次の問題があります。 大量のドキュメントの作成に膨大な時間と費用がかかる(工程が多く、必要な人員がふくらむ) フェーズ分けと分業のため、関係者の間の認識合わせが難しい(伝言ゲーム) ちょっとした変更でも、調査・修正・確認に膨大な時間がかかる(変更がやっかいで危険) 一方、アジャイルと呼ばれる開発のやり方は、以下の問題が起きがちです。 ソフトウェアの規模が大きくなると、どこになにが書いてあるか理解ができなくなる 増築・改築の繰り返しが、全体の構造と品質を劣化させる 全体を俯瞰したり構造を確認するための情報がなく、変更の影響がわかりにくい ちょっとした変更でも、調査・修正・確認に膨大な時間がかかる(変更がやっかいで危険) どちらのやり方でも 変更がやっか

                                          よりよい開発手法 - ソフトウェア設計を考える
                                        • オブジェクトライフサイクルとメモリ管理を学ぼう / OOC 2020

                                          Object-Oriented Conference 2020 https://ooc.dev/ #ooc_2020 #ooc_b Session Abstract https://fortee.jp/object-oriented-conference-2020/proposal/a07d4c1a-40f0-4d9e-9f00-4bb522b07ca2

                                            オブジェクトライフサイクルとメモリ管理を学ぼう / OOC 2020
                                          • MVC、3 層アーキテクチャから設計を学び始めるための基礎知識 - Qiita

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

                                              MVC、3 層アーキテクチャから設計を学び始めるための基礎知識 - Qiita
                                            • オブジェクト指向設計の5つの原則「SOLID」を解説

                                              オブジェクト指向プログラミングにある程度精通していれば、この開発スタイルが、特定の言語やフレームワークの選択よりも、基礎となる設計手法に深く関わっていることを知っているだろう。オブジェクト指向の適切な設計については数多くの主張や見解があるが、「SOLID原則」は、オブジェクト指向設計に携わる全ての開発者が従うべきルールとして、その権威を確立している。 SOLIDの原則を真に理解するには、この原則が推奨する個々の設計プラクティスについて学び、「各原則を並べて議論する必要性」を理解しなければならない。そこで本稿では、SOLIDが表すオブジェクト指向設計の5つの原則をそれぞれ確認する。「各原則がどう違うか」ではなく「各原則を相互に結び付ける根本的な概念とは何か」について説明する。 オブジェクト指向設計のSOLID原則とは オブジェクト指向プログラミングには特有の5つの原則がある。この5つの原則は

                                                オブジェクト指向設計の5つの原則「SOLID」を解説
                                              • Object-Oriented Programming  —  The Trillion Dollar Disaster

                                                OOP is considered by many to be the crown jewel of computer science. The ultimate solution to code organization. The end to all our problems. The only true way to write our programs. Bestowed upon us by the one true God of programming himself…

                                                  Object-Oriented Programming  —  The Trillion Dollar Disaster
                                                • Let's make a contract: the art of designing a Java API

                                                  Let's make a contract: the art of designing a Java API 1. Let's make a contract: the art of designing a Java API by Mario Fusco mario.fusco@gmail.com @mariofusco 2. What is an API? 3. What is an API? 4. An API is what a developer uses to achieve some task What is an API? 5. What is an API? An API is a contract between its implementors and its users 6. And why should I care? We are all API designer

                                                    Let's make a contract: the art of designing a Java API
                                                  • オブジェクト指向にとって継承とは何か?〜ストラウストラップ「「オブジェクト指向プログラミング」とは何か」〜 - Qiita

                                                    オブジェクト指向にとって継承とは何か?〜ストラウストラップ「「オブジェクト指向プログラミング」とは何か」〜C++Haskellオブジェクト指向 オブジェクト指向とは何か?ということを真面目に調べていくと、オブジェクト指向には二種類ある、という話に突き当たる。sumim氏のQuora回答などを参照。 Smalltalkの設計者アラン・ケイによる、メッセージング重視のオブジェクト指向 C++の設計者ストラウストラップによる、クラス重視のオブジェクト指向 今回はこの後者のオブジェクト指向について、ストラウストラップの論文「「オブジェクト指向プログラミング」とは何か?」What is "Object-Oriented Programming"?(1991)の内容を(適宜行間を補いつつ)まとめてみる。 当然サンプルコードはC++(ほぼ原論文のコードのコピペです)。 ストラウストラップのオブジェクト指

                                                      オブジェクト指向にとって継承とは何か?〜ストラウストラップ「「オブジェクト指向プログラミング」とは何か」〜 - Qiita
                                                    • オブジェクト指向歴25年のオブジェクト指向おじさんが語るオブジェクト指向設計の処方箋 - Qiita

                                                      この記事のターゲット この記事は以下の人々を対象としています。 オブジェクト指向を一通りわかっている人。 オブジェクト指向の設計力を高めたい人。 オブジェクト指向を使っているのに、設計が綺麗にならず悩んでいる人。 プログラムが大きくなるとオブジェクト指向設計が破綻する人。 オブジェクト指向に限界を感じている人。 共同開発メンバーの設計力に差があって困っている人。 以下の人は対象外です。 オブジェクト指向が何なのかわからない人。 オブジェクト指向を極めている人。 関数型など別のパラダイムに活路を既に見いだしている人。 オブジェクトは責任ベースで考える オブジェクト指向といえば、やれインターフェイスだメッセージだ隠蔽だカプセル化だ、みたいな用語がたくさん出て来て、どれも関連があるようでないようで意味が分からないですよね。気取ったこと言ってんじゃねぇよと。 日本で社会人経験があれば、こんなものは

                                                        オブジェクト指向歴25年のオブジェクト指向おじさんが語るオブジェクト指向設計の処方箋 - Qiita
                                                      • 異なるモデリングパラダイムから見るモデリングの勘所 #ooc_2020

                                                        トランザクションスクリプトはどこから来たのか トランザクションスクリプトは何者か トランザクションスクリプトはどこへ行くのか #sekkeinight

                                                          異なるモデリングパラダイムから見るモデリングの勘所 #ooc_2020
                                                        • [初心者向け]破滅的なクソコードを書かないために意識したい3つのこと - Qiita

                                                          この記事で伝えたいこと ここでは、私が設計を勉強しながらコーディングした経験から、初心者でも簡単に実践できる簡単なルールを3つピックアップしました。 一つのクラスは150行以内に収める 循環参照はしない 継承はしない この3つを守れば、破滅的なクソコードであれば割と簡単に防げるかと思います。 この記事における「破滅的なクソコード」は「一切のリファクタリングの余地も残されていないほどのコード」を意味し、この記事の目的は、「破滅的なクソコード」から、「最低限リファクタリングすればなんとかなるコード」になる程度の手法を紹介することです。 マサカリは大歓迎ですがお手柔らかにお願いします。 読む上で留意して欲しいこと この記事はあくまで 「初心者のための破滅的なクソコードを書かないための簡単な方法論」 であって、「効率的で分かりやすい設計の方法論」ではありません。 この3つは「銀の弾丸」ではないです

                                                            [初心者向け]破滅的なクソコードを書かないために意識したい3つのこと - Qiita
                                                          • ITエンジニアが投票した「ITエンジニア本大賞2024」発表 単体テストの考え方/AWS運用ノウハウ/ プロジェクトマネジメントの基本が全部わかる、など

                                                            この記事は新野淳一氏のブログ「Publickey」に掲載された「ITエンジニアが投票した「ITエンジニア本大賞2024」発表。単体テストの考え方/プログラマー脳/ プロジェクトマネジメントの基本が全部わかる、など」(2024年1月17日掲載)を、ITmedia NEWS編集部で一部編集し、転載したものです。 「ITエンジニア本大賞」は、仕事の役に立った本、初学者におすすめの本、ずっと手元に置いておきたい本など、おすすめの本をITエンジニアがWeb投票で選ぶイベントです。 主催は翔泳社ですが、対象となる書籍は出版社を問わず技術書、ビジネス書全般となっています。刊行年も関係なく、これまで大賞に選出された書籍を除き、この1年を振り返っておすすめしたい書籍が対象となります。 今回発表されたのは技術書部門とビジネス書部門それぞれのベスト10です。現時点では50音順に並んでいます。 以下は選出された技

                                                              ITエンジニアが投票した「ITエンジニア本大賞2024」発表 単体テストの考え方/AWS運用ノウハウ/ プロジェクトマネジメントの基本が全部わかる、など
                                                            • オブジェクト設計スタイルガイド

                                                              オブジェクト設計において、コードの読みやすさ、書きやすさ、メンテナンス性を向上させるにはどうすればよいでしょうか? 本書は、より良いオブジェクト指向のコードを書くためのルールを紹介します。オブジェクトの種類に応じたオブジェクトの構築、メソッドの定義、状態の変更や公開など、設計ルールを説明します。Java、Python、C#など、あらゆるオブジェクト指向言語に適用できるテクニックを、擬似コードを使ってわかりやすく解説します。コードの品質を上げるためのルールを紹介する本書は、プログラマ必携の一冊です。 まえがき 序文 本書について 1章 オブジェクトを使ったプログラミング入門 1.1 クラスとオブジェクト 1.2 状態 1.3 振る舞い 1.4 依存関係 1.5 継承 1.6 ポリモフィズム 1.7 コンポジション 1.8 クラスの整理 1.9 Return文と例外 1.10 ユニットテスト

                                                                オブジェクト設計スタイルガイド
                                                              • Black Inc. に入社しました - バーチャルおりばーハウス

                                                                by.black 入社したといっても、2019年の5月から業務委託としてクラウドゲーミング のプラットフォームである OOParts の開発に関わっていたのであんまり新鮮味はないのだが、フルコミットする形になった。 元々スタートアップ界隈にはちょいちょい関わっていたり、IncrementsでQiitaを開発していた時も少人数開発だったので、その経験をBlackでも発揮できれば良いなと思っている。 実際フルコミットしてから1ヶ月が過ぎたわけだが、物理的なオフィスがない中、V-Officeと呼ばれる謎空間でみんな仕事をしている。2020年4月からこの状態なので、業界ではかなり先取りして完全リモート移行していた会社と言えるだろう。 しかも面白いことに物理的にオフィスに集まっていた時よりも集合率が高く、しかもコミュニケーションがむしろ多くなったという稀有な事例と感じている。V-Officeで現状課

                                                                  Black Inc. に入社しました - バーチャルおりばーハウス
                                                                • ソフトウェア開発のやり方の改善

                                                                  要件定義・仕様化・実装の継ぎ目をなくす開発手法。 ビジネスロジックを軸に組み立てる。 値の種類(型)に注目してモジュール化するRead less

                                                                    ソフトウェア開発のやり方の改善
                                                                  • オブジェクト指向のリ・オリエンテーション~歴史を振り返り、AI時代に向きなおる~

                                                                    Object-Oriented Conference2024 基調講演(2024.3.24Sun)のスライドです。 オブジェクト指向という考え方がプログラミング言語Simula(Simula I:1962、 Simula67:1967)の影響のもとでAlan Kayによって1970年前後に生まれてから半世紀以上が過ぎた今、その歴史的な功罪を素直な目で振り返り(reflection)たい。そのうえで改めて「オブジェクト指向」という言葉・概念・思いの意味を、プログラミングや設計を踏まえたソフトウェア工学だけでなく、言語・哲学・文化といった観点からも広く見直してみたい。そうすることで新たな気持ちを込めて、「Objectオブジェクト」「Orientation指向」に生成AI・大規模言語モデル時代である現在において意味のある概念としてしっかりと向き直りたい(リ・オリエンテーション)と思う。それは新し

                                                                      オブジェクト指向のリ・オリエンテーション~歴史を振り返り、AI時代に向きなおる~
                                                                    • オブジェクト指向をわかりやすく説明してみる。 - Qiita

                                                                      初めに こんにちは、今回はプログラミングの基本とも言えるオブジェクト指向ですが、 自分の言葉でオブジェクト思考とは何かを表現することによって、 さらに理解をブラッシュアップしていければいいなと思い、この記事を作成しました。 オブジェクト指向に対する解説記事はもう多く出回っている状況ですが、 どなたかにこの記事がお役に立てば幸いです。 オブジェクト指向とは とあるデータとそのデータを制御する処理をひとまとまりのオブジェクト(物)とみなし、 そのオブジェクト同士の関係性を構築していくことで一つの成果物を作成していくプログラミング手法のことを指します。 オブジェクト指向を支える要素たち クラス オブジェクトを生成するための設計書のようなもの。 クラスの中には、それぞれプロパティとメソッドが要素としてある。 プロパティ オブジェクトが保有するデータのことを指す。 メソッド オブジェクトが保有するデ

                                                                        オブジェクト指向をわかりやすく説明してみる。 - Qiita
                                                                      • 継承の種類

                                                                        継承にかかわる諸問題2003-05-07「継承」はオブジェクト指向ではよく話題になり、また問題視されます。しかしそれは使い方が間違っているからです。 単刀直入に始めましょう。継承には3種類あります。そしてそれは「オブジェ クト指向」の話で出した「オブジェクトの3つの意味」に対応します。それを 順に見ていきましょう。ここでもまた犬の例を使うことにしましょう。 内包の継承内包とは「犬とは何か」でした。そして内包の継承とは、「犬」という概念を 受け継いで、それより狭い概念を導出することにあります。例えば「秋田犬」 というオブジェクトを作ることにあたります。 「犬とは何か」という問いの答えは「食肉目イヌ科の哺乳類でオオカミを家畜 化した動物」でした。そして「秋田犬とは何か」という問いの答えは、「食肉 目イヌ科の哺乳類でオオカミを家畜化した動物であり、秋田原産で大型、尾は 太く番犬に適した動物」です

                                                                        • Smalltalk-72で学ぶOOPの原点のカレンダー | Advent Calendar 2019 - Qiita

                                                                          TL;TR 抽象データ型からメンバー関数を動的にコールするだけが「メッセージング」and/or「オブジェクト指向」ではないのです! あなたの「オブジェクト指向」の理解や他者への説明、まず前提から見直す必要はありませんか? ないですか、そうですか…^^; Smalltalkの歴代処理系の中でも特に初期の実装であるSmalltalk-72は、今のSmalltalkとはまったく違う言語で、非同期ではないながらもトークン列をメッセージとして送る実装が採用されているなど、いまひとつピンと来にくいアラン・ケイ発案の“メッセージングを介した「決定の遅延」を目指すオブジェクト指向”を学ぶのに適していそうです。LivelyWeb上に再現されたSmalltalk-72処理系をいじって遊びながら情報を持ち寄り、その後の単なる動的な関数コールを「メッセージ」と呼ぶようになってしまったこれ以降の世代のSmallta

                                                                            Smalltalk-72で学ぶOOPの原点のカレンダー | Advent Calendar 2019 - Qiita
                                                                          • GitHub - webqit/oohtml: Towards a more dynamic and object-oriented HTML.

                                                                            Explainer • Features • Modular HTML • HTML Imports • Data Binding • Data Plumbing • Implementation • Examples • License Object-Oriented HTML (OOHTML) is a set of features that extend standard HTML and the DOM to enable authoring modular, reusable and reactive markup - with a "buildless" and intuitive workflow as design goal! This project revisits the HTML problem space to solve for an object-orien

                                                                              GitHub - webqit/oohtml: Towards a more dynamic and object-oriented HTML.
                                                                            • オブジェクト指向JavaScriptによるフロントエンドコンポーネント開発 | Hypertext Candy

                                                                              オブジェクト指向とは、一言で言うと、「データとデータに対する演算をひとまとめにするプログラミング手法」だと思います。 JavaScript も、オブジェクト指向の機能を備えています。ただし、Java や Python などの他言語で採用されるクラスベースの仕組みではなく、「プロトタイプオブジェクト」をベースとした独特な仕組みなため、少しとっつきにくいかもしれません。 しかし、プロトタイプベースの仕組みは、理解すれば(やはり JavaScript らしく)かなり単純です。そして、オブジェクト指向のプログラミングスタイルは、再利用可能な UI コンポーネントを表現するのに役に立ちます。 この記事では、そんな JavaScript のオブジェクト指向とその活用法を紹介します。前半はざっくり文法的な説明をして、後半でコンポーネントの実装例を載せています。最後に、ES2015 で導入されたクラス記法

                                                                              • プログラミングで副作用と状態ってなに? | 民主主義に乾杯

                                                                                # 1. 副作用とは 「副作用」とは、関数またはメソッドを実行した時に、オブジェクトの属性が変化することを指しています。 例えば Python の list.sort は、副作用のあるメソッドです。 反対に sorted は、副作用のない関数です。 # # 副作用あり # lst1 = [1, 0, 3, 2] lst1.sort() lst1 # [0, 1, 2, 3] -> オブジェクトが変化したので副作用がある # # 副作用なし # lst2 = [1, 0, 3, 2] lst3 = sorted(lst2) lst2 # [1, 0, 3, 2] -> オブジェクトは変化していないので副作用はない lst3 # [0, 1, 2, 3] プログラミングにおける副作用(ふくさよう)とは、ある機能がコンピュータの(論理的な)状態を変化させ、 それ以降で得られる結果に影響を与えるこ

                                                                                • オブジェクト指向の3大要素をWebアプリの実装を例に解説【継承・カプセル化・多態性】 - Qiita

                                                                                  【オブジェクト指向ってわかりにくくない?】 オブジェクト指向の3大要素:継承・カプセル化・多態性って何度勉強してもふわっとしか理解できなかったのは私だけでしょうか? 勉強中はわかったような気にはなるのですが、実際にコードを書く段階でどう使えばいいの?という状態になりました。 継承の説明で「勇者というclassから上位互換のスーパー勇者classを作る」と聞いて、実務で勇者はでてこないしなぁ、良さや使う場所のイメージが難しいなぁと思っていました。 しかし、実務を積んでいくと、良いコードを作る上で大事な考え方であることがわかってきました。 実務に近い内容で説明される方がわかりやすいと思うことが多いので、この記事では具体的なWebアプリの実装を元に継承・カプセル化・多態性を解説していきたいと思います。 【この記事で説明すること】 この記事では、書籍管理アプリを作ることを例にオブジェクト指向の継承

                                                                                    オブジェクト指向の3大要素をWebアプリの実装を例に解説【継承・カプセル化・多態性】 - Qiita