パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

「 いいコーディング規約、悪いコーディング規約?」2019年版」記事へのコメント

  • by Anonymous Coward

    やめてくださいおねがいします

    • by Anonymous Coward on 2019年07月25日 9時47分 (#3657743)

      どうしてですか?

      親コメント
      • by Anonymous Coward on 2019年07月25日 10時36分 (#3657787)

        Microsoft系で一時期非常に広がっていたシステムハンガリアン記法のことでは?
        あれは害悪でしかないので、当然やめるべき。
        Microsoftも最終的に心を改めて、非推奨にしたはず。

        同じくMicrosoftで生まれたアプリケーションハンガリアン記法(こちらが元々のハンガリアン記法)の方は
        有用なので、やめる必要はないですね。

        システムハンガリアン記法とアプリケーションハンガリアン記法の違いについては
        Joel Spolsky の間違ったコードは間違って見えるようにする [joelonsoftware.com]が詳しいです。

        親コメント
        • by marimoo (46364) on 2019年07月25日 15時23分 (#3657988)

          アプリケーションハンガリアンにしても、本来は型システムで解決すべき問題なのでは?

          そもそも今時あんまり見かけないのは同じですし。

          1人の人が一度アプリケーションハンガリアンならOKと言ったからと言って、
          いかなる場所でも永久にOKと言う話になっているのに違和感を感じる。

          親コメント
          • by Anonymous Coward

            ものには限度ってものがある。
            1箇所の為に10個の形を定義したり、
            doubleで済む所をSI組立単位内包オブジェクトにしたりは過剰と言われても仕方ない。

            • by marimoo (46364) on 2019年07月27日 12時16分 (#3659286)

              そのためにいちいちプレフィックスを作って規約作って覚えてハンガリアン記法にしろ、と言うのは過剰ではないと言っていますか?

              あと、doubleで済むってのは実際両者を試して比較した上での感想?
              いやよく老害が使う論法なので念のため確認。

              親コメント
              • by lm (47129) on 2019年07月27日 19時44分 (#3659420) 日記

                元 AC ではないけど、似たようなことをやろうとして大変な思いをしたことはある。
                型の追加は影響が大きいので、目的がコードのミスを目立たせたいだけなら労苦に見合わない。
                パフォーマンスに与える影響も心配だし。

                そのうちこれも推論で解決して廃れるんじゃないかな。

                親コメント
              • by marimoo (46364) on 2019年07月27日 22時56分 (#3659475)

                型の追加でコードのミスを目立たせたい?

                そんな話は出ていませんが。

                出ている話は、
                ハンガリアン記法でコードのミスを目立たせたい、
                型の追加でコードのミスがエラーになるようにする、
                の二つですよ。

                あと、C++でやるならパフォーマンスに与える影響は0にするのが普通でしょう。
                ほかの言語でもたいていはかなり最適化できるはず。

                まあ心配するかどうかについては、確かに個人の自由ですが。

                なお、型の追加ですべての場合について解決できるとは言ってないので誤解のないように。

                でも試行錯誤は続けるべきではないかな。
                元の話からの流れを再確認するならば、
                ハンガリアン記法を再普及させることに対する対案なので、
                それよりは現実的だと思うんですけどね。

                親コメント
              • by lm (47129) on 2019年07月28日 4時03分 (#3659534) 日記

                いや無理があるでしょ。何言ってるの?
                はずとか思うとかで問題は解決しないんだよ。

                親コメント
        • by Anonymous Coward
          システムハンガリアンも間違ったコードは間違って見えるようにする手法の一つなのでは
          Win32APIはハンドルとか何やらかにやら様々に区別しなければならないパラメーターを扱うけど、その実体はtypedefなり#defineしてるだけのただの整数なりポインタだったりするわけで、それらを正しい関数に正しい順番に引き渡さなければならず、かつ当時の処理系は間違いを指摘できなかったわけだ。
          そういう環境下で間違ったコードを間違って見えるようにするには、システムハンガリアンが唯一の解決方法だっただろう。
          • by Anonymous Coward

            > そういう環境下で間違ったコードを間違って見えるようにするには、システムハンガリアンが唯一の解決方法だっただろう。

            しかし、Microsoftでさえ今や「(システム)ハンガリアン記法は使わないこと」と書く時代なわけで、
            存在価値を失ってますね。
            やめるべき。

            • by Anonymous Coward
              それは.NET FrameworkとC#に型推論が導入されて必要なくなっただけでは?
              旧来のWin32の関数群を書き直すとかはしてないでしょう?
              • by Anonymous Coward

                > それは.NET FrameworkとC#に型推論が導入されて必要なくなっただけでは?
                > 旧来のWin32の関数群を書き直すとかはしてないでしょう?

                h, hwnd, s, sz あたりはアプリケーションハンガリアンとしても解釈できるし OK だと思う。
                これ以外の多くのシステムハンガリアンって Win32 API でホントに役に立つ?
                実は使っても間違ったコードが正しく見えるままじゃない?

              • by Anonymous Coward

                Win32を使うとしてもラップして整数やらポインタのまま使わないし型エラーになるようにするから要らない

              • by Anonymous Coward

                マイクロソフト内では今でもCやC++の利用率が高く.NETもといVB.NETやC#の使用率は低いらしい。
                そりゃまあOSメーカーなんだからそりゃそうだろうが。

            • by Anonymous Coward

              C#では一般的なルール、TypeScriptでは非推奨にされたルールに「インターフェイスはIHogeのようにIから始まる名前にする」ってのがありますが、これだけは残ってほしいなあ…
              newできるかどうか一目でわかって便利なんだよね

              # C#の経験はあったがJavaに不慣れな頃、なぜJavaでnew List()が通らないのか首をひねった思い出

              • by Anonymous Coward

                IDEが形を判別してくれるなら不要論もあるけど、
                支援が効くまでのラグや単に名前だけの一覧見て判別する需要もあるし、
                そもそもJavaScript系って土台が型推論に不向きだから全面信用できんよね。
                半手動で形情報作ったり導入したりって思うと接頭辞も悪くない筈なんだが……

                意識高い系とか化圏丸ごと敵視してる勢は排除したがるだろうなぁ……

        • by Anonymous Coward

          >…が詳しいです。

          おー僕の思ってたことがすごいエレガントにまとまっている。

          いいリンクをありがとう。

          # O_RDONLY の O_ は open() の o なんやで

        • by Anonymous Coward

          やっぱりハンガリアンはダメ [it.srad.jp]ですね。

      • by Anonymous Coward on 2019年07月25日 11時04分 (#3657815)

        元ではないが、ハンガリアン記法使うと、変数の型が変わると変数名も変える必要がでるから、
        ハンガリアン記法はオレもやめて欲しい。

        これが、グローバル変数とかクラスの変数とかだったりすると、修正が多岐に渡り過ぎて嫌になる。
        グローバル変数とかクラスの変数の型を変えるなら、使ってる関数も直す必要があるのは分かるが、
        全ての変数名なんか変えてられんし、変数名変えたら関数の中にも影響するし。

        親コメント
        • by Anonymous Coward

          元ACですがこれです
          「途中で型が変わるとか設計不足だろ」と言わればそうでしょうが中々完璧にはいかないですし
          最初から手探りで試行錯誤しながら作ってる時なんかは話になりません

          • by Anonymous Coward
            いくら手探りで試行錯誤してもウィンドウハンドルの型が途中でhwndじゃない何かになったりするのですか?
            試行錯誤したときに誤った引数を渡さないようにするためのハンガリアン記法だと思うのですが。
            • by Anonymous Coward

              C#とかjavaで、ハンガリアン記法が役立つとは全く思えませんけど、
              まだVBとか、VC++でWin32とか使ってるんならそうでしょうね。

              • by Anonymous Coward

                CシャープとかJavaならまあ役に立つでしょ。
                少なくともポリモーフィズム的には意味があるはず。

            • by Anonymous Coward

              数値を実数にするか整数にするか符号の有り無しをどうするか
              引数を値渡しにするか参照渡しにするか
              文字列(char *)をconstにするかそのままにするか
              HWNDの事しか考えないなら困らないでしょうね

              • by Anonymous Coward
                試行錯誤するのはいいけどさ、いくら試行錯誤したってAPIの仕様は変わらないわけでしょ?
                いまどき変数名変えたときは開発環境のリファクタ支援機能でソース内の全参照を書き換えられるんだから、ハンガリアン記法をメンテするのは昔より楽になってる。
                というか、そこまでやって初めて変数宣言してる箇所とAPI呼び出し箇所で矛盾があればそれに気づくことができて「間違ったコードは間違って見えるようにする」というメリットを享受できるんじゃないの。
                エディタとかで書きっぱなしだった時代よりハンガリアン記法の有用性はむしろ高まってる。
              • by Anonymous Coward

                試行錯誤したってAPIの仕様は変わらないわけでしょ?

                どういう仕事してたらそういう発想なにるのか気になる。

        • by Anonymous Coward

          短いスコープは短くていいし。それこそ i とか s とかで十分だったりする。

        • by Anonymous Coward

          ハンガリアンがいらんというのは同意だけど、変数名の変更なんて IDEの仕事で人間の手間なんてゼロに等しいだろ。

      • by Anonymous Coward

        宇宙に行ったせいではないと思うがチャールズ・シモニーですらもうハンガリアン記法をつかっていないらしい。

あと、僕は馬鹿なことをするのは嫌いですよ (わざとやるとき以外は)。-- Larry Wall

処理中...