クラス名・変数名に迷ったら書き込むスレ。Part29

2021/04/26(月) 17:52:13.23ID:KOZxV/bH
クラス名、変数名のつけ方に悩んだら書き込むスレです。

命名規則や設計の善し悪しについて議論するのは基本的に禁止。
設計などが話題になるのなら他のスレでどうぞ。

前スレ
クラス名・変数名に迷ったら書き込むスレ。Part28
http://mevius.5ch.net/test/read.cgi/tech/1494147712/
2022/04/09(土) 13:58:52.48ID:xdx6kcV3
甲乙システム
2022/04/09(土) 15:07:17.03ID:ptsvFFbW
healUpTo
healUpFrom

toとfromで区別したらさすがわかるやろ。
英語としての正確性なんか知らん!w
2022/06/12(日) 00:33:26.59ID:xegQlxkn
関数名なんだけど
textA,textBを受け取って、Aが空文字でなければAを、そうでなければBを返す関数ってなんて命名する?
2022/06/12(日) 05:58:05.96ID:LzXoNMHn
coalesce
合体ってなんか違和感ありまくりだけどnull合体演算子なんかもあるからあちらさんにはしっくりくるみたい
2022/06/12(日) 06:47:18.12ID:EuxEkIqo
>>141
textA.if_empty(textB)
言語にもよるけど
2022/06/12(日) 07:09:27.54ID:m6O1SXMe
NULisB とか考えてたけど
> coalesce
COALESCEは引数に渡された値のうち、NULLではない最初の値を返すSQL関数です。Oracle、MySQL及びPostgreSQLで使えます。
まんまだなコレ。でも関数名から分かり難いのが難点か
2022/06/12(日) 07:27:00.42ID:xegQlxkn
>>142-144
ありがとうございます!!!
知識も検索能力も低くて辿り着けなかった答えがこうも簡単に!感謝します!

>>143
ちなみに拡張メソッドが使えないVBAでの依頼だったため、今回はcoalesceで行きたいと思います
>textA.if_empty(textB)
すごく意味が伝わりやすいです!
ありがとうございました
2022/06/12(日) 07:27:17.33ID:penYvEXk
coalesceはnull専用だから誤解しやすくて良くないぞ
少なくとも前か後ろにblankかemptyをつけないと

ただこういう基本中の基本機能は独自に関数化するよりも各言語のイディオムを直接書いた方が可読性も保守性も高くなる場合が多い
2022/06/12(日) 16:32:48.65ID:jQu6nhy1
Makefileだと、$(or ...)という関数になってるな。
引数リストで、最初の非空文字列を返す。

たとえば、text_or(...)なんかもいいんでは?
2022/12/06(火) 17:57:39.10ID:IhD5MRvl
test
2024/02/18(日) 00:26:02.79ID:CvKWKztk
C言語にて。
複数の画像ハンドルへのポインタ列。
その個数。

どちらもhnを核に命名したいけど思い付かない。
構造体の要素なのでなるべく短い命名にしたい。
150デフォルトの名無しさん
垢版 |
2024/04/30(火) 17:46:51.86ID:6siWZQQV
グロ
151デフォルトの名無しさん
垢版 |
2024/05/05(日) 11:17:54.24ID:ufyV/oQQ
実際のコーディングは、別として
プログラミング設計時点で、変数名は一文字が
圧倒的に見易い。そして更に変数名は絵文字一文字が
超絶的に見易い。設計時点では、。でこんな感ーーーじ

if 🟦<128 then 'ascii
  ⭐=🟦
  UNICHAR(⭐)を表示
  n=n+1
elseif 🟦<192then 'なんちゃってascii
  「👻」を表示
  n=n+1
elseif 🟦<194then 'なんちゃって2byte
  「👻」を表示
  n=n+1

長いダチョウ🦩な長文なコメントは意味が解らないから
いやです。てか、変数名はカラフル🔴🟡🟢🔵⚪🟤⚫
の一文字がいいな。てかコンパイルエラーになっても知らんけど
152デフォルトの名無しさん
垢版 |
2024/05/07(火) 05:31:29.34ID:ir1kpgcA
どんぐり、って絵文字がない。🟤で代用しようかな
153151
垢版 |
2024/05/09(木) 06:25:15.90ID:0jR/otk1
やっはさ、変数名は、
絵文字🔴🔵等は、超超々見易い

【HTML】
<input id="🔴" name="file" type="file" />
<p id="🔵" />

【JS】

/*入力フォームの要素*/
var 2⃣=document.getElementById("🔴");

/*結果出力用の要素*/
var 3⃣=document.getElementById("🔵");

