こんにちは、月子です。
Springに突入してからと言うものの、毎日ヒィヒィ言っています。
(違うところでもヒィヒィ言っているんですが)
Springを始めてみた時は「@ってなに? なんか変なメソッドでてきたんだけど!」と
わけがわからず、色々調べてみたので、メモを兼ねて書きたいと思います。
・なるべく参考にしないでください
→素人がただネットや書籍を参考にしてまとめただけです。
読解力の不足により間違えている可能性があります
優しい誰かが修正したり分かりやすく教えてくれるのではと思ったから(欲望)あと個人的メモ。
いいか絶対に参考にしないでくださいね!怒られても知らないからね!!!
DI(依存性の注入)
Springを構成するもので、特に大切な概念。
DIとDIコンテナはごっちゃにされがちだけど、DIは手法で、DIコンテナはツールって感じなんでしょうか。
そもそも「依存性」って何?!
研修で「依存性について答えよ」と書かれてある問題に対して、
「ヤンデレとかのこと答えればいいんですかね?」とキーボード前に狂ったことを考えてました。
冗談はさておき、まずは依存性について調べました。
依存性とは
あなたがいないと生きていけない状態
(メンヘラみたいになった)
真面目に言うと、
AがBの変更の影響を受ける場合、AはBに依存している
具体例をあげたいと思います。
依存性が高いコードというのは…ショールームとかにある本棚です。
ほら、ショールームとかにある本棚って、
なんかいい感じの洋風の本が飾ってありますが、
落ちたりしないようガッチリ固定されてたりしますよね。
もし本を取り出そうとしたい場合は、本棚をいったん解体しないといけません。
コードにするとこんな感じ。
*依存性が高いコード
public class Bookshelf { Book book = new Book(); Comic comic = new Comic(); //・・・ } }
もし「背表紙が赤いけど、青にしたいな〜」と思ったら、
本棚を解体して、本を取り出して、青い背表紙の本に変えなければいけません。
でも家の本棚って違いますよね。
外から買ってきた本や漫画、何なら書類とか小物を置いてもいいかもしれません。
クラスの外から定数やらインスタンスを持ってきて入れることを「依存性の注入」と言います。
public class Bookshelf { private book book; private Comic comic; public Bookshelf(Book book,Comic comic){ this.book = book; this.comic = comic; } }
DIのメリットって何?
・依存性が弱いおかげで、変化に強い
・コードが簡素になり、開発期間が短くなる
本棚と本がガチガチに固められてると、
新しい本を入れることも難しくなり(変化に弱い)
インテリアに合っているか確認するのも難しくなり(テストが困難)
入れ替えが全然できないから使いづらい!(コードの可読性が下がる)
…なんか例えたことにより、話がややこしくなった気がしますが、気にせず次に行きます。
AOPとは
プログラム方法論のことらしいです。
Aspect Oriented Programming略してAOP
AOPとは、コンピュータプログラムの特定の振る舞いを「アスペクト」と呼ばれる機能単位として分離して記述し、プログラム中の様々な対象に適用できるようにする手法。既存のオブジェクト指向プログラミング言語や開発環境に補助的に導入されることが多い。
頑張って調べてみました。
特定の振る舞い→業務ロジックには関係ない処理
例えば、買い物サイトを作るときに、
商品一覧ページ → 買い物かごページ → 購入ページ
こんな風に作りたいときに、キャッシュ処理やログ処理が出てきますよね。
しかも「閲覧した記録」「購入した記録」など、共通化できる処理です。
こういうのをアスペクトにまとめちゃって、
再利用したり、保守性を高くしよう!というのがAOPです。
https://qiita.com/yut_arrows/items/8a2558c5aaea1ddd176c

徐々に追記していきます
まだ調べたことはあったのですが、
まとめるのに時間がかかっています…(白目)
そのため、どんどん追記していくような形にしていこうと思います。
不足している部分、間違っている部分など
多々あると思いますが、
コメントやツイッターなどで優しく教えてくださると幸いです…
\ いろいろやってるよ! /
よわよわエンジニアのブログ:月子.log
雑多な発信をしてるツイッター:@moon_trdr
ゆるーーーい絵日記:@tuki__tukiko
欲しいものリスト 公開しています🌸
「鈴木 月子」宛に届けていただけると泣いて喜びます!
(送っていただいた方の名前・住所は匿名で送られますのでご安心ください♪)
***
派遣から正社員として、内定をもらいました!
【未経験からエンジニアになりたい人、おすすめのプログラミングスクール】
(コロナの影響で、オンラインでの無料説明会で案内しています)
1、GEEK JOB
私が通っていたプログラミングスクールです!
1番のメリットは、
無料の転職サポート&プログラミング教育を受けられることです!
私もGEEKJOBで転職サービスを受けて、入社しましたが、
最初から最後まで完全に無料でした。
プログラミングできるかな・・・と不安な方は、
最初は無料の説明会と体験会もあるので、
お試しで行くのも1つの手ですよ♩
「有料でもいいから手厚いサポートを受けたい」という方は、
私も大好きなマコなり社長が経営しているTECH::EXPERTをおすすめします!
なんと、質問し放題の環境が整っています。
未経験エンジニアとしての経験談なのですが、
質問できる環境ってありがたいですし、なにより成長ができます!
相談会や説明会は無料です。
DMMが開催しているプログラミングスクールです。
こちらは有料ですが、条件を満たすことで
支払った教育訓練経費の最大70%が教育訓練給付金として支給されます。
こちらも相談は無料です。
無料・有料どちらがいいかは体感だと、
有料の方がサポートが手厚い傾向です(当たり前ですよねw)
しかし無料だから適当というわけではないですし、
私のように転職を繰り返してお金がない人からしたら、
無料スクールはすごくありがたい存在でした🎵
無料スクール→自主的に勉強できる人・お金がない人
自分にあった方を選んでくださいね^ ^
コメント