社会人になりたてのプログラマーだった頃、、、
バージョン管理されたプロジェクトを更新すると
一文字も変えていないように見えるソースコードの
全ての行で差分が検知される…!
何故だ…おかしい…diffツール(ファイル比較ソフト)のバグかな…?
と、調べていると…インデントがスペースとタブで
異なっているために殆どの行で差分が出てしまっている事が発覚。。
コレではどこを更新したのかわからなくなるので
チームメンバーでインデントの書き方を揃えましょう!
と、交通整理をすることに。。😓
遥か遠い昔そんな事もあったなぁ…と思うシラッチです。
昨今だとエディタも進化していて、また、プログラミング言語に
あわせた整形ツールも多種多様にあって便利で有り難い限りです。
ただ、チームでエンコードを揃えたい、という課題を
スマートに解決する方法ってなかなかないよなぁ…と
モヤモヤしていました。
あ、ココからが本題です。長くてすみません。笑
開発環境によってはエンコードによってコンパイルエラーに
なってしまいビルドに失敗してしまう、なんて事があります。
プログラマーがソースコードを作成したときにエンコードも
気をつけて指定するように…という手段もありますが、、
EditorConfig( https://editorconfig.org/ )ご存知でしょうか?
私は最近知りました。。😅
冒頭で触れているインデントや、改行コード、そしてエンコードなど
コーディングスタイルに関するエディタの設定を
異なるエディタ間で共有するための規格です。
対応しているテキストエディタもメジャーなものが多く
標準で対応されていないものもプラグイン等の拡張で
対応しているものがあるようです。
個人的には業務でよく使う Visual Studio が 2017 から
対応している事が大きなメリットに感じました。
.editorconfig というファイルをプロジェクトのルートへ
配置しておくだけで、指定したファイルを編集した際の
スタイルを固定することができます。
例えば、
『C++のソースコード(拡張子 cpp および h のファイル)の
エンコードをBOM付きUTF-8にしたい』
というときは .editorconfig に次のように記述しておきます。
root = true
[*.{cpp,h}]
charset = utf-8-bom
root = true は、エディタに対してココがルートになります、と
示すための記述です。
フォルダごとに .editorconfig を配置することができますが
更に上位のフォルダに遡って設定を探してくれるようです。
これ以上遡らなくてもよい、と示すための設定なので
プロジェクトのルートへ配置する場合は記述しておくといいかと思います。
他にも設定はいろいろあるのですがチームでゲーム開発、プログラム開発を
されていて、コーディングスタイルの運用でモヤモヤされている方が
いらっしゃいましたら是非オススメします!
冒頭の私のように何故ビルドが通らないのだ…?とか
もー、チームルールでこうしようって決めたじゃん…ッ!!といった事に
時間を割かないように、少しでも、できるだけ
『良いプロダクトを作ること』に集中していきたいですね🙂
ではまた~🖐