フリーランス、個人開発しているとやりたいこと多すぎ迷子になってしまったり、プロジェクト管理のベストプラクティスがなんなのかわからなくなってきてツールをたくさん導入して満足…みたいな結果、経験しますよね?
フリーランスからどこか仕事を請け負おうと思っても、会社でのエンジニア経験ないと未経験枠としてのカウントになるから条件的に厳しくなってしまったりもありえます。
でもそれは自分で選んでいる道なので文句はないのですが、それだったらしっかり地力があるんだよってところを対外的にアウトプットしていた方がいいと思うんです。
自分自身を業界にとっての掘り出し物として捉えられるような努力も必要というか。
そもそも個人で管理している以上、モチベーションの管理も大変にはなってくるわけで、いろんなツールを導入しているとその都度学習コストもかかってくるわけじゃないですか。
だったら、業界としてしっかり使えている必要があって自分自身でトレーニングできることを普段からやればいいじゃんと思い、基本的な手順とかコマンドとかを覚えがきしておこうと思いました。
参考
基本的な流れ
上記参考のリンクにあげたところをしっかり取り組んでいくことが答えになりますが、ブラウザ行ったりターミナルにいって、エディタに移動して、別のアプリ開いたりとなると訳もわからなくなってきやすいので、なるべくターミナルとエディタとか、ブラウザのみで完結できるようにしようと思います。
- GitHubでリポジトリ作る
- デプロイしていくために必要となる機能、工程を考えてissueに分ける
- issueごとにブランチをつど作成する
- 開発する
- 作業が完了したらpush→プルリクする
- GitHub上でプルリクを確認
- マージ
- ブランチ削除
- issue閉じる
今までなんとなくGASならスプレッドシートを新規に作っていたり、ローカル環境だと特定のディレクトリ内にプロジェクト作成してエディタ開いて、一定の作業終えたらGitHubのリポジトリ作ってやっていたのですが、まずリポジトリ作ってしまってissueまでたててしまった方が、全体像が見えやすいのではないかと考えました。
GASによる開発の場合
GASの場合はコンテナバインド型かスタンドアロン型になりますが、僕はスプレッドシートに関するGAS組みするのが多いのでコンテナバインド型で一旦考えますがどちらも一緒になるはずです。
- ブラウザ上のGitHubでリポジトリを作る
- issueとブランチを作成する
- GASエディタを開く
- 以降上記の流れ
ずっとChromeを開きっぱなしの想定になります。GASエディタ上でブランチ作ろうとするとエラーになりやすいので、先にブランチまで作ってから作業するようにした方が良いです。
そして拡張機能だとpushはできるけどプルリクはできないので、pushしたらGitHubの画面に移動してプルリクを開始する流れになります。
その他ローカルでの開発
GASだとChromeのブラウザがあればいいので、あとはGithubの拡張機能を導入すれば開発が進められる訳ですが、ローカル環境にディレクトリ作ろうと思うと今まではブラウザからリポジトリ作ってローカルにクローンするか、作業が一定進んだらリポジトリ作成してターミナルからgit remote add
してからpushしてました。
でもなんかあちこちいって面倒に感じていたので、上記の流れがいいように思います。
- まずターミナル開いて任意のディレクトリを作成する
-
gh repo create [リポジトリ名]
コマンドでリポジトリを作成する- Flag:
--public
だとパブリックリポジトリになる - Flag:
--private
だとプライベートリポジトリになる
- Flag:
-
gh issue create
コマンドでissueを作成する- Flag:
-a
をつけて"@me"
をつけると自分に当てたissueとなる - Flag:
--title
の後にダブルクオーテーションマークの文字列でタイトルを作成 - Flag:
--body
の後にダブルクオーテーションマークの文字列でissue本文を作成 - Flag:
--label
オプションでbug/enhancement/wontfixのどれかにしておく
- Flag:
-
git checkout -b ブランチ名
でブランチの作成と移動を行う -
git remote add
コマンドで上記作成したリポジトリのURLを紐づける - 作業する
- 以降上記の流れ
あとはどんなissueがあるかターミナルから確認するためにgh issue list
すれば今登録しているものが表示されます。
こうやっていけば、全体像を把握しながら、バージョン管理の勉強もしつつ開発のスキルもアップしていけるので良さそうですね。
これ応用したら別にプログラミングじゃなくてもノーコード開発とかでも結構使えそう。作業内容だけmdファイルに記述してアップしていけば見返しやすそう。