pj100-team / part-time-tutorial

新しくアルバイトに入った方向けの研修チュートリアル
3 stars 1 forks source link

なすくんChap2 #25

Closed umepon0626 closed 1 year ago

umepon0626 commented 1 year ago

Chapter[2]

このChapterで勉強した内容やCheckPointの答えを下のコメントにメモしていきましょう!

:cyclone: 作成時のチェック事項

NasuYuto commented 1 year ago

Checkpoint1 Q2.なぜpyenvのような仮想環境ツールが必要なのでしょうか?⇨ :プロジェクトごとに必要なバージョンの実行環境を用意することができるから。

Q3.pyproject.tomlに記載されているtool.poetry.dependenciesとtool.poetry.group.dev.dependenciesにそれぞれ含まれるライブラリの違いは何でしょうか?⇨ :tool.poetry.dependenciesは本番環境で必要な依存関係を定義し、tool.poetry.group.dev.dependenciesは開発環境でのみ必要な依存関係を定義するためのセクションです。

Q4.poetry.lockファイルはgitで管理すべきでしょうか?しないべきでしょうか?⇨ :poetry.lockはgitで管理するべきです。なぜなら、gitで管理する事により、チーム内の全ての開発者が同じ依存関係のバージョンを使用し、再現性の高い環境を確保できるから。

Q5poetry.lockファイルが存在せずに、pyproject.tomlのみが存在する場合に、どのような問題が起こるでしょうか?⇨ : 依存関係の一貫性、プロジェクトの再現性、安定性と品質管理、チームコラボレーションにおいての問題が生じます。

Q6. poetry.lockファイルに存在する、hashという項目はなぜ必要なのでしょうか?⇨ :もし仮にhashがなければ信頼性や安全性に問題が出てきます。hashはpoetry.lockファイル内のハッシュと一致している場合、開発者や他の環境で 同じバージョンの依存関係を再現することや依存パッケージの改ざん有無を確認できます。よって信頼性と安全性を確保するためにhash項目は必要です。

NasuYuto commented 1 year ago

Checkpoint3

Q1. DBにIndexを張るメリットとデメリットとは何でしょうか?⇨ :indexを貼るメリットは、検索が早くなり検索にかかる時間が短くなるメリットがあるが、ndexを適当に貼りすぎると、更新に時間をかけてしまうというデメリットがある。

Q2. デッドロックになる場合はどのような場合でしょうか?⇨ :お互いに占有しているタスクの解放を待って処理が進まない状態になる場合のこと。

Q3. N+1問題とは何でしょうか?⇨ :クエリの実行をたくさん行いパフォーマンスが落ちてしまうこと。例えば、N件のデータ情報を読み出すのに1件のクエリを発行し、読み出したデータを一件ずつ読み出すのにN件のクエリを発行する。つまりN+1になる。

NasuYuto commented 1 year ago

Checkpoint4 1.RestAPI, エンドポイント, URLとは Restapiとは異なるプラットフォームやアプリケーション間でのデータの共有や連携が容易になるwebサービスアーキテクチャースタイル。 エンドポイントはクライアントがリクエスを送信するための特定のURLパスをしめす。 URLとはwebページを一意に特定するためのアドレス。

2.HTTPリクエスト、レスポンス クライアントとサーバー間でデータの要求と応答を行うための基本的な手段。

3.Session クライアントとサーバー間で一連の関連するリクエストとレスポンスを追跡及び管理するための仕組みである。

4.Cookie クライアントの情報を保持し、再度同じサイトを開いた時など以前の情報を返すことで効率を上げることができる。

5.HTTPステータスコード 例えば(404) HTTPステータスコードはHTTPリクエストの対するサーバーの応答状態をしめす3桁の数字です。404はリクエストされたリソースが見つからないことを示す。

6.HTTPリクエストメソッド クライアントがサーバーに対して行う要求に種類や操作を示すためのメソッドです。例えば、GETメソッドは、指定されたリソースの所得を要求する。

7.CSRFトークン 攻撃者が正当なリクエストを生成する際に、正しいトークンを所得できないようにするトークンです。

8.HTTPとHTTPSの違い 通信が暗号化されているかされていないかの違いです。さらに、httpsを使用していると、seoの向上が期待されています。

9.リクエストボディとリクエストヘッダ リクエストヘッダは、クライアントがサーバーにたいして、要求を行う際に、リクエストの性質や要求に内容を伝えるために使用されます。 リクエストボディには、フォームデータ、JSONデータ、画像などの任意のペイロードを含めることができます。

umepon0626 commented 1 year ago

お疲れ様!実務頑張って!

NasuYuto commented 1 year ago

研修資料作ってくださりありがとうございます!引き続き頑張ります!