技術メモ兼ADHD闘病記

自分がハッカソンなど参加した参加録とか技術を公開していきます。最近はガジェット系やアスリートやアマチュアドライバーやプロドライバーのことも書いています。今後はADHDの闘病記録も書いていきたいと思います。

オープンソースソフトを開発する方法

ども。

オープンソースのことについて書くのは2度めですね。
開発手法について書いてみようと思います。
でも、本来の方法とは違うかもしれませんがご了承ください。

オープンソースとは以前にも書きましたが。
ソースだけではなく設計段階の資料から開示していくことです。
実はこれが一番難しいんです。
設計書と言えば企業の開発の方法が含まれているからこそ難しい。
これを開示していいと言う企業が少ないです。
これを広い意味でのオープンソースになります。

ここからが本来の狭義のオープンソースであるソース開示でのオープンソースを書いていきます。
東京都COVID-19新コロナ対策サイトにも当てはまります。
まずはソースをどのように管理するかと言うところですが大半はGitHubでの管理が多いです。
中には何でもかんでも入れてしまえと言う人もいますが実際はソース管理というのはあくまでも手法であって設計に関する資料は全く別の場所で管理しています。
GitHubはソース管理は当然のことどのように参加するかと初期ビルドの仕方を載せています。
みなさん要注意です。
Githubでreadme読んだという聞かれているかと思いますがこれはそういうことを言っているかというと言うとreadmeには
・参加の仕方
・開発用PCへの環境構築の方法
・開発用スペック仕様
・commitルール
・プルリクの時のルール
などが書かれています。

なぜプルリクルールが存在するかと言うと必ずソースコードをレビューすると言うことはクローズド開発でもオープンソース開発でも必ず行なっています。
ソースコードのレビューする前に実際の表示データとコードの提出を行います。
このことをプルリクエストと言います。
レビューが終わって修正がなければソースコードがマージされ開発終了となります。

開発方法は
1.githubからソースをダウンロードする
2.開発環境に必要なフレームワーク及びライブラリーを準備する
3.ソースコードを修正または追加開発する
4.開発したコードをテストする
5.プルリクエストを開発メインメンバーに送信(この時には追加・修正した内容のハードコピーも送信できればなお良い)
6.指摘が発生した場合は修正する
7.修正完了したらしたら4・5を行う
8.指摘がない場合は開発メインメンバーによるマージが行われ開発ソースに適用される
上記の繰り返しになります。

Githubはソースを管理することもさながら承認をする管理者も存在します。
と言うことは何でもかんでも開発中のソースはあげてはいけないことはわかってくると思います。
その場合どう言うふうに管理をするかと言うとGitHubはGitの集合体であるとともに統括管理をしている場所だと分かります。

開発中ソースは実は管理する方法はあります。
Gitを開発機に入れることにより自環境でのソースの管理が可能になります。
どのように管理するかと言うと自分の環境にcommitすると言う機能が存在します。
開発完了するまで自分のパソコンでGit管理すれば良いと言うことになります。

Gitのローカル管理機能をわかっていない人は間違ってGitHubにソースをプルリクを送ってしまうことがありよくありその時にソースの不一致が存在することになります。
コンフリクトが起きてバタバタだったと言うのは1人の開発者が認識せずにソース管理の大元に開発中のソースを入れてしまったと言うことです。
これは非常に修復するのが大変でログから洗い出すと言うことを行なっていくことになります。
これ非常に迷惑ですので避けてもらうことが重要です。

なるべく開発中のものは自分のパソコンで管理しましょう。
開発が完了した段階でないとプルリクは出来ないと考えておくと迷惑かけることは少なくなると思われます。

以上がオープンソースでの開発の重要な部分です。

Linusが良くLinuxの開発で切れていると言うのは
・自環境でテストしない輩が増えている
・ソースの書き方が簡潔じゃないこと
に怒っているってことです。

オープンソース開発に参加するってことはクローズド開発同様自環境でのテストは必要なので気をつけてください。
開発途中で投げてしまう場合はソース一式を渡す努力をしましょう。
完全的に手をつけていない場合は渡す必要はありませんがある程度手をつけてる場合は引継者へソースを引き継ぐ努力をしましょう。
そうすることで開発は引き継がれ止まってしまうことが減ります。

あと言えることは開発環境はwindowsでもMacでもLinuxでも参加できます。
自分の慣れている環境もさながら一番重要なのはメモリですが多く積んでおけば開発に困ることは減ります。
自分の今の開発PCですがメモリは4GB〜16GB載せるようにしています。
あとは開発はVisualStudioCodeを使っています。
これはなぜなのかと言うとWindowsMacLinuxで同じ環境が準備できます。
Windowsは自分の場合はWindows10Pro、Linuxの場合はUbuntuを使うようにしています。

さぁ、Let's Civic Hackingですね。

今日は通常の場合は盆休みなのでゆっくりと書いているhiro_matsunoでした。

では。