この会社辞めようと思ったソースコード#10

このエントリーをはてなブックマークに追加
900仕様書無しさん:2005/03/30(水) 00:14:38
>>899
なおさら悪いヤイ
901仕様書無しさん:2005/03/30(水) 00:29:34
>>897
JavaやC++だとその場で宣言するからコンパイラにiが重複してると怒られるかjがないと怒られるかどっちかだからな
902仕様書無しさん:2005/03/30(水) 02:27:22
>901
ダウト。

例えばC/C++では以下のソースは正しくコンパイルが通るし、きちんと9回ループする。
VC等の一部のコンパイラを除けば、変数の宣言を for の初期化式に書いても同様。
Javaも同じのはず。
…何故そうなるのかは言わなくてもわかるよね?

int i;
for( i=0; i<3; ++i ){
 int i;
 for( i=0; i<3; ++i ){
  printf("Hoge\n");
 }
}
903仕様書無しさん:2005/03/30(水) 03:06:20
C++では通るけど、Javaではそれはエラーだよ。
904仕様書無しさん:2005/03/30(水) 04:54:50
ふたつめのint i;けせばいいことだ
905仕様書無しさん:2005/03/30(水) 11:15:28
for文内で宣言されると、埋もれてスコープが分かりづらくなる。

for( int i=0; i<3; ++i ) {
 for( int i=0; i<3; ++i ) {
  printf( "hoge\n");
 }
}
906仕様書無しさん:2005/03/30(水) 23:14:41
gcc -Wshadow しとけ。
同じ変数名を使うのは嫌がらせ。
907仕様書無しさん:2005/03/30(水) 23:57:23
誰も

func(i,j);

を考慮してないことに突っこんでもいいですか?
908仕様書無しさん:2005/03/31(木) 08:31:56
エッ
909仕様書無しさん:2005/03/31(木) 10:49:34
Public Const mcintCount1 As Integer = 1
Public Const mcintCount2 As Integer = 2
Public Const mcintCount3 As Integer = 3
Public Const mcintCount4 As Integer = 4
Public Const mcintCount5 As Integer = 5
Public Const mcintCount6 As Integer = 6
Public Const mcintCount7 As Integer = 7
Public Const mcintCount8 As Integer = 8
Public Const mcintCount9 As Integer = 9
Public Const mcintCount10 As Integer = 10

いや元から辞めようとはしてるんだけどね。
910仕様書無しさん:2005/03/31(木) 14:59:18
マジックナンバー禁止!と言われてそーゆー風に変数を定数のように用意したというのはよく聞く嫌な話ではある
911仕様書無しさん:2005/03/31(木) 20:49:35
#include "騎乗”
912仕様書無しさん:2005/03/31(木) 21:57:40
#define "落馬"
913仕様書無しさん:皇紀2665/04/01(金) 07:28:04
皇紀あげ
914仕様書無しさん:皇紀2665/04/01(金) 08:18:46
>909
enum使えばいのにねぇ・・・
915仕様書無しさん:皇紀2665/04/01(金) 12:52:40
>>914
いや、それもちょっと違うと思うが。
数字そのものに意味がある場合は別名なんて付けないほうが良いわけだよ。
916仕様書無しさん:皇紀2665/04/01(金) 14:45:04
ネタに・・
917仕様書無しさん:皇紀2665/04/01(金) 15:22:51
>>915
エライ人にはそれが分からんのです。
基準書がどんなにお馬鹿でも金もらってる以上従う以外にないのです。
918仕様書無しさん:ぬるぽ暦4年,2005/04/03(日) 05:50:55
>>915
細かいことだけど、それはケースバイケースって奴じゃないかな。
最大数の定義を自動化できたり、他の型と区別できたり、
ゼロ始まりと1始まりの混在みたいな恐ろしい状況に対する緩衝剤になったり、
可読性上げられたり、enumの利点は山ほどあるわけで、
生数字がいい場合と、種類の定義がなされている方がいい場合は
ちゃんと使い分けて…

なんてことを>>915がわかってないはずもないし、
その一方でそのことがわかってる香具師らばっかりだったら、
このスレ成立しないのか。

