Springについて色々勉強したので、プログラミング初心者がまとめていく

プログラミング

 

こんにちは、月子です。

 

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とは、コンピュータプログラムの特定の振る舞いを「アスペクト」と呼ばれる機能単位として分離して記述し、プログラム中の様々な対象に適用できるようにする手法。既存のオブジェクト指向プログラミング言語開発環境に補助的に導入されることが多い。

参考:http://e-words.jp/w/AOP.html

うががが(拒否反応)

頑張って調べてみました。

 

 

特定の振る舞い→業務ロジックには関係ない処理

 

例えば、買い物サイトを作るときに、

 

商品一覧ページ →   買い物かごページ →  購入ページ

 

こんな風に作りたいときに、キャッシュ処理やログ処理が出てきますよね。

しかも「閲覧した記録」「購入した記録」など、共通化できる処理です。

 

 

こういうのをアスペクトにまとめちゃって、

再利用したり、保守性を高くしよう!というのがAOPです。

 

 

徐々に追記していきます

 

 

まだ調べたことはあったのですが、

まとめるのに時間がかかっています…(白目)

そのため、どんどん追記していくような形にしていこうと思います。

 

不足している部分、間違っている部分など

多々あると思いますが、

コメントやツイッターなどで優しく教えてくださると幸いです…

 

ツイッターはこちら

 

 

***

派遣から正社員として、内定をもらいました!

 

Twitterでは、未経験エンジニアとして経験・知識を発信しています!

お気軽にフォロー・リプライしてください☺️

 

【未経験からエンジニアになりたい人、おすすめのプログラミングスクール】

(コロナの影響で、オンラインでの無料説明会で案内しています)

 

1、GEEK JOB

私が通っていたプログラミングスクールです!

1番のメリットは、

無料の転職サポート&プログラミング教育を受けられることです

私もGEEKJOBで転職サービスを受けて、入社しましたが、

最初から最後まで完全に無料でした。

プログラミングできるかな・・・と不安な方は、

最初は無料の説明会と体験会もあるので、

お試しで行くのも1つの手ですよ♩

 

無料説明会はこちら

2、TECH::EXPERT

「有料でもいいから手厚いサポートを受けたい」という方は、

私も大好きなマコなり社長が経営しているTECH::EXPERTをおすすめします!

なんと、質問し放題の環境が整っています。

未経験エンジニアとしての経験談なのですが、

質問できる環境ってありがたいですし、なにより成長ができます!

相談会や説明会は無料です。


無料相談会はこちら

3、DMM WEBCAMP

DMMが開催しているプログラミングスクールです。

こちらは有料ですが、条件を満たすことで

支払った教育訓練経費の最大70%が教育訓練給付金として支給されます。

 

こちらも相談は無料です。

無料相談はこちら

 

 

無料・有料どちらがいいかは体感だと、

有料の方がサポートが手厚い傾向です(当たり前ですよねw)

しかし無料だから適当というわけではないですし、

私のように転職を繰り返してお金がない人からしたら、

無料スクールはすごくありがたい存在でした🎵

 

有料スクール→手厚いサポートが欲しい人
無料スクール→自主的に勉強できる人・お金がない人

 

自分にあった方を選んでくださいね^ ^

 

この記事を書いた人
月子

経歴なし / スキルなし / お金なし
文学部卒業し、社会人になり転職3回。
3重苦になりながらも、プログラミングスクールへ。
4月からSESの会社で、未経験エンジニアとして働きます。
フリーランスエンジニア&副業で年収1千万いくのが夢です。
新婚です。

駆け出しプログラマーの毎日
プログラミング
スポンサーリンク
駆け出しプログラマーの毎日
月子の新婚生活記

コメント

タイトルとURLをコピーしました