Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
[第1回] Webサービス開発講座
Search
notch_man
August 23, 2023
Education
0
51
[第1回] Webサービス開発講座
2023年度の筑波大学enPiTで使用した資料です。全4回+αでWeb開発の基礎を学ぶことが出来ます。
※notion資料は近日公開予定です。
notch_man
August 23, 2023
Tweet
Share
More Decks by notch_man
See All by notch_man
[第4回] Webサービス開発講座
notchman8600
0
37
新人的ソフトウェアサバイバルガイド:荒野に向かい、瓦礫にぶつかり、迷子になり、広野に赴く
notchman8600
1
1k
最高の開発手法、アジャイルを捨てよう
notchman8600
0
30
[第2回] Webサービス開発講座
notchman8600
0
63
[第3回] Webサービス開発講座
notchman8600
0
66
本当に初心者目線で考えた時の技術選定の話
notchman8600
0
88
Pythonけものみち(という名のオレオレFWを作った言い訳)
notchman8600
0
36
Other Decks in Education
See All in Education
マネジメント「される側」 こそ覚悟を決めろ
nao_randd
10
5.5k
Sponsor the Conference | VizChitra 2025
vizchitra
0
620
中間活動報告会 人材育成WG・技術サブWG / 20250808-oidfj-eduWG-techSWG
oidfj
0
630
相互コミュニケーションの難しさ
masakiokuda
0
200
Pydantic(AI)とJSONの詳細解説
mickey_kubo
0
190
自己紹介 / who-am-i
yasulab
PRO
3
5.4k
2025/06/05_読み漁り学習
nag8
0
190
~キャラ付け考えていますか?~ AI時代だからこそ技術者に求められるセルフブランディングのすゝめ
masakiokuda
7
460
2025年度春学期 統計学 第10回 分布の推測とは ー 標本調査,度数分布と確率分布 (2025. 6. 12)
akiraasano
PRO
0
220
情報科学類で学べる専門科目38選
momeemt
0
580
JPCERTから始まる草の根活動~セキュリティ文化醸成のためのアクション~
masakiokuda
0
220
核燃料政策を問う─英国の決断と日本
hide2kano
0
180
Featured
See All Featured
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.4k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
33
2.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
30
9.7k
Java REST API Framework Comparison - PWX 2021
mraible
33
8.8k
GraphQLの誤解/rethinking-graphql
sonatard
72
11k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
285
13k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
31
2.2k
Visualization
eitanlees
148
16k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Mobile First: as difficult as doing things right
swwweet
224
9.9k
Transcript
Webサービス開発講座 第1回 この資料はenPiT2023向けのものです。 第3者へのリンクの配布等は 作者(@notch_man8600)を提⽰した上でお願いします (ついでに感想もいただけると私が泣いて喜びます)
2 DISCLAIMER • この講座は⼤学講義レベルのプログラミング履修者が対象です • 即座にサービスを作れる実践的なテクニックは学びません • 本講座はPythonを中⼼に進めますが作者はPythonが嫌いです • 本サンプルコードを実⾏したことによる、いかなる責任を作者
は⽼いません At your OWN risk!!
3 ⾃⼰紹介 クラウドソーシングサービスなどを 開発しています notch_man twitter: @notch_man8600 • 認定スクラムマスター(CSM) •
ラボのシステム開発の全責任を負う(辛い) • 学類パンフに載ったけど留年したよ(笑) • 現場で都合良く使われています [概要] • 2020年3月 香川高専卒業 • 2021年4月 筑波大編入 • enPiT2021(受講)&2022~(メンター) [略歴]
4 おしながき 1. 自己紹介 2. この講座のゴールについて 3. 本講座の概要説明 4. 雑な実施計画
5. 進め方について 6. 心構えについて 7. あの現場は今
5 この講座のゴールについて 1. シンプルなWebアプリを作れるようになる 2. Webアプリケーションを作る上でのお作法を学ぶ 3. 汎用的なスキルとノウハウを知る 4. オレオレFWを作りたくなる気持ちになる
5. オレオレFWを安易に使うと火傷をすることを知る 6. 巷のFWが何故受け入れられたのか考えられるようになる 7. おまけ話を聞いて世間を知る ⽬標段階のレベルを定義しました。 これらいずれかを⽬指しましょう!
6 レベル1: シンプルなWebアプリを作れるようになる • コピペしたらフロントとバックエンドが動くコードを作ります ◦ Pythonなので分かりやすい! ◦ クリーンなコードでGPL v3だから使いやすい!
• それを写経したら何かが作れます • ちょっと弄ると自分らしさが出せます • 良い感じに弄られるようになると、色々なサービスが作れます ◦ ロジックとかで使い回せるようになると非常に楽になります
7 レベル2: Webアプリケーションを作る上でのお作法を学ぶ • REST APIと言われて反応できるようになる • CRUDが何か説明できる • 何のために〇〇を立てたり実装するかが理解できる
◦ ex.) リレーショナルデータベース • Webアプリを作る時の手順が何となくみえる
8 レベル3: 汎⽤的なスキルとノウハウを知る • 〇〇を作ってと言われたら何となく手順が分かる • ex.) 配車アプリを作って ◦ データモデルは...
◦ テーブル構造は... ◦ とりあえずLAMPで頑張れば1000人くらいまでは耐えそう ◦ フロントはHTMLとCSSで頑張るぞ ◦ おらおら実装するぞ!
9 レベル4: オレオレFWを作りたくなる • ORMの苦しい点を知る • フレームワークのイケていないところを知る • Pythonのイケていないところを知る •
イケていないことの解決策に”自分で何とかする”という選択肢を加える • 実際に作って“何とかしてみる”経験をする
10 レベル5: オレオレFWで⼤⽕傷を負う • 実際に作って“何とかしてみる”経験をする • さて、それを他の人にも広めてください! ◦ う~ん、辛い •
あなたのFWは誰の何の課題を解決しましたか? ◦ オレオレFW is only for you • あなたの課題はあなただけの課題であることを知る ◦ そのレベルを超えたやつはgithubのissueを見てくれ => 100回に1回くらいは他の人も思ってる
11 レベル6: 巷のFWに回帰しよう • FlaskやFast APIの思想を知る • 巷のFWが受け入れられた理由を考えてみる • FWの意義を知る
• FWでは何とかならん世界があることも知る ◦ そういうところではオレオレFWが大活躍します ◦ そういうのが興味がある人はビッグテックとか基盤開発しているところに行きましょう
本講座の概要など
13 本講座概要:何を作るの? [初心者向け] • 他の人とチャットできるWebサービスを開発できます [中級者向け] • WebSocketとRESTを話すチャットサーバーを作ります [上級者向け] •
自作ライブラリでルーティングとDB層を抽象化したオレオレFWを作りつつ、 オマケでチャットサーバーを作ります
14 本講座概要:何が達成できるの? [初心者向け] • 初めてのWebアプリを作ることができます [中級者向け] • WebSocketを使ったメッセージング機能でたっぷり遊べます [上級者向け] •
FWの存在意義を考えることができます • 厨二病を克服できます
15 本講座概要 • 基本的に初心者向けコンテンツから進んでいきます • 回を重ねる事にレベルがアップしていきます • 自分が目指すゴールを目標に頑張って食らいついてください • 質問は24H365Dいつでもおkです
• ツールのインストールから辛いという人は適宜discordでサポートします(あ まりに人が増えたら考えます) • ナンモワカランけど質問しまくるなどして頑張ってついてきてくれる人が居る と、主催者は泣いて喜びます
16 本講座の進め⽅ • スライド+notion資料とサンプルコードで進みます • たまに動画を撮ります • 水・金の空いている時間にQ&Aをやります • 過去のコンテンツの質問もwelcomeです
• 質問はとりあえずtimes_notchmanへ気軽に投稿してください • というか困ったらすぐdiscordに投げてください(⼤事) a. 通知が⾶ぶことを恐れるな!こういう講座の主催者は通知が受講⽣から通知がくる と泣いて喜びます
17 中上級者向け:取り扱う技術スタック • コア⾔語‧機能 ◦ Python, SQL, YAML • フレームワーク‧ライブラリ
◦ FastAPI, オレオレFW(route,repository,db_infra) • インフラ ◦ MySQL,Docker • その他 ◦ REST, WebSocket
⼼構えについて
初⼼者welcome
ただし
⾃分で頑張る部分は多い
22 ⼼構え • 1~10まで全部教えることはできません • 自分で手を動かしたり調べたりして唸りましょう a. できなくても良いです、手を動かす経験が一番大切です • 分からなかったら気軽に人に聞きましょう
a. 恥ずかしがらずに聞きましょう、分からない事を飲み込む方が恥ずかしいですし、そういう のは主催側から見えてしまいます • できなかったり、理解できなかったことを恥じないでください a. 最初は誰も何も分からないです b. 手を動かして失敗する経験が一番大事です( 1の成功より10の失敗の方が良き) • 必死に食らいついてくれる人が居ると嬉しいです(n回目)
おま〇け
あの現場は今?
None
26 あの現場が抱えている課題 • 10年前のコードベースを抱えている • 当時の開発者は誰もいない • テストコードもない • 現状、インフラが壊れた場合に誰も元に戻せない
• 独自言語のトランスパイラが存在する • 1人の病を患った若き兵士が日夜戦い続けている
27 レガシーと戦う • コードは作られた瞬間にレガシー化します a. あなたの書いたコードを3年後に動かしてください => 多分、無理だと思います • 継続的な開発の難しさ
a. サービスとしての新しい価値(?)を出す b. サービスの価値とは何か? c. レガシーの返済とサービスの価値向上との位置づけ
28 さいごに:おまけパートの⽴ち位置 • こういう話をtimes_notchmanとかで聞きましょう • あるいはtimes_notchmanなどで色々ぼやきます • 雑談のネタとしてもどうぞ • 初歩的な質問から上級的な質問、まさかりまで何でもおkです
• 皆さんでよりよりWeb開発について知見を積み上げたいです
レガシーを克服しサービスを提供したい⼈ 現場の知⾒を得ながらものづくりをしたい⼈ 融合知能デザイン研究室に興味のある⼈ notch_man君へこっそり連絡を