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
Testing Trophyは叫ばない
toms74209200
0
890
Azure SRE Agentで運用は楽になるのか?
kkamegawa
0
2.5k
ProxyによるWindow間RPC機構の構築
syumai
3
1.2k
そのAPI、誰のため? Androidライブラリ設計における利用者目線の実践テクニック
mkeeda
2
1.8k
ユーザーも開発者も悩ませない TV アプリ開発 ~Compose の内部実装から学ぶフォーカス制御~
taked137
0
190
MCPとデザインシステムに立脚したデザインと実装の融合
yukukotani
4
1.4k
🔨 小さなビルドシステムを作る
momeemt
4
690
ぬるぬる動かせ! Riveでアニメーション実装🐾
kno3a87
1
230
Laravel Boost 超入門
fire_arlo
3
220
「待たせ上手」なスケルトンスクリーン、 そのUXの裏側
teamlab
PRO
0
560
「手軽で便利」に潜む罠。 Popover API を WCAG 2.2の視点で安全に使うには
taitotnk
0
870
チームのテスト力を鍛える
goyoki
3
850
Featured
See All Featured
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
Reflections from 52 weeks, 52 projects
jeffersonlam
352
21k
Statistics for Hackers
jakevdp
799
220k
Stop Working from a Prison Cell
hatefulcrawdad
271
21k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4k
Why You Should Never Use an ORM
jnunemaker
PRO
59
9.5k
A better future with KSS
kneath
239
17k
The Invisible Side of Design
smashingmag
301
51k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Thoughts on Productivity
jonyablonski
70
4.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
36
2.5k
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