堕天使の煉獄

Gallery
Comic
Story
Production
Work
Link

2016-03

17

05:27:47

んんん…

DXライブラリに依存しない部分を別ライブラリとして分ける作業をするついでに、また1からソースを見直しているのだけども。

そのタイミングでしかできない事として、コーディング規約の見直しという物がある。

んでもこれ、絶対的な正解なんてのが無いものだから、ある意味厄介な問題なんですよね。

今現在採用してるのは

以下の表記使用
パスカルケース=アッパーキャメル→  ClassName
キャメルケース=ローワーキャメル→ className
スネークケース         →  class_name
として。

class、struct、Enum、はパスカル。
メンバ関数名はキャメル。
メンバ変数名はキャメルにm_を頭につける。(あんま使わないけどpublicの場合はm_無し)
フリー関数はスネーク
ローカル変数はキャメル、スネーク正直どっちでも良い(どうせ外から見えないので)
定数はローカル変数と同じ。基本constexpr指定するので、間違った使い方すればエラーになるので特に書き分ける必要はないと思う派。
namespaceはすべて小文字で文字は区切らない。namespaceのみ略語を許可。
マクロはすべて大文字のスネーク。

とりあえず命名規約についての所では、大まかにはこんな感じなのだけども。

コーディング規約についてのネットの記事は結構古い物がおおくて、あんましこう、最近のトレンド的なのって、よくわからないぽ。

んートレンド的には、STLの命名方法が、結構アレなんだよなぁ。

昔からここの命名基準はちょっとおかしなのが多くて、結構混乱の元だった時代もあったんだけど……(MSに比べればマシか……w)

c++11以降はさらにSTLへの依存度が高くなってきた事も合ってか、STLの書き方に合わせようって流れが来てる感じなんですよね。

クラス名も小文字でスネークな感じとか。

その根底にあるのは、namespaceの重要性というか、一般化した影響というか。

基本的にクラスや型は必ずどこかのnamespaceに属していて、using namespaceは使わない方向。
ってことになると、名前のコンクリフトをほぼ考えなくて良くなる感じになるぽ。
そうなると、別に全部小文字でもええやんと。shiftキー押す手間省けるしね。
んでもって、namespaceに括るのがあたり前になると、ネームスペースはすべて小文字になるので

dx::Rect

よりは

dx::rect

の方がしっくり来る感じになるんですよね。

std::vectorとかSTLで慣れちゃってる分、ネームスペースのあとのパスカルケースはなんか気持ちが悪い感じがするようになってきちゃった最近。

そんなもんだから、using namespaceして、ネームスペースは名前衝突時の保険ぐらいの扱いにして、

DxRect

と現状ではネームスペースをusingしちゃって接頭辞をつける方向に流れていったんだけども。

んでも接頭辞はあんまし良くないよなぁ。ってのは常々おもってはいて。

そこで今回、DXライブラリの依存のない部分を汎用的なライブラリとして別に分けようとなっているんだけども。
そこで、その非依存なライブラリについてはSTL風の命名にしてみようかなーとかいう考えが出てきてたりで。

んで、DXライブラリ依存べったりな方は、今まで通りDxなんとか~と接頭辞付で。
そんでもって全体namespaceでくくってあるけど、利用時にはusing namespaceしちゃう方向で。

どうせDXライブラリ依存べったりの部分は移植性とか考えなくていい。
逆に依存部分があるので、安易に移植とか考えちゃいけないコードだよというのが明確になるのでいいのかなと。
using namespaseしちゃうのは、接頭辞あるからコンクリフトは避けられるので、一応お作法として括ってあるだけの有名無実になるけど……。

んでもその辺はQTの方向性を真似てる感じかな。
STLと同居するのにコンクリフト避けるための接頭辞Q付の名前ってのと、Q何とかなクラス群はソースのクロスプラットフォームが保証されるっていう目印になってる感じだとか。

そんなかんじでSTLとか標準的なものと衝突をさけつつ、DXライブラリ依存なコードですよ。
ってのが判る感じなので、これはこれでいいのかなという感じがしてる。

