実際に行っているGitの運用
実際に現場で採用していたgit運用のメモ。
プロジェクトの大きさなどにより最適解は変わってくると思うので、あくまで1つの形として。
ブランチ戦略
Github Flowを踏襲。
Github Flowだと
・main
・feature/*
ブランチで運用するのが基本的な運用方法かと思うが、
上記にdevelopブランチを加えて
・main
・develop
・feature/*
ブランチの3つで運用している。
developブランチの扱いとしては統合ブランチのようなもの。
feature/*で各機能ごとに開発した機能をdevelopブランチにマージすることで、CI/CDが走り開発環境に自動デプロイされる運用となっている。
メンバーはdevelopにマージさせることで実際の挙動を確かめられる。
各ブランチの説明
mainブランチ
本番環境のブランチで、リリースするために使う。
ここでは直接コミットせず、マージのみ行う。
※ mainブランチ上では開発を行わない。
developブランチ
mainブランチから派生させて作成。
developへPRを出し、CIでの自動テストが通った時点で自動で開発環境へデプロイされる。
featureブランチ
mainから派生させ、各々担当の開発箇所を開発。
完了したら、develop・main両方へそれぞれマージさせる。
新機能の追加や、不具合の修正やリファクタリングなどは全てfeatureブランチで行う。
機能追加・不具合修正・リファクタリングなどの実装種類によって細かくブランチを分けることはしない。
ラベル
・新規作成
・修正
・優先度(高・中・低)
のラベルを用意。
新規作成 or 修正は名前の通り、どういうPRなのかが一目でわかるように適切なラベルを設定する。
優先度(高・中・低)のラベルの関しては、レビュアーがレビューだけでなく他タスクも抱えていて、レビュー進捗が悪化した時期があった為、優先度をつけるようにした。
具体的には
・優先度高・・・共通処理など、影響の大きい実装。他処理に関わるバグ修正など
・ 〃 中・・・決められたスケジュール内で進行している実装
・ 〃 低・・・スケジュールに対して先行着手している実装
assignee
担当者が分かるように。担当者自身を設定する。
reviewer
レビュアーとして2人を指名しないとマージできない設定。
所感
他のブランチ戦略としてはGit Flowなどがあると思うが、開発段階では特に管理するブランチが多すぎてデメリットの方が強い気がするので、
個人的にはプロジェクトの規模やフェーズにもよるが、大体はGithub Flowを踏襲する形が最適解になるかと思っている。
ただ、Github Flowは細かくPRを出しながら進めていく。という形になると思うので、その分レビュアーに負担がかかっていた。
途中からレビューがどんどん貯まる一方になっていて、レビュアーの負担を減らす策として、優先度をラベル付けして、緊急性の高いもの・すぐに取り組まなくてもいいものを明示するようにした。
この辺はより最適解があると思う。(他にも出た案としては、マイルストーンなどを使って締切日を設定できるようにしたら?とか)
今回のをサンプルケースの1つとして、今後もそのプロジェクトの規模・フェーズにあったGit運用方法を探っていきたい。
The Long Gameを読んで
prime会員なら0円で読める下記を読んだ。
以前はよくハウツー本なようなものを読んでいたが、そういった類の本に食傷気味になり、昨年あたりから小説などの割合の方が増えてきた。
ただ、タイトルで気になったのと、0円で読めるというのもあって、試しに読んでみたが、今の自分にドンピシャな内容で面白かった。
「どうすれば上手くいくか」というハウツー本とは違う。
この本では、今の生活。もっと大げさな言い方をすれば、人生自体に気づきを与えてくれる本だと思う。
30代中盤になって思う事は、人生は思っていた以上に長いし、興味がない事に情熱を傾ける事が歳を重ねる事にどんどん難しくなってきている。という事。
そんな自分に突きつけられるような本だった。
以下、抜粋。
自分の興味に最適化するなら、「できそうなこと」ではなく、「本当に興味があること」を目標にしよう。 (p.89)
すべての経験が結果につながるわけではない。どれが結果につながるかを事前に見分けることもできない。 (p.102)
忙しさは成功の証ではない。むしろその正反対だ。目が回るほどの忙しさだけは、どんなことがあっても避けなければならない。(p.105)
チャンスが訪れたら、まずそのチャンスで得られる最低限の利益を計算する。 (p.114)
どんなに優秀な人でも、ずっと同じことを続けていてはゲームに勝つことはできない。(p.138)
自分の時間を戦略的に使うために自分にすべき第二の質問は、「何かを一度だけして、10回したのと同じ効果を出すにはどうすればいいか?」(p.144)
帯にあるインフルエンサーに拒否反応を起こさず読んでみてほしい。
PHP関数メモ
改めてPHP勉強し直してる。
paizaなどでもよく使うことになる関数など、自分用にメモ。
複数行ある入力を配列に
$inputs = [];
while($input_line = fgets(STDIN)){
array_push($inputs, trim($input_line));
}
長さ
配列 count($inputs)
文字列 strlen($str)
explode関数とtrim関数を1行のコードで
$arr = array_map('trim', explode(',', $str));
配列の値削除
最後の値だけ削除
array_pop($array);
先頭の値だけ削除
array_shift($arrray);
特定の値削除(複数可)
unset($array[num]);
配列の一部を展開
array_slice($array, $offset, $length);
分解
特定の文字列で分解
explode(“.”, $string);
指定文字数ごとに分解(デフォルト1文字ずつ)
str_split($string, $length)
結合
implode($array)
implode(“,”, $array)
多次元配列での検索
$key = array_search( 'pine', array_column( $array, 'name'));
0埋め
sprintf('%02d', 1); // 01
sprintf('%03d', 1); // 001
数値切り上げ・切り捨て
切り上げ
ceil
切り捨て
floor($int)
2023年読んだ書籍まとめ
今年読んだ本は37本
ベスト3
1. ワセダ三畳青春期
高野さんといえば奇異な体験をするルポルタージュの印象だが、この本はそうではなく、高野さん版トキワ荘物語。といった感じ。
青春期でしか味わえない生活がそこにあって、笑いながらほっこりできる。また、最後は確実に青春期の終わりを告げていてちょっぴり切ないような寂しいような気持ちになる。
「まんが道」のように、これからも時折読み返したくなる作品。
2. ピョンヤンの夏休み
柳美里が実際にピョンヤンを複数回に渡って訪れた時のエピソードをまとめた本。
柳美里さんの作品はどれも、いかにただ生きていくということがハードゲームなのか、というのを教えてくれる。
ただ、今回はいつもの作品よりも全体的に優しい。
小学生の時に感じた、永遠に続くかと思われたような夏休みの感覚が蘇ってくるような何処か懐かしい感じがして、
まさに「ピョンヤンの夏休み」というタイトルがまさにピッタリな作品。
3. ピンクとグレー
燃え殻さんが本でオススメ、というか紹介している部分があったので試しに読んでみた作品。
加藤シゲアキさんの本としては初めて読んだが、特に前半の少年期のエピソードはグイグイ引き込まれてあっという間に読み切った。
少年期のちょっとしたディティール描写がキラキラと光っていて、なんだかスタンドバイミーのような眩しさがあって、そこだけでも読む価値があるなと思った。
雑評
昨年までに読んだ本に比べて、技術書・ビジネス本の割合がかなり減った。
おそらく得るものが少なくなったからだと思う。マネージャー論やリスキリングなどのビジネス書を見かけることが多かったが、そういった本を今まで読んできて、ただのTips程度の内容でしかないことが多く、自分の指針となったり、本当に役に立ったと思う本がかなり少なかった。
それらのTipsに意味がない。というよりかは、それらのTipsも自分の経験と結びついて始めて意味のあるものになるのだと思う。
最近はそれよりも小説や映画など、物語性のあるものに惹かれるようになっている。
また、今年は高野秀行にどっぷりハマった1年になった。
最初、「怪魚ウモッカ格闘記」のタイトルに惹かれ読み始めてどんどん高野さんの世界に入っていった。
「幻獣ムベンベを追え」や「西南シルクロードは密林に消える」も良かったが、個人的には「ワセダ三畳青春期」が好きだった。
高野さんの本が面白いのは自ら足を動かして、現地に赴いてしか経験できない身体を使ったルポルタージュだからだと思うが、それに付随して「バカバカしいことにも真剣」なところがある。
処女作となるムベンベがまさにそうだが、存在するか分からない未知の生物(UMA)をジャングルの中で40日間飢餓に苦しみながら、探し続ける。というのは、やはり常人にはできない。
思いつくことはあっても、実際に行動して、根気強く粘り続ける。ということができるのは本当にすごいと思うし、そこまで真剣だから面白くなっているのだと思う。
読んだ本リスト
十字軍物語 2〜4
未来国家ブータン
怪魚ウモッカ格闘記
達人プログラマー
謎の独立国家ソマリランド
アジア未知動物紀行
ミャンマーの柳生一族
恋するソマリア
神に頼って走れ!
ワセダ三畳青春期
辺境中毒
魔境アジアお宝探索記
幻獣ムベンベを追え
ワイルドサイドをほっつき歩け
オードリータン自由への手紙
アメリカがカルトに乗っ取られた
西南シルクロードは密林に消える
アルゴリズムx数学
語学の天才まで一億光年
PHP本格入門
The team
思考力の地図
不動産投資 3つのルール
ファスト&スロー 上
決定力
逆資本論
世界の危険思想
物語思考
メタ思考トレーニング
ピンクとグレー
ピョンヤンの夏休み
すべて真夜中の恋人たち
赤と青のエスキース
名セリフ!
逃げていく街
2023年振り返りと2024年抱負的なもの
まずは2023年振り返り
何はともあれ振り返りから。
2023年目標のできたこと・できなかったこと
・年収前職越え。副業を少額でもいいので実施。
→ △本業給与が上がり、完全に前職の年収は超えた。が、副業は実施できてない。
・強みを作る
→ ×本業で強みとなるものは未だない
・オリジナルアプリにdocker導入
→ ×docker導入できてない
・月一で何かしらの勉強会に参加。先にスケジュールを作る
→ ○社内で実施されている勉強会に週一で参加していたので達成
・月一でブログ更新。先にスケジュールを作る
→ ×ブログ更新は習慣にできなかった
・定期的にトレーニングする習慣をつける。スケジュールに組み込み
→ △大体週末にジムに行くルーティンではあるが、行かない時もけっこうあった。
・健康を維持する。就寝時間、起床時間をある程度一定に。ポモドーロテクニックなども活用し、長時間机に向かい続けないようにする。
→ ○風邪も引いたが、概ね健康だった。
・家購入。一旦ある程度理想とする物件が射程範囲となる価格帯に収まる場所を探す。
→ ○家購入、無事にDone。
増えた時間
- 映画観る時間、本読む時間
- 通勤時間
減った時間
- 勉強時間
- 散歩時間
- SNS時間
雑評
上記以外でできたこととしては新婚旅行に行くことができた。(コロナや本業の関係で行けてなかった)
逆にできなかったことでいうと、コンスタントな勉強やブログの更新などは2022年に比較してかなり下がった。
そして、本業での強みづくりができてないことは若干の焦り。
2024年目標
- 年収を増やす
→ とにかく本業での給与アップ
- 健康を維持する
→ ジムへ定期的に行く。
- 増やす時間・減らす時間を決める
→ 増やす時間 勉強時間(資格)、アウトプット時間、家族時間
→ 減らす時間 SNS時間(youtube以外)、本業時間
- 短編小説でもシナリオでも何かしらアウトプット
→ なぜかシナリオ熱が最近上昇
- 本業での力をつける
→ 強みの前に、「最低限これはできます」と言えるものを。基礎的なところから勉強進める。
- 今まで作ってきたアプリのブラッシュアップ
→ docker化するだったり、デプロイし直すだったり、テストコード書いておくだったり。
- 100のリスト作成する
- 映画を30本観る
- 本を30冊読む
2024年に向けて
未経験でエンジニアになって2年が過ぎてしまった。何も強みとなる部分がなく、危機感。
ただ、家族との時間も増やしたいので、時間配分を考える。細かくでなく、ざっくりとした時間配分・優先順位を決める。配分としては以下。
本業 4
睡眠・ご飯 3
勉強 1
自分時間 1
家族 1
そして基礎知識固めとして資格取得する(セキュリティ・基礎情報)。