南無阿弥陀仏。
919仕様書無しさん:ぬるぽ暦4年,2005/04/03(日) 20:21:31
#include "やらせろ.h"
920仕様書無しさん:ぬるぽ暦4年,2005/04/03(日) 23:32:29
>918
貴兄の言うことは正しいが、915に対するレスとしてはなんかズレてる。
>>909,>>914,>>915の流れをよく読め。
921仕様書無しさん:ぬるぽ暦4年,2005/04/04(月) 03:24:47
「コメントは全行につける」というコーディング規則があったなあ。コーディングシートに手書きの
時代だったので、41と71カラムに/*と*/を全行書いてコピーしたシートを使った。
それをパンチ屋さんに出すもんだから、隙間のところも前部/*と*/がパンチされて来てエラいことに
922仕様書無しさん:ぬるぽ暦4年,2005/04/04(月) 11:19:12
言語何?C?>>921
923仕様書無しさん:ぬるぽ暦4年,2005/04/04(月) 19:09:59
>>921
「空行にもコメントを付けるんですか?」などと(ry
924仕様書無しさん:ぬるぽ暦4年,2005/04/04(月) 19:20:49
コメントだけの行にもコメント付けないと。
925仕様書無しさん:ぬるぽ暦4年,2005/04/04(月) 21:24:09
4つ以上の連続する空白をコメントに置換するフィルタを書けば良い。
926仕様書無しさん:ぬるぽ暦4年,2005/04/04(月) 21:39:45
>925
そのフィルタのソースにもコm(ry
927仕様書無しさん:ぬるぽ暦4年,2005/04/05(火) 01:03:24
なんかこーランチタイムは全品半ライス付きの店にいってラーメンと半ライス頼んだら
ラーメンに半ライス付いて来て半ライスにも半ライス付いて来たかのような流れを感じる
928仕様書無しさん:ぬるぽ暦4年,2005/04/05(火) 01:15:27
焼き飯に炒飯はごく普通に見た事がある。
929仕様書無しさん:ぬるぽ暦4年,2005/04/05(火) 01:27:52
再帰メニュー・・・
930仕様書無しさん:ぬるぽ暦4年,2005/04/05(火) 02:20:43
>>922
PL/Iと見た。いくらなんでも「コーディング用紙に書いてパンチ屋さんに出して」の世界で
Cはないだろう。と思いたい。
931921:ぬるぽ暦4年,2005/04/05(火) 05:59:57
>>930 鋭い!!当たり。そのPL/Iで何書いたかというと「アセンブラ」ダターヨ
932363:2005/04/07(木) 12:49:04
この害虫に以下略。まだまだでてきやがる…

<% // 情報1 %>
<c:if test="${!(empty(xxbean.subBean.param1))}">
<%
 final xxbean b = (XXBean) pageContext.getAttribute("xxbean");
 String url = String.valueOf(xxbean.subBean().param1());
 int idx = 0;
 String dir = "";
 String file = "";
 
 if (url.length() >= 0) {
  idx = url.lastIndexOf('/');
  dir = url.substring(1,idx);
  dir = dir.replaceAll("/","!");
  
  file = url.substring(idx+1);
  idx = file.lastIndexOf('.');
  file = file.substring(0,idx); 
 }
 
%>
続く
933363:2005/04/07(木) 12:54:57
続き

<div>
 <h2>
<% // <a href="<c:out value="${xxbean.subBean.param1}"/>"> %>
 <a href="/static.do?dir=<%= dir %>&file=<%= file %>&title=<c:out value="${xxbean.subBean.param1Title}"/>">
 <c:out value="${xxbean.subBean.param1Title}"/>
 </a>
 </h2>
 <p>
 <a href="/static.do?dir=<%= dir %>&file=<%= file %>&title=<c:out value="${xxbean.subBean.param1Title}"/>">
 <img src="<c:out value="${xxbean.subBean.param1Img}"/>" alt="<c:out value="${xxbean.subBean.param1Title}"/>" ">
 </a>
 <c:out value="${xxbean.subBean.param1Lead1}"/>
 </p>
</div>
</c:if>

これを情報3まで三回べた書き。
Strutsなのに。オマケにparam1Titleは2バイト文字なのにURLエンコードしてない。
もちろん後からサーブレット側で書き直して、パラメーターはMapに詰めてnested使ってループ処理にしましたとも。
っていうか
<% // 情報1 %>
何ですかこのコメントの書きかたは。
他にも
<% /* %>
 ここをコメント化
<% */ %>
ってのもあった。
これをやってるのが害虫側のリーダーだったて言うんだからもうシャレにもなんねぇ……
// 変数名は適当に書き換えたのでコンパイルエラーがあったらスマソ
934仕様書無しさん:2005/04/07(木) 13:29:25
>>932-933
PHP厨な漏れには喪前が何を書いていて、何に対して起こっているのか
理解できないんだが、もう少しわかりやすく簡潔に書いてくれ。

935363:2005/04/07(木) 13:54:07
>>934
すまんね。
Struts使ってる場合はJSP側は極力表示のみに特化するべきで、
文字列操作だとかはサーブレット側で行うべき。
それを、jspでJavaコードとして書いている。

しかも、パラメーターがparam1 param2 param3だからってこれを三回ベタ書きしてる。
DBの項目が増えたらまたコピペで増やすつもりだったんだろうけど。

サーブレット側でやって結果だけを表示させるようにすればわざわざこんな真似しなくても
Strutsのループできれいに書ける。

そもそもJSPには<%-- コメント --%>という立派なコメントタグがある。
それなのに
<% // 情報1 %>とか
<% /* %>
 ここをコメント化
<% */ %>とかいうわけのわからないコメントの書きかたをしてる。
酷い時には<!-- JSPに対するコメント -->とかすらある。

ちなみに上記のを3回貼り付けるやり方を、サーブレット側でやらせるように俺が直したらこうなった
936仕様書無しさん:2005/04/07(木) 13:58:43
<%-- 関連1-3 --%>
<logic:present name="paramList" scope="request">

  <logic:iterate id="mapBean" name="paramList" scope="request" type="mapBean">
  
    <nested:root name="mapBean">
    <nested:notEqual property="file" value="none">
      <nested:define id="src" property="img" type="java.lang.String"/>
      <nested:define id="alt" property="title" type="java.lang.String"/>
      <div>
        <h2>
          <nested:link page="/static.do" property="map">
            <nested:write property="title"/>
          </nested:link>
        </h2>
        <p>
          <nested:link page="/static.do" property="map">
            <html:img src="<%=src%>" alt="<%=alt%>"/>
          </nested:link>
          <nested:write property="lead"/>
        </p>
      </div>

    </nested:notEqual>
    </nested:root>
  </logic:iterate>
  </div>
</logic:present>

これだけでparamが5になろうと、10になろうと、対応出来る。
もちろんJava側もPHPで言う「関数名の変数」を使ってループにした
937仕様書無しさん:2005/04/07(木) 14:57:07
>>936
へー
938仕様書無しさん:2005/04/07(木) 15:03:59
JavaもHTMLの書き方も知らない厨だが、

>しかも、パラメーターがparam1 param2 param3だからってこれを三回ベタ書きしてる。
>DBの項目が増えたらまたコピペで増やすつもりだったんだろうけど。

これだけでも充分DQNぶりが伝わりますた。
939仕様書無しさん:2005/04/07(木) 15:19:44
>>935
DBの項目が増えるのを予想して、
仕様が変わるのを予想して、
363がDQNなのを予想して、
コーディングしてください。

と最初に伝えればよかったと思う。
940363:2005/04/07(木) 16:25:37
>>939
ごめんね、363=おれDQNだから、ごめんね



俺が悪かったのか……orz
941仕様書無しさん:2005/04/07(木) 18:02:18
泣くな
942仕様書無しさん:2005/04/07(木) 22:11:35
>>932
それくらい許してやれよって思うんだけど。
943仕様書無しさん:2005/04/07(木) 23:10:10
<% /* %>
こんなコメント使えるんだ。知らなかった
944仕様書無しさん:2005/04/08(金) 00:06:01
<% と %> にはさまれた部分を抜き出してJavaコードを作ってるだけですから。
945仕様書無しさん:2005/04/08(金) 14:56:31
>>942
これだけだったらな。
そもそも漏れはかかわることのないプロジェクトだったのに、
「Torque書き方わからないので書いてください」ってDAO部分全部漏れにやらした状態で
リーダーは胃に穴あけた。漏れもひと段落した後倒れた。

その他余罪
>>175>>363>>413(これでも氷山の一角)
ちなみにjspレベルのコメントで書かないといけないコメントも
多数がHTMLコメントで書かれてたりもした

CVSの新コードをそのまま手元にある旧コードでコミットして台無しにしてくれたこともあったなぁ。
問い詰めたら泣かれた。
結局「Strutsをまともに使えるのは一人だけですが全員Javaをきっちり書けます、
わからないところはわかってる奴に質問させます」
というのは真っ赤な嘘っぱちで全員Javaは素人クラス。
Strutsができると言った人間もあまりにもひどいコード書くので追求したら
「ごめんなさい、少ししか書けないんです」とゲロしましたとさ。
946仕様書無しさん:2005/04/08(金) 22:33:41
DQN会社にはDQNな害虫しかよりつかないってこった
947仕様書無しさん:2005/04/13(水) 13:19:35
>945

>結局「Strutsをまともに使えるのは一人だけですが全員Javaをきっちり書けます、
>わからないところはわかってる奴に質問させます」
>というのは真っ赤な嘘っぱちで

こういう奴らも結局営業の被害者なんだろうか、
それとも営業もだまされたクチなのかな…。

948仕様書無しさん:2005/04/14(木) 04:44:45
なんかもーねぇ。
多少選考に時間かかるリスクはあるけど
面接の一環として実技入れた方がいいと思うんだけど・・・・
949仕様書無しさん
>948
うちはやりましたよ。

ファイルの書き込みすら行なわない、20行くらいのプログラムだけど… orz