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
git cococoとRailsアプリ開発
Search
Yuya.Nishida.
March 31, 2018
Technology
0
460
git cococoとRailsアプリ開発
git cococoの説明とRailsアプリケーション開発で使われる場面を説明します.
Yuya.Nishida.
March 31, 2018
Tweet
Share
More Decks by Yuya.Nishida.
See All by Yuya.Nishida.
削除操作 しない させない ゆるさない
nishidayuya
0
27
meeting about memo
nishidayuya
0
790
Useful Chef cookbooks
nishidayuya
0
46
Other Decks in Technology
See All in Technology
技術負債の「予兆検知」と「状況異変」のススメ / Technology Dept
i35_267
1
1k
Fintech SREの挑戦 PCI DSS対応をスマートにこなすインフラ戦略/Fintech SRE’s Challenge: Smart Infrastructure Strategies for PCI DSS Compliance
maaaato
0
450
SCSAから学ぶセキュリティ管理
masakamayama
0
140
Moved to https://speakerdeck.com/toshihue/presales-engineer-career-bridging-tech-biz-ja
toshihue
2
550
データ資産をシームレスに伝達するためのイベント駆動型アーキテクチャ
kakehashi
PRO
2
230
Platform Engineeringは自由のめまい
nwiizo
4
1.9k
日経電子版 x AIエージェントの可能性とAgentic RAGによって提案書生成を行う技術
masahiro_nishimi
1
290
データ基盤の成長を加速させる:アイスタイルにおける挑戦と教訓
tsuda7
3
650
偶然 × 行動で人生の可能性を広げよう / Serendipity × Action: Discover Your Possibilities
ar_tama
1
740
リーダブルテストコード 〜メンテナンスしやすい テストコードを作成する方法を考える〜 #DevSumi #DevSumiB / Readable test code
nihonbuson
11
5.8k
関東Kaggler会LT: 人狼コンペとLLM量子化について
nejumi
3
460
Nekko Cloud、 これまでとこれから ~学生サークルが作る、 小さなクラウド
logica0419
2
730
Featured
See All Featured
Large-scale JavaScript Application Architecture
addyosmani
510
110k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
248
1.3M
Code Reviewing Like a Champion
maltzj
521
39k
Learning to Love Humans: Emotional Interface Design
aarron
273
40k
Measuring & Analyzing Core Web Vitals
bluesmoon
6
240
Building Your Own Lightsaber
phodgson
104
6.2k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
366
25k
Navigating Team Friction
lara
183
15k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
99
18k
Reflections from 52 weeks, 52 projects
jeffersonlam
348
20k
jQuery: Nuts, Bolts and Bling
dougneiner
63
7.6k
Building a Scalable Design System with Sketch
lauravandoore
460
33k
Transcript
git cococoとRailsアプリ開発 西田雄也 2018-03-31 kunibiki.rb#7 Powered by Rabbit 2.2.1
自己紹介 西田雄也 Twitter,GitHub: @nishidayuya 趣味: 小さいものを書く スノーボード なんとかGo(昨年末にTL40) 1/16
git cococoっ てなに?
git cococoってなに? 実行したコマンドとともにコマンドによる変更をコミ ットするコマンド $ git cococo bundle update コマンド実行前にコミット漏れがないか確認
1. コマンド実行 2. 変更点をコミット もう一度同じことをするコミットメッセージとともに 3. 3/16
git cococoってなに? 実行したコマンドとともにコマンドによる変更をコミ ットするコマンド $ git cococo bundle update コマンド実行前にコミット漏れがないか確認
1. bundle updateを実行 2. 「run: git cococo bundle update」といったコ ミットメッセージで変更点をコミット 3. 4/16
もう一度同じことをするための コミットメッセージ コマンド実行はいいとしてコミットメッセージを 書くときにコピー&ペーストするの面倒. 毎回「どんな風に書いてたっけ…」って思いな がらgit logで調べて同じように書くの面倒. ↓ これを解決! 実行時に一回だけ書けば良い
コミットメッセージはコマンド任せ 5/16
動機 松江Ruby会議08のa_matsudaさんの話 「コード生成するコマンドを実行した場合は、そ のままコミットするのが望ましい。」 読みたいのは人間が書いた部分 コマンドでコード生成した部分は実行したコマンドがわ かればいい 6/16
デモ
デモ: Railsア プリケーショ ン開発でよく ある使い方
構成 git cococoはBourneシェルのシェルスクリプト 当初はRubyで実装していた. Windowsで動かしたくなった. mruby-cliもあるけど… Gitが動く環境にはBourneシェルあるいは互換のシェ ルがある. 自動試験はRubyで書いている. 単体テストとインテグレーションテスト
test-unitが試験を書きやすい. 9/16
設計 思想
設計思想: インストールが簡単 1ファイルのシェルスクリプトで実装してある. ダウンロードして実行パーミッションを与えるだ け. $ wget https://raw.githubusercontent.com/nishidayuya/git-cococo/master/exe/git-cococo $ chmod
a+x git-cococo $ mv git-cococo move-to-PATH-env-directory/ 11/16
設計思想: 動く環境はGit Gitが動作する全ての環境で動く(はず). はず… 全ての環境で試験できません! 次の環境でCIをまわしている. Ubuntu Windows MacOSX 動かないUnixあるいはUnix互換OSがあれば
教えてください&プルリクエスト歓迎です. 12/16
設計思想: 余計なことはしない 当初はコミット漏れがあれば自動的にgit stash することを考えていた. ↓ 使ってみたところコマンド実行に失敗したときに stashしたままになるが,自動的にやっちゃうと stashしたものが消えたように見える. 焦っているときは特に困る.
↓ --autostashオプションで明示的に指示する形 とした. 13/16
設計思想: Gitと合わせる(1) --autostashオプションについて 当初は--auto-stashというオプション名で考え ていた. ↓ git rebaseに--autostashオプションがあること に気がついて揃えた. 14/16
設計思想: Gitと合わせる(2) git cococoという名前について Gitにはgit rerereコマンドがある. REuse REcorded REsolutionの略 ↓
git cococo COmmit COmpletely COmmand outputの略 意味が合っている. 短い. 15/16
ご静聴ありがとうございました インストールは https://github.com/nishidayuya/git-cococo より 気に入ってくださったらスターとかいただけると 調子に乗ります 励みになります. 16/16 Powered by
Rabbit 2.2.1