hydrakecat’s blog

Walking like a cat

ソフトウェアエンジニアに必要な英語

ソフトウェアエンジニアと英語の話というのは、しばしば話題になります。 それだけ多くの人が英語について気にしていると思うのですが、「英語やらなきゃ」と言っている人に話を聞くと意外と動機が漠然としている印象があります。

果たして日本企業で働くソフトウェアエンジニアにとって英語は必要なのでしょうか?必要だとしたら、どういう英語が必要なのでしょうか? この記事は、そのあたりの疑問を自分なりに整理するために書きました。 いつもの固い記事とは違って、きちんと下調べもしていないし、勢いで書かれた内容となっていますが、ご容赦ください。

なお、この記事はエンジニアの英語力 - 怠惰を求めて勤勉に行き着くに触発されて、 Androidアプリのビルド待ち時間に書かれています。エモい記事を書いてくださったしろやまさんと、Androidアプリのビルド時間、それに業務時間中に記事を書くことを快く許してくれた会社に感謝します。

あ、あと、一応自分が働いているFablicという会社のFablic Advent Calendar 2017の1つでもあります。よかったら他の記事も読んでみてください。

続きを読む

companion object vs. top-level

JavaにはあるけれどKotlinにないものの1つに、クラスメソッドやクラス変数があります。 この記事では、そのクラスメソッドとクラス変数をKotlinではどう定義すべきかという話をします。

より詳細に言えば、メソッドや定数*1をtop-levelで宣言するのとcompanion objectに宣言するのとどちらが良いかという話です。

*1:なお、この記事ではpublicもしくはinternalなメソッドや定数について考えます。privateなものについてはどちらも大差ないという考えからです。

続きを読む

『Androidを支える技術』を読むべきか?

ソフトウェア・エンジニアを長くやっていると、自然と得意分野というものが出来る。 自分だったら、Androidアプリ開発Javaの仕様についてはそれなりに知っているつもりだけれど、LinuxカーネルGPUについて詳しいとはお世辞にも言えない。

得意分野というと聞こえはよいけれど、それは裏を返すと、他のことを学ぶのに及び腰になるということだ。さっきの例でいえば、LinuxカーネルについてもGPUについても知っておくにこしたことはない。それでも、「興味はあるけれど、いますぐに必要じゃないからいいか」という気分になって後回しにしてしまう。

この記事で紹介する『Androidを支える技術』はそういう知っておくにこしたことはないことを解説している。

続きを読む

wakatime で振り返る2016年

2016年がもうすぐ終わってしまう。あと10日足らずだ。

今年は色々とあったので、ブログにまとめておきたいと思ったのだけれど、ダラダラと羅列するのも芸がないし、ここはwakatimeというサービスを使ってコーディング時間と一緒に振り返ってみようと思う。

続きを読む

RxJava のテスト(2): RxJavaHooks, RxAndroidPlugins

これはRxJava Advent Calendar 2016の第14日目の記事です。前回はTestSubscriberやTestSchedulerを使ってRxJavaに関わる単体テストのしかたを説明しました。

f:id:hydrakecat:20161211234713p:plain

この記事では、それらでは足りない場合の奥の手、スケジューラを差し替える方法について説明します。

続きを読む

RxJava のテスト(1): TestSubscriber, test(), TestScheduler

これはRxJava Advent Calendar 2016の第12日目の記事です。

f:id:hydrakecat:20161211234713p:plain

RxJavaは非同期処理を扱うライブラリですが、それ故にRxJavaのからむ単体テストは一筋縄でいかないところがあります。この記事と次の記事では、RxJavaでの非同期処理テスト特有の問題と、その解決方法を説明します。なお、基本的に RxJava 1.x を対象としていますが、必要に応じて RxJava 2.x についても触れます。

この記事の続編はこちらになります。

続きを読む