강의

멘토링

커뮤니티

/

バックエンドフレームワークの作成

半分だけ作成された実行可能なソフトウェアであるフレームワークを作成できる知識と経験を学ぶことができます。

  • zero
Java
oop

受講後に得られること

  • 世界のすべてのフレームワークを理解できる知識と経験

  • バックエンド技術ロードマップを理解する能力

  • 作られた技術をうまく使うのにとどまらず、さらに発展させる能力

バックエンドフレームワークを作成するリビジョンに来てください。

バックエンドフレームワークを自分で作成し、
成長する開発者として生まれ変わりましょう! 🧰

なぜフレームワークを自分で作るのですか?

世界のすべてのフレームワークは
すべて同じプロセスを経て作成されます。

世界にはおいしい食べ物がたくさんあります。
その食べ物のおかげで、世界を楽しく生きることができます。
そのおいしい食べ物をもっとおいしく食べる方法があります。
食べ物を自分で作るのです。

もちろん、最初からうまく作ることはできません。
材料の調整に失敗したり、鍋を燃やすこともできます。
作った食べ物の評価が最悪かもしれません。

しかし、失望せずに繰り返し挑戦した場合
自分だけのレシピが完成し、
誰もがおいしく食べられる食べ物を作ることができます。

ところで、食べ物を作りながら得た経験と知識はここで終わりません。
食べ物を眺める目が変わります。
その食べ物に詰め込まれた材料、道具、そして作った人の考えを読む能力になります。
そして私のレシピを見事に整える知恵に広がります。

フレームワークを作成することも同じです。
私がフレームワークを作った経験と知識は
他のフレームワークに含まれる技術と知識、
そして、それを作った人の考えを正しく理解することができます。
私の能力を深くしてくれる知恵になります。

そのため、フレームワークをうまく使用するのに止まってはいけません。
他の人が使用するフレームワークを自分で作成してください。

コードが混乱しても大丈夫です。
当然、エラーが発生する可能性もあります。
使用する人の苦情があるかもしれません。

しかし、世界の素晴らしいフレームワークは同じプロセスで作られました。
当たって問題を確認し、解決を繰り返します。
そのようなプロセスは知識と経験を得てくれ、体内の知恵になる
開発者の生活を豊かにしてくれます。


この講義は

SWの再利用性
のための抽象化

モジュール単位
オブジェクト指向パラダイム

並行性、直列性確保
取引

必ず必要
非機能品質属性

「バックエンドフレームワークの作成」
何もない状態で実際の仕事に使用されるレベル
バックエンドフレームワークが完成する過程が含まれています。

SW工学の基本目標であるSW再利用性のための抽象化、
実行時に必要な機能とデータを持つモジュール
利用可能なオブジェクト指向パラダイム、
並行性と直列性を同時に確保するためのトランザクション(Transaction)、
開発者に必ず提供する必要がある非機能品質属性
フレームワークに入れる過程と経験、そして知恵があります。

この講義を通して
私と他の人が動作するソフトウェアを簡単に作成できるようにする
フレームワークを作る勇気と努力をしたいと思います。
そしてそのような経験を通じて、開発者の生活がより豊かで楽しくなることを願っています。


学習内容

  • 合計8つのセクションで構成されています。 (オリエンテーション以外)
  • 各セクションの終わりには考える問題があります。正解がない問題ですが、悩んで文で表現してみてください。
  • フレームワークの機能が順次作成されるため、カリキュラム順に学習することをお勧めします。
  • 講義で使用されたソースコードはセクションごとにGitHubにアップロードされています。 (リンク)

学習プロセスと特徴

セクション 1. 動作するソフトウェアを簡単に作成できるように準備します。
•サーブレット、MVCアーキテクチャスタイルを理解し、フレームワークの観点から実装します。

セクション2.共通機能を抽象化し、使いやすくするために設定します。
•最初の共通機能であるHttpServletRequestオブジェクトを抽象化し、開発者が簡単に使用できるようにAOPの視点にリファクタリングします。

セクション3. SQL依存の開発を削除します。
•SQL依存の開発を理解し、それらを削除するためのフレームワーク機能を開発します。

