カブトムシの壺

消しゴム付き鉛筆

ざつだんだいじに

 

 今、所属している部署では、月に一度 "1on1"といって、上司と30分ほどお話しをする機会がある。目的としては、自分のやった仕事をふりかえって自分の成長に繋げること。

 

 その中で今の自分の悩みとして、「あれこれ実装してから、後で他の人にコードレビューで指摘されて、設計からやり直しになって時間がかかってしまう」という話を出した。すると、「もっと実装する前に雑に話したら良いよ!」とアドバイスを貰ったので、最近は出来るだけ実装する前や実装中も色々と話しかけてる。

 

 開発に関して雑に話しかけると、大体自分に無い観点で返ってきたりしてとっても良い。例えば、「ここに時間かけてもって感じでは?」とか、「ここはもっとシュッとかける」とか。そういう意見をもらうと、「なるほど確かにな〜」となって、最初からちょっと良い感じのコードをかけている感じがする。

 

 しばらく  さくせんは  "ざつだんだいじに" で いきたい。

チーズタッカルビと核心

 

今日は、会社の送別会 + 忘年会 + 歓迎会でした。場所は多分ここです。

 


チーズタッカルビです。私はチーズが苦手なので最初不安だったのだけど、大まかにいうとピザだったので、大丈夫でした。お別れする人と話したり出来てよかった。


で、ある人に「うじっち(私)はまだ外からペパボを見てる感じなんだよな〜」と言われて、「はっ!」と核心を突かれた!という感じだった。

 

それはその通りで、まだ会社にいても「凄いな〜*」と感心してしまうことばかりで、このことを誰かに伝えたいと思ってしまって、なんか、どこか外から見てる人のような、中の人ではない感が出てしまうのだと思う。

 

(*例えば、今日どーんと表に出た2019新卒採用サイトとか本当に良いやつ!!)

 

 

まだふわ〜っとしているので、地上に早く着地したい。

Androidエンジニアになって半年経ったので、コードレビューで指摘されたことをシュッとまとめる

Android Advent Calendar 2017 の15日目の記事です。

コードレビューしてますか?

Androidアプリのプログラマとして入社して半年が経ちました。入った頃よりはいくらか成長したかなと自負しているのですが、それはコードレビューで同僚や先輩から受けたコメントによって色々と学べたことが大きいのかなと思っています。

なので、このAdvent Calendarが良い節目だなと思ったので、まとめました。

Pull Request関連

差分はなるべく小さくすること

  • 差分は、修正に意味がある範囲であれば、小さければ小さいほど良い。
  • フォーマッタをかけた時の差分が大きいと修正の趣旨が分かり辛くなるので、事前に修正対象のファイルにフォーマットをかけただけのPull Requestを出す。
    • (個人的なナイスコメント : diff全てに意味があるのがイケてるエンジニア)

コーディング全般

コードをなるべく減らせないか考えること

  • 同じロジックの部分があれば、メソッドに切り出すことを検討する。
  • 変数名で分かるものはコメントに書かなくて良い。後から修正するのが大変になる。
  • コメントは何をしているかではなく、なぜそうしているかを書く。何をしているかのコメントは不要。
    • (個人的なナイスコメント : 必要以上に未来予知せず、今の状態で必要なコードがあれば良いよ。)

なるべく頭を使わずに読めるコードを書くこと

  • if条件式にはなるべく否定形を使わないようにしておくと頭を使わずに読めるコードになる。
  • if条件式のネストが深いときは、早期リターンを検討する。
  • 変数のスコープは可能な限り狭くする。
  • 変数名のm、sプレフィックスは統一する。
  • テストにセットするデータは実際に入りそうなテキストを入れる(ほげほげなど雑な文言を使わない)。そうした方がテストの意図が分かりやすい。
    • (個人的なナイスコメント(口頭) : 人間の脳のキャッシュメモリってめっちゃ少ないから!)

Android/Java関連

なるべくテストを書けるようにすること

  • Activityにロジックがあるときは、その処理をPresenterに切り出せないか考える。なるべくテストを書けるようにする。(今担当のアプリではMVPパターンを採用している)
  • View毎の役割を考え、Viewの役割毎にCustomViewに切り分ける。CustomViewに切り分けた後、そのPresenterを書くことで、テストが書ける。

NullPointerExceptionに気をつけること

  • 空文字チェックはTextUtils.isEmptyを使うと空文字の検出もできるし、null安全。
  • メソッドの引数にnullが入らないことが明らかであるなら、@NonNullを付与する。

  • 文字はstrings.xml、size、marginなどはdimens.xmlで定義をして使う。ハードコーディングしない方が後から変更しやすい。

補足

  • 他にも沢山コメントがあったのですが、typoなどのポカミスの指摘などは外し、これからも注意した方が良さそうな一般的なコメントをピックアップして見ました。

  • Androidに関する指摘が少ないのですが、コードというよりAndroidの知見に関することばかりだな、、、となってピックアップし出すとキリがない!! (これはただのAndroid Developersの目次だ!!)となったため省きました。

  • (その結果、Androidの技術に関することがテーマなのに、Androidに関する情報が少なくてすみません。m( )m)


良いお年を!!

Androidの空文字チェック ~StringのisEmpty()使うか?TextUtils.isEmpty()使うか?~

・TextUtils.isEmpty() 

文字列が"空"か"null"の時、trueを返す。それ以外の場合はfalseを返す。
TextUtils | Android Developers

 

・Stringの isEmpty()

文字列が"空"の時、trueを返す。それ以外の場合はfalseを返す。

String | Android Developers

 

 

文字列にnullが入りうる場合は、StringのisEmpty()を使うとNullPointerExceptionになるので、TextUtils.isEmpty()を使う。

 

追記 2017/12/11


なるほどという感じ!! 

 

[ポエム] 番地

(今週は疲れたので、ポエムを詠いたくなりました。)

 

 「RADWIMPS 4〜おかずのごはん〜」というRADWIMPSのアルバムの中に「夢番地」という曲が入っている。

 

僕はきっと今誰かの夢の上に立っている

 

これは、その曲の一節。

 

人は、夢とか目標とかを掲げて日々生きているけど、実は何度も夢を叶えているし、もしかしたら今日だって誰かにとっての夢を達成しているのかもしれない。

 

おっきな、誰も叶えたことのない夢に向かって突き進める人は羨ましいけど、小さい目標を少しずつ達成していくのも悪くない。

 

そういう人だっているし、全然悪くないよと思う。

Google Play 2017 ベストアプリが発表されているね。

 

今年からユーザー投票部門と言うのが設置されて、AbemaTV、LIMIA、DELISH KITCHEN、Googleフォト、ニュースパスがTOP5として発表されていた。

 

 

いくつか知らないアプリがあったので、インストールして触ってみる。