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
Text EditorとしてのWindsurf / Windsurf as a Text Editor
itosho
0
59
インターネットサービスの育て方 / How to Grow and Scale Internet Services
itosho
0
84
打線組という個人サービスを Goで開発している話 / Indie Service Development by Go
itosho
1
180
Components Reconsidered
itosho
1
2.2k
打線組を支える技術 / The Technology Behind Dasengumi
itosho
0
50
組織をスケールさせるためのTech Vision / Connehito Tech Vision for Growing Our Team
itosho
2
640
生きのびるためのインディー開発 / Indie Development to Survive
itosho
0
48
Gopher道場アフターストーリー / Gopher Dojo After Story
itosho
0
140
3分で分かるConnehito Tech Vision / Connehito Tech Vision in 3 minutes
itosho
0
500
Other Decks in Programming
See All in Programming
Deep Dive into ~/.claude/projects
hiragram
14
2.6k
AI時代の『改訂新版 良いコード/悪いコードで学ぶ設計入門』 / ai-good-code-bad-code
minodriven
14
5k
イベントストーミング図からコードへの変換手順 / Procedure for Converting Event Storming Diagrams to Code
nrslib
2
820
第9回 情シス転職ミートアップ 株式会社IVRy(アイブリー)の紹介
ivry_presentationmaterials
1
320
dbt民主化とLLMによる開発ブースト ~ AI Readyな分析サイクルを目指して ~
yoshyum
3
1k
なんとなくわかった気になるブロックテーマ入門/contents.nagoya 2025 6.28
chiilog
1
270
Flutterで備える!Accessibility Nutrition Labels完全ガイド
yuukiw00w
0
160
プロダクト志向なエンジニアがもう一歩先の価値を目指すために意識したこと
nealle
0
130
Discover Metal 4
rei315
2
140
チームで開発し事業を加速するための"良い"設計の考え方 @ サポーターズCoLab 2025-07-08
agatan
1
420
ISUCON研修おかわり会 講義スライド
arfes0e2b3c
1
450
『自分のデータだけ見せたい!』を叶える──Laravel × Casbin で複雑権限をスッキリ解きほぐす 25 分
akitotsukahara
2
640
Featured
See All Featured
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
233
17k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
26k
Done Done
chrislema
184
16k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
34
3.1k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.5k
Bash Introduction
62gerente
613
210k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
How to train your dragon (web standard)
notwaldorf
95
6.1k
Code Review Best Practice
trishagee
69
18k
Optimizing for Happiness
mojombo
379
70k
StorybookのUI Testing Handbookを読んだ
zakiyama
30
5.9k
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