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
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
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
商用アプリケーション開発基本のキ
Search
bayashi
April 13, 2023
Programming
340
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
商用アプリケーション開発基本のキ
社内の勉強会で発表した雑な資料です。
bayashi
April 13, 2023
More Decks by bayashi
See All by bayashi
XP祭りでしか伝わらないフリップネタ #xpjug
murabayashi
0
160
スタートアップにおけるアジャイルの実践について #shibuyagile
murabayashi
4
4.5k
複雑さを受け入れるか、拒むか? - 事業成長とともに育ったモノリスを前に私が考えたこと #RSGT2026
murabayashi
1
4.6k
エンジニアに事業やプロダクトを理解してもらうためにやってること
murabayashi
1
620
自分がLinc’wellで提供しているプロダクトを理解するためにやったこと
murabayashi
1
760
エンジニアとして関わる要件と仕様(公開用)
murabayashi
0
640
個人事業主型開発からの脱却
murabayashi
14
10k
スクラムフェスを支える配信の仕組み
murabayashi
1
1.3k
締切とはなにか、どういう効果があるのか #scrummikawa
murabayashi
0
1.7k
Other Decks in Programming
See All in Programming
一人だけ、Kiroが静止する日
hideg
0
140
IBM Bob Dojo #1 仕様駆動開発入門
oniak3ibm
PRO
0
320
AgentCore CLI で進化した AWS での AI エージェントの作り方 : 必要な機能を必要な時に
icoxfog417
PRO
4
400
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
780
更なる可用性を求めて、5年間運用したKotlinのアプリケーションをGoでリプレイスする話
ken_tunc
0
410
海上で動くGoサーバー: goroutineとchannelでさばく航行データストリーム
atsuki_seo
0
1k
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
560
Omarchy Tokyo やると聞いて UMPC 買ってセットアップしてきた
mtsmfm
0
190
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
440
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
360
TiDB Cloudのカスタムコントローラーによるオートスケール対応
takaidohigasi
0
140
UnityでSystem.Net.WebSocketsなWebSocketサーバが動かないのでUnity Monoのコードを覗いてみた / about implementing websocket server with unity mono
drumath2237
1
510
Featured
See All Featured
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
350
エンジニアに許された特別な時間の終わり
watany
109
250k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
33
5k
Prompt Engineering for Job Search
mfonobong
0
460
Imperfection Machines: The Place of Print at Facebook
scottboms
270
14k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Joys of Absence: A Defence of Solitary Play
codingconduct
1
530
Ten Tips & Tricks for a 🌱 transition
stuffmc
1
240
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
31
3.4k
Claude Code のすすめ
schroneko
67
230k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Transcript
商用アプリケーション開発 基本のキ
アプリケーション アプリケーション
アプリケーション アプリケーション みんなとデータ共有したい ...
クライアントとサーバ 通信 クライアント サーバ クライアント クライアント クライアントアプリケーション サーバアプリケーション 専用線 イントラネット
クライアントとサーバ 通信 クライアント サーバ クライアント クライアント クライアントアプリケーション サーバアプリケーション クライアントアプリケーション作るの大変 ...
みんなに配るの大変 ... 専用線 イントラネット
Webシステム(うちだとこんな感じ) 通信 AWS上の EC2とかECS ブラウザ クライアント サーバ インターネット
Webシステム
クライアントでは何でもできる 変なリクエスト送っちゃおー 生年月日0000年00 月00日ですね! はい、言われた通り 動きます!
役割の違い クライアント側の バリデーション(制御)は ユーザの補助のための機能 サーバ側の バリデーション(制御)のみが不正 なデータやリクエストを防ぐことが できる
他にも
ネットワーク通信 ネットワーク通信は色んなところで失敗する 通信障害!!! PCが落ちた!! サーバが壊れた!!
上手く動かない時のことを考える ネットワーク通信は基本的に失敗する可能性がある また他のサービスを使う場合、 失敗する可能性が結構高い確率である (メンテ時間とか)
処理が失敗したときにどう振る舞うか? 考えてみよう slackに投稿してみよう
処理が失敗したときにどう振る舞うか? - リトライ処理をする - 人間に通知をして直してもらう - ログを吐く - 勝手に直るようにする -
何もせず処理を終了する あたりが出た? どれが正解?
処理が失敗したときにどう振る舞うか? - 何もせず処理を終了する - リトライ処理をする - 人間に通知をして直してもらう あたりが出た? どれが正解? 場合による!!
処理を成功させるためにどうすればいいか 確率で失敗する(Flakey)ならリトライ処理をすれば良い 人間が対応する必要があれば通知をする 自動で回復できるなら自動で回復する できることが何もないけど把握しておきたいならログを吐く できることが何もなく把握する必要もないなら何もせず終了する 次の行動を考えて失敗時の処理を考えよう
失敗した時のことについて考える概念(一部) フェイルセーフ フェイルソフト
フェイルセーフ 故障しても大変なことにならないようにしようね → 倒れると止まるストーブ → 踏切の遮断機(故障時は重力で下がる=踏切に立ち入れないようにする)
フェイルセーフじゃない例 調光フィルムを貼ったガラス張りで、利用者がいな いときはフィルムに電気を流すことでガラスが透明 となり、トイレ内に入り鍵を閉めることで電気が流れ なくなりガラスが不透明になる仕組みとなっている。 https://encount.press/archives/394259/
フェイルソフト 故障しても(多少しょぼくなっても)動くようにしようね → エンジンが壊れたら予備エンジンが動く飛行機
テストでも テストの観点にも失敗した時のことを考えよう 正常系 準正常系 異常系
仕様 本を借りるシステム 一回に5冊まで借りれる 借りる際にはアカウント登録が必要 一日1回のみ借りれる
正常系 1冊借りたら借りれる 5冊借りたら借りれる
準正常系 0冊借りたら失敗する。ユーザに借りれない旨をメッセージで伝える 6冊借りたら失敗する。ユーザに1回5冊しか借りれないことをメッセージで伝える 会員じゃなかったら失敗する。 余談: 失敗時のエラーメッセージはユーザの次の行動につながるようにしようね
異常系 アプリケーションが動いているサーバがぶっ壊れたときに - DBへのアクセスができなくなること - 他のサーバが自動的に復旧してくれること - 500画面が正常に表示されること
前職で聞いた格言 正常系が動くようになって、ようやく2割