u-ryo's blog

various information for coding...

Unbelievable Coding

| Comments

Androidのお仕事で、あるclassのcodeを読んでいて。

  • onTouchListenerの上にonClickListenerを上書き
    あるbuttonをsetOnTouchListener(this);してて。 buttonをonTouchListenerっていうのもなんですが、 onTouch(...)で更にsetOnClickListener(...);してるという...
  • timer止めずに新しいinstanceを上書き
    CountDownTimerをinstance fieldとして持ってて、 途中でnewしてるんですが、それが複数箇所あるんですよね... 直前にcancel処理とか特に無いし。大丈夫なのかこれ。
  • カタカナや"$","/"にtoLowerCase()/toUpperCase()してindexOf()
    "半角カタカナ".toLowerCase()してからindexOf(...)>-1して、 contains(...)と同じことしてました。indexOfはまだしも、 toLowerCaseしたからって 全角カタカナが半角カタカナになるわけじゃないのに。 え、まさか、とか思ってしまった自分が情けないです。 同様に、記号に対しても"$".toLowerCase()とか謎すぎます。
  • 他の(inflateもincludeもしてない)View上のR.idをfindViewById()
    当然nullですfindViewById()しても。実質無害なcodeではありますが。 どうやら他から何も考えずにコピペしたから、らしいです。
  • listの2度回し
    なるべく一度で済むように書きますよねぇ、フツーは。 ちょっと違う処理をするから、なのか、 同じlistを直後に2度回して、って。 まー他でも同じtableのDB accessを3回してたりしますからねーこのcode。
  • 1830秒?
    随分謎なMagic Numberです。
  • loop回すのに中で値を上書き(結局見てるのは最後の値だけ)
    for(i in list){v = i}みたいな。v=list[lastIndex]でいいじゃん。 そういうことされると意図が読めないんですよね。困ります。
  • loopの空回し
    waitしたいみたいなんですが、 while(true){if(!flag)break;}ってこれじゃぁCPU無駄遣いでしょ。 改善したっていってdo{i=0;}while(!flag);って、あのねー...
  • synchronized wait()で同期 他Activity(dialog)に遷移させ、 その同期にsynchronized(this){wait();}って使ってます。 そういうthread jugglingはやめて欲しい、です。 こういうのってホントはRXですよね。
  • method/field名が大文字で始まっててclass名と区別がつかない、 なんていうのは可愛い方で、もう気にもならなくなってますそういえば。 methodも長いし条件分岐も複雑で、 state patternとかなんて知らないんだろうなぁと。
  • というか全てがfat ActionでFragmentもなければApplicationもないという (基本的には。後から「訳も分からずダーッとコピペした部分」にはありますが)。

...というように。 こういうcodeと共に仕事するのは、嫌で嫌で仕方ありません。

Comments