【汚物】痛い変数名・関数名【破廉恥】

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
NGNG
var unko;
538デフォルトの名無しさん
垢版 |
2008/06/16(月) 16:37:24
〜オレ用関数の命名規則〜Version.0.0.1
主旨:関数を副作用の強弱でレベル分けする。副作用の少ない関数を、<純粋度が高い関数>と呼ぶことにする。
   適用する命名規則は低い方に合わせる。自分の呼び出す関数の中で、もっとも低い方に合わせた規則を適用する(main関数は例外とする)
   

<純粋度が高い関数>
純粋度4 全て小文字で、最初の文字をアンダースコアにする (例:atoi()→_atoi()、sin()→_sin()、strlen()→_strlen())
   「ローカル変数のみを使う。」「ポインタでない引数を使う(もちろん、使わなくても良い)。」
   「ポインタの引数を使い逆参照も行うが、中身は書き換えない。」のいずれかのみに該当

純粋度3 単語の先頭が小文字の名前にする (例:strcat()→strcat()、memmove()→memmove())
   「ポインタ型の引数を受け取り、逆参照して操作する(要素がポインタでない1次配列と構造体まで)。」に該当
   ※純粋度4の関数Aがローカル変数を純粋度3の関数Bにアドレス渡しする場合は、関数Aは純粋度4に留まって良いとする。
    例えば、関数Aのローカルな配列をソート関数Bに渡す場合、B。

純粋度2 単語の先頭が大文字の名前にする (例:malloc()→MAlloc()、free()→Free()、rand()→Rand()(←たぶん静的変数を使ってるから))
   「構造体が持つ、ポインタ型のメンバ変数を逆参照し読み書きする。(二重、三重ポインタの使用、リスト操作など)」
   「malloc、freeやそれに類似したAPIなどを使う。」
   「静的変数の読み書きを行う。」のいずれかに該当

純粋度1 単語の先頭が大文字の名前で 最後にアンダースコアをつける (例:fopen()→FOpen_()、fprintf()→FPrintF_())
   「グローバル変数を読み書きする。」
   「画面への出力や、キーボードからの入力、ネットワーク通信、ファイルを開く、保存、などを行う(主記憶領域以外との通信)」
   のどちらかに該当