かたや非依存な汎用的な部分の奴は、ネームスペース分けて、利用時はSTLと同じようにネームスペース指定付で記述すると。(あとはusingエイリアスとかで対応)

そんな方向性に進んでみようかなぁ。

それで、DXライブラリ以外のなんか組むときに、非依存の部分のクラスとか流用するときに、DXライブラリ全然関係ないのにDxなんとか~とかついてるのきもちわるーい。とかにならずに済むしw


あとは、関数名とか、スネークにするかキャメルにするか……。
いまだに決めかねてる。

どうも最近微妙に、コーディング規約関係でヒットするサイトで、日付の新しいものではスネーク記法押しが結構目立つようにはなってきてる感じもするんだけど……。

でも個人的にはスネークってなんか長ったらしくなってコンパクトさに欠けるというか、なんかだらしない印象があって、いまいち好みでは無かったりする。

特にメンバ関数なんかが気になる所。
呼び出しがいくつもつながってる時、スネークのアンダーバーがいくつもあると、可読性落ちる気がするぽ。下線とドットと、文字の下部に記号が増える所為なのかな? そんな印象を受ける。

でも、単体でみると、単語の区切りが明確というのは確かにそうだなとも思う。
なので、フリー関数なんかではスネークの方が良いかなとは思ってたりするぽ。

んでもスネークとキャメル入り乱れるのも混乱の元かなぁという気もするし。
かといって、どちらかに統一するって話になると、どっちもそれぞれメリット・デメリットある感じだったりするので。

IDE上では最後まで自分でタイプすることは稀で、入力候補から選ぶのが普通なので、タイピングの手間的には、大文字も下線もわりとどーでも良い感じかと。


C#なんかはクラスも関数もみんなパスカル表記がデフォっぽいんだよなぁ。

でもあっちはソースの先頭に使う分のネームスペースをusingしちゃえばいいので。

C++の方は気軽にusing出来ないんですよね。ファイルスコープまたいだりとか、あとヘッダ(.h)とソース(.cpp)でもusing namespaceの有効範囲が変わったりするので厄介。
ヘッダの読み込み順(定義の順番)とかも考えなきゃいけないし。

namespaeで括るのが当たり前になったんなら、そのへんもC#の様な感じで使える用になるといいんだけどなぁ。
ついでにこれまたC#のようにヘッダの依存関係とか気にしないで済む用にもw
その辺c++、namespaceで括るのが当たり前になったのに、使いにくさが目立つ部分だったりして。

とかいう愚痴はおいといてw

問題は、コーディング規約は規約の内容よりも、プロジェクト全体でキチンと守られているか、と言うことの方が重要だったりするので、一度決めた規約を途中でやっぱこうした方がよかったなーとか思っても、修正量を考えるとなかなか移行出来なかったするぽ。
中途半端についつい部分的に違う規約を適用しちゃったりし出すとカオスになるしw

そんなかんじなので、1からリファクタリングとかするときには規約の見直ができうるタイミングだったりするのだけど。
うんうん悩んでばっかりだとちっとも作業進まないんだよなぁ。

どないしょ。

Sun
Mon
Tue
Wed
Thu
Fri
Sat
01
02
小ネタ
03
04
聖なるウ○コ!
05
06
07
08
09
10
11
結局コレがいまだに一番……
12
13
14
時代を感じるw
15
16
17
んんん…
18
19
小ネタいろいろ
20
[春分の日]
21
小ネタいろいろ2
[振替]
22
23
24
25
考えられない
26
27
28
29
良いタイミングで
30
31
んー微妙
total:2076528 t:40 y:396
■記事タイトル■

