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
炭酸飲料が飲めない学校で炭酸飲料を飲めるよにした話
Search
Daniel
October 07, 2018
Programming
98
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
炭酸飲料が飲めない学校で炭酸飲料を飲めるよにした話
Daniel
October 07, 2018
More Decks by Daniel
See All by Daniel
Juliaで機械学習
peshogo
2
840
RISC-VボードでRustを動かす話
peshogo
1
980
一年生へ
peshogo
1
82
Other Decks in Programming
See All in Programming
継続モナドとリアクティブプログラミング
yukikurage
3
630
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
1k
ビデオ通話が繋がる0.2秒で何が起きているのか
supurazako
2
150
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
370
共通化で考えるべきは、実装より公開する型だった
codeegg
0
270
Go言語とトイモデルで学ぶTransformerの気持ち / fukuokago23-transformer
monochromegane
0
140
音楽のための関数型プログラミング言語mimiumにおける多段階計算の活用
tomoyanonymous
1
350
Hatena Engineer Seminar #37「言語モデルの活用に関する研究」
slashnephy
0
540
GitHubCopilotCLIのスラッシュコマンドを自作してみる
htkym
0
100
為什麼你並不需要ViewModel / No, you don't need a ViewModel
lovee
1
240
型も通る、synthも通る、それでも危ない 〜AIのCDKの権限とコストを機械で検証する〜 / It Passes Type Checks, It Passes Synth Checks, but It’s Still Risky — Automatically Verifying Permissions and Costs in AI’s CDK —
seike460
PRO
1
410
【やさしく解説 設計編・中級 #1】一つの車に、運転手は一人 ~ある倉庫システムの事例から~
panda728
PRO
0
190
Featured
See All Featured
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
280
4 Signs Your Business is Dying
shpigford
187
22k
Building Applications with DynamoDB
mza
96
7.1k
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
350
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
460
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Kristin Tynski - Automating Marketing Tasks With AI
techseoconnect
PRO
0
410
Context Engineering - Making Every Token Count
addyosmani
9
1k
Building Adaptive Systems
keathley
44
3.1k
Visualization
eitanlees
152
17k
GraphQLの誤解/rethinking-graphql
sonatard
75
12k
Skip the Path - Find Your Career Trail
mkilby
1
170
Transcript
炭酸飲料が飲めない学校で 炭酸飲料を飲めるようにした話
⾃⼰紹介 ダニエル(⾼⽥勝悟) ⼋王⼦桑志⾼校システム情報分野 Python が好き
炭酸飲料が好きな⼈?
学校で炭酸飲料が買えない
炭酸飲料を売っている ⾃動販売機を作ってしまおう
その頃... Django ⾯⽩いな〜。 何か作ってみたいな〜。
⾃動販売機を管理するための Web アプリを作ろう
作ったもの 炭酸飲料を保管する箱 管理⽤Web アプリ
Django
データベース from django.db import models class Person(models.Model): first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=30)
データベース CREATE TABLE myapp_person ( "id" serial NOT NULL PRIMARY
KEY, "first_name" varchar(30) NOT NULL, "last_name" varchar(30) NOT NULL );
from ... import Person p1 = Person(first_name="Shogo", last_name="Takata") p1.save() p2
= Person() p2.first_name = "Shogo" p2.last_name = "Takata" p2.save()
Django データベース HTML テンプレート ルータ ユーザー認証
⾃動販売機 ユーザー認証 商品 残⾼
商品 class Item(models.Model): product_name = models.CharField(max_length=200) product_price = models.IntegerField() product_price_with_fee
= models.IntegerField() added_date = models.DateTimeField(null=True) seller = models.ForeignKey(User, on_delete=models.SET_NULL,
売る
買う
class Log(models.Model): product_name = models.CharField(max_length=200) product_price = models.IntegerField() product_price_with_fee =
models.IntegerField() added_date = models.DateTimeField(null=True) deleted_date = models.DateTimeField(null=True) seller = models.ForeignKey( User, on_delete=models.SET_NULL, null=True, related_name buyer = models.ForeignKey( User, on_delete=models.SET_NULL, null=True, related_name
残⾼ 1. ユーザーDB につける 問題が起きたときに⾯倒 2. ログを遡って残⾼を⾒る 問題の起きたログだけ消せばいい ⼊⾦出⾦ができない 3.
⼊⾦出⾦もログに⼊れよう 商品名をIn , Out にしてシステムに買わせる
起きた問題
2 度売られてしまう問題 売ったあとページの再読込をすると、もう⼀度売った 判定が出る
解決 ⼀度しか使えないトークンを⽤意する ↓ 同時アクセスに対応できない
⼊⾦
⼊⾦
⼊⾦額が合わない
集めた税から出す しっかり確認する(未実装)
学校が炭酸飲料を⼊れた
学校「炭酸飲料は⼊荷しません」 クラス「仕⽅ない、⾃分たちで作ろう」 3 ヶ⽉後... 学校「炭酸飲料⼊荷します」 クラス「?!?!」
実績
まとめ Django を使えばデータベースを使ったWeb アプリ を簡単に実装できる お⾦が絡むシステムで信頼ベースはきつい 都⽴⾼校って案外ちょろい