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
システム内製の原則 / principles-of-in-house-system-deve...
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
tunemage
February 05, 2020
Programming
2.3k
3
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
システム内製の原則 / principles-of-in-house-system-development
ラクス様主催の勉強会のLT枠で発表させていただきました(
https://rakus.connpass.com/event/161744/
)
tunemage
February 05, 2020
More Decks by tunemage
See All by tunemage
自社サービス開発企業のサポート業務改善 / Support department improvements for SaaS company
tunemage
1
130
IPO準備プロジェクトにエンジニアとして参加した話 / IPO preparation project
tunemage
1
190
『データモデリングでドメインを駆動する』で繋がる体験 / Drive domain with data modeling
tunemage
0
270
Vueによる自作簡易DSL / Simple DSL with Vue
tunemage
1
260
手離れの良いExcel VBA / non-personalized-excel-vba
tunemage
1
160
本を年100冊読むためにしている事 / my-way-to-read-100-books-a-year
tunemage
1
840
システム監査についての学びと今後の課題 / learning-about-system-auditing
tunemage
1
1.7k
業務システムの概要とその選択肢_公開用_.pdf/Overview of business system
tunemage
3
1.9k
Other Decks in Programming
See All in Programming
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
230
アクセシビリティから考える情報設計
high_g_engineer
0
380
UPDATE をやめる — EF Core でマスタをバージョン管理する
panda728
PRO
0
310
20260914 AIエージェント時代のPlatform Engineering LLM基盤とプロダクトの責務境界線
kanfab1
7
2.1k
Are APIs Still Relevant in the AI Era?
soyuka
0
290
SREの越境 / SRE Collaboration
y0hgi
2
260
AWS DevOps Agentで インシデント対応をAIに任せたい
honmarkhunt
7
3k
個人開発基盤をまるごとCloudflareに引っ越して爆速で総合的体験を向上させた話
tinykitten
0
200
動作中のプログラムの中身をリアルタイムに覗く / Realtime Debugger for CSharp with Roslyn
prota
1
830
Augmenting AI with the Power of Jakarta EE
ivargrimstad
0
250
Java 27新機能 / Java 27 new features
kishida
2
150
Webの地図
yosuke_furukawa
PRO
6
4.7k
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
32
4.9k
Test your architecture with Archunit
thirion
2
2.4k
Tell your own story through comics
letsgokoyo
1
1.1k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
460
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
The innovator’s Mindset - Leading Through an Era of Exponential Change - McGill University 2025
jdejongh
PRO
1
340
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Bash Introduction
62gerente
615
220k
Efficient Content Optimization with Google Search Console & Apps Script
katarinadahlin
PRO
1
880
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
47
8.3k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
530
How to make the Groovebox
asonas
2
2.4k
Transcript
システム内製の原則 @tunemage
自己紹介 • つねまげ(@tunemage) • 現職(1年半) • 製造業の社内SE的なポジション(研究開発も少し) • 社内基幹システムの開発・運用がメイン •
前職(6年) • ERPパッケージ開発 • それ以前 • Webやスマホアプリなど色々
•昨年、スクラッチ開発の社内基幹システムをロー ンチしました •本日は開発の中で意識した「原則」についてお話 します
開発の流れ • 4〜6月(アーキテクチャ選定・基本設計・参照実装) • 2人体制(もう1人のメンバーがフロントエンドに明るくて助かりました) • 画面設計・DB設計・ライブラリの検証・クラウド環境の選定・最初の2画 面実装 • 7〜9月(機能実装)
• 1.2人体制 • 4画面 ・共通コンポーネント・CI • 10〜12月(追加開発) • 1人体制 • 追加2画面・細かな要望&不具合対応・ユニットテスト導入
構成 • 機能 • 画面✕8 • 帳票✕4 • CSV出力✕2 •
システム構成 • サーバーサイド • Kotlin (一部Java) • Spring Boot • クライアントサイド • TypeScript(結構JavaScript) • NuxtJS • プラットフォーム • GAE(一部Heroku)
•比較的少ないリソースの中で、曲がりなりにもリ リースにまで辿り着けた •その中で大事にした原則は2つ
原則①YAGNI( You ain't gonna need it ) • 手を抜ける箇所は絶妙に手を抜く •
変更コストの高い部分に集中 • ただし、単なる付け焼き刃はNG
原則②機構と方針の分離 「計算機科学における設計原則の1つ。機構(操作の認可と資源配分 を制御するシステム実装部分)は、どの操作を認可するかやどの資 源を割り当てるかといった決定を行う際の方針を表すべきでない (あるいは過度に制限すべきでない)という考え方である。 (Wikipedia)」 • よく分からんので具体例を(次ページ)
実際の例)簡易帳票エンジンの実装 見積データ 帳票エンジン Excel テンプレート 方針 機構 出力帳票
原則②機構と方針の分離 • 機構(エンジン)側は方針(条件分岐・レイアウト等)を意識し なくて良い • ハードコーディングによるif文地獄に陥らない • メンテナンス性向上 • 帳票エンジンの他にも、部署ごとに異なる作業工程の定義や権限
まわりでも応用しています
原則②機構と方針の分離(その他の例) 機構 方針 カードキー カードリーダー・通信プロトコル セキュリティサーバの権限データ Maven・npm等 実行エンジン pom.xml、package.json 会計システム
仕訳エンジン 勘定科目マスタ 承認申請機能 画面コンポーネント 権限マスタのデータ ワークフロー ワークフローエンジン ワークフローの定義
まとめ • YAGNIと称した付け焼き刃はNG • 可変ポイントを見極めて適切な役割分担を促す設計が重要 • 業務ドメインと技術ドメインの全体感を見る • まだまだ未対応の問題は山ほどあるので楽しみです
参考文献 • マルチパラダイムデザイン(ジェームズ・O. コプリン) • 機構と方針の分離(Wikipedia) https://ja.wikipedia.org/wiki/%E6%A9%9F%E6%A7%8B%E3%8 1%A8%E6%96%B9%E9%87%9D%E3%81%AE%E5%88%86%E9 %9B%A2