10周年のSPコンテンツ!
24
Takao Sumitomo@4日目南ナ49ab @cattaka_net
俺的Androidの駄目コードパターン1:担当者がActivity間のデータの渡し方が解らなかったらしくカスタムApplicationクラスにデータを持たせている
Takao Sumitomo@4日目南ナ49ab @cattaka_net
俺的Androidの駄目コードパターン2:タスク終了後の処理だけでタスク自体は同じAsyncTaskが無数にある。
Takao Sumitomo@4日目南ナ49ab @cattaka_net
俺的Androidの駄目コードパターン3:レイアウトxmlを使わずにコードでViewを延々と精製している。案の定、画面を回転させたり画面サイズが違うデバイスで実行すると崩壊する
Takao Sumitomo@4日目南ナ49ab @cattaka_net
俺的Androidの駄目コードパターン4:OnClickListenerなどのリスナーの実装が全て無名クラスになっていて、更に無数のメソッドに散らばっている。せめて関連性があるのはまとめてよ、、、
Takao Sumitomo@4日目南ナ49ab @cattaka_net
俺的Androidの駄目コードパターン5:一つのActivity内に無数のHandlerがある
Takao Sumitomo@4日目南ナ49ab @cattaka_net
俺的Androidの駄目コードパターン6:グローバル変数化したstatic変数でスレッド間のデータがやりとりされている。HandlerやAsynkTaskがあるんだからイベントドリブンに乗せてよぅ、、、
Takao Sumitomo@4日目南ナ49ab @cattaka_net
俺的Androidの駄目コードパターン7:AsyncTaskがFire-and-forgetの設計思想だからといって本当に打ちっ放し手いる。ハンドラはおろかリスナーも付けずに、、、
Takao Sumitomo@4日目南ナ49ab @cattaka_net
俺的Androidの駄目コードパターン8:Preferenceへの書き込みに各Activityが個々にeditメソッドを呼んでいる。更にキーが定数化されてない。更に一度間違って違うデータ型を入れるとClassCastExceptionで容赦なく落ちる作りになっている。
Takao Sumitomo@4日目南ナ49ab @cattaka_net
俺的Androidの駄目コードパターン9:Javaで例外パターンをRuntimeExceptionで投げまくりtry-catch(Exception)で受けまくりで、本当にプログラムを止めないと行けないところはどうしてるのかと思ったらThrowableで投げていた
Takao Sumitomo@4日目南ナ49ab @cattaka_net
俺的Androidの駄目コードパターン10:Threadやネイティブスレッドを投げっぱなして回収できなくなって仕方なくProcess.killProcessでプロセスを殺している
Takao Sumitomo@4日目南ナ49ab @cattaka_net
俺的Androidの駄目コードパターン11:ServiceのAIDLはあるけど、結局ApplicationContextにServiceの実体を突っ込んでメソッドを直接叩いている。それをするなら一思いに只のスレッドにしてくれ、、、
Takao Sumitomo@4日目南ナ49ab @cattaka_net
俺的Androidの駄目コードパターン12:カスタムApplicationクラスを作るのは良いが、元々Contextで規定されているメソッドの振る舞いを変えてしまっている。そしてサードパーティ製ライブラリを追加すると軒並みクラッシュする。
Takao Sumitomo@4日目南ナ49ab @cattaka_net
俺的Androidの駄目コードパターン13:synchronizedがそこら中に無数になる。排他制御が煩雑になると収集つかなくなるからパフォーマンス的に致命的でないならHandlerを経由するようにしてくれよぅ。
Takao Sumitomo@4日目南ナ49ab @cattaka_net
俺的Androidの駄目コードパターン14:staticフィールドに状態を持つオブジェクトを突っ込んでいてプロセスを殺さずにActivityやServiceを再起動させると変な状態に突入する
Takao Sumitomo@4日目南ナ49ab @cattaka_net
俺的Androidの駄目コードパターン15:時間が掛かる処理を別タスクに分けるのは良いが、リスナーで完了を通知する機構が実装されておらず、関連処理がポーリングせざるを得なくなっている。
Takao Sumitomo@4日目南ナ49ab @cattaka_net
俺的Androidの駄目コードパターン16:newのコストを嫌って全ての参照型のローカル変数をフィールドに追いやってる。そしてメソッドの実行順序で挙動が変わるバグの元になっている。本当にパフォーマンスが必要でカリカリにチューニングした後でやるならアリだけどね。
Takao Sumitomo@4日目南ナ49ab @cattaka_net
俺的Androidの駄目コードパターン17:OutOfMemoryErrorが発生したらしく、そこら中で使い終わった変数にnullを代入しているが根本的な解決になっておらず、null落ちや可読性の低下に落ち入っている。先にメモリアナライザーを使って根本原因を洗い出しましょう。
Takao Sumitomo@4日目南ナ49ab @cattaka_net
俺的Androidの駄目コードパターン18:レイアウトのXMLでincludeされているのを開いていくとViewのidが衝突しまくっていた。コードからViewの参照を取るのに困るじゃないか。

コメント

倉瀬美都 @clausemitz 2013年12月20日
うーん、これらはAndroidでなくてもダメなパターンばっかりだな。:-(
ログインして広告を非表示にする
ログインして広告を非表示にする