■年度別リスト■
2024年 2024年12月(0)
2024年11月(0)
2024年10月(1)
2024年09月(2)
2024年08月(1)
2024年07月(1)
2024年06月(5)
2024年05月(2)
2024年04月(1)
2024年03月(6)
2024年02月(4)
2024年01月(3)
2023年 2023年12月(3)
2023年11月(1)
2023年10月(2)
2023年09月(3)
2023年08月(3)
2023年07月(3)
2023年06月(7)
2023年05月(8)
2023年04月(2)
2023年03月(1)
2023年02月(2)
2023年01月(3)
2022年 2022年12月(4)
2022年11月(3)
2022年10月(1)
2022年09月(3)
2022年08月(3)
2022年07月(2)
2022年06月(1)
2022年05月(3)
2022年04月(2)
2022年03月(2)
2022年02月(1)
2022年01月(6)
2021年 2021年12月(8)
2021年11月(3)
2021年10月(4)
2021年09月(6)
2021年08月(2)
2021年07月(1)
2021年06月(3)
2021年05月(2)
2021年04月(2)
2021年03月(3)
2021年02月(1)
2021年01月(4)
2020年 2020年12月(3)
2020年11月(7)
2020年10月(2)
2020年09月(3)
2020年08月(1)
2020年07月(3)
2020年06月(7)
2020年05月(5)
2020年04月(8)
2020年03月(4)
2020年02月(2)
2020年01月(4)
2019年 2019年12月(1)
2019年11月(1)
2019年10月(2)
2019年09月(1)
2019年08月(3)
2019年07月(2)
2019年06月(2)
2019年05月(2)
2019年04月(4)
2019年03月(1)
2019年02月(7)
2019年01月(1)
2018年 2018年12月(1)
2018年11月(1)
2018年10月(5)
2018年09月(1)
2018年08月(5)
2018年07月(1)
2018年06月(1)
2018年05月(1)
2018年04月(2)
2018年03月(2)
2018年02月(1)
2018年01月(1)
2017年 2017年12月(2)
2017年11月(1)
2017年10月(2)
2017年09月(5)
2017年08月(8)
2017年07月(2)
2017年06月(1)
2017年05月(1)
2017年04月(3)
2017年03月(5)
2017年02月(7)
2017年01月(8)
2016年 2016年12月(7)
2016年11月(2)
2016年10月(3)
2016年09月(7)
2016年08月(8)
2016年07月(10)
2016年06月(17)
2016年05月(6)
2016年04月(8)
2016年03月(10)
2016年02月(5)
2016年01月(10)
2015年 2015年12月(7)
2015年11月(7)
2015年10月(13)
2015年09月(7)
2015年08月(7)
2015年07月(5)
2015年06月(4)
2015年05月(5)
2015年04月(2)
2015年03月(4)
2015年02月(1)
2015年01月(7)
2014年 2014年12月(12)
2014年11月(8)
2014年10月(4)
2014年09月(6)
2014年08月(7)
2014年07月(4)
2014年06月(2)
2014年05月(5)
2014年04月(4)
2014年03月(8)
2014年02月(4)
2014年01月(8)
2013年 2013年12月(15)
2013年11月(8)
2013年10月(3)
2013年09月(3)
2013年08月(8)
2013年07月(0)
2013年06月(0)
2013年05月(0)
2013年04月(0)
2013年03月(0)
2013年02月(0)
2013年01月(0)

■レス履歴■

2023-09-26 14:59:38 - 久慈光樹

2023-09-26 14:29:10 - 織田霧さくら

2023-09-26 13:10:45 - 久慈光樹

2023-03-20 05:30:16 - 織田霧さくら

2023-03-15 20:42:58 - まうる

2022-12-26 19:14:57 - 織田霧さくら

2022-12-25 02:28:36 - まうる@まるるん

2022-09-30 04:29:01 - 織田霧さくら

2022-09-23 19:01:29 - まるるん

2022-06-16 21:06:34 - 山本


■ファイル抽出■

■ワード検索■

堕天使の煉獄

https://rengoku.sakura.ne.jp
管理人

織田霧さくら(oda-x)

E-mail (■を@に)

oda-x■rengoku.sakura.ne.jp

堕天使の煉獄バナー 堕天使の煉獄バナー