良いコードを書くためのノウハウを蓄積するスレ
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG良いコードを読めばよいと聞きますが、どれがよいコードなのか分かりません。
長くないけど、良いコードと悪いコードを比較して、わかり易く教えてください。
デザインパターン適用するといいと聞きますが、どれだけいいのか分かりません。
異常処理書くと汚くなってしまいます。
例外処理はtry{}catch(Exception e){}としてしまいます。
言語や環境、職場によって良いとされる書き方は変わります。
例えば、携帯Javaは容量を少なくするコードが良くなります。
スピードを徹底的に重視すれば、オブジェクト指向は邪魔なだけです。
関数型言語では、再帰呼び出しを使うのが上等です。
コードリーディングとか、達人プログラマーとか、
本買って読むといいらしいけど、お金ないし、
買いに行くのめんどくさいし、ウェブで見たいです。
そういうサイトつくりたいけど、頭悪くて作れません。
てことで、まとめWiki作って、勝手に書き込んで欲しいです。
トヨタ式的なものがソフトウェア産業でできてないと言うし悔しいです。
てことで、良いプログラムを書くためのやり方、良いソースの書き方を議論して、
最強のソフトウェア開発方法をまとめてください。
00021001
NGNGもう書けないので、新しいスレッドを立ててくださいです。。。
00031
NGNG0004一星 ◆Cppn/.YI3.
NGNG0005デフォルトの名無しさん
NGNG00061
NGNG書き方が悪かったですかね?
一人で考えたことではなくて、いろいろな人が考えたことを、
まとめたものがないので、作りたいということなのですが。
作ったので、使ってくれって宣伝するのも嫌だし、、、。
もしそういったサイトがあったのなら、削除依頼出してきます。
00071
NGNG言語ごとに教えてください。
C,C++,Java,VB,Perl,Ruby,Scheme,
あんまし、無いと思うのだけど。
とりあえず、ググったら、こんな掲示板があったので、情報まとめてみます。
http://jibun.atmarkit.co.jp/scenter/bbs/viewtopic.php?mode=viewtopic&topic=10614&forum=21&start=0
0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNGhttp://pc5.2ch.net/test/read.cgi/tech/1100963189/
0010デフォルトの名無しさん
NGNGhttp://www.objectclub.jp/community/codingstandard/
0011デフォルトの名無しさん
NGNGiine
00121
NGNGここもまとまってました。
0013デフォルトの名無しさん
NGNGセンス・オブ・プログラミング!―抽象的に考えること・データ構造を理解すること
http://www.amazon.co.jp/exec/obidos/ASIN/4774121738/qid=1102247391/sr=1-1/ref=sr_1_10_1/249-2545910-7109969
0014デフォルトの名無しさん
NGNG堅牢性、保守性、拡張性、可読性、etc.
を備えたものが良いコード。
見栄えは個人の好みもあるから、あまりうるさく言うな。
0015デフォルトの名無しさん
NGNG0016デフォルトの名無しさん
NGNGそれを考えていきたい。
0017デフォルトの名無しさん
NGNGなんかたたき台にするサンプルコードあげろよ。
短いのでもいいからさ。
具体的なコードがあった方が話が早い。
0018デフォルトの名無しさん
NGNG0019デフォルトの名無しさん
NGNG例えば13あたりがその対象じゃないか?
URLが
http://www.amazon.co.jp/exec/obidos/ASIN/4774121738/
までで十分だから。
0020デフォルトの名無しさん
NGNG00211
NGNG1 a(1,1);
2 a (1,1);
3 a( 1,1 );
4 a ( 1,1 );
5 a(1,1) ;
6 a (1,1) ;
7 a( 1,1 ) ;
8 a ( 1,1 ) ;
9 a(1, 1);
a a (1, 1);
b a( 1, 1 );
c a ( 1, 1 );
d a(1, 1) ;
e a (1, 1) ;
f a( 1, 1 ) ;
g a ( 1, 1 ) ;
コード規約、どれが一番好まれるのか?
人によってさまざまだけど、
1はスペースは入れないってことで分かる。
それ以外のスペースを入れるときってのは、
いろいろ人によって違うので合わせようにも合わせずらい。
for文はこうだとか条件によってかわると、もう全部あわせるのは不可能
00221
NGNG1 a(1,1);
2 a (1,1);
3 a( 1,1 );
4 a ( 1,1 );
5 a(1,1) ;
6 a (1,1) ;
7 a( 1,1 ) ;
8 a ( 1,1 ) ;
9 a(1, 1);
a a (1, 1);
b a( 1, 1 );
c a ( 1, 1 );
d a(1, 1) ;
e a (1, 1) ;
f a( 1, 1 ) ;
g a ( 1, 1 ) ;
コード規約、どれが一番好まれるのか?
人によってさまざまだけど、
1はスペースは入れないってことで分かる。
それ以外のスペースを入れるときってのは、
いろいろ人によって違うので合わせようにも合わせずらい。
for文はこうだとか条件によってかわると、もう全部あわせるのは不可能
00231
NGNG>>18
恐ろしいけど、2chだからそれを話し合うのは面白い
でもそんなノウハウ、排除される側はたまらん
>>15
◆良いコードの定義
あたえられた条件にあっているコード
◆条件
バグの有無、堅牢性、保守性、拡張性、可読性、高速性、開発の高速性、コメントの有無
といったところですか。全部を兼ねそろえるのは無理な場合もある。
サンプルコードにはバグがあってもいいし、高速に動かなくても良いから、可読性が重視される。
開発速度が優先された場合は、スペース入れないほうが速いけど、可読性は落ちる。
自分中心に考えれば、自分が好きで使っているコーディング規約に基づいて書かれていて自分が書くよりも優れたコード。
定義とか言われると難しいな
00241
NGNG00251
NGNGhttp://f55.aaa.livedoor.jp/~goodcode/index.php
0026デフォルトの名無しさん
NGNGおれがスペースを入れるのは
1. カンマ','のあと
2. if while forのかっこの左右
3. 2項演算子の左右
0027デフォルトの名無しさん
NGNGがんばってますね。応援age
0029デフォルトの名無しさん
NGNG0031デフォルトの名無しさん
NGNG必要なのはWikiの管理人がそこに書かれたテキストに発生する著作権をどうするのかというポリシー。
ここら辺あさってどうしたいのかを明記しとけ。
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=Wiki+%E8%91%97%E4%BD%9C%E6%A8%A9
0032デフォルトの名無しさん
NGNG括弧の位置とかインデントとかそんなレベルにこだわらないこと。
0033デフォルトの名無しさん
NGNGほれ。
http://himatsubu.fc2web.com/22/fir/ かなりシュールな心理テストでオモロイ。
0034デフォルトの名無しさん
NGNGQ3 あげまんという言葉は、いやらしい事だと思っていた。
(実は今もそう思っていた)
YES
NO
※「あげまん」とは、男をあげる(出世させる)という意味です。
〔1990 年(平成 2)発表の映画「あげまん」(監督・脚本伊丹十三)によって流行した〕
あげまんってあげまんこの略だよな?マジデマジデ
0035デフォルトの名無しさん
NGNG00361
NGNGWikiそのままのコピペで本をだすことはしないと約束します。
0037デフォルトの名無しさん
NGNG話がどんどん本題からずれていくのがおもしろい。
0038デフォルトの名無しさん
NGNGそれともスペース?
00391
NGNGありがとうございます。
>>37
まとめる手法としてWikiを使い不特定多数の人から書き込んで欲しいと考えてレスを立てた。
そのためには、著作権の問題も考えとかないといけないってことだと指摘されたので直したってところです。
俺はボトムアップな思考しかできないから、そうなってしまうのかもしれん。
00401
NGNG俺も教えて欲しい。
インデントは入れるほうがよい。
インデントは同じソース内で統一されているほうがよい。
統一できない場合、コミニュティ、ライブラリ、ソース、関数、処理内で統一されるとよい。
規模が大きくなればなるほど、統一が難しくなるが、いったん統一されると、変更するのは難しい。
インデントは2文字4文字8文字がよく使われる。
タブ幅のデフォルトは8文字である。
タブ幅はアプリケーションによって設定できるものとできないものがある。
タブ幅の設定も2文字4文字8文字がよく使われる。
タブ文字は使わずにスペースのみにする方法もある。
HTMLで記述する場合はタブ幅を指定できない。8文字に固定される。
タブを使うメリット
-タブ1文字で複数文字のインデントをつけることができる。
-容量を食わなくてすむ。
-タブのみでインデントされたソースは、環境を返るだけでインデント幅を変えられる。
スペースを使うメリット
-アプリケーションに左右されずに、元のイメージを再現できる。
あとは、コーディング規約による。
前提とするコーディング規約によって、
開発環境や自動整形ツールの機能も変わってくるのが現状ではないだろうか。
VC++だったりEclipseだったりすると、タブ幅は4文字、インデント4文字がいいのだと思う。
JBuilder、GNU Emacsとかの場合、タブ幅は8文字、インデントは2文字がいいのだと思う。
0041デフォルトの名無しさん
NGNGどうでもいいけど、何で f の次が g になってるの?
10に訂正してくれ。
俺は、
for(i; i<10; i++)
{
printf("%d", i);
}
こんな感じかな。
printf()の前は、タブスペース空けてる。
ってか、VC++が勝手にやってくれるからだけどね。
004241
NGNG半角スペース連続投稿で消された・・・・・
逝ってくる。
0043デフォルトの名無しさん
NGNG0044デフォルトの名無しさん
NGNG0045デフォルトの名無しさん
NGNG哲学的になりますが、
そもそも「情報」って何だろう?
「情報技術」って何だろう?
といった問題を日頃から深く考えるのも大事だと思います。
より良いソースコードが書けることと、
情報という概念について自分なりの哲学を持っていることって
かなり密接な関係があると個人的に思っているので。
さすがに、言いすぎかもしれませんが。
ただ、少なくとも言えることは、
より良いコードを書くための断片的な知識をひたすら覚えていくだけでは、
絶対にプログラミングは上達しないと思いますよー。
数学の定理や公式や解法をいくら暗記したところで
数学が出来るようにはならないのと同じです。
004645
NGNGコーディング技術を上達させるための有効な手段の一つを紹介します。
というのは、正しいHTMLを書く練習をすること。
自分で何かしらWebサイトを管理している人は、
Another HTML-lint(ttp://openlab.ring.gr.jp/k16/htmllint/htmllint.html)
ダサページ(ttp://web-channel.com/tips/webdesign/MIZ/031031.html)
などを参考にしながら、また時にはWeb制作板のW3C厨に叩かれながら
自分のサイトを改善していくことで、
自然と、情報を扱うセンスが磨かれることと思います。
もっとも、Webページを作る習慣のない人にとっては
どうでも良い話になってしまうかもしれませんが。
#余談ですが、Javadocが吐くHTMLが文法メチャクチャで汚かったのを見て
#幻滅したことがあります。
#優秀なSEであることと、優秀なHTMLが書けることはまた別ですねー
0047デフォルトの名無しさん
NGNG時間さえあれば並みのプログラマでもマシなものが書ける。
時間が無ければ凄腕プログラマでもHACKせざるを得ない。
余裕が無いが短すぎもしない期間で寄り道せずに最適解を導けるような知恵袋はあってもいいかもな。
スペースの位置とかインデントとか、どうでも良い問題にこだわる1は一番このスレにふさわしくないと思う。
そんなものは同じ関数内ですら統一されている必要なんか無い。
その程度で読みづらいと感じるようなやつはこの業界から早々に去れ。
0048デフォルトの名無しさん
NGNGそんなのW3C勧告読めばいいだけの話じゃん。
良いコードを書く能力というよりかCで未定義じゃないコードを書く能力に近いというか・・。
最低限レベル?
004945
NGNG確かにW3Cの仕様を読めば、文法的に正しいHTMLを書けるようには
なれると思います。
ただし、重要なのは文法が正しいことではなく、
その表現が妥当かどうか(分かりやすいかどうか)、ということです。
例えば、Webページのタイトルにあたる記述は
「大きな文字を使ったパラグラフ」として表現するのではなく、
(例: <font size="+5">○○のほーむぺーじ</font>)
「見出し」として表現する、といったことです。
(例: <h1>○○のほーむぺーじ</h1>)
スレ違いなレスでごめんなさい
0050デフォルトの名無しさん
NGNG0051デフォルトの名無しさん
NGNGUAが正しく理解できればそれで十分。
俺は文章の論理構造はXMLで書いて、XSLTで変換してる。
変換した先がどうなってようが(それでも一応validだけど)知ったこっちゃ無い。
0052デフォルトの名無しさん
NGNG自分なりの哲学なんて邪魔なだけだ。
まずは自分を捨てるところから始めろ。
0053デフォルトの名無しさん
NGNGコード横幅120文字に設定してるのが悪いのか・・・デフォルト80だしなぁ・・・。
自分を捨てることは必要かもしれん。
でも最近の高解像度ディスプレイで80文字は無いよなぁ・・・。
0054デフォルトの名無しさん
NGNGttp://www-acc.kek.jp/WWW-ACC-exp/KEKB/Control/Activity/Python/doc-j/pep-0007-J.html
ttp://oldriver.org/python/pep-0008j.html
0055デフォルトの名無しさん
NGNG0056デフォルトの名無しさん
NGNG>HTMLで記述する場合はタブ幅を指定できない。8文字に固定される。
<pre>では、タブは使わないのが推奨されてなかった?
0057デフォルトの名無しさん
NGNG業務内容
サーバ・アプリケーションの設計・開発・運用・保守管理などの業務に取り組んでいただきます。
資 格
学歴不問25〜40歳位迄、下記項目中2項目以上の経験者が望ましい。
Java開発経験者(Tomcat等のJakarta Projectを利用した開発)
DB開発運用経験者(Oracle,PL/SQL,Pro*C,MySQL,PostgreSQLを利用した大規模DBの運用・開発経験者)
Linuxサーバの構築・運用経験者(bind,sendmail,qmail,ネットワーク一般、セキュリティ設定等)
システム開発プロジェクトマネージャー経験者
勤務地
東京都渋谷区
0058デフォルトの名無しさん
NGNG00591
NGNG情報サンキューです。
Wikiに反映しときます。
>>55
Wiki重かったりするし書き方分からないのかもしれないし情報いただけるだけで助かります。
てか、55がWikiに書き込んで欲しかった。
00601
NGNGそうですね。IEだと文字のサイズ変えても固定ですしね。
>>47
条件しだいで、良いコードの定義は変わると。
時間がない場合は、インデントにこだわらないほうが良いし、
保守する場合、diff取ることを考えると、インデントを変えるのはいけないことだろうし。
でも、テストケースが完璧にそろっているならば、インデント変えても大丈夫なはずですし。
でその条件を与える項目の一つとして、インデントやスペースがあると思うのですが。
書き方は基本的なことだし、初心者でも分かりやすいことだから先にまとめとこうと思ってるんです。
俺の批判よりコーディング規約以外の一番重要はものをどう考えているか教えてください。
インデントうんぬんで文句言う奴がいたら、自動整形機能使って渡せば議論しなくてすむし。
00611
NGNGhttp://homepage1.nifty.com/open-prog/
http://homepage1.nifty.com/open-prog/java/index.html
ここのコードは綺麗でよいと思ったなぁ。
0062デフォルトの名無しさん
NGNGPython はインデント変えると動かなくなるんだよ
0063デフォルトの名無しさん
NGNGおれもプログラミングを始めたころに読んだけど、読みやすかった。
0064デフォルトの名無しさん
NGNGsoftware designに連載されていた。
コードデザイン最前線(http://homepage2.nifty.com/yamazaki/)
を読んでみて下さい。
0066デフォルトの名無しさん
NGNG公開されているソースコードを読むとよいと、何度か聞いたことがあります。
どのソフトのソースを読むかについては、
・自分のパソコンで動かすことが出来て
・興味のある分野で
・定評のあるソフト
がよいかも。
言語好きなら、Rubyのとか。
ゲーム好きなら、DOOMのとか。
サンプルプログラムの類からは学べない、
プログラムを破綻無く書くためのノウハウがつまっていると感じました。
いくつか読んで、一般的に言えそうなのは、
(注:C言語の場合)
・関数は、思っていたよりも、短いものばかり
・マクロを巧みに用いて、抽象度を高めている(そのぶん、最初は挙動を追いにくい場合も)
ことなど。なんか、ソフトの動作の複雑さに比して、ソースはあっけない
くらい、あっさりとしていることが多いです。
コーディング規約のようなものは、読むソフトごとに様々で、
統一さえされていればよいのではと思いました。
0067デフォルトの名無しさん
NGNGコードに目をやると、なんでこんなにごちゃごちゃしてるんやろ、と思う。
たぶん、良いコードを書く「ノウハウ」のようなお手軽な
ものはなくて(良い小説を書くノウハウがないのと同じように)、
ひたすら書き続けるなかで、10年ぐらいかけて、身に付ける
もんじゃなかろうか。
デザインパターンにしても、例外処理にしても、いざ書こうとすると、
なかなかうまく書けなかったりするし。
がんばろ。
0068デフォルトの名無しさん
NGNGやすいコードを書くノウハウはあると思います。
C言語の場合、使わない人もいますが、assert()が重宝します。
いろいろな場所で、暗黙の仮定をassertしておくと、
一部の関数の仕様変更などで、誤って生じた境界条件での
ロジックの乱れを、掬い出してくれます。
コードが自らバグを表出してくれる感じがよいです。
C言語が使えるところなら、どこでも使えるというのもよいです。
0069デフォルトの名無しさん
NGNG今更だけどEffectiv C も書いてほしいなあ…
0070デフォルトの名無しさん
NGNG0071デフォルトの名無しさん
NGNGEffectiveってつく本を何冊読んだのか知りたい。
0072デフォルトの名無しさん
NGNG少なくともEffective C++は読んだんだろうな?
0073デフォルトの名無しさん
NGNGint func () {
struct local {
static int func() { return 0; }
};
return local::func();
}
コードレビューの時にどんなツッコミが来るか、ドキドキだwwうはwwおkwww
0074デフォルトの名無しさん
NGNG当然でしょ。
Effectiveのつく代表的な著作じゃない。
0075デフォルトの名無しさん
NGNGそれを「全然役に立たない」と断じる根拠を知りたい。
0076デフォルトの名無しさん
NGNG全然役に立たないというのは言いすぎだったかもしれないけれど、プログラミング
してきて、ある程度の経験値を持っている人なら、書いてある内容に同感する部分
もあるだろうけれど、読んでいて、「やっぱり、そうだよねー」っていう感じで
世間話をしている感覚。
当然、(Mayersに対して)「う〜ん、そこまでしなくても…」と思うこともあれば、「あ、それはいいね」と思うこともある。
でも、まぁ、大体は、自分のスタイルに従うからあくまで世間話だね。
0077デフォルトの名無しさん
NGNGまぁ、エキスパートの人にはそうかもしれないが、CからC++に
移行してきて文法に振り回されてる人には、お勧めできるガイド
ラインだと思うんだけどなぁ。要は対象読者による、でしょ。
対象読者が誰であれ、お勧めできない本は他にいっぱいある気がする…。
ちょっと話ずれてスマソ
0078デフォルトの名無しさん
NGNG対称読者を間違えてる。
本来経験から得る知識を金払うだけで得れるんだからすばらしいじゃないか
0079デフォルトの名無しさん
NGNGそのあたりのことは全部見越して、>>70の発言なんじゃないか。
ようは、なんの脈絡もなく、「おれはすごい」って自慢できるきっかけを見付けたから
それに食いついただけでしょ。
0080デフォルトの名無しさん
NGNGメソッドの数をできるだけ少なくして
クラスはできるだけ作らないようにして
シンプル命でリファクタリングしつづけるだけ。
とにかく素早く頭働かすことだな。
時間かかるように見えて、リファクタリングすることが結局、一番早い。
そのうえで、これ以上早くするとなると、素頭の、完成形までのイメージをスムースに描ける
ストーリ構築力というか、国語力みたいなものが問われるな。これは才能の部分が大きいかもしれん。
もちろん、鍛えることは可能だと思うけども。
0081デフォルトの名無しさん
NGNG己を知る
体を動かす
寝る
いいもの喰う
それでいいじゃん
0082マイク ◆yrBrqfF1Ew
NGNG変わりはしないんだがな。
0083デフォルトの名無しさん
NGNG思っていたよりもってゆーか、関数は長くても一画面に収まる程度が望ましいんだけどね。
大半は数行から十数行程度で。
短い関数=良いコードといっても過言ではないくらい重要だね。
現実的には手を抜いてしまいがちだけど。
C++だとprivateな関数増やすだけでヘッダの書き換えが必要になるから、なかなか厳しい。
自分で作ったメソッド名を他人に変更してもらうと分かりやすいコードが出来上がる。
独りよがりになりがちだからね。
Javaだけど俺がメンテしててこりゃ駄目だと思ったコードは
・メソッドが長い、数百行ある。
・メソッド名が正しくない、やってることと名前が全然違う。
・入力専用のはずのパラメータを平気で書き換えている。(結果自爆したり呼び出し元で惨劇)
・クラスは継承しない。
・メソッド、フィールドは全てstatic。
・ローカル変数は全部関数冒頭で宣言する。
・変数はいろいろな意味に使いまわす。
・抽象化がされておらず、似たような処理がいろいろな位置に散在して、異なる方法で実装されている。
・意味の無いコメントが目立つ。(例: boolean succeeded = false; // 成功したか)
これを反面教師にして、逆のコードを書けばちっとはマシになるだろ。
0084デフォルトの名無しさん
NGNGクラスのメンバ関数=メソッドでOK?
0085デフォルトの名無しさん
NGNGひねくれているなぁ。
0086デフォルトの名無しさん
NGNG> 思っていたよりもってゆーか、関数は長くても一画面に収まる程度が望ましいんだけどね。
ここで言う一画面とはどの程度を指すんですか?
Unixターミナルのように80x24=1画面を基準とする?それともSXGAでEclipse標準フォントを使った
場合の約120x50を基準とする?
0087デフォルトの名無しさん
NGNGなんでもかんでも短ければいいっていうもんじゃない。メソッド増えるのキモいし。
長いメソッドのときは、まとまった処理ごとに適切なコメント入れればいいと思うね。
メソッドを定義したのと同じ表現力が得られる。
0088デフォルトの名無しさん
NGNGそのコメントをメソッド名にして切り出すべきだと思うんだけどね
0089デフォルトの名無しさん
NGNGもはや説明が必要な時点でNGだろw
0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG読む奴が無能ではどうしようも無い
0092デフォルトの名無しさん
NGNG他で使いまわしたくなったりオーバライドが要るときになったらそうする
(シンプルにしてれば簡単なはずだ)
一つのメソッドからしか呼ばれないメソッドってアフォでしょ。定義する価値なし。
0093デフォルトの名無しさん
NGNG長いメソッドをそんな風にしか分割できない時点でNGだろw
0094デフォルトの名無しさん
NGNG構造化プログラミングを勉強しなおせ。もしくはCOBOLでも使ってろ。
0095デフォルトの名無しさん
NGNG短くなって複雑になるくらいなら長いままにしておいたほうがマシ
いい方法が見つかった時に短くする。
0096デフォルトの名無しさん
NGNGループの場合はcontinue、ifやswitchの場合はその部分を関数に切り出して
returnさせるようにしてるんですが、こういうのってどうなんでしょ?自分では
読みやすい(コメントも付けてるし)良いコードだと思ってるんですが、読みにくかったり
するんでしょうか?
for (SmplCls hoge in arg) {
/* expr1がfalseの場合をふるい落とす */
if (!hoge.expr1)
continue;
/* expr2の文字列をチェック */
if (!(hoge.expr2 == "hogestr")
continue;
/* expr3が限界値を超えていればふるい落とす */
if (limit < hoge.expr3)
continue;
/* 実処理 */
/* ... */
}
どうせならループの場合も関数に切り出したほうがいいかとも思うんですが、結局
エラー・例外処理が絡んできて値を返し、呼び出し元で分岐させなければならなく
なるのでそこまではやってません。
0097デフォルトの名無しさん
NGNG0098デフォルトの名無しさん
NGNG- if (!(hoge.expr2 == "hogestr")
+ if (!(hoge.expr2 == "hogestr"))
0099デフォルトの名無しさん
NGNG脊髄反射でレス
コメントが必要だと思ったらその時点で駄目なコードだと思え。
0100デフォルトの名無しさん
NGNGそりゃ言いすぎだ。趣味でやってるなら許すが。
0101デフォルトの名無しさん
NGNGそういう通念をヘタに浸透させると、ダメなコードでもコメント入れない奴が
量産されるから、公の場では言わないように。
■ このスレッドは過去ログ倉庫に格納されています