探検
ふざけた変数名を使う奴
■ このスレッドは過去ログ倉庫に格納されています
1仕様書無しさん
2008/08/23(土) 21:45:16 var1、2、…とか、ふざけてるの?
724仕様書無しさん
2014/03/28(金) 00:06:48.35725仕様書無しさん
2014/03/28(金) 00:22:27.88 基本的に自然言語に依存しないようにしてるが、純粋な名詞ならまあ仕方ない。
メソッド名とかで create〜 とか do〜 とか compare〜 とかは殺意を覚える。
メソッド名とかで create〜 とか do〜 とか compare〜 とかは殺意を覚える。
726仕様書無しさん
2014/03/28(金) 22:03:08.29 >>725
create〜 は〜を生成する
do〜 は〜を実行する
compare〜 は〜を比較する
とても分かりやすくて、こういうのが理想とされているんだよ。
名詞だけでは何やってんだか分からないでしょ?
create〜 は〜を生成する
do〜 は〜を実行する
compare〜 は〜を比較する
とても分かりやすくて、こういうのが理想とされているんだよ。
名詞だけでは何やってんだか分からないでしょ?
728仕様書無しさん
2014/03/29(土) 00:43:25.16 1機能1クラスw
730仕様書無しさん
2014/03/29(土) 23:57:37.34 メソッド名はスレ違い。
変数名は印象的でありさえすればいいと思う。
そういう意味で連番は最低。
変数名は印象的でありさえすればいいと思う。
そういう意味で連番は最低。
731仕様書無しさん
2014/03/30(日) 13:14:22.39 自然言語に依存しないとかアホな事ぬかしてる奴、
どういった経緯でそんな頭悪い場所にたどり着いてしまったのか、興味ある
どういった経緯でそんな頭悪い場所にたどり着いてしまったのか、興味ある
732仕様書無しさん
2014/03/30(日) 14:13:15.94733仕様書無しさん
2014/03/30(日) 14:50:27.89 だから、その気持ち悪いと感じるようになった経緯が気になる、と書いてるんだけど
英語に親でも殺されたのかな
英語に親でも殺されたのかな
734仕様書無しさん
2014/03/30(日) 15:08:24.80 変数名は、「用途がわかる」、「コーディングルールやコードスタイルのルールに添っている」
この2つが守れていれば、それ以上の要求はないな。
hogeとかmogeとかみたいな意味の分からない名前や、mvalueとかみたいな俺々略語、
value1とかvalue2みたいな意味のない連番を使う奴は、全員死ねばいいと思う。
>>730
命名規則についてって考えたら、メソッドやクラスについてのレスも構わないと思うけどな。
名前の付け方の話なら、変数名だけに限ったことじゃないし。
>>725,727,729あたりがアンチ自然言語君の発言だとしたら、
クラスを処理の定義場所としか使ってなくて、OOPとかとは無縁の石器時代的な環境に居るんだと思う。
もしくは、AOPしすぎて1処理ごとにドメインとして定義してるような変態環境か…?
どちらにしても井戸の中でゲコゲコ鳴いてるだけっぽい。
この2つが守れていれば、それ以上の要求はないな。
hogeとかmogeとかみたいな意味の分からない名前や、mvalueとかみたいな俺々略語、
value1とかvalue2みたいな意味のない連番を使う奴は、全員死ねばいいと思う。
>>730
命名規則についてって考えたら、メソッドやクラスについてのレスも構わないと思うけどな。
名前の付け方の話なら、変数名だけに限ったことじゃないし。
>>725,727,729あたりがアンチ自然言語君の発言だとしたら、
クラスを処理の定義場所としか使ってなくて、OOPとかとは無縁の石器時代的な環境に居るんだと思う。
もしくは、AOPしすぎて1処理ごとにドメインとして定義してるような変態環境か…?
どちらにしても井戸の中でゲコゲコ鳴いてるだけっぽい。
735仕様書無しさん
2014/03/30(日) 15:36:43.88 せっかく形式化された言語を使っているのに、その上なぜ英語とか日本語とかに依存しようとする?
意味を名前に求めるなんてよくないよ。
> クラスを処理の定義場所としか使ってなくて、OOPとかとは無縁の石器時代的な環境に居るんだと思う。
> もしくは、AOPしすぎて1処理ごとにドメインとして定義してるような変態環境か…?
ここは全く根拠薄弱。
意味を名前に求めるなんてよくないよ。
> クラスを処理の定義場所としか使ってなくて、OOPとかとは無縁の石器時代的な環境に居るんだと思う。
> もしくは、AOPしすぎて1処理ごとにドメインとして定義してるような変態環境か…?
ここは全く根拠薄弱。
736仕様書無しさん
2014/03/30(日) 15:43:33.77737仕様書無しさん
2014/03/30(日) 18:36:38.13 int LoopCounter;
iでいーじゃん
iでいーじゃん
739仕様書無しさん
2014/03/30(日) 18:43:37.52 変数名という仕様を全否定してるな
依存したくないならもう機械語で書けよ
依存したくないならもう機械語で書けよ
741仕様書無しさん
2014/03/30(日) 23:09:08.20 俺も
xxxCreater.createXXX(src);と書くのは冗長で
xxxCreater(src);
と書きたいがそういう事じゃないのかな。
xxxCreater.createXXX(src);と書くのは冗長で
xxxCreater(src);
と書きたいがそういう事じゃないのかな。
742仕様書無しさん
2014/03/30(日) 23:13:05.91745仕様書無しさん
2014/03/30(日) 23:50:52.96 >>739, 740
誤解してたら悪いんだが、君たちってさ、
bool func〜(string sourceString, string targetString);
bool func〜(string targetString, string sourceString);
のどっちにしようか?って問題に対して、
「どちらでも統一されていればよい。意味は変数名に込められているから明確。」
とか考えるの?
誤解してたら悪いんだが、君たちってさ、
bool func〜(string sourceString, string targetString);
bool func〜(string targetString, string sourceString);
のどっちにしようか?って問題に対して、
「どちらでも統一されていればよい。意味は変数名に込められているから明確。」
とか考えるの?
748仕様書無しさん
2014/03/31(月) 02:40:40.06 中途半端に天邪鬼な俺は、
「fooとかbarとか使いたくねえな」
と思ってpooとかparとか使ってる。
「fooとかbarとか使いたくねえな」
と思ってpooとかparとか使ってる。
749仕様書無しさん
2014/03/31(月) 07:03:16.24 そりゃどっちがソースでどっちがターゲットかが構造だけで
明らかになるなら名前なんて余計だけど、いつもいつもやってられん。
命名法はルールだけでいつでも実践できる。
明らかになるなら名前なんて余計だけど、いつもいつもやってられん。
命名法はルールだけでいつでも実践できる。
750仕様書無しさん
2014/03/31(月) 10:13:28.23 アセンブラだとsrcとdstの順番は言語仕様として決まっているが、
nasmとgasでその並びが真逆だという。
nasmとgasでその並びが真逆だという。
752仕様書無しさん
2014/03/31(月) 23:27:17.43 energy = mass * (speed_of_light * speed_of_light)
より
E = mc^2
の方が直感に響くような気がするな
より
E = mc^2
の方が直感に響くような気がするな
753仕様書無しさん
2014/04/03(木) 11:55:36.97 メソッド名の頭に全部fuckって付けてまわってたら怒られた・・・
755仕様書無しさん
2014/04/03(木) 22:02:25.34756仕様書無しさん
2014/04/03(木) 23:39:12.50757仕様書無しさん
2014/04/06(日) 13:35:54.95 ほかの構造を考えるための工数を出してくれるんなら、いくらでも考えまっせ。
758仕様書無しさん
2014/04/12(土) 00:27:47.01759仕様書無しさん
2014/04/12(土) 03:01:16.73 どうやって支払うの?
760仕様書無しさん
2014/04/30(水) 02:41:31.63 投擲。
761仕様書無しさん
2014/05/16(金) 11:48:00.48 嶋崎慎太郎
http://fishki.net/upload/post_temp/201405/16/1_000.jpg
東京電機大学中学校 評判
http://fishki.net/upload/post_temp/201405/16/1_000.jpg
早稲田住友商事
http://fishki.net/upload/post_temp/201405/16/1_000.jpg
嶋崎慎太郎
http://fishki.net/upload/post_temp/201405/16/001.jpg
嶋崎亮介
http://fishki.net/upload/post_temp/201405/16/1_111.jpg
稲城サッカースポーツ少年団 評判 稲城SSS 評判
http://fishki.net/upload/post_temp/201405/16/500.jpg
稲城市立向陽台小学校 評判 Y子
http://fishki.net/upload/post_temp/201405/16/1_001.jpg
http://fishki.net/upload/post_temp/201405/16/1_000.jpg
東京電機大学中学校 評判
http://fishki.net/upload/post_temp/201405/16/1_000.jpg
早稲田住友商事
http://fishki.net/upload/post_temp/201405/16/1_000.jpg
嶋崎慎太郎
http://fishki.net/upload/post_temp/201405/16/001.jpg
嶋崎亮介
http://fishki.net/upload/post_temp/201405/16/1_111.jpg
稲城サッカースポーツ少年団 評判 稲城SSS 評判
http://fishki.net/upload/post_temp/201405/16/500.jpg
稲城市立向陽台小学校 評判 Y子
http://fishki.net/upload/post_temp/201405/16/1_001.jpg
762仕様書無しさん
2014/05/16(金) 23:59:47.50 >>752
mcと2の排他的論理和ですね。
mcと2の排他的論理和ですね。
764仕様書無しさん
2014/05/28(水) 00:00:55.58 昔(20年ほど前)、変な後輩の新人君がいた。
ホストのTSSで待機ジョブに「KOKINJI」てジョブIDがあったから
「○○君、このジョブ名は?」って聞いたら
「それは秘密です」
しばらく意味わからんかった。桂小金治のこととは。
一見、真面目そうに見える子だったんで、
「なんでこんなジョブ名にしてるの?規約に従わんの!?」って聞いたら
「命名規約に沿ったら全部同じに見えるから、自分のジョブが目立つようにしたんです!」ってマジレス。
ああ、ただの馬鹿じゃないなと。
ホストのTSSで待機ジョブに「KOKINJI」てジョブIDがあったから
「○○君、このジョブ名は?」って聞いたら
「それは秘密です」
しばらく意味わからんかった。桂小金治のこととは。
一見、真面目そうに見える子だったんで、
「なんでこんなジョブ名にしてるの?規約に従わんの!?」って聞いたら
「命名規約に沿ったら全部同じに見えるから、自分のジョブが目立つようにしたんです!」ってマジレス。
ああ、ただの馬鹿じゃないなと。
765仕様書無しさん
2014/05/28(水) 10:54:48.65 ただのバカじゃないか。
766仕様書無しさん
2014/06/02(月) 20:24:48.19 Cからプログラム始めたのになんで自分はハンガリアン大好きっ子に育ったんだろう
昔書いたソースをメンテしてる人に申し訳ない
今はpooだけど
昔書いたソースをメンテしてる人に申し訳ない
今はpooだけど
767仕様書無しさん
2014/06/04(水) 02:38:37.25 「自分のジョブ」を目立たせようとしたのはナゼなんだ?
768仕様書無しさん
2014/06/04(水) 20:24:38.43 本番に乗せる前のテストだったんだろ。
なら何でもいいな。自分が判りやすければ。
なら何でもいいな。自分が判りやすければ。
770仕様書無しさん
2014/07/11(金) 21:08:24.55 変数名を考えるのがじゃまくさい
なんとかならんのか
なんとかならんのか
771仕様書無しさん
2014/07/11(金) 21:35:28.52 変数名は20文字まで
772仕様書無しさん
2014/07/12(土) 20:20:15.36 >変数名を考えるのがじゃまくさい なんとかならんのか
俺の場合、画面表示だったらDispなんとかになる。その関数はDsip**となる
俺は関数一覧を使うが、そこにDisp**がずらりと並ぶ。そこから目的の関数名をつかむ
でも、作業が進むと関数が増えてくる。
すると、表示クラスが独立させるわけよ。
しかし、相変わらずそのクラスの関数群はDsip**のままだな
俺の場合、画面表示だったらDispなんとかになる。その関数はDsip**となる
俺は関数一覧を使うが、そこにDisp**がずらりと並ぶ。そこから目的の関数名をつかむ
でも、作業が進むと関数が増えてくる。
すると、表示クラスが独立させるわけよ。
しかし、相変わらずそのクラスの関数群はDsip**のままだな
773仕様書無しさん
2014/07/12(土) 20:25:53.81 >>772
典型的な間違ったモジュールの分け方してそうでワロタw
間違った分け方をしている奴は真逆に分ける。
たとえば「○を表示する。」だったら、
○でグループを作るのではなく表示でグループを作る。
なんとかの表示、なんたらの表示、表示、表示、
そして表示を担当するモジュールが出来るwww
真逆だよ真逆。
典型的な間違ったモジュールの分け方してそうでワロタw
間違った分け方をしている奴は真逆に分ける。
たとえば「○を表示する。」だったら、
○でグループを作るのではなく表示でグループを作る。
なんとかの表示、なんたらの表示、表示、表示、
そして表示を担当するモジュールが出来るwww
真逆だよ真逆。
774仕様書無しさん
2014/07/12(土) 21:35:15.98 >>773
そっちのほうが合理的だと思うんだけどダメなのか?
そっちのほうが合理的だと思うんだけどダメなのか?
775仕様書無しさん
2014/07/12(土) 22:06:43.67777仕様書無しさん
2014/07/12(土) 23:02:16.09 普通は処理内容じゃなくて処理対象で分けるだろ
それがオブジェクト指向なんだから
それがオブジェクト指向なんだから
778仕様書無しさん
2014/07/13(日) 00:43:06.05 >>774
最近俺もわかったことなんだけどね。
正反対に実装する奴が多いこと多いこと。
Aに関する表示、Bに関する表示、Cに関する表示、
これらを一つのモジュール(ファイル)にまとめる考え方だと、
今度は
Aに関する入力、Bに関する入力、Cに関する入力、
という風にモジュールにまとめる。他にも処理ごとにまとめたモジュールが出来るだろう。
そうすると、次にDに関する処理が増えた時、表示モジュール、入力モジュール
なんたらモジュールっていう風に、複数のモジュールに処理を追加することになる。
逆に消そうとした時、複数のモジュールから○に関する処理を探しだして消さなきゃいけない。
システム全体に散らばった、○に関する処理をあちこち探すはめになる。
追加削除はあまりしないとしても、デバッグの時に○に関する処理をあちこちと。
最近俺もわかったことなんだけどね。
正反対に実装する奴が多いこと多いこと。
Aに関する表示、Bに関する表示、Cに関する表示、
これらを一つのモジュール(ファイル)にまとめる考え方だと、
今度は
Aに関する入力、Bに関する入力、Cに関する入力、
という風にモジュールにまとめる。他にも処理ごとにまとめたモジュールが出来るだろう。
そうすると、次にDに関する処理が増えた時、表示モジュール、入力モジュール
なんたらモジュールっていう風に、複数のモジュールに処理を追加することになる。
逆に消そうとした時、複数のモジュールから○に関する処理を探しだして消さなきゃいけない。
システム全体に散らばった、○に関する処理をあちこち探すはめになる。
追加削除はあまりしないとしても、デバッグの時に○に関する処理をあちこちと。
779仕様書無しさん
2014/07/13(日) 00:48:12.12 Aに関する表示、Bに関する表示、Cに関する表示、
これらを一つのモジュール(ファイル)にまとめる考え方をしていると
でてくるのが、似たような処理はまとめようといういうもの。
一見良さそうに思えるが・・・。
Aに関する表示、Bに関する表示、Cに関する表示、 に
共通する部分をルーチンにまとめる。
「Aに関する表示、Bに関する表示、Cに関する表示」 + 共通ルーチン
本来、AとBとCは全く無関係なのに、処理の内容が似ているからという理由で
共通ルーチンが作られる。そうすると、その共通ルーチンでAの場合だけ
必要な処理が出来た時に破綻する。
何が起きるかというと、共通ルーチンに変なフラグを追加される。
「共通ルーチン」の中に、Aの場合だけ必要な処理、つまりif A thenというコードが追加される。
同様に、Bなら、Cなら。それはもはや共通ルーチンではなくなる。
これらを一つのモジュール(ファイル)にまとめる考え方をしていると
でてくるのが、似たような処理はまとめようといういうもの。
一見良さそうに思えるが・・・。
Aに関する表示、Bに関する表示、Cに関する表示、 に
共通する部分をルーチンにまとめる。
「Aに関する表示、Bに関する表示、Cに関する表示」 + 共通ルーチン
本来、AとBとCは全く無関係なのに、処理の内容が似ているからという理由で
共通ルーチンが作られる。そうすると、その共通ルーチンでAの場合だけ
必要な処理が出来た時に破綻する。
何が起きるかというと、共通ルーチンに変なフラグを追加される。
「共通ルーチン」の中に、Aの場合だけ必要な処理、つまりif A thenというコードが追加される。
同様に、Bなら、Cなら。それはもはや共通ルーチンではなくなる。
780仕様書無しさん
2014/07/13(日) 00:50:12.44 理解
781仕様書無しさん
2014/07/13(日) 00:59:28.50 ただしいモジュールの分け方をしていれば、
処理の、[START] → から → [END] までほぼ一本道。
つまり、Aの処理しか行わない道になるから、
この道を修正しても、BやCに影響ないことは明らかになる。
真逆ののモジュールの分け方をすると
┌───┬───┐
[START] ─┬───┴┬──┴──┬┴───[END]
. └────┴─────┘
この中から正しいAの道はどれかな?みたいなことをするハメになる。
どれが共通の部分で、どれがAのコードかわからないから、
しだいに共通らしき道に「if A then」が増えていき、
すべての処理がごちゃごちゃ混ざりまくる。
処理の、[START] → から → [END] までほぼ一本道。
つまり、Aの処理しか行わない道になるから、
この道を修正しても、BやCに影響ないことは明らかになる。
真逆ののモジュールの分け方をすると
┌───┬───┐
[START] ─┬───┴┬──┴──┬┴───[END]
. └────┴─────┘
この中から正しいAの道はどれかな?みたいなことをするハメになる。
どれが共通の部分で、どれがAのコードかわからないから、
しだいに共通らしき道に「if A then」が増えていき、
すべての処理がごちゃごちゃ混ざりまくる。
782仕様書無しさん
2014/07/13(日) 01:15:04.78 >>779,>>781で書いたことをもうちょっと丁寧に書くと、
真逆のモジュールの分け方をしている奴の開発の流れはこう。
1. まず、Aの処理を作る。そのコードの量は適当でいいが500行ぐらいとしよう。
2. 次にBの処理を作る。似ているからAの処理をコピペする。
3. そこで少し力がついた初心者は、コピペするのはよくない、AとBは
似ているからまとめるべきだ。という考えになる。
ここまで来た典型的なコードは
Aの前処理 → 約400行の共通処理 → Aの後処理
Bの前処理 → 約400行の共通処理 → Bの後処理
というようになる。
(この共通処理というのは、AとBの共通の処理であって、汎用関数ではないことに注意ね。)
次に少し似ているCが加わる。だいたい似ているが、共通処理でやる内容が少しだけ違う。
Aの前処理 → 約400行の共通処理 → Aの後処理
Bの前処理 → 約400行の共通処理 → Bの後処理
Cの前処理 → 約400行の共通処理 → Cの後処理
「約400行の共通処理の内訳」
AとBの共通処理 → C専用の処理 → AとBの共通処理
そしてD,Eと増えるたびに
「約400行の共通処理の内訳」
全ての共通処理 → AとBの共通処理 → C専用の処理 → D専用の処理 → 全ての共通処理 → AとBの共通処理 → AとDの共通処理
みたいにカオスになる。
おいEはいったいどの部分が実行されるんだよ? ってなっていく。
真逆のモジュールの分け方をしている奴の開発の流れはこう。
1. まず、Aの処理を作る。そのコードの量は適当でいいが500行ぐらいとしよう。
2. 次にBの処理を作る。似ているからAの処理をコピペする。
3. そこで少し力がついた初心者は、コピペするのはよくない、AとBは
似ているからまとめるべきだ。という考えになる。
ここまで来た典型的なコードは
Aの前処理 → 約400行の共通処理 → Aの後処理
Bの前処理 → 約400行の共通処理 → Bの後処理
というようになる。
(この共通処理というのは、AとBの共通の処理であって、汎用関数ではないことに注意ね。)
次に少し似ているCが加わる。だいたい似ているが、共通処理でやる内容が少しだけ違う。
Aの前処理 → 約400行の共通処理 → Aの後処理
Bの前処理 → 約400行の共通処理 → Bの後処理
Cの前処理 → 約400行の共通処理 → Cの後処理
「約400行の共通処理の内訳」
AとBの共通処理 → C専用の処理 → AとBの共通処理
そしてD,Eと増えるたびに
「約400行の共通処理の内訳」
全ての共通処理 → AとBの共通処理 → C専用の処理 → D専用の処理 → 全ての共通処理 → AとBの共通処理 → AとDの共通処理
みたいにカオスになる。
おいEはいったいどの部分が実行されるんだよ? ってなっていく。
783仕様書無しさん
2014/07/13(日) 01:23:09.10 さらにコードがの行数が増えていくと関数に分けようと考える。
「 約400行の共通処理」はもはや「4000行のA〜Eの処理が絡みあった処理」になる。
さあ、長くなったから関数に分けようか。
Aの前処理 → 約400行の絡み合った入力処理 → 約400行の絡み合ったメイン処理 → 約400行の絡み合った出力処理 → Aの後処理
Bの前処理 → 約400行の絡み合った入力処理 → 約400行の絡み合ったメイン処理 → 約400行の絡み合った出力処理 → Bの後処理
Cの前処理 → 約400行の絡み合った入力処理 → 約400行の絡み合ったメイン処理 → 約400行の絡み合った出力処理 → Cの後処理
:
そして次に入力、他、出力を別モジュールに分けようとしだす。
Aの前処理 → 入力モジュール → メインモジュール → 出力モジュール → Aの後処理
: (以下同)
そして出来上がるのが、各モジュール(ファイル)に含まれた、if A thenの嵐
広大なシステム全体から、Aに関するコードを探し出さないといけない。
Aに関する処理をあちこちにジャンプして調べることになる。
共通と思われるコードを修正した時、それが本当にB〜Eに影響しないのか?と考えることになる。
これは、実は、コピペしてAの処理だけで終わるコード、よりも悪い結果になっていたりする。
(もちろんコピペはダメ)
「 約400行の共通処理」はもはや「4000行のA〜Eの処理が絡みあった処理」になる。
さあ、長くなったから関数に分けようか。
Aの前処理 → 約400行の絡み合った入力処理 → 約400行の絡み合ったメイン処理 → 約400行の絡み合った出力処理 → Aの後処理
Bの前処理 → 約400行の絡み合った入力処理 → 約400行の絡み合ったメイン処理 → 約400行の絡み合った出力処理 → Bの後処理
Cの前処理 → 約400行の絡み合った入力処理 → 約400行の絡み合ったメイン処理 → 約400行の絡み合った出力処理 → Cの後処理
:
そして次に入力、他、出力を別モジュールに分けようとしだす。
Aの前処理 → 入力モジュール → メインモジュール → 出力モジュール → Aの後処理
: (以下同)
そして出来上がるのが、各モジュール(ファイル)に含まれた、if A thenの嵐
広大なシステム全体から、Aに関するコードを探し出さないといけない。
Aに関する処理をあちこちにジャンプして調べることになる。
共通と思われるコードを修正した時、それが本当にB〜Eに影響しないのか?と考えることになる。
これは、実は、コピペしてAの処理だけで終わるコード、よりも悪い結果になっていたりする。
(もちろんコピペはダメ)
784仕様書無しさん
2014/07/13(日) 01:31:05.58 じゃあ何が正しいんだよ?と言われそうだから
どうするのがいいかも答えよう。
1. まず、Aの処理を作る。そのコードの量は適当でいいが500行ぐらいとしよう。
2. 次にBの処理を作るがここからが違う。
長いと思ったらAの処理のダイエットすること。
AとBの内容が似ているからといって、まとめるのではなく、
Aの中から汎用関数、つまりそれはAやB以外でもまったく別のプロジェクトでも
使えるような汎用関数。一つ一つはとても小さな処理になる。
そうするとAの処理はかなり少なくなる。
Bの処理ではもちろんその汎用関数を使って書くからAと同等に短くなる。
一見似ているように思えるが、汎用関数あるため、その処理にAやB特有の
コードが入る余地はなくなる。
そうやってコードが長くなるたびに、汎用関数に追いやってA処理を短くしつつ
処理を増やしていく。そしてこのAの処理は決してB〜Eと混ざることはない。
Aの処理には入力、メイン、他、出力の処理が一直線に並ぶ。
どうするのがいいかも答えよう。
1. まず、Aの処理を作る。そのコードの量は適当でいいが500行ぐらいとしよう。
2. 次にBの処理を作るがここからが違う。
長いと思ったらAの処理のダイエットすること。
AとBの内容が似ているからといって、まとめるのではなく、
Aの中から汎用関数、つまりそれはAやB以外でもまったく別のプロジェクトでも
使えるような汎用関数。一つ一つはとても小さな処理になる。
そうするとAの処理はかなり少なくなる。
Bの処理ではもちろんその汎用関数を使って書くからAと同等に短くなる。
一見似ているように思えるが、汎用関数あるため、その処理にAやB特有の
コードが入る余地はなくなる。
そうやってコードが長くなるたびに、汎用関数に追いやってA処理を短くしつつ
処理を増やしていく。そしてこのAの処理は決してB〜Eと混ざることはない。
Aの処理には入力、メイン、他、出力の処理が一直線に並ぶ。
785仕様書無しさん
2014/07/13(日) 11:35:37.37 >「 約400行の共通処理」はもはや「4000行のA〜Eの処理が絡みあった処理」になる。さあ、長くなったから関数に分けようか。
400行の共通処理はありえんだろう。その時点でスパゲッティ。
25行の関数に分けてあるなら理想的。
で、4000行からは、1000行のクラス(関数の集まり)を作っていくわけよ
>そして出来上がるのが、各モジュール(ファイル)に含まれた、if A thenの嵐
お前の言う処理は400ぎょうもある。そうなら、嵐になるといっていい。
お前は、ネストを深くしない、と考えたことないだろ。
ネストが深けりゃ読みにくいのは当然
400行の共通処理はありえんだろう。その時点でスパゲッティ。
25行の関数に分けてあるなら理想的。
で、4000行からは、1000行のクラス(関数の集まり)を作っていくわけよ
>そして出来上がるのが、各モジュール(ファイル)に含まれた、if A thenの嵐
お前の言う処理は400ぎょうもある。そうなら、嵐になるといっていい。
お前は、ネストを深くしない、と考えたことないだろ。
ネストが深けりゃ読みにくいのは当然
786仕様書無しさん
2014/07/13(日) 13:46:29.99 ネストを深くしないということは、こういうことだな
Disp(){
int a;
for( int i = 0; i< 10; i++){
DispA(&a, i);
for( int ii = 0; ii< a; ii++){
DispB(ii);
}
: (以下
}
}
Disp(){
int a;
for( int i = 0; i< 10; i++){
DispA(&a, i);
for( int ii = 0; ii< a; ii++){
DispB(ii);
}
: (以下
}
}
787仕様書無しさん
2014/07/13(日) 13:47:16.21 上のは読みにくいからこのように変える
Disp(){
for( int i = 0; i< 10; i++){
DispSub( i);
}
}
//Disp関数のこども
DispSub(int i)
{
int a;
DispA(&a, i);
for( int ii = 0; ii< a; ii++){
DispB(ii);
}
: (以下
}
Disp(){
for( int i = 0; i< 10; i++){
DispSub( i);
}
}
//Disp関数のこども
DispSub(int i)
{
int a;
DispA(&a, i);
for( int ii = 0; ii< a; ii++){
DispB(ii);
}
: (以下
}
788仕様書無しさん
2014/07/13(日) 14:05:01.12 関数名や変数名にはくどいぐらい説明的な名前をつけておいた方がいい
書いてる時は冗長だなと思ってもプロジェクトがでかくなると1週間前に書いた部分ですらいまいちピンとこなくなる
書いてる時は冗長だなと思ってもプロジェクトがでかくなると1週間前に書いた部分ですらいまいちピンとこなくなる
789仕様書無しさん
2014/07/13(日) 22:01:22.18 メソッド定義のところの引数名は辞書引いてすごい長ったらしい名前つけてるけど
中の変数とかはぐちゃぐちゃだな
世間と逆なんかしらん
中の変数とかはぐちゃぐちゃだな
世間と逆なんかしらん
790仕様書無しさん
2014/07/14(月) 01:51:32.77 スコープが小さければ短い名前で良い。
スコープが広くなければなるほど長い名前。
もちろん、名前空間やクラスがあれば、その分短くて良い。
って考えると、関数の頭で宣言するやり方は
スコープが広いから、長い名前になりがちで
使う直前に宣言しましょうってなる。
スコープが広くなければなるほど長い名前。
もちろん、名前空間やクラスがあれば、その分短くて良い。
って考えると、関数の頭で宣言するやり方は
スコープが広いから、長い名前になりがちで
使う直前に宣言しましょうってなる。
791仕様書無しさん
2014/07/14(月) 08:08:48.17 つか、書き出す前にちゃんと設計しろよ…
792仕様書無しさん
2014/07/14(月) 20:19:27.89 80年代の頃は
変数にakinaとか使うバカがいたなw
変数にakinaとか使うバカがいたなw
793仕様書無しさん
2014/07/14(月) 20:47:59.79 >>791
> つか、書き出す前にちゃんと設計しろよ…
その発想はウォーターフォール型だぞ。
ウェブアプリとかリリースサイクルが短いソフトとか
頻繁にバージョンが上がっていくタイプだと
最初に設計をしておくのは無理。
常に小さな再設計をし続けないと破綻する。
> つか、書き出す前にちゃんと設計しろよ…
その発想はウォーターフォール型だぞ。
ウェブアプリとかリリースサイクルが短いソフトとか
頻繁にバージョンが上がっていくタイプだと
最初に設計をしておくのは無理。
常に小さな再設計をし続けないと破綻する。
794仕様書無しさん
2014/07/16(水) 13:01:49.92 あほかwアジャイルだって設計くらいするわな。
795仕様書無しさん
2014/07/16(水) 13:05:52.01796仕様書無しさん
2014/07/16(水) 14:23:46.71 メンバ関数の名前なんかは、grep 検索の際の利便性を考えると、
たとえ クラスが別だから同じ名前であってもいい場合でも違って
いた方が便利な場合も有るかも。
たとえ クラスが別だから同じ名前であってもいい場合でも違って
いた方が便利な場合も有るかも。
797仕様書無しさん
2014/07/16(水) 14:28:24.97 >>795
「バカ」は必要ない。
「バカ」は必要ない。
798仕様書無しさん
2014/07/16(水) 14:30:21.21 ごめん。
「バカ」な人が必要ないのではなく、「バカ」だと書く必要が無い
という意味だけど。
「バカ」な人が必要ないのではなく、「バカ」だと書く必要が無い
という意味だけど。
800仕様書無しさん
2014/07/28(月) 01:10:32.66 if (result == true) {…}
は結構みるなぁ。な
は結構みるなぁ。な
801仕様書無しさん
2014/07/30(水) 03:14:20.02 そういう話じゃないんじゃ?
public String func(XXXXXXXX){ ← 8文字
if(XXXXXX){ ← 6文字
return "false";
}
return "true";
}
public String func(XXXXXXXX){ ← 8文字
if(XXXXXX){ ← 6文字
return "false";
}
return "true";
}
802仕様書無しさん
2014/07/30(水) 03:16:00.94 スレタイ通りじゃねえかwww
803仕様書無しさん
2014/07/30(水) 04:40:41.87 4年越しで明かされる真実……!
805仕様書無しさん
2014/07/30(水) 10:18:28.88 >{}の中身が a=true; でelseの中身が a=false; だろw
おめーは、北京原人か?
おめーは、北京原人か?
806仕様書無しさん
2014/07/31(木) 22:57:48.13 下記は正常に動作しているコードの一部である。
if (result == true) {
…
}
これを次のように修正しても、異常をきたす事は無い。
if (result) {
…
}
正か誤か。
java初心者向けの問題。
if (result == true) {
…
}
これを次のように修正しても、異常をきたす事は無い。
if (result) {
…
}
正か誤か。
java初心者向けの問題。
807仕様書無しさん
2014/08/02(土) 17:18:55.70 ぬるぽとかそういう話?
808仕様書無しさん
2014/08/02(土) 19:11:19.08 違う話だよ。
809仕様書無しさん
2014/08/02(土) 21:24:03.58 フフッ
811仕様書無しさん
2014/08/02(土) 22:25:20.68 いや、そういう問題じゃ無いってw
プログラムが(必ず)正しく動作するか否かの問題。
プログラムが(必ず)正しく動作するか否かの問題。
812仕様書無しさん
2014/08/02(土) 22:28:05.46 それは上の方が必ず動くよ。
下は上までの肯定でresultに変なもんが入ってたらヤバいだろ。
下は上までの肯定でresultに変なもんが入ってたらヤバいだろ。
813仕様書無しさん
2014/08/02(土) 22:47:16.14 具体的には?
814仕様書無しさん
2014/08/02(土) 22:51:47.89 if (result == true) {
の形は、
if (result = true) {
と間違えてもエラーが出ないからあまりお勧めしない。
コーディング規約で禁止した方がいい。
の形は、
if (result = true) {
と間違えてもエラーが出ないからあまりお勧めしない。
コーディング規約で禁止した方がいい。
816仕様書無しさん
2014/08/02(土) 23:33:30.09 まあ>>814もjavaの話だけどな
817815
2014/08/02(土) 23:41:05.84 マジだ…orz
819仕様書無しさん
2014/08/03(日) 00:08:49.47820仕様書無しさん
2014/08/03(日) 13:55:24.25821仕様書無しさん
2014/10/14(火) 21:27:46.36 wrok、cunt、befer、strFragが4傑かな
あと、RDBで表定義のnをnumberに一括置換したらしく
列名がすべからく
hoge_name→hoge_numberame
になってたのもヤバかった
あと、RDBで表定義のnをnumberに一括置換したらしく
列名がすべからく
hoge_name→hoge_numberame
になってたのもヤバかった
822仕様書無しさん
2014/10/15(水) 02:19:06.93 「すべからく」は「全部」という意味じゃないぞ
823仕様書無しさん
2014/10/15(水) 02:23:01.01 すべてが辛いって意味なんだ。
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【サッカー】運命のW杯抽選会、NHK総合が生中継&DAZNが無料ライブ配信! 今夜 12月5日(金)26時~ ★4 [阿弥陀ヶ峰★]
- 【サッカー】2026年北中米W杯の組み合わせが決定! 日本代表はオランダ、チュニジア、欧州プレーオフB勝者と同組で激突 [久太郎★]
- ひろゆき氏、日中対立に 「結局、人口というのは国力なので。10億人以上いる国に、1億2000万人で対抗可能であるというのが間違い」 [冬月記者★]
- 渡邊渚「性を売ってるくせに」批判に反論 幻滅「これが日本の現状だよなー」「『渾身の下着!』というような意味でやってない」★2 [Ailuropoda melanoleuca★]
- 渡邊渚さん脅迫か 写真集に包丁置く写真投稿 30代女性書類送検 渡邊さん「外に出るのも怖く身の危険を感じる」 [ひかり★]
- 【千葉】会社で58歳女性刺される 殺人未遂容疑で同僚の中国籍の男(39)逮捕 女性死亡 いすみ市 [ぐれ★]
- 【NHK他】FIFAワールドカップ2026 はじまらない組み合わせ抽選★3
- 【NHK他】FIFAワールドカップ2026 はじまらない組み合わせ抽選★4
- とらせんIP ★2
- ハム専 サヨナラ石井
- こいせん 全レス転載禁止
- 西武線 2
- 【01:45NHK~】サッカーW杯2026グルーブ分け組み合わせ抽選会いよいよスタート! ★2 [339712612]
- 【NHK/DAZN/YouTube】FIFAワールドカップ2026組み合わせ抽選★3
- ホロライブ辞めようかと
- 【実況】サッカーワールドカップ組み合わせ抽選会
- 【風向き】ヤバい!高市が導入を検討する「防衛特別所得税」、ネトウヨらもまさかの反対の大合唱。。さすがに国民を舐めすぎたか? [219241683]
- 早朝の雑談スレ
