プロフィール
 

morimori.ynct

Author:morimori.ynct
森下功啓製作所のブログです。
電子工作のことや日々思ったことを時々気まぐれに更新しています。
趣味で作っているサイトはこちら

 
最新記事
最新コメント
最新トラックバック
 
 
月別アーカイブ
カテゴリ
 
 

スポンサーサイト

 
--/--/--(--) Category : スポンサー広告
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
 
Comment  |  Trackback
 
 

オープンソース開発のための環境構築

 
2013/05/01(Wed) Category : プログラミング
久しぶりの更新です。
今日はオープンソース開発に関するネタです。


はじめに
 ソフトウェアの開発において、かつてはコアメンバーに対して改善したソースコードや追加した関数等のソースコードをメールで送って見てもらった後に組み込んでもらっていたわけですが、より多人数で開発が行われるようになるとコードのチェックがコードの追加に追いつかなくなります。そこで、ソースコードの管理ツールが必要になります。


集中管理型と分散管理型
 管理ツールには2タイプあって、集中管理型と分散管理型があるようです。で、世の中のトレンドは分散管理型です。集中型では修正コードの適用==大本のコード修正となる訳ですが、分散型ではローカルの管理ファイルをまず修正して必要なら大本のコードに対して修正の要求を出すことになり、インターネットに接続されていない環境でも開発を行えます。なお、大本のコードに対してローカルで行った変更を一気に適用することも可能です。

Git
 そんな分散管理型の最たる例がGitと呼ばれるツールです。このツールはLinuxを開発したリーナス・トーバルズ氏がLinuxのコード管理のために2週間で作ったツールが基になっています。また、UnixでもMacでもWindowsでもツールが活発にリリースされており、これ以外の選択肢はないといっても過言ではありません。

Gitを使うメリットとできること
 Gitを使うメリットとは、ざっくりいうとソースコードの管理が自分一人の開発であっても楽になるということと、ましてや多人数に参加してもらう開発では必須ということです。なんだか日本語が変ですね。

 Gitでは、ソースコードを変更した理由をチェックしたり、一つのソースコードを別々の人が別々の場所を同時に開発できたり、その結果できた2つのコードを合体させるなどが容易です。しかも、ソースコードの履歴がずっと残るので問題が発覚した時点から過去のバージョンに直ぐに戻ることも可能です。

ソースコード管理用サーバ
 効率よくソースコードを管理しつつ開発をスピーディに進めるには、ファイルを管理してくれるサーバが必要です。このサーバは、ファイルを置いてくれて、公開し、ファイルのダウンロードをサポートし、コードの問題について議論が行え、使い方等を解説するWikiをサポートします。そんなサービスがなんと無料で展開されており、例えば「SourceForge」や「GitHub」があります。これらはどちらもオープンソース開発をサポートするために展開されていて、GitHubの方は有料で公開しないプロジェクトも作れてしまいます。なお、無料でも非公開なプロジェクトをサポートするサーバもあります(が、一体どういう仕組みでお金が回っているのか・・・)。

 Googleトレンドを用いてトレンドを調べてみると、GitHubの方が人気のようです。ただし、SourceForgeの方が古参なだけあって日本語のサポートページがあったりします。これから廃れるかもしれないサービスを利用することはありません。GitHubを使いましょう。とは言え、日本人向けだけで良いというのなら、SourceForgeも選択肢だと思います。
 
 ちなみに、このGoogleトレンドを使って「ソフトウェアGPS受信機」を検索すると下火になってきていることが分かりますw。orz

WS000001_20130501124709.jpg
図 SorceForgeのトレンド

WS000000.jpg
図 GitHubのトレンド
見切れているが、右端を見るとSourceForgeの全盛期を追い抜くこと必至)


キーワード
 で、ここしばらくGitとGitHubについて調べていた訳ですが、知らない単語が沢山出てきました。レポジトリ、フォーク、マージ、プル、プッシュ、プルリクエスト、ブランチ、マスター、コミット・・・多すぎるので、参考文献[1]を読んでください。一番下にリンクを作っておきました。この本はGitHubに関して日本語で書かれた数少ない分かりやすい本です。おススメ。

Visual StudioでGitを使う
 詳しくは参考文献の[2][3]を参照してください。個人的にはいきなりリモートのレポジトリへコミットするのではなくてまずはローカルへコミットする方法はどうするのか・・・知りたいです。試すしかないかな?

 なお、Visual Studio 2012 update 2から正式に「Visual Studio Tools for Git」という管理ツールへ対応しています。が、これが使いにくい。まだmsysGit + GitExtention + Git Source Control Provider(VSのアドイン)の組み合わせの方が良いです。それにこれならVS2010にも対応していますし。


蛇足
 という訳で、今日のテーマはオープンソース開発に必須なGitというツールに関してでした。これについて調べようと思ったきっかけはRTKLIBの開発を多人数に移したいなぁと高須先生がつぶやいていたことと、自分の作ったツールの配布と配布してもレスポンスが乏しいことや機能増強に貢献できるのが自分だけってのが寂しくて調べるに至りました。

 なお、必ずしもオープンソース==フリーソフトではないことには注意して下さい。例えばOracle社はオープンソースでMySQLを開発していますがと同時に有料の自社開発版もリリースしています。つまり、機能増強版を有料かつソースコードは非公開という手も使えるということです。Oracle社としては、オープンソース開発に人員という資源を割きつつ、オープンソース開発の舵を取ることで市場をコントロールする思惑が透けて見えるのです。

 これをRTKLIBに置き換えると、例えば将来的に複数の電子基準点を使った網計算を実装できたとしてもそれは非公開ソースで且つ有料ということも有り得るということです。といっても、網計算ならGAMITがやってしまっているので例としては適切ではありませんでしたけど。


参考文献
[1] Junio C Hamano (著), 大塚 弘記 (著), 川口 耕介 (著), kana (著), 大竹 智也(tomoya) (著), 尾藤 正人 (著), WEB+DB PRESS編集部 (編集) ,開発ツール徹底攻略,http://www.amazon.co.jp/%E9%96%8B%E7%99%BA%E3%83%84%E3%83%BC%E3%83%AB%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5-WEB-DB-PRESS-plus/dp/4774156167/ref=sr_1_1?ie=UTF8&qid=1367381059&sr=8-1&keywords=%E9%96%8B%E7%99%BA%E3%83%84%E3%83%BC%E3%83%AB%E5%BE%B9%E5%BA%95%E6%94%BB%E7%95%A5
[2] Visual StudioでGitを使用できるようになるまで,http://opcdiary.net/?page_id=5677
[3] VS2010用にGithub環境を構築する,http://chorusde.hatenablog.jp/entry/20120530/1338340531
[4]ナウなヤングのためのgithub入門講座 -基本機能からdotfiles管理まで-,http://d.hatena.ne.jp/shim0mura/20111212/1323660740

--------------------------------------------
[2013/5/5 追記]
 高須先生の備考禄を見たら、4/29付でGitHubへRTKLIB2.4.2が公開されていました。また、RTKLIBで検索するといくつかヒットして、RTKLIBをフォークして開発をやっている方が居ることが分かりました。特にAndroidへの移植版の開発が活発なようです。
関連記事
スポンサーサイト
 
コメントアイコン Comment0  |  Trackback0
 
 

Trackback

 

Trackback URL :
この記事にトラックバックする(FC2ブログユーザー)

 
 

Comment

 

    
 
Home | Top ▲
 
検索フォーム
 
 
RSSリンクの表示
リンク
ブロとも申請フォーム
QRコード
 
QR
 
 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。