タグ

ブックマーク / unkode-mania.net (20)

  • [Java] is禁止令-ウンコード・マニア

    ウンコードの趣旨とは違い、レビューで指摘された内容ですが 空いた口が塞がらなかったので投稿しました。 ちなみに独自のコーディング規約がある訳ではありません。 // Mod yamada Start // 一般的に考えて真偽値を返すメソッドでisから始まるのはありえないのでcheckに直しました。 // 今後isは使わないで下さい。 // public boolean isHoge(){ public boolean checkHoge(){ // Mod yamada End boolean result = false; // hogeかどうか判定 return result; } 使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

    kiyo_hiko
    kiyo_hiko 2019/11/06
    ゴミすぎる。
  • [Java] もうコメント書くなお前-ウンコード・マニア

    改修案件でぶち当たったソース マジでこんなのに遭遇することってあったんだなぁ・・・ 他にもろくに追記されていないjavadocがゾロゾロ・・・ 頼むから、javadoc書くなら最後まで責任持ってくれよ・・・ /** * * 〇〇の値を取得する * */ public void getFoo(int foo){ this.foo = foo; } 使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

    kiyo_hiko
    kiyo_hiko 2015/04/03
    public void getFoo(int foo) {this.foo = foo;}
  • [Java] オーバーローダー-ウンコード・マニア

    彼の書くコードはとにかくオーバーロードを全て用意しないと気がすまないらしく、30個くらいのメソッドを経由してようやく処理辿り着く事もよくあるんです。彼曰く「全部用意しておけば拡張性が高い」だそうです。 public class Overloader { public static void sendAdminMail() { String to = "admin@admin.com"; String from = "hoge@admin.com"; sendmail(to, null, from, null); } public static void sendmail(String mailto) { sendmail(mailto, null); } public static void sendmail(String mailto, String mailcc) { sendmai

    kiyo_hiko
    kiyo_hiko 2015/01/06
    うへぇ。最も引数の多いパターンと実際に呼び出すものだけ押さえればYAGNIでFA。Lispみたくkeyword引数があればスマートっぽいが、そういやデフォルト引数ってJavaだとどうだったろ
  • [Java] Java5とJava1.4の夢のコラボレーション-ウンコード・マニア

    Listが大好きでJavaBeanを作るのは嫌だったんでしょうか。 担当者が途中でギブアップして作れなくなってしまい、続きをなんとか作ってくれとお願いされ 渡されたソースがこんな感じだったそうです。 public class GyoumGamen1 { public List<List> getData() { List<List> list = new ArrayList<List>(); List subList1 = new ArrayList(); subList1.add(1); subList1.add("ColumnDataA1"); subList1.add(2); subList1.add("ColumnDataB1"); list.add(subList1); List subList2 = new ArrayList(); subList2.add(1); subLi

    kiyo_hiko
    kiyo_hiko 2014/05/07
    これならデータが固まってればPair<K,V>作ってList<Pair<K,V>>にするし、変更可能性のあるデータならデータのクラスを書いてしまうなあ。
  • [C++] 一社相伝の伝統を受け継いだ秘伝のソース-ウンコード・マニア

    Setterの役割なのにIsPrintCan・・・ 全く役割が違うのにオーバーロード・・・ 挙句の果てに、コメントが[in] or [out]しか違いがない・・・ この関数を呼んでいる箇所にも もちろん コメントなんてありません! //印刷設定可[in] void IsPrintCan(BOOL bPrintCan) { //メンバ変数へ代入 }; //印刷設定可[out] bool IsPrintCan() { //メンバ変数から判定してbool値を返す }; 使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

    kiyo_hiko
    kiyo_hiko 2014/05/07
    java.nio.BufferみたいなAPIを作ろうとしたのかな。でもせめてprintble(true)とかif (printable) print;とかにしたい。Is~はないな
  • [JavaScript] switch (true)-ウンコード・マニア

    賛成反対かと言われるとどちらともいえないです。 理由としては結構表面的ですが、こんな感じです。 賛成理由:可読性がif-elseより良いから。 完全に主観ですが、最初だけifで、残りがelse ifだと、スペースを入れないと条件式のインデントが揃わなくて見づらいです。 反対理由:汎用的な書き方でないから。 今回のサンプルではJavaScriptですが、Cとか古いバージョンのJavaではこんな書き方はできません。 JavaScriptだとif-elseとswitchの速度差ってどうなのかなと思いましたが、このサイトにこんなコメントがありました。 大量の条件分岐を是としないなら、速度差がないというのも仕方ないとは思いますが。 ・[JavaScript] とっても長いswitch/case文 http://unkode-mania.net/view/5018ddaa7e19b40f5a00000

    kiyo_hiko
    kiyo_hiko 2014/05/07
    switch(true)なんてものがあるのか。へー SQLのCASE WHENとか、CommonLispのcondマクロみたいだ。形はif~elseよりきれいに見えるけど、フォールスルー対策で毎度break書くのがだるい感じだ
  • [Java] スプリット(笑)-ウンコード・マニア

    header.txtというファイルがある。 レコード区切りがタブ"\t"でカラムの区切りが","となっている。 カラムは[コード,名称]となっている。 例) 01,受注\t02,発注\t03,入金\t04,出金\t05,発送 上記文字列をkaiseki(笑)してコード部の配列[01, 02, 03, 04, 05]を作成したい模様。 //ファイル読み込み処理は別で投稿予定。 //String Head = hoge_method("header.txt") String Head = "01,受注"+"\t"+"02,発注"+'\t'+"03,入金"+'\t'+"04,出金"+'\t'+"05,発送"; String codehead[] = null; int xmax = IndexMax(Head, '\t', 1); if(xmax > 0) { String str = "";

    kiyo_hiko
    kiyo_hiko 2013/11/19
    ここまで無駄な努力してるとかすごい 絶対一緒に仕事したくないな
  • [Java] returnObjという変数で返すことになってるんだい!-ウンコード・マニア

    FindBugsで引っかかったので、発見したのですが。。。 FindBugsからも「無意味な代入」と一蹴されてました。 public List getHogeList() { List returnObj = null; if(ほにゃらら) { returnObj = new LinkedList(); returnObj.add("a"); return returnObj; }else{ return returnObj = new LinkedList(); } } 使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

    kiyo_hiko
    kiyo_hiko 2013/09/10
    public List<String> getHogeList() { List<String> xs = new LinkedList<String>(); if (cond) {xs.add("a");} return xs; } 直すならこうか?
  • [Java] ClassCastException上等-ウンコード・マニア

    つい昨日見たコードです。 よくバグを出すプログラマーさんの担当に追加機能があったのですが、 テンパってたので、自分のほうで改修しよう、、、と思ったらこんなウンコードがッッッッッ!!! 「ないわー」 public doSomething(int userId, Object param ){ try { hoge(userId, param); }catch( ClassCastException ce){ try{ hoge(userId, param); }catch(ClassCastException ce){ try { hoge(userId); }catch(Exception e){ throw new SystemException(se); } } } } private void hoge(int userId, ConditionBean bean){ //処理 }

    kiyo_hiko
    kiyo_hiko 2013/07/05
    なにが なんだか わからない…。
  • [Perl] うおおおその動きは保障されていないいいいい-ウンコード・マニア

    条件にヒットした要素を削除したかったのだと思うけど、 配列から添え字通りに要素取得できるといつから錯覚していた。。。? my $cnt = 0; foreach my $val (@Ary){ if ($val eq 'hoge'){ splice(@Ary, $cnt, 1); } $cnt++; } 使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

    kiyo_hiko
    kiyo_hiko 2013/03/22
    @Ary = grep {$_ ne 'hoge'} @Ary;
  • [C] 消えるヘッダファイル-ウンコード・マニア

    #ifdef __HOGE_H__ #define __HOGE_H__ #include <stdio.h> /* 略 */ #endif 使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

  • [PHP] 工数の無駄-ウンコード・マニア

    メソッドといい引数の「デフォルト空文字」といい、なんとも味わい深いほどに「無駄」の結晶。 それなりにキャリアのある技術者とのことでしたがとりあえず技術力が分からない相手だったので「クラス書いてみて」といってお願いして、出てきたのがこれを含むクラス。 すみやかに「それなりにキャリアのある技術者」から「技術者未満」に、印象値を変更しておきました。 ※クラス名はダミーです class hoge { /* 前略 */ // 変数の空文字チェック private function _chackVar($var_str = ""){ if("" === $var_str){ return FALSE; } return TRUE; } // 文字列を置換する private function _replaceString($search_str = "", $replace_str = "", $su

    kiyo_hiko
    kiyo_hiko 2013/03/08
    degugのインパクトすごい。コードも高度にひどい。
  • [Java] 以前のコードが残されていて、何がなんだかもうっ!っていうコード-ウンコード・マニア

    [Java] 以前のコードが残されていて、何がなんだかもうっ!っていうコード 投稿者からのアピールポイント /* --- 2007.06.21 故障-ST-001 start --- */ // public void uncode (int status_code) { // int status = 0; // List unkodes = null; // if (status_code == 1) { // unkodes = fetch_unkode(); /* #### 2006.05.11 仕様追加-ST-012 k.sato start #### */ // // } else { // } else if (status_code == 2) { // unkodes = search_unkode(); // } else { // unkodes = create_u

    kiyo_hiko
    kiyo_hiko 2012/12/17
    あったあった
  • [C] ( 0][0 )/-ウンコード・マニア

    #define NUM_PORT 8 #define NUM_CHANNEL 8 unsigned char data[NUM_PORT][NUM_CHANNEL]; #define BATTERY_VOLTAGE 0][0 #define MAINPOWER_VOLTAGE 0][1 // (略) #define MOTOR_CURRENT 7][6 #define MOTOR_TEMPERATURE 7][7 #define LOW_BATTERY 0x30 void output_log(void) { unsigned char i,j; set_new_page_log(); for(i=0;i<NUM_PORT;i++) { for(j=0;j<NUM_CHANNEL;j++)add_log(data[i][j]); } } void check_battery_voltage

    kiyo_hiko
    kiyo_hiko 2012/12/17
    思ったよりは読みやすいコードな気がするが、組み込みCは私に無理だ
  • [Java] まったくもって意味不明-ウンコード・マニア

    nullをスローするので、StackTraceが出るときにヌルポ。 コンパイラも通る。 Findbugsで検知。 private Hoge doHoge(List<String> foo) { for (String str : foo) { if (...) { ... } } throw null; // ← なんだコレ } 使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

    kiyo_hiko
    kiyo_hiko 2012/12/11
    ナルを投げるとか斬新すぎる
  • [C] コード?コメント?-ウンコード・マニア

    /*======================================================================*/ /* 関数名称 : */ short _strsyori6 /* */ /* 機能概要 : 文字列処理6 */ /* 入 力 値 : */ ( /* */ /* : */ int mode /* 処理モード */ /* : */ , unsigned char * moji_in /* 入力文字列 */ /* : */ , unsigned char * moji_out1 /* 出力文字列1 */ /* : */ , unsigned char * moji_out2 /* 出力文字列2 */ /* : */ ) /* */ /* 戻 り 値 : 受け取った文字数 */ /*=================================

    kiyo_hiko
    kiyo_hiko 2012/12/11
    整形がめんどくさそうだと思ったけど、Excel VBAとか書いてExcelシートからAPI部分のコードを出力すればよさそうだ
  • [C#] コピーっぽい処理-ウンコード・マニア

    internal class ClassA { internal List<int> data = new List<int>(); //コピー処理 internal void Copy(ClassA obj) { this.data = obj.data; } } 使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

    kiyo_hiko
    kiyo_hiko 2012/10/12
    あるある
  • [Java] 二極論がお好き?-ウンコード・マニア

    世の中にはさまざまな不思議な現象があるようですが コードの世界で有り得ない現象は起こるのでしょか? そもそも、なんで「isOK」と「isNotOK」を作ってしまったのか!? 二極論ですか?難しい話ですね(^^;) boolean isOK = false; boolean isNotOK = false; if (checkItem()) { isOK = true; } else { isNotOK = true; } if (isOK && isNotOK) { log.error("有り得ない現象が起きました!"); } 使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証) コメント(5)

    kiyo_hiko
    kiyo_hiko 2012/08/16
    「log.error("有り得ない現象が起きました!");」w
  • [Java] 定数地獄-ウンコード・マニア

    public static final int ZERO = 0; public static final int ONE = 1; public static final int TWO = 2; ... ... public static final int ONE_HUNDRED = 100; 使い方ヒント: 「これは臭う」という行を見付けたら、各行のをクリックしてマーキングしておきましょう(要Twitter OAuth認証)

    kiyo_hiko
    kiyo_hiko 2012/08/16
    おれがよく見る派生バターンはファイル名がまんま定数名 「CNST_D_DRIVE_XXXSOFT_CONFIG = "D:/xxxSoft/config/"; CNST_SERVER_INI = "server.ini";」的な。そしてopenの引数に「CNST_D_DRIVE_XXXSOFT_CONFIG + CNST_SERVER_INI」」とか
  • ウンコード・マニア

    「なんだこの糞コードは!(怒)」「書いた奴出てこい!(怒)」 こんな声を聞いたり、叫んだりしたことはありませんか? ウンコードについて学ぶことによってウンコードを撲滅しましょう! とりあえず、趣のあるウンコード鑑賞から始めて下さい お知らせ 2013-06-27 profile image をTwitter API1.1に対応しました。Thanks for Profile Image API For Twitter 2013-06-16 Twitter API1.1に対応しました。 2012-12-05 職人ランキングを追加しました。 2012-11-21 レコメンド機能を追加しました。 Twitterアカウント @unkode_mania で更新情報をつぶやいてます 障害情報 2012-08-14 障害情報: 19:20 - 21:59 くらいの間、internal server err

    kiyo_hiko
    kiyo_hiko 2012/08/01
    「i++」とか、パッと見気づかないけどよくよく見ると「お、これは…?」という、スパイスのようなうんこまじかっこいい / あとYamadaUtilすてき。
  • 1