Upgrade to Pro — share decks privately, control downloads, hide ads and more …

[第1回] Webサービス開発講座

notch_man
August 23, 2023

[第1回] Webサービス開発講座

2023年度の筑波大学enPiTで使用した資料です。全4回+αでWeb開発の基礎を学ぶことが出来ます。

※notion資料は近日公開予定です。

notch_man

August 23, 2023
Tweet

More Decks by notch_man

Other Decks in Education

Transcript

  1. 3 ⾃⼰紹介 クラウドソーシングサービスなどを 開発しています notch_man twitter: @notch_man8600 • 認定スクラムマスター(CSM) •

    ラボのシステム開発の全責任を負う(辛い) • 学類パンフに載ったけど留年したよ(笑) • 現場で都合良く使われています [概要] • 2020年3月 香川高専卒業 • 2021年4月 筑波大編入 • enPiT2021(受講)&2022~(メンター) [略歴]
  2. 5 この講座のゴールについて 1. シンプルなWebアプリを作れるようになる 2. Webアプリケーションを作る上でのお作法を学ぶ 3. 汎用的なスキルとノウハウを知る 4. オレオレFWを作りたくなる気持ちになる

    5. オレオレFWを安易に使うと火傷をすることを知る 6. 巷のFWが何故受け入れられたのか考えられるようになる 7. おまけ話を聞いて世間を知る ⽬標段階のレベルを定義しました。 これらいずれかを⽬指しましょう!
  3. 6 レベル1: シンプルなWebアプリを作れるようになる • コピペしたらフロントとバックエンドが動くコードを作ります ◦ Pythonなので分かりやすい! ◦ クリーンなコードでGPL v3だから使いやすい!

    • それを写経したら何かが作れます • ちょっと弄ると自分らしさが出せます • 良い感じに弄られるようになると、色々なサービスが作れます ◦ ロジックとかで使い回せるようになると非常に楽になります
  4. 8 レベル3: 汎⽤的なスキルとノウハウを知る • 〇〇を作ってと言われたら何となく手順が分かる • ex.) 配車アプリを作って ◦ データモデルは...

    ◦ テーブル構造は... ◦ とりあえずLAMPで頑張れば1000人くらいまでは耐えそう ◦ フロントはHTMLとCSSで頑張るぞ ◦ おらおら実装するぞ!
  5. 9 レベル4: オレオレFWを作りたくなる • ORMの苦しい点を知る • フレームワークのイケていないところを知る • Pythonのイケていないところを知る •

    イケていないことの解決策に”自分で何とかする”という選択肢を加える • 実際に作って“何とかしてみる”経験をする
  6. 10 レベル5: オレオレFWで⼤⽕傷を負う • 実際に作って“何とかしてみる”経験をする • さて、それを他の人にも広めてください! ◦ う~ん、辛い •

    あなたのFWは誰の何の課題を解決しましたか? ◦ オレオレFW is only for you • あなたの課題はあなただけの課題であることを知る ◦ そのレベルを超えたやつはgithubのissueを見てくれ => 100回に1回くらいは他の人も思ってる
  7. 11 レベル6: 巷のFWに回帰しよう • FlaskやFast APIの思想を知る • 巷のFWが受け入れられた理由を考えてみる • FWの意義を知る

    • FWでは何とかならん世界があることも知る ◦ そういうところではオレオレFWが大活躍します ◦ そういうのが興味がある人はビッグテックとか基盤開発しているところに行きましょう
  8. 15 本講座概要 • 基本的に初心者向けコンテンツから進んでいきます • 回を重ねる事にレベルがアップしていきます • 自分が目指すゴールを目標に頑張って食らいついてください • 質問は24H365Dいつでもおkです

    • ツールのインストールから辛いという人は適宜discordでサポートします(あ まりに人が増えたら考えます) • ナンモワカランけど質問しまくるなどして頑張ってついてきてくれる人が居る と、主催者は泣いて喜びます
  9. 16 本講座の進め⽅ • スライド+notion資料とサンプルコードで進みます • たまに動画を撮ります • 水・金の空いている時間にQ&Aをやります • 過去のコンテンツの質問もwelcomeです

    • 質問はとりあえずtimes_notchmanへ気軽に投稿してください • というか困ったらすぐdiscordに投げてください(⼤事) a. 通知が⾶ぶことを恐れるな!こういう講座の主催者は通知が受講⽣から通知がくる と泣いて喜びます
  10. 17 中上級者向け:取り扱う技術スタック • コア⾔語‧機能 ◦ Python, SQL, YAML • フレームワーク‧ライブラリ

    ◦ FastAPI, オレオレFW(route,repository,db_infra) • インフラ ◦ MySQL,Docker • その他 ◦ REST, WebSocket
  11. 22 ⼼構え • 1~10まで全部教えることはできません • 自分で手を動かしたり調べたりして唸りましょう a. できなくても良いです、手を動かす経験が一番大切です • 分からなかったら気軽に人に聞きましょう

    a. 恥ずかしがらずに聞きましょう、分からない事を飲み込む方が恥ずかしいですし、そういう のは主催側から見えてしまいます • できなかったり、理解できなかったことを恥じないでください a. 最初は誰も何も分からないです b. 手を動かして失敗する経験が一番大事です( 1の成功より10の失敗の方が良き) • 必死に食らいついてくれる人が居ると嬉しいです(n回目)
  12. 27 レガシーと戦う • コードは作られた瞬間にレガシー化します a. あなたの書いたコードを3年後に動かしてください => 多分、無理だと思います • 継続的な開発の難しさ

    a. サービスとしての新しい価値(?)を出す b. サービスの価値とは何か? c. レガシーの返済とサービスの価値向上との位置づけ