分12345「良いコード」の次は「良いコミュニケーション」だねコミュニケーション......毎日居酒屋で一杯やりながらってやつですね!?そういう意味じゃないって。一緒のチームで開発するうえで大事なのは,それぞれのメンバーがどういう仕事をしているのか,この部分は誰がどうやって作ったのか,これは何のためにあるのか,そういった開発に関するさまざまな情報を適切に共有することだよRedmine(注1)とメールじゃだめなんですか?それらももちろん重要だけど,VCS自体もコミュニケーションのためのツールなんだよえっ,VCSでコミュニケーションするんですか!?ああ。VCSの使い方の最小単位といえば「コミット」だけど,そこにどんな情報を込めるかによって,意図の伝わりやすさは大きく変わるんだ。情報価値の高いコミットメッセージを書こうコミットメッセージは,開発を継続していくうえでとても貴重な情報源になります。初級者,あるいはそのプロジェクトに明るくない人は,情報価値の低いコミットメッセージを書いてしまいがちです。図1はあるコミットの詳細をgitshowで表示したもので,コミットメッセージには「setTimeoutを使うようにした」と書かれています。,「⁠setTimeoutを使ったこと」はソースコードの変更内容から明らかであるため,ここでは重要ではありません。ほかの開発者がこのコミットを見たとき,本当に得たい情報は「setTimeoutという関数を使って『何をしたかったのか⁠』⁠」ではないでしょうか。})();このように,有効な追加情報が得られない,情報量が少なすぎるコミットメッセージはよくあります(注2)が,本章ではこのようなコミットメッセージのことを情報価値が低いと表現することにします。注2)以降の説明ではVCSとしてGitを使用しますが,ほかのVCSでも同様のことはできます。コミットメッセージの情報価値setTimeoutという関数を使って「何をしたかったのか⁠」⁠。それを把握するためには,このコミットの背景を知る必要があります。これは,第3章や第4章でも例に挙げたアドオンtbforce-auth-at-startupの開発中のコミットです。"hidden";の個所が「UIを非表示にする」という処理です。setTimeoutの個所は「1秒後にUI要素を表示にする」という処理ですが,「⁠認証成功」の動作が抜けていることからわかるように,これ自体はアドオンの目的である「Thunderbirdの起動時にUIを非表示にしたあと,すべての受信サーバへの認証を試行して,成功した場合だけUIを表示する」を直接的に達成するものではありません。実はこのコミットは,「⁠実際にそのようなアドオンを開発できるのか?」という要素術の検証段階で行われたものでした。具体的には次のような場面です。UIを非表示にできることが実際に確認できたUIを再表示できるかを実験するため,ひとまず1秒後に再表示処理を行ってみるこのような事情は,コードからは読み取ることができません。そのため,ドキュメントやコメントなどで説明を補う必要があります。コミットメッセージもまた,そのような情報を書き記すための場所として使うことができます。以上を踏まえると,適切なコミットメッセージは,たとえば図2のようなものになるでしょう。本章ではこのようなコミットメッセージのことを情報価値が高いと表現することにします。コミット著者プロフィール足永拓郎(あしえたくろう)株式会社クリアコード所属。デスクトップや組み込みソフトウェアの自由を求めて活動中。結城洋志(ゆうきひろし)株式会社クリアコード所属。Firefox黎明期からアドオン開発を手がけ,業務上もMozilla製品の技術サポートを担当。代表作は「ツリー型タブ」「テキストリンクなど。日経Linux誌にて「シス管系女子」を連載中。林健太郎(はやしけんたろう)株式会社クリアコード。趣味であれこれと,Sylpheedのプラグインを開発したり,Debianのパッケージをいくつかメンテナンスしている。Twitter:@kenhys。2019」を開催しました。DAY1・DAY2の様子を注目セッションとともにお伝えします。LINEのエンジニア3名がイベントに先駆けて見どころを紹介します。コードの安全性・安定性を高める開発サイクル~テスト管理の効率を上げ,脆弱性診断を自動で行う~本連載では,連載「業務を改善する情報共有の仕掛け」を受けつつ,安全性・安定性を加えた開発サイクルについて考えていきます。若者世代から圧倒的な人気を誇るライブ配信&動画投稿コミュニティアプリ「MixChannel」(ミクチャ)の裏側(レコメンドシステムやサーバサイド開発など)について解説していきます。その他の連載CSS3アニメーションでつくるインターフェイス表現CSS3によるアニメーション表現を紹介していきます。その中でも,幅広い読者に応用してもらえるだろうインターフェイスを主なお題とします。MySQL道普請便り本連載では,MySQLを使ったアプリ開発・運用に関するノウハウをご紹介していきます。RecipeUbuntuの強力なデスクトップ機能を活用するための,いろいろなレシピをお届けします。JavaScriptセキュリティの基礎知識JavaScriptに関するセキュリティ上の問題はどこで発生し,どうすれば防ぐことができるのか?について解説していきます。〜システムをきちんと運用するための基礎知識システムは「作って終わり」ではなく,運用の中でさまざまな問題が発生します。問題の発生に備えて事前にどのような対応をしておくべきなのか,問題発生時に何をしなければならないのか,ポイントを解説していきます。きたみりゅうじの聞かせて珍プレーソフトウェア開発の現場で体験したトホホな失敗,思わずうなる珍プレーをきたみりゅうじ氏が四コママンガで紹介。Linuxのメンテナンスの傍ら,Linuxやオープンソースソフトと日々を過ごす著者が,その魅力とつきあい方を,エッセイ風味でお届けします。PRESS特別編集部員,さわやか笑顔のスーパーハカーはまちちゃんとネット大好き14歳わかばちゃんが,毎号,読者の皆さんから寄せられたおたよりを紹介します。皆さんの日頃の悩みにも答えちゃいますよ。]メールでのお知らせメールで次の案内をお送りしております。メールの配信を希望する方は,利用したい項目をチェックしてメールアドレスを入力し,[登録]ボタンをクリックしてください。UPDATES[ほぼ週間に1回]新刊メールマガジン[ほぼ週間に1回]電脳会議の各号案内[ほぼ1ヵ月半に1回]※変更する場合や停止する場合は,登録情報変更ページをご覧ください。※登録いただいたメールアドレスには,そのお知らせ以外,配信いたしません。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します。個別にライセンスが設定されている記事等はそのライセンスに従います。