nashcft's blog

時々何か書く。

JJUG CCC 2017 Fall に参加した

20分枠で Eclipse Collections の紹介をした。

slides.com

発表時の様子をコミッタの1人である @itohiro73 さんがまとめてくださっている。

togetter.com

発表後の振り返り

余談

このライブラリは今勤めている会社のサーバサイドチームで Stream API の代わりとして1年半くらい使われていて、最近はチーム加入後に取り組むハンズオントレーニングの題材にも組み込まれるようになった。
プロダクトの中で両方が混在していると混乱するだろうということで Stream API を使わないように規約で決まってるので面白がって以下のようなやりとりをすることがある。

Eclipse Collections と私と今後

まとめのところで何かコントリビュートするぞと口走ったので来年末くらいまでに何かできたらいいなあと考えている。Immutable なコンテナでできることを増やしていきたいなあとか。
仕事ではサーバチームから Android アプリ開発チームに移動して使う機会がなくなってしまっているのがネックかなー...

日記

チームの人からのサーバサイドAPIの挙動に関する質問を聞いていたらAPIの不備が見つかったのでシュッと直してプルリクを投げた。
大した規模の修正ではなかったのでその場ですぐプルリクにしたのだけど、弊社では基本的にタスクをチケット化するのが決まりで、チケットも作らずにこういうことをしていると見えないタスクを生み出してしまい、誰が今どのくらいタスクを持ってるかとか誰がどの期間で何をどのくらいやったかといったトラッキングを正確にできなくてよくないですねということが考えられる。でも縦割りチームだとチームをまたいだ作業は記録しても見えにくいし開発タスクはGitHubの草でも見たらいいじゃーんというか、そういう行動データがJIRAだったりGitHubだったりetcだったり散っちゃっててそもそも上手くトラッキングできてないじゃーんウワーつらい眠いのでおわり。

日記的な

風邪治った

昨日今日でタスク1個こなして、あと Effective Java の読書会したりコードレビューしたりした。最近読書が疎かになりつつあるのでよくない。
今日のタスクでは ViewHolder まわりをいじっていたのだけど、 RecyclerView における ViewHolder とそれに紐つく (?) View の関係やライフサイクルとか、layout のxmlと実際に表示されている view がどうのとか、再利用とかメモリ効率がどうのとかってどうなってるんだろうなーというところが気になった。
そう言えば gradle plugin の移行はもうちょっと先になりそう。

今日読んだ本:

  • 融けるデザイン -> 63%
  • Effective Java -> 6章入った

Effective Java の読書メモを会社のwikiに残しているけどそのうちこっちに持ってこよう。

😷

今日は出社したら Android Studio 3.0 がリリースされていたので早速アップデードした。とりあえず新しくできるところは新しくして、引っかかるところがどこかだけ眺めておいた。来週くらいから Gradle の android plugin のマイグレ作業をすることになる。

午後は半分ミーティングで残りの殆どは社内勉強会だった。今日は若者数人で『テスト駆動開発』のもくもく写経会を始めた。参加者全員がJava経験者というわけではなかったので取り組む際の言語は自由として、私は色々と折角な機会だったのでKotlinで進めることにした。ところでこの会では git レポジトリやプロジェクトを作ってもらうところからやってもらったのだが、今年新卒で入った人がその辺の知識・経験がなくて苦戦しており、それのサポートに結構時間がかかったので本の進みは1章の途中くらいまでだった。 git は普段から使っていて仕事始めてからもう半年も経つのだから問題ないかなーと思っていたのだけどそうでもなかったのは結構意外で、ちょっとこれはフォローしないとなとなり次回は git 会にすることにした。

風邪、直に治ると思っていたのに帰宅してから熱をはかったらまた上がってしまったので今週はもうおしまいです。

風邪と情報共有と

風邪を引いてて治りつつあるものの鼻水が辛い...

今日は小さいタスクを1つ片付けた以外はほとんどコードレビューをしていた。
昨日まで ConstraintLayout で苦戦していて自分しかこれを使っていないから頑張るしかないと思っていたら先行して別の画面を開発していたメンバーが実は ConstraintLayout を使っていたことに今更気づいた。割と和気藹々とやっているチームだけどこういう所の情報共有が課題なんだなあと思った。プルリクエストを出すまでの間のコミュニケーションがあまりに少ないのでそこから改善できないかなあ。

情報共有をはじめとしたコミュニケーション関連の問題はチーム内だけでなくチーム間でも以前からあって、チーム移動を経験してその辺の実害を割と具体的に実感していてどうにかしないとなーとなっている。今も前いたチームと今いるチームの間で地味な問題を抱えていて、今いるチームの人とは普段の会話の中でその辺の事情やら背景やらのお話をしてじゃあどうやっていきましょうかと話を進めることができているのだけど、前いたチームは自分がいた頃はそういう話を聞いたことなかったしどのくらい認識してるのかなーというのが掴めてなくてどういう切り口でお話をしたらいいかなーと変に気になって進められていない。

夜中のテンションでこういう悩ましいことについて考えるとよくない方向にしか進まないのでこれで、コミュニケーションはとても難しいのに無頓着な人が周囲に多くてつらい気持ちになるなあということだけ吐き出しておしまい。

ここ数日やってたこと的な

終わったと思っていたレイアウト書きが実は終わっていなかったなどありここのところ ConstraintLayout と格闘して打ちのめされていたのだが、やっとひと段落つき定時で帰るなど時間や心に余裕ができたことにより日記的なものを書く気力が自然と湧いてきたのである。

レイアウトいじりというか実際は画面開発をもそもそとやってて、RecyclerView の使い方を覚えるとかうちのアプリの特徴を捉えるとか ConstraintLayout を習得するとか色々なことを同時にやっていて、そういうことをすると注意が散漫になり ButterKnife.bind() に与える target を間違えて何も表示されないということが発生する。
それで ConstraintLayout で適当に View を並べて constraint を設定してエディタ上ではいい感じにできていたのが実際に動かしてみると例えば TextView に入ってくる文章の量によって View のサイズが変わって隣り合った View が重なってしまうとかあるよねーと思いながら直すのだけどエディタ上で再現できなかったり未だに理解していないことが多い。結局 1.1.0-beta をぶち込んで Barrier でねじ伏せることで解決したけれども、安易に beta をプロダクトに取り入れるのはどうなの? というお話があり審議中という感じ。

ConstraintLayout でレイアウトを作るとき、最初はレイアウトエディタで適当にものを並べたり簡単に constraint をつけたりというところまでした後、最終的には constraint に関しても xml を手でちまちまやっていくことになり、一貫してどっちかでできないかなーという気持ちになった。

Constraint でのポジショニング、chain の作り方、bias, goneMargin の設定、alignment や guideline、Barrier の使い方あたりはだいたいわかったけど、まだ謎なことが多いのでもうしばらくの間は https://constraintlayout.com/ とかを眺めて理解を深める時間を作る。

様々な理由により帰宅時間が遅くなるとこのように日記的なものは書かれなくなっていきます

今回は退勤後にジムに行き帰りの電車の接続が最悪だったので日付が変わりそうな頃に帰宅をした。
仕事の方はレイアウトが書き終わって java をもそもそと書き始めたところまで。 ConstraintLayout を layout editor で編集するのクッソ辛いなというのがここ二日くらいで得た知見であり、誰か上手いやり方と ConstraintLayout について教えてくださいという気持ち。