/*ファイル変更てか指定でイベント発生*/
2⃣.addEventListener("change", (e) => {
   if (window.File) {
   // ファイルの情報を取得&反映
   var 👤 = fileform.files[0];
   3⃣.text = 👤.name;
   }
});
2025/07/31(木) 18:46:41.69ID:cLL+G38O
(仕事以外のものを)開発する時間の半分が名前考えている時間だな。
名前さえちゃんとつけられれば楽。名前を変えると構造も変わる。
構造に合わせて名前も変える。
できる限り、続けて読むと何をやっているのか英文として読み解けるように。
2025/08/01(金) 07:22:13.80ID:YpvuDC33
うん。
やりたい事は大体ぼんやり頭に浮かぶのだけど、言語化の過程で命名が大変だよね。
むかーし『データ構造+アルゴリズム』って勉強したけど、それを組み立てるのに良い命名が必要で。
しかも背伸びして辞書引いて馴染みない単語を使うと、後になって意味が分からないとか。
#命名なんてaaaとかで十分ってのもまた真実なんだけど、ね。
2025/08/07(木) 13:13:17.48ID:Y7XnsPal
begin/end,start/end,start/stop,push/pop,get/set,peek/poke,put/take,put/remove
さらには、remove/delete/erase/moveなど。
対象によって微妙に異なったり、プログラミングの歴史的用法があったり、
toか2かとか、forか4かとか、
to,of,in,on,at,by,whithout,except,but,not,none,nothing,null,nil,inter,inner,middle,head,tail,is,has,-ing,-s,-es
認知科学の書籍まで総動員して名前をつける。
対象との関係は認知科学だね。
たまに、フランス語系の単語が入ってくると女性・男性・中性まで考える。
可算・不可算もあるし、扱い方によって変えたり、
block,chunk,lump,cluster,blob
場合によってはクトゥルフ神話の英語版も参照して...
2025/08/07(木) 13:27:55.66ID:Y7XnsPal
ものによっては、アメリカ俗語辞典も()
ドラクエやポケモンの英語版解説書も欲しいなぁ。
業界用語もたいへんで、地域によって意味が逆だったり、現場によって異なったり。
だいたい、法令の用語に従うと現場では逆の意味で使われていたりして混乱。
2025/08/14(木) 08:36:33.30ID:c3vBd7nS
売/買 を含む単語でバイと読む場合、baiとすると区別がつかない。
買が入っていても売りのことだったりする。おそらく賈と間違えたのかもしれないが、
もともと「買」で売り買いの意味で区別せずに使われていたらしい。
区別できないので賈という字が作られ、売という字になった。
baiとすべきか、読みを無視してuri/kaiにするか。読みだとしても正式な読み方と現場では違ったりする。
英語にしちゃうと理解できないやつが出てくるし。
2025/08/14(木) 08:55:20.10ID:c3vBd7nS
全部英語か、フランス語やラテン語交じりぐらいでなんとかしたいのだが、
たいていのプロジェクトではローマ字で、プロジェクトによっては訓令式だったりヘボン式だったり。
訓令式はプログラム言語と相性が悪く、ソースみても分かりにくく単純なバグをうみやすい。ヘボンのほうがマシ。
osakaかoosakaかohsakaか。地名はJRや地図などを...参照しても悩む。
calendarがcalenderになっているのはよく見かける。nagokaがnyagoyaになっているとほっこりする。
160デフォルトの名無しさん
垢版 |
2025/08/15(金) 23:27:14.33ID:gOZqg9JJ
nagoyaとnagano同じでない。名古屋と長野は同じでないから
161デフォルトの名無しさん
垢版 |
2025/08/15(金) 23:33:31.79ID:gOZqg9JJ
ヒストリカルな配列の変数名で格納するのは
CANVASという変数名のだけど、
配列は、HistCan にしようかな それとも CanAryかな
それとも、複数形ぽくして HistCans にしようかな
てか複数形ぽく最後にsつけたら配列ってわかるし
CANVASの配列ならヒストリカルって憶測つくし
Cansにしよぅかな。
2025/08/16(土) 13:24:25.55ID:f14H9fCx
nagoka -> nagoya
typoにいまごろ気づく。
直せずにそのままになっているプロジェクトも多いよねぇ。
canvas だったら canvasesでしょう。
2025/08/16(土) 13:27:33.26ID:f14H9fCx
historyならhistriesOfCanvasかなぁ。
2025/08/16(土) 13:28:59.14ID:f14H9fCx
histries -> histories
oが抜けた。
canvasHistsもありかな?
2025/08/16(土) 13:33:16.60ID:f14H9fCx
ともかく、統一する。historiesOf〜か、〜Historiesまたは〜Histsで統一だな、おれの場合は。
2025/08/16(土) 16:21:32.35ID:P1ZT/ww7
whatだけじゃなくwhyからも考えたほうがいいかもしれない
例えばcanvasに対する変更をundoできるように変更履歴を配列に入れてるということならundoStack/redoStackとか

historyをhistと略したりcanvasをcanと略するのはよほどその略語が浸透してるか文字数が著しく制限されている状況以外では避けたほうがいいと思う

それとcanvas1つの履歴データということなら意味的にはcanvasHistoryのように単数形が普通じゃないだろうか?
2025/08/17(日) 07:40:05.60ID:7PQ0N0Gk
ああそうだね、単一の履歴配列だったらhistoryだね。ついうっかりhistoryの配列だと思ってしまった。
単なる静的データであれば、historyで複数。
単一でない一連の操作のまとまりのようなデータの集まりであればhistories。
操作の履歴か、開始から確定までの履歴かの違い。後者は確定前と確定直後のundoの動作の粒度?が異なる。
datum(単数) -> data(複数) -> datas(dataを塊としたものが複数、業界での用法)
2025/08/17(日) 08:04:22.87ID:7PQ0N0Gk
undo/redoは難しく、エディタで入力文字やバックスペースなどをちまちまundoされるとかったるい。
編集点が確定できれば意味のまとまりに変換できる。作業履歴はすべて残すべきか、無駄か。AIが必要なのか?
169デフォルトの名無しさん
垢版 |
2025/11/13(木) 20:45:05.79ID:Qom0Qzki
英語の語順で決めた方がいい
170デフォルトの名無しさん
垢版 |
2025/11/13(木) 23:40:52.57ID:/tchf03X
historyやundo/redoは目的でStackはそれを実現するための構造
>>166みたいなundoStack/redoStackが目的と構造を示しててわかりやすいと思う
CANVASをどうしてもつけたいならofCanvasを後置するのが英語っぽい
配列(Array)や複数形(s)はそぐわない
historyの複数形ってさらに解釈がややこしくなる
レスを投稿する

5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況