<純粋度が低い関数>
これから使うつもり('A`;)。変じゃないだろうか。
539デフォルトの名無しさん
垢版 |
2008/06/16(月) 16:39:25
↑誤爆したorzマジでごめん
2008/06/16(月) 19:53:55
>全て小文字で、最初の文字をアンダースコアにする

グローバルな識別子として処理系に予約されています。
絶対に使用しないでください。
2008/06/16(月) 21:55:50
>>540
最初のアンダースコアを使うのは止めておくことにします。長文の投稿失礼しました。
542デフォルトの名無しさん
垢版 |
2008/06/17(火) 07:00:34
誤爆なの?w
543デフォルトの名無しさん
垢版 |
2008/06/17(火) 22:36:11
hoge を使う奴はたいてい初心者
544543
垢版 |
2008/06/17(火) 23:07:59
プロの俺はpneumonoultramicroscopicsilicovolcanoconiosisを使う
2008/06/17(火) 23:10:08
珪性塵肺症か。
2008/06/17(火) 23:17:08
なげえプレースホルダーだなw
2008/06/17(火) 23:34:31
初心者の女PGでmegu1 megu2 megu3って自分の名前を付ける奴がいた
Class Megu1{
meguArg01 = ...;
meguArg02 = ...;

meguFunc(){...}
}

って感じで。もう何やってんのか全く分からん
2008/06/17(火) 23:46:30
>>547
中身をじろじろ見ないでくれという
初級プログラマからの心の叫び。
549デフォルトの名無しさん
垢版 |
2008/06/19(木) 04:55:47
>>547
かわいいなw
2008/06/19(木) 09:23:29
>>540
C/C++に関してはされてないな
2008/06/19(木) 11:22:47
うむ、C/C++ に関しては、アンダースコア二つで始まるのがメーカー独自拡張だな。
2008/06/19(木) 11:40:06
>>550-551
いや、アンダースコア始まりで小文字が続くものもグローバルスコープで予約されてるよ。
2008/06/19(木) 11:47:22
みんながあまりに安易に多用しすぎて混乱しそうだったから予約したんだろうな
2008/06/19(木) 18:43:31
どうでもいいけど言語によって名前のつけ方のセオリーって全然違うんじゃないの
555デフォルトの名無しさん
垢版 |
2008/06/20(金) 01:28:19
>>554
ひまわり とか?w
2008/06/20(金) 07:25:03
>>552
VC++ の独自の関数とかそうだしね。
_stricmp とか。

C++ だとローカルスコープでは予約されてないけど
やっぱりグローバルスコープでは予約されている。
2008/06/20(金) 08:05:50
>>547
俺もやってた時期があったw
どうせバグ報告が来るなら誰が書いたかすぐ解った方が良い、と本気で思ってた。
二週間と続かなかったが。
2008/06/20(金) 12:33:09
>>551
>アンダースコア二つ
C++では、識別子に含めることが禁止されている。
先頭だけじゃなく途中でもダメ。
2008/06/20(金) 20:02:32
処理系が使用する分には問題ない
560デフォルトの名無しさん
垢版 |
2008/06/21(土) 03:07:46
ハマショーが好きな上司が、クラス名に SurrenderLikeSnow って付けてた。
「悲しみは雪のように」って言おうとしたんだろうが、たぶんSadnessの間違いだと思う
2008/06/21(土) 13:25:26
英訳を頑張っちゃった系のソースは読むのがツライ。
その上スペルミスもあると、もう何がなんだかわからなくなる。
2008/06/21(土) 13:32:12
スペルミス大量でインデントもぐちゃぐちゃなソースがあるけど
意外と読めるもんだな・・・。
イライラはするが。
2008/06/21(土) 16:28:26
ローカル変数ならまだいいけどDBのテーブル名、カラム名でスペルミスは勘弁してほしい。
使ってる方が恥ずかしくなってくるぜ。
2008/06/21(土) 21:59:08
なんにせよuwariteよりはマシ。
2008/07/14(月) 00:08:28
変数名のセンスが無いやつほど
無駄な一時変数を好む傾向にある。
2008/07/14(月) 09:32:27
名前ではないけど、ヘッダファイル(当然いくつかのファイルで include されている)で
static 変数を定義して、値が変わらないと悩んでいた人がいた。そら変わらんわなあ。
2008/07/14(月) 09:52:44
それは、多重定義のエラーが出てstaticをつけたらエラーが消えたからそのまま使ってるんだろうw
2008/07/15(火) 00:52:58
>>566
ヘッダファイルに変数を書く時点で既に変。
(つか、普通はextern 宣言だけだろ?)
2008/07/15(火) 01:39:59
>>567
あるある
2008/07/16(水) 21:44:13
>>566-569
それ(static無)やってる職場に以前いたんだが、(当然ながら)全く同じ定義のせいかエラーが出ずにリンク出来てた。
動作も正常。むしろエラーになってくれる方がありがたかったな。という思い出。

2008/07/17(木) 01:33:32
>>568も変だけどな。
2008/07/17(木) 20:12:07
変じゃないだろ
ヘッダでメモリ確保しちゃダメなのは常識
573デフォルトの名無しさん
垢版 |
2008/08/22(金) 14:10:24
>>572
kwsk
574デフォルトの名無しさん
垢版 |
2008/08/22(金) 22:19:51
送信済みデータ保存関数

saveSendedData
2008/08/22(金) 22:34:56
>>574
読み込み済みデータでreadedDataってのもあったぞ。
2008/08/23(土) 00:03:00
>>573
ヘッダファイルとして分離する目的は何でしょう?
複数のモジュールから、同一の定義を参照する事が目的。

ゆえに変数定義など、唯一でなければならないモノをヘッダに書いてはならない。

そもそも、static変数をヘッダで定義して
あちこちのモジュールでインクルードせにゃならんってのは、
構造的に間違ってる。 うつくしくない。
577デフォルトの名無しさん
垢版 |
2008/08/23(土) 21:21:27
>>547
getmegu
Insert_megu
open_megu (man, co)
せくはら
578デフォルトの名無しさん
垢版 |
2008/08/23(土) 21:37:33
VB質問スレから
Dim strFikeNamae

これは秀逸だと思ったので
今までfnameやfilenameにしていたけど
これからはfnamaeやfilenamaeにしようと思った。
2008/08/23(土) 22:42:06
一瞬単なるタイポかと思わせておいて「なまえ」とは・・
2008/08/23(土) 23:10:21
public void Create_String_Procedure( string arg1, string arg2 ){
・・・・・
}

PCをけっ飛ばしたくなった。
2008/08/23(土) 23:51:29
-aeで終わるとラテン語の複数形みたいに見えるな
ラテン語でnameはnomenだが。

2008/08/24(日) 00:11:50
aglicora, aqua
2008/08/24(日) 00:32:55
programa
2008/08/24(日) 00:34:34
COM次第だな

悪のCOMをインストールするのだ
2008/08/25(月) 21:31:48
>>578
Fikeってなんかカッッコイイ
2008/08/26(火) 00:11:43
>>580
それだけだと何が悪いのか分からん
2008/08/28(木) 00:08:42
>>580
C#か?キャメルケースなのにアンダーバーでくくられているのが気になるのか、
副作用がある作りにしているのが気になるのか、
argうんちゃっらっていう意味もへったくれもない変数が気になるのか、
Procedureとかわざわざ名前をつけているのが気になるのかハッキリ汁。

あとお前、この業界にいるには
気が短すぎるのとコミュニケーション能力が低すぎると思われるから
他人のこと言う資格ないと思うぞ。
2008/08/28(木) 01:39:19
まースレタイ通り、変数名・関数名を言ってんだろう。
予想:"どんな"StringをCreateするProcedureなのか分からない。ってことじゃないか?
2008/08/28(木) 09:57:27
dataやarg1, arg2みたいな名前が適切な場合もあるよね。
GTKでは任意のデータを受け付ける(void *) dataっていう引数を
引き回していたような記憶。
Lispでも高階関数を定義するときにarg1, arg2みたいな引数名を使ったりする。
(この場合は可変長のargsとかが良いのかもしれんが。)
2008/08/28(木) 19:53:39
自分だったらl,r使うかなあ
2008/08/28(木) 22:00:25
lhs rhs
2008/08/28(木) 23:46:27
>>591
それ、3文字略語はマナー悪いよなぁとも思うし、
もはや専門用語化してて略語じゃないと思える気もするし。
2008/08/29(金) 06:28:31
3つ以上あったらどうするの
2008/08/29(金) 08:48:05
まあ、lhs, rhs は2項演算に対して使う用語だし。
2008/08/30(土) 06:52:15
>>594
ソートに使用する比較関数の変数とかね。

>>593
3つの引数が等価な計算とか無理やりな例以外見たことない。
2008/08/30(土) 08:49:39
>>580の引数がたまたま2つだったから二項演算の話になってるのかな
ちょっと理解に苦しむ
2008/08/31(日) 04:47:26
正直、Effective C++ではじめてrhsとlhsが何の略なのか知った。
2008/08/31(日) 06:12:26
ロハスとロハスだろ。
2008/09/01(月) 13:40:01
Perlだと比較関数で使う仮変数は$a, $bだね。
sort { $b <=> $a } @values
みたいに指定すると降順ソートができる。安直だけど分かりやすい。
2008/09/03(水) 18:46:51
でも、$a, $bを特殊変数に指定してしまったのはかなり汚い。
601デフォルトの名無しさん
垢版 |
2008/09/04(木) 22:35:23
int debu1 ;
int debu2 ;
int debu3 ;
同僚でこんな変数を作っているやつがいた。

「デブデブデブっておまいデブ専なのか?」って聞いたら
debuはdebugの略だと言っていた。
2008/09/05(金) 05:57:30
でぶまで書いたんならデバッグまで書けよでぶ
2008/09/07(日) 15:59:30
>>600
どんな変数名がいいと思う?
604デフォルトの名無しさん
垢版 |
2008/09/07(日) 22:53:26
>>580は普通頭に来るだろう。
これを許すなら、文字列を2個受け取って文字列を返すメソッドは
全部同じ名前で1,2,3...が付くだけとかで書かれてしまう。
もちろんこんな名前を付ける人にはクラス名やコメントやドキュメントは期待できない。
2008/09/07(日) 23:09:04
引数自体に意味を持たせず、ただ順序だけが重要なのかも。
いずれにしろ、>>580自身が説明しないとダメでしょう。
2008/09/07(日) 23:10:09
>>601
それぜったい狙ってやってると思う
2008/09/08(月) 10:47:00
昔火の付いたプロジェクト手伝ってたら、
int型のflagつう変数があって0がオンで1がオフに使われてた。
コメントもなんも無し。
2008/09/09(火) 13:24:58
火のつくプロジェクトはまずい人材か従順に言うことを聞くだけの人材しかいない。
人月にあらず。そこにいるのは何もできないか、まずいことしかやらない人々なのだ。
2008/09/09(火) 22:17:16
管理層も馬鹿じゃないから、火がついても経営的な危機に陥らないような
プロジェクトにしか無能な奴は集めないけどな。板違いスマソ
610デフォルトの名無しさん
垢版 |
2008/09/28(日) 21:06:12
IT技術者は免許制にしてほしいよね
2008/09/28(日) 21:22:06
いや、GPL使うを免許にすべき
2008/10/08(水) 20:01:42
externってあんまり使わないほうがいいんかね

昔、学校のグラフィックスの授業でOpenGLを使った課題を発表し合ったとき、
gnuplotの3次元グラフみたいなものを動的に表示させるプログラムを書いた人がいて、すげーと思って
ソース見たら『void function001(void)...function002..003....〜この後数十個の関数が続く』っていう中身になってて当時の俺だと
「次元が違う人の書くプログラムは読むのも難しいなー」と思ったんだけど、あれってやっぱりダメだったんだな・・・コメント書かない主義だったし
613デフォルトの名無しさん
垢版 |
2008/10/08(水) 21:37:45
それ逆コンパイラか難読化ツールを作ったのが発表だったんじゃね?
2008/10/08(水) 22:19:02
逆コンパイラで何かぱくってきたの方に1票。
2008/10/09(木) 13:12:50
>>612
最適化か効率化かが極まった特例としてはアリかも。

キー入力応答やレンダリングとかの処理がいっぱい
必要な場合は、関数の名前を考える時間もバカに
ならないんで。
C/C++には無名関数もないしね。
処理系によっては、いちいちコールバック関数が
必須だったりするんでなおさら。

見習ってはいかんと思うけど、アタマから否定しない
度量もあっていい。
2008/10/11(土) 22:35:28
それでもコメント書かない主義ってのはダメだな
「function**は○○用の関数」とか一言書いておくだけでかなり違うのに
2008/10/12(日) 00:50:10
他人に保守させるとかじゃなければOKかな
2008/10/13(月) 07:41:36
コメントをコピペ修正忘れするくらいなら、コメントを書くことよりも、まともな関数名を考えることに注力して欲しい。
駄目な奴は何をやっても駄目だからしかたないが。
2008/11/08(土) 20:52:10
>>580
string-> "S"tring か?w
ケツ蹴っ飛ばしたれ。w

620デフォルトの名無しさん
垢版 |
2008/11/09(日) 19:23:34
>>619
つっこみどころは arg1, arg2 だろ(´д`;)
2008/11/09(日) 19:38:32
どうやっても値が返らないってところに突っ込むべきじゃ。
2008/11/09(日) 22:20:26
内部状態更新するんじゃね?
2008/11/09(日) 22:30:41
create_string といういかにも値返しそうな名前なのに
procedure というところ?
2008/11/10(月) 09:55:07
突っ込みどころが多い、とw
しかし単語の先頭を大文字にした上でアンダースコアでつないでるのを見るとイラっとくるな。
2008/11/11(火) 07:18:47
C#ならstring小文字もメソッド名先頭大文字も普通。
アンダースコアはないが、他にそういう慣習の言語もあるのかも知れん。
言語を明示しないと突っ込みづらい。
2008/11/11(火) 13:47:02
そういやAdaは予約語以外は大文字で始めて単語の切れ目は_入れるんだったな。
procedure Create_String_Procedure(Arg1, Arg2: in String) is
:
begin
:
end Create_String_Procedure;
580を冗長に書き直すと、こんなんだったはず。

まぁコンパイラが大文字小文字を区別しないから、小文字で書いても全く問題ないんだけど。
627デフォルトの名無しさん
垢版 |
2008/11/26(水) 02:03:59
>>580
で、こたえは?
2008/11/28(金) 18:38:24
>>537のってだめなの?
old new num はたまに使うんだけど
2008/11/28(金) 18:56:44
>>628
newはしばしば予約されている。
oldやnumも、単体で使うのは有り得ない。
変数名の一部として使う分にはまぁいいと思うけどね。
>537は教条主義に陥っている気がするな。
2008/11/28(金) 19:54:52
>>629
ああいや単体では使わんよ。
ただ変数名に含める事は結構あるんじゃないかと。
2008/11/29(土) 12:16:02
多くの場合に、 old, new よりは previous, current, next のほうがより明確だと思う。
対象領域に old, new の概念があり、それを表すならば、もちろん old, new がふさわしいだろう。
2008/11/29(土) 18:05:50
なるほど、確かにpreviousとnextの方がいいかも。
2008/11/29(土) 21:22:32
>537の理屈じゃ、oldTypeとかnewTypeでもダメそうだもんなw
2008/12/01(月) 22:03:48
>>537のは、結局"故にすべてのプログラムはクソ"というオチなんじゃない?
2008/12/02(火) 01:09:20
>>633
普通にダメだと思うぞそんな名前
2008/12/02(火) 09:58:51
newが入ってるとこみると名前の一部だよなそれ?
2008/12/05(金) 09:57:06
>627
CamelでC#と勝手に予想して>621が正解。
最近C#書く機会が多いから俺もそうオモタ。
変化球でメンバ更新用だとしてもメソッド名で( ´,_ゝ`)できる。
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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