Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
[第1回] Webサービス開発講座
Search
notch_man
August 23, 2023
Education
63
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
[第1回] Webサービス開発講座
2023年度の筑波大学enPiTで使用した資料です。全4回+αでWeb開発の基礎を学ぶことが出来ます。
※notion資料は近日公開予定です。
notch_man
August 23, 2023
More Decks by notch_man
See All by notch_man
[第4回] Webサービス開発講座
notchman8600
0
62
新人的ソフトウェアサバイバルガイド:荒野に向かい、瓦礫にぶつかり、迷子になり、広野に赴く
notchman8600
1
1.3k
最高の開発手法、アジャイルを捨てよう
notchman8600
0
43
[第2回] Webサービス開発講座
notchman8600
0
73
[第3回] Webサービス開発講座
notchman8600
0
89
本当に初心者目線で考えた時の技術選定の話
notchman8600
0
110
Pythonけものみち(という名のオレオレFWを作った言い訳)
notchman8600
0
54
Other Decks in Education
See All in Education
医師がスタッフに AI を教えるとき、どんな内容を話しているか
osawaux
1
120
学生のうちに考えておきたい信頼の話
suisan
1
770
[2026前期火5] 論理学(京都大学文学部 前期 第10回)「論理学の哲学——意味とは何か(Tonkと推論主義)」
yatabe
0
300
良書紹介08_ 頭のいい子がやっているすごいグラフの読み方
bunnchinn3
0
160
Modulo : abc
robintux
0
150
Science Tokyo University for International Research Excellence scheme_April 2026
sciencetokyo
PRO
0
120
形骸化しない社内勉強会の取り組み - オーナーシップの作り方 / In-house study session
soudai
PRO
1
260
AWS Skill Builderを活用した一石二鳥の業務計画
ysaeki
0
140
INTRODUCTION TO THE CELL
pawan5505
0
210
Course Review - Lecture 13 - Information Visualisation (4019538FNR)
signer
PRO
1
2.8k
データマネジメント試験対策教材1〜データマネジメント基礎〜
yoshimura_datam
1
710
Geografía y fútbol. Atlanta. la megalópolis del fútbol
juanmartin2026
1
12k
Featured
See All Featured
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
31
2.9k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
Information Architects: The Missing Link in Design Systems
soysaucechin
1
1.1k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
How to audit for AI Accessibility on your Front & Back End
davetheseo
0
530
Six Lessons from altMBA
skipperchong
29
4.5k
Building an army of robots
kneath
306
46k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
2
410
Rebuilding a faster, lazier Slack
samanthasiow
85
9.6k
Marketing to machines
jonoalderson
1
5.8k
Believing is Seeing
oripsolob
1
210
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
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君へこっそり連絡を