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
よいOSSを支える3C
Search
itosho
September 18, 2018
Programming
1
820
よいOSSを支える3C
ランサーズさんとの合同LT大会の発表資料です
itosho
September 18, 2018
Tweet
Share
More Decks by itosho
See All by itosho
Windsurf Rulesでどう自分のクローンをつくるか / How can I make a clone of myself in Windsurf Rules
itosho
0
90
Text EditorとしてのWindsurf / Windsurf as a Text Editor
itosho
0
89
インターネットサービスの育て方 / How to Grow and Scale Internet Services
itosho
0
93
打線組という個人サービスを Goで開発している話 / Indie Service Development by Go
itosho
1
180
Components Reconsidered
itosho
1
2.2k
打線組を支える技術 / The Technology Behind Dasengumi
itosho
0
53
組織をスケールさせるためのTech Vision / Connehito Tech Vision for Growing Our Team
itosho
2
650
生きのびるためのインディー開発 / Indie Development to Survive
itosho
0
49
Gopher道場アフターストーリー / Gopher Dojo After Story
itosho
0
150
Other Decks in Programming
See All in Programming
Android端末で実現するオンデバイスLLM 2025
masayukisuda
1
170
Namespace and Its Future
tagomoris
6
710
GitHubとGitLabとAWS CodePipelineでCI/CDを組み比べてみた
satoshi256kbyte
4
240
MCPとデザインシステムに立脚したデザインと実装の融合
yukukotani
4
1.4k
MCPでVibe Working。そして、結局はContext Eng(略)/ Working with Vibe on MCP And Context Eng
rkaga
5
2.3k
testingを眺める
matumoto
1
140
Improving my own Ruby thereafter
sisshiki1969
1
160
2025 年のコーディングエージェントの現在地とエンジニアの仕事の変化について
azukiazusa1
24
12k
知っているようで知らない"rails new"の世界 / The World of "rails new" You Think You Know but Don't
luccafort
PRO
1
180
テストコードはもう書かない:JetBrains AI Assistantに委ねる非同期処理のテスト自動設計・生成
makun
0
460
🔨 小さなビルドシステムを作る
momeemt
4
690
Navigating Dependency Injection with Metro
zacsweers
3
2.5k
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Why Our Code Smells
bkeepers
PRO
339
57k
Being A Developer After 40
akosma
90
590k
Agile that works and the tools we love
rasmusluckow
330
21k
How GitHub (no longer) Works
holman
315
140k
A designer walks into a library…
pauljervisheath
207
24k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
44
2.5k
Balancing Empowerment & Direction
lara
3
620
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
Building Applications with DynamoDB
mza
96
6.6k
The Straight Up "How To Draw Better" Workshop
denniskardys
236
140k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
50k
Transcript
よいOSSを支える3C Connehito Inc. @itosho 1
▪ 今日話すこと ・簡単に自己紹介(30〜60秒) ・名前だけでも覚えていただけると嬉しいです ・自作OSS「Easy Query」のご紹介(2〜3分) ・細かい使い方は説明しません(README参照) ・「Easy Query」の開発から学んだこと(3〜4分) ・本日のメイントピック
▪ 自己紹介 ・伊藤 翔 @itosho ・コネヒト株式会社 / Supership株式会社 ・会社ではサーバーサイドエンジニアやっています ・よく書く言語:
PHP / Ruby / Golang ・家ではインディーアプリ開発してます ・詳細はこちら: https://itosho.github.io/ ・Microservicesと野球とアイドルが好きです
自作OSS「Easy Query」のご紹介 4
▪ Easy Queryとは? ・CakePHPのBehavior Plugin ・PHP7.0+, Cake3.5+, MySQL5.6系 ・Bulk Insertが簡単に出来る
・今日は詳しく触れませんが(Bulk)Upsertも出来ます! ・https://github.com/itosho/easy-query ・もうすぐ1,000DL!(トリックあり)
▪ 使い方: Bulk Insert(Model)
▪ 使い方: Bulk Insert(Controller)
▪ 補足 ・bulk系のメソッドに分割処理は入れていません ・max_allowed_packetの上限にご注意ください ・Timestamp Behaviorとの併用をオススメ ・デフォルトでbeforeSave()メソッドを実行します ・PostgreSQL対応してくれる人募集中 ・https://github.com/itosho/easy-query/issues/10
「Easy Query」の開発から学んだこと 9
▪ つくってみて ・もっと使われるOSSをつくりたい! ・自己満で終わりたくない ・個人OSSを社内導入するためのガイドライン作成 ・http://tech.connehito.com/entry/2017/11/16/143923 ・人気のあるOSSを自分なりに研究 ・3つの共通点を抽出してみました
▪ よいOSSを支える3つの共通点 ①Convenience(便利) ②Clearness(明確さ) ③Continuty(継続性)
▪ Convenience: 便利 ・圧倒的に使うメリットがある ・問題が生む痛みよりも、問題を解決する労力のほうが煩わしい ・Easy Queryの場合 ・Cake標準のsaveMany()メソッドにはないパフォーマンス 【検証】tagsテーブルに100件登録 ※環境:
CentOS6, MySQL5.6, CPU 2core, Memory 2GB(Docker for Mac) ⇒saveMany()メソッド: 2.93秒 ⇒bulkInsert()メソッド: 2.01秒
▪ Clearness: 明確さ ・とにかくシュッと使える ・ドキュメントがしっかりしている ・言語やフレームワークの「郷」に従っている ・使い方がシンプルで直感的 ・Easy Queryの場合 ・bulkInsert()メソッドはCake標準のsaveMany()メソッドと同じI/F
▪ Continuity: 継続性 ・重要なのはスター数(だけ)ではない ・移り変わりの激しい世界 ・スター数が多くても半年後使えるかどうかは分からない ・継続して開発しているかどうかも同じくらい大切 ・Easy Queryの場合 ・Cake4系にも対応するぞ!(所信表明)
・標準でサポートして欲しい気持ちもある
まとめ 15
▪ まとめ ・OSSは使われてこそ輝く ・つくること自体にも価値はある ・しかし、誰かの問題を解決するための手段のひとつでありたい ・つくるときは3Cを意識するといいかもしれない ・OSSをつくるのは学びしかない ・普段の業務では身につかない知識が身につく ・これからもつくっていきたい!みなさんも是非!
ご清聴ありがとうございました 17