セクション4.ビジネスロジックを再利用できるDIとIoCを実装します。
•フレームワークが持つべき機能であるDIとIoCをビジネスの観点から考えて実装します。

セクション5.認証とアクセス制御を実装します。
•私が誰であるかを証明し、私ができることを確認する認証とアクセス制御機能を実装します。

セクション6.開発者が知っておくと良い知識:暗号化
•ブロック秘密鍵暗号化技術をうまく利用できる知識を学び、機能として実装します。

セクション7. SWの非可視性を解決するためにログ機能を実装します。
•並列/並行環境で動作するシステムでSWの可視性を保証するログ機能を実装します。

セクション8.非機能要件は、開発者が使用するソフトウェア機能です。
•フレームワークは、開発者の要求事項である非機能品質属性を満たす半分だけ作成された実行可能なSWであり、完成できないSWです。非機能品質属性について学び、今後追加される機能について考えてみましょう。


今挑戦!

最初のスタートはシンプルですが、
最後は実務でも使える
素晴らしいバックエンドフレームワークを完成させることができます。

こんな方に
おすすめです

学習対象は
誰でしょう?

  • バックエンドフレームワークの原理について疑問に思った人

  • 開発者が使用するSWを作りたい方

  • 開発者に必要な理論を実務の観点から理解したい方

前提知識、
必要でしょうか?

  • Java:基本的な文法

  • SQL:基本的なDML、DDL

  • JSPを使った経験

こんにちは
です。

240

受講生

7

受講レビュー

26

回答

4.6

講座評価

1

講座

  • 20년 경력의 자바 개발자
  • 백엔드 프레임워크를 만들고 사용중인 지식과 경험이 있는 개발자
  • 세상의 비즈니스 요구사항을 잘 이해하고 작동하는 코드로 단순하게 표현할 수 있는 개발자
  • 세상의 모든 기술을 사용하는 사람 입장에서 쉽게 설명할 수 있는 정보처리기술사

カリキュラム

全体

54件 ∙ (9時間 18分)

講座資料(こうぎしりょう):

授業資料
講座掲載日: 
最終更新日: 

受講レビュー

全体

3件

3.7

3件の受講レビュー

  • krocha07290532님의 프로필 이미지
    krocha07290532

    受講レビュー 12

    平均評価 4.9

    4

    100% 受講後に作成

    頑張ったので後期を残します。実際の頑強は1週間前頃にしましたが、昼休みに韓籍で書いてみるのだから参考になるかはわかりません。 【受講理由】 個人的には、プレビューで公開された「動作するソフトウェアを簡単に作成できるように準備します。」を見て受講を決めました。 【講義に対する感じ】 バックエンドフレームワークを作るという感じではなく、開発中に直面する問題について、ゼロ様の洞察力を配見する講義という感じがしました。ギボダン方向性の提示に近かった。 【その他】 ソースコードがますます積み重なっていますが、biz以下のパッケージとfw以下のパッケージが同じプロジェクトにテストコードとロジックコードが一緒に追加され続けてみると、ますますプロジェクトファイルが複雑に感じられました。これは単に個人的な感じかもしれません。 fwの各機能をモジュール別に分け、モジュールを参照してbizを作成するように講義を展開したらどうだったのでしょうか。

    • zero
      知識共有者

      こんにちは。 インフラの講義管理機能中に受講生管理画面があります。 そこで受講生それぞれの講義進度を確認できる機能を提供するのに 医師は他の人とは異なります 着実に進道を出てくる姿を見せてくれました。 講義を作った立場で力になりました。 頑張ってくれてありがとう。 方向性提示に関して話をしたら 私が講義を企画したときに悩んでいたことの1つは、 たくさん話すと話題から抜け出して 深く実装すると、コードが難しくなるということでした。 それを克服するために 実際の業務で発生した問題を理解し、 これをフレームワークの機能にする 初級開発者の観点から 講義構成をしました。 もちろん、講義で作られた機能は不足しています。 医師が話したように 方向性を提示することで終わるのも意図した部分です。 この点は 学んで使うフレームワークではありません 不便で改善するフレームワーク 視野を広げたいという気持ちで作りました。 フレームワークの最終版は以下の場所にあります。 https://github.com/zeroshift01/zeroshift01/tree/master/inflearn08 方向性の提示で終わったフレームワーク 実務で使用されるレベルに変化した様子をご覧いただけます。 2番目のパッケージ管理基準について話している場合 当然の話だが 実際の作業では、フレームワークリソースと 業務資源を分離して使用しています。 しかし、説明する観点から リソースを分離しないことが一目でわかる利点があります。 bizとfwリソースを分離していません。 Eclipseベースでリソースを見るとき 階層的に見ればリソースの区別がしやすいようです。 3番目のテストコードに関連する内容に答えると パッケージは一つの機能を凝集度の観点でモジュール化できる ディレクトリ情報だから その機能を欠陥を確認するテストコードも 同じ場所に置くのが効果的であるという考えでリソースを管理しました。 もちろん、ファイルの終わりはEmp001_test.javaのようにテストコードであることがわかりました。 そのような規則で、実務でもテストコード 運用環境に移管されることがないように管理されます。 さらに同じパッケージに配置されている場合 デフォルトメソッドのテストもお勧めです。 受講評 ありがとうございます。

  • dmsgml1588627님의 프로필 이미지
    dmsgml1588627

    受講レビュー 1

    平均評価 5.0

    5

    100% 受講後に作成

    頑強なレビュー! フレームワークを作ってみたい方。または他の既存のフレームワークを使用している人にお勧めします! フレームワークを使ってきましたが、内部的にどのように使われているのか、ちゃんと勉強したことがありませんでしたが、講義を通してたくさん学んでいきます。多分私もフレームワークをきちんと作ってみたいですね!

    • zero
      知識共有者

      ネイバー "コス"というウェブトゥーンを見ると 新しい草食(招式、権法の指導)をたくさん知るよりも 私が身につけた草食を深く知り、それを応用するのが利点というフレーズがあります。 そういう意味で講義を作ったのに役に立ったなんて気持ちがいいですね。 最後まで頑張ってください。 最初の受講評を残していただきありがとうございます。

  • kk0318769333641님의 프로필 이미지
    kk0318769333641

    受講レビュー 1

    平均評価 2.0

    2

    41% 受講後に作成

    講義内容は良いですが、考えてみる問題のような場合、正解あるいは関連内容なしに上がっているのはちょっと恥ずかしいですね…。 講義を買って聞くのは時間と試行錯誤を最大限減らそうとする理由が大きいのですが、関連内容をまた探さなければならないのがとても残念です。 最後に、現業ではインテリジェイを多く使っていますが、講義ではEclipseに進むのもちょっと残念な部分でした。

    • zero
      知識共有者

      こんにちは。ゼロです。 数学のスキルを育てるために 解説集を見てはいけません。 解説は問題の解決プロセスの1つだけです。 その過程を悩む前に目で最初に身につけると 同様の問題やアプリケーションの問題を解決できないからです。 考えてみる問題も同じだと思います。 動作するソフトウェアをコード化するプロセスは、 数学問題解説地にある内容のようにはなりません。 抽象化と可読性の間 トレードオフ(互いに反対の影響を与える)を心配する必要があります。 非定型リアルタイムデータ処理のため トランザクションシリアライゼーションをある程度放棄しなければならない状況が来ます。 この時役に立つのは 目で見た知識ではなく、私が悩んだ経験です。 そんな経験と知恵を得てほしい気持ちで 考えてみる問題の答えは別に上げなかった。 それでも気になる方のために オンラインフィードバック時間を設けたので興味があればメールしてください。 インテリジェイの使用に関連して WAS(Tomcat)を実行してデバッグできる機能(Enterprise Edition) ユーロ版から可能な関係に 講義企画の際に使用しないことにしました。 また、IDE固有の機能を必要とせず、別のプラグインやライブラリなしで クラスパス、コンパイル、ビルド設定だけでいいから 無料でWAS(トムキャット)制御が可能なEclipseを使用します。 しかし、提案したように インテリジェイ基準 バックエンドフレームワークプロジェクトの払い戻し設定方法を別々に作成 受講に役立つようにします。 受講評 ありがとうございます。

zeroの他の講座

知識共有者の他の講座を見てみましょう!