よしたろうブログ

設計・人文知・歴史・哲学・漫画とかの話が好きです。

2022-01-01から1年間の記事一覧

別名参照問題とディフェンシブコピー

こちらの記事は以下の記事にて他のトピックと共に統合的に扱っています。ちょっと長いですが、多角的により深く、ある程度網羅的にまとめています。こちらの方がより深い理解が得られると思いますので時間がある場合はこちらを参照してください。 yoshitaro-…

「プリミティブ型」と「参照型」はメモリ管理の仕組みが異なる【Java】

前記事ではJava における引数などの評価戦略は「値渡しのみ」であり「参照渡し」は存在しないと紹介しました。これに加え本記事では、データのメモリ管理上で具体的にどの様なことが起きているのかを紹介します。

Java に参照渡しは存在しない。値渡しだけが存在する。

Javaの評価戦略は値渡しです。 Javaでいう参照値(reference values)・参照(references)を引数で渡しても、値渡しで評価されます。参照渡しができるという記事や解説がよく見られますが、Java には「参照渡し」はありません。確かに配列やオブジェクトの場合…

最近の学びを簡単にご紹介~SOLID・カプセル化・宣言型プログラミング・不変・共変・反変・ROA・REST・スキーマ駆動開発など~

SOLID カプセル化と宣言型プログラミング 不変・共変・反変 HTTPとURI HTTPメソッド ROAとREST 安全性と冪等性 スキーマ駆動開発とAPI設計 プロダクトや組織の文脈を把握する まじアウトプットは大事!!

コレクションとジェネリクス~不変と共変~【Java】

この記事ではコレクションとジェネリクスを使いこなせるようになるための基礎知識をまとめています。ラムダ・ストリーム・オプショナルを使いこなすためですね。 目次 コレクションとは? コレクションの種類 それぞれの特徴 List Set Map 配列とListの使い…

【徹底解説まとめ】 継承、抽象クラスとインターフェイスの違い、ついでにSOLID【Java】

誕生した背景には必ず問題があり、そのソリューションとして道具が登場します。その道具は、その問題を解決するための機能以外のことはできない方がいいのです。本来の目的以外の余計な役割を持たせれば、他の道具と目的が重複すかもしれません。無駄であり…

SpringBootとスキーマ駆動開発で始めるWeb API 設計開発入門:後編

初めに 前編ではスキーマ駆動開発において必要な前提知識や周辺ツールの記述を行いました。 以下の様なものたちです(抜粋)。 ❐ スキーマとは ❐ OpenAPI Specification ❐ OAI:OpenAPI Initiative ❐ OpenAPI (Swagger) Editor ❐ OpenAPI Generator (Gradle …

SpringBoot とスキーマ駆動開発で始めるWeb API 設計開発入門:前編

初めに まず、最初には、どんな環境で行ったのかと、それらの周辺知識をまとめた備忘録になります。実際にAPI開発を簡単に行なってみてAPI設計についてまとめてみよう的な記事です。 過去記事にてREST API の実装のための前提知識をまとめました。そこの知識…

HTTPとRESTの基本 『網羅版:HTTPメソッドとレスポンスコード』

HTTPとRESTを構成する概念や技術を理解し、RESTful API設計をする上で必要な知識を理解する。レスポンンスコードの意味と使い所を中心に紹介。

勉強会でLTしてきました!in 大阪

初めに 九月末に参加した勉強会でLTしたので、LT風景の紹介や使用した資料の簡単な補足説明でもしようかと思います。 #ココカラ勉強会 昨日参加させていただきました!LTさせて頂きありがとうございます〜✨主催のお三方のカラーが良い空気感を作ってるんだな…

「初心者のためのデザインパターン入門」シリーズ 第3回【Adapter - クラスの仲介役 - 】

Adapterパターンの概要 既存のクラス(Adaptee)を、Adaptee とは互換性のないインタフェース・抽象クラス(Target)に適合させる際に、既存のクラス(Adaptee)と異なるインターフェイス(Target)の間を取り持つのが Adapter です。 Adapter クラスを設けるこ…

「初心者のためのデザインパターン入門」シリーズ 第2回【Template Method - 順序と詳細の分離 - 】

Template Methodパターンについての説明。メリットデメリット・特徴・注意点などについて解説。 単なる差分プログラミングではなく「順序」と「詳細」の分離である。

インフラ・ネットワークの基礎知識と名前解決

ネットワークの基礎的な知識 ネットワークの基礎的な知識 Server 2進数と10進数の関係 TCP/IP(TransmissionControlProtocol/InternetProtocol) 階層型プロトコル ネットワークインタフェース層 インターネット層 トランスポート層 アプリケーション層 IPア…

『決定板:Javaの継承と抽象化~ 第4部 抽象クラスとインターフェイスの使い分け』

Javaにおけるインターフェイスと抽象クラスの違い・使い分けを、本質的かつ網羅敵に解説した唯一無二の記事です(誇張)

『決定版:Javaの継承と抽象化 ~ 第3部 抽象クラス ~ 』

はじめに 本記事は、「継承」「抽象クラス」「インターフェイス」の各々について、それらの相互作用について学ぶことをテーマにした全4部構成記事の第3部「抽象クラス」について、です。 『継承・インターフェイス・抽象クラス』シリーズ 前部 「インターフ…

『改訂版:Javaの継承と抽象化 ~ 第2部 インターフェイス ~』

2. インターフェイスとは? 2-1. インターフェイスの特徴 2-2. インターフェイスのメリット 2-3. インターフェイスのデメリット 2-4. クラスとインターフェイスの違い 2-5. インターフェイスの目的と注意点 2-6. 多重継承はなぜ必要なのか? 2-7. Java8 で d…

『旧版:Javaの継承と抽象化~ 第2部 インターフェイス ~』

『Javaのインターフェイス』~歴史・型の継承・ポリモーフィズム・情報隠蔽・多重継承問題へのソリューション~ オブジェクト指向・多重継承・SOLID原則・設計などの目線でインターフェイスについて網羅的にまとめてみました。

『決定版:Javaの継承と抽象化 ~ 第1部 継承 ~ 』

はじめに 本記事は、「継承」「抽象クラス」「インターフェイス」の各々について、それらの相互作用について学ぶことをテーマにした全4部構成記事の第1部です。 『継承・インターフェイス・抽象クラス』シリーズ 『Javaの継承』~型と実装の継承・合成と委譲…

「初心者のためのデザインパターン入門」シリーズ 第1回【Iterator −処理を繰り返す−】

前置き 引用元:Java言語で学ぶデザインパターン入門第3版 デザインパターンはクラスの再利用化を促進するものです。 再利用化を促進するとは、 クラスを部品として使えるようにすることであり、1つの部品を修正しても、他の部品の修正が少なくてすむ、ことな…

「初心者のためのデザインパターン入門」シリーズ 第0回 【デザインパターンとは?】

始めに 本記事は当ブログ管理人よしたろうによる『GoFデザインパターン入門シリーズ』です。本記事を見るだけで、各デザインパターンの総合的理解ができることをコンセプトにしております。ピンポイントな情報ではなく、理解に必要な周辺知識をできる限り記…

【Java】for文・拡張for文 どっちを使うべき?

前置き コレクション毎の繰り返し処理で、for文と拡張for文どっちを使うべきか?について書きました。Iteratorパターンを使用している 拡張for文 を使うべきという話です。 本記事において集約オブジェクトとは 配列 コレクション を含めます。上記の通り、…

- 記事一覧 -

滞在時間が長い記事BEST5(1ヶ月単位月末更新) yoshitaro-yoyo.hatenablog.com yoshitaro-yoyo.hatenablog.com yoshitaro-yoyo.hatenablog.com yoshitaro-yoyo.hatenablog.com yoshitaro-yoyo.hatenablog.com 以下は掲載順です yoshitaro-yoyo.hatenablog.c…

【Java】ラッパークラスの意義について

ラッパークラスとは? 各プリミティブに対応したラッパークラス オブジェクトとして扱えると何がいいの? オートボクシング(Autoboxing)・アンボクシング(Unboxing) 注意点 参照型について ラッパークラスとは? 基本(プリミティブ)型である int や do…

防御的プログラミングと契約プログラミング

1. 猜疑心か相互信頼か、防御的か契約に基づくか 防御的プログラミングと契約プログラミングについて、後述する勉強会で疑問を持ち、勉強会内で説明されていること深堀りしてみました。 asken.connpass.com すべてが勉強になる話だったのですが、こちらの記…

参考サイト・資料の一覧②

当ブログの記事作成で参考・引用させて頂いた資料 qiita.com speakerdeck.com speakerdeck.com gihyo.jp www.yo1000.com codezine.jp aki-m.hatenadiary.com DevLOVE DDDBC from Takuto Wada www.slideshare.net camp.trainocate.co.jp qiita.com www.ne.jp …

参考サイト・資料の一覧

当ブログの記事作成で参考・引用させて頂いた資料 en.wikipedia.org nobuo-create.net 4engineer.net qiita.com yudoufu.hatenablog.jp xtech.nikkei.com ja.wikipedia.org ja.wikipedia.org relearn-java.com thekingsmuseum.info thekingsmuseum.info thek…