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
[第2回] Webサービス開発講座
Search
notch_man
August 23, 2023
Education
0
52
[第2回] 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
28
新人的ソフトウェアサバイバルガイド:荒野に向かい、瓦礫にぶつかり、迷子になり、広野に赴く
notchman8600
1
880
最高の開発手法、アジャイルを捨てよう
notchman8600
0
21
[第1回] Webサービス開発講座
notchman8600
0
44
[第3回] Webサービス開発講座
notchman8600
0
63
本当に初心者目線で考えた時の技術選定の話
notchman8600
0
72
Pythonけものみち(という名のオレオレFWを作った言い訳)
notchman8600
0
22
Other Decks in Education
See All in Education
【COPILOT無料セミナー】エンゲージメントと自律性の高いプロジェクト型人材育成に向けて~プロジェクト・ベースド・ラーニング(PBL)という選択肢~
copilot
PRO
0
230
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
2.6k
開発終了後こそ成長のチャンス!プロダクト運用を見送った先のアクションプラン
ohmori_yusuke
2
270
Генезис казарменной архитектуры
pnuslide
0
170
ビジネススキル研修紹介(株式会社27th)
27th
PRO
1
310
Repaso electricidade e electrónica
irocho
0
220
Design Guidelines and Models - Lecture 5 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
760
ワクワク発見資料
akenohoshi
0
150
JavaScript - Lecture 6 - Web Technologies (1019888BNR)
signer
PRO
0
2.6k
Evaluation Methods - Lecture 6 - Human-Computer Interaction (1023841ANR)
signer
PRO
0
780
Comezando coas redes
irocho
0
410
2024年度秋学期 統計学 第7回 データの関係を知る(2)ー 回帰と決定係数 (2024. 11. 6)
akiraasano
PRO
0
100
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
Thoughts on Productivity
jonyablonski
68
4.4k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
3
240
It's Worth the Effort
3n
183
28k
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
6
490
Site-Speed That Sticks
csswizardry
2
230
jQuery: Nuts, Bolts and Bling
dougneiner
62
7.6k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
251
21k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
356
29k
Speed Design
sergeychernyshev
25
730
What’s in a name? Adding method to the madness
productmarketing
PRO
22
3.2k
Transcript
Webサービス開発講座 第2回 この資料はenPiT2023向けのものです。 第3者へのリンクの配布等は 作者(@notch_man8600)を提⽰した上でお願いします (ついでに感想もいただけると私が泣いて喜びます)
2 DISCLAIMER • この講座は⼤学講義レベルのプログラミング履修者が対象です • 即座にサービスを作れる実践的なテクニックは学びません • 本講座はPythonを中⼼に進めますが作者はPythonが嫌いです • 本サンプルコードを実⾏したことによる、いかなる責任を作者
は負いません At your OWN risk!!
3 おしながき 1. 第2回の雑な説明 2. 第2回の雑な解説 3. お〇まけトーク 4. 技術選定の話(⽔曜にやる予定だった物のLT)
4 各種資料 [Web開発基礎講座] https://overjoyed-yew-99e.notion.site/Web-cd8dcd9eee9e46cfa5591ec e2179a4a5 [第2回notion資料] https://overjoyed-yew-99e.notion.site/2-OreChat-11021654de08466aa a0dc7a827e44bf5
5 ⾃⼰紹介 クラウドソーシングサービスなどを 開発しています notch_man twitter: @notch_man8600 • 認定スクラムマスター(CSM) •
ラボのシステム開発の全責任を負う(⾟い) • 学類パンフに載ったけど留年したよ(笑) • 現場で都合良く使われています [概要] • 2020年3⽉ ⾹川⾼専卒業 • 2021年4⽉ 筑波⼤編⼊ • enPiT2021(受講)&2022〜(メンター) [略歴]
6 この講座のゴールについて 1. シンプルなWebアプリを作れるようになる 2. Webアプリケーションを作る上でのお作法を学ぶ 3. 汎⽤的なスキルとノウハウを知る 4. オレオレFWを作りたくなる気持ちになる
5. オレオレFWを安易に使うと⽕傷をすることを知る 6. 巷のFWが何故受け⼊れられたのか考えられるようになる 7. おまけ話を聞いて世間を知る ⽬標段階のレベルを定義しました。 これらいずれかを⽬指しましょう!
7 本⽇の⽬標:シンプルなWebアプリを作れるようになる • コピペしたらフロントとバックエンドが動くコードを作ります ◦ Pythonなので分かりやすい! ◦ クリーンなコードでGPL3だから使いやすい! • それを写経したら何かが作れます
• ちょっと弄ると⾃分らしさが出せます • 良い感じに弄られるようになると、⾊々なサービスが作れます ◦ ロジックとかで使い回せるようになると⾮常に楽になります
皆さんできましたか??
9 第2〜3回で作るもの • OreChatというチャットサービスを作ります ◦ WebSocketというイケてる(主観)技術を学べます ◦ HTML+CSS+JSというシンプルな構成です • Web開発の⼀連のお作法を学ぶことが出来ます
◦ フロントエンドとは? ◦ バックエンドとは? ◦ Webサービスが実際に⽴ち上がるまで
10 Web開発のお作法 • フロントエンド ◦ 情報を提⽰するために使う ◦ HTML+CSS+JavaScriptなどで記述されることが多い ◦ イケてるライブラリやフレームワークとしてはReactやVueなどがある
• バックエンド ◦ 定時する情報を保存するために使う ◦ GoやGoやPythonやTypeScriptなどが⽤いられることが多い
11 フロントエンド 1. ユーザーに親切なHTMLを表⽰する 2. ユーザーからのイベントを受け取る 3. サーバーに(データを送り)処理をリクエストする 4. リクエストに対するレスポンスを受け取りユーザーに⾒せる
12 バックエンド 1. ユーザーからのリクエストを受け付ける 2. ユーザーからのリクエストを受け取り、何らかの処理する 3. ユーザーに対してリクエストの結果を返す
13 Web開発の学び⽅ 1. 基本的な流れを理解する a. 情報が表⽰されるまでの流れ b. フロントエンドとバックエンドの役割 2. 基本的な流れに従った⼩さなアプリを作る
or 写経する a. OreChatが最適 3. 2の中で1の流れを実際のコードと対応付ける 4. 実際に⾃分でフルスクラッチで作ってみる
14 次回予告 • マルチクライアント対応のチャットサービスを作ります ◦ 今回のコードではまだマルチクライアントに対応していません • コードリーディングのお作法を学びます • バグとの歩き⽅を学びます
• 未知の問題の向き合い⽅を学びます
おま〇け
Python漫談
問:Pythonの良い所を3つ挙げよ
🤔
😇
20 Pythonの良い所 1. さっと動く物が作れる a. FastAPIのあれ、1時間くらいで⽴てられました b. 退屈な事はPythonにさせようみたいな本が出るくらい気軽に書ける 2. ⾯倒なことを考えなくて良い
a. numpyとかはある程度勝⼿に最適化をしてくれる b. メモリの事を考えなくても良い(?) 3. 使ってる⼈が多い a. 数は正義です。草オレオレFWを⾒てくださいよ、酷すぎます。 b. メンターにC++の話を振ってみてください、多分1⼈くらいしか反応できません
21 数の正義 • この界隈は⼤体数の正義で成り⽴っています ◦ GitHubのスター数 ◦ Fork数 ◦ コミッター数
◦ ダウンロード‧アクセス数 • 数が少ないものはウケていないかヤバい物である可能性が⾼いです
22 プログラミングの⼈気(?)ランキング 出典:https://www.tiobe.com/tiobe-index/
23 とりあえずPythonを使おう • 数は正義です • 数が多い物には知識が集まります • 我々のゴールは何かを考えましょう • ⼤体の⼈のゴールはサービスを作ることですよね(?)
◦ なら、ナレッジが集まっている物を使いましょう ◦ Pythonは⾮常に豊富なナレッジが集積されています ◦ メンターの充実した対応を期待できます(これ⼤事)
次回予告
Pythonを捨てよう
キーワード:Webサービス
あなたの視点で理由を考えてみてください
28 今⽇のまとめ • ⻑く⽣きている流⾏り物を使いましょう • 迷った時は多数派に従えば失敗しにくいです • Pythonは初⼼者におすすめの⾔語です(notch_manのお墨付き) ◦ 適当に素早くものが作れる
◦ ライブラリが便利 • ⼿段ではなく⽬的にフォーカスしましょう ◦ 極論、バイナリを書いてもええんや ◦ 我々は課題を解決するのが⽬的である
レガシーを克服しサービスを提供したい⼈ 現場の知⾒を得ながらものづくりをしたい⼈ 融合知能デザイン研究室に興味のある⼈ notch_man君へこっそり連絡を