食の世界地図を読んだ。 食の起源を、文献などから辿れるだけ辿って、そのルーツを垣間見ることができる文庫。その食の時代背景なども含めて見ることができる。 少し前に読み終わっていたのだけれど、メモ。More
Author Archives: KazuCocoa
「わかる! ドメイン駆動設計~もちこちゃんの大冒険~」を読んだ
そういえば読もうと思って買っていた、わかる! ドメイン駆動設計~もちこちゃんの大冒険~を読んだ。 DDD本は読んでいて、ユビキタス言語やコンテキストの境界といった考え方は馴染みのあるものでした。が、少し前からAndroid界隈でDDDの話をよく耳にすることになったので、よくまとまっていると知人から聞いたので読んでみました。 実装よりな話よりも、コンテキストの共有というような範囲でよく話がまとまっていて読みやすかったです。 メモメモ。More
「Swift実践入門」を読んだ
同僚や、知人が書かれていることもあり、Swift実践入門を読んでSwift言語への理解を深めてみました。 私個人のスキルでいうと、公式のThe Swift Programming Languageの2.1向けのものや、Functional Swiftとかの英語書籍を読んだり写経したりして簡単なSwiftプログラムを書いたり読んだりはできる感じです。iOSエンジニアとして会社でコードを書き続けているわけではないです。 内容は、うろ覚えだったり把握していなかったとところを補足することができ、言語自体の学びを整理することにとても役立つ書籍でした。iOS周辺の開発になると、こことは別にAPIへの理解も必要なのですが、私はそこはまだまだ足りていない… 全体的に、Swiftの様々な機能をどういう形で使うと良いのか、というところで参考になりました。以下、私が読んでいてメモしておきたかったところをメモしておきます。 2章 Swiftにおける範囲型、Optionalの話とか、復習になった。特に、 ? や ! のforce unwrapの話。実行時に評価されて無理やり値を取り出す ! と、 .none になる ? の話とか。 テストコードだと、例えばEarlGreyのようなやつだと実行時評価が必要なことが多く、 ! を使ったりしていた。けれど、Swiftの理想でいうとやっぱり ! は思想に反する(実行時にしか評価されないし、クラッシュするし)のでやぱりよくないのだなーと。 as? によるダウンキャストや as! as? によるアップキャストの話もちらほら。 3章 switch の制御で以下のようにかける形、Erlang/Elixirを学んでいたので自然な感じだった。こういうの書き始めると、Androidの世界にも時折欲しいと思う時がある… 繰り返しの for … in … {} は使ったこともあるのですが、 case 使う場合もinを支えたのですね。把握していなかった… switchの中、 break を置くことはよくやることですね。Javaとかやっていると。これ、breakしないと多くの場合は次々と case を実行していくのですが、swiftでは明示的に fallthrough を与えないといけないのですね。 あと、 breakやcontinueの遷移先を制御するために label をつけることができるとは知らなかった… 4章…More
[Appium][OSS]Thanks for t-shirt and stickers
A few months ago, I start maintaining Appium’s ruby-binding. Thanks so much! pic.twitter.com/gKgfsazbP0 — KazuCocoa (@Kazu_cocoa) February 11, 2017More
[java]Parameterized test with JUnit4.12
最近知ったのですが、JUnit4のParameterized.classに name 属性を付与できるようになったのですね。 https://github.com/junit-team/junit4/wiki/Parameterized-tests https://github.com/junit-team/junit4/wiki/Parameterized-tests#identify-individual-test-cases エラーの可読性などを見ると、組み合わせテスト用のDataPointsを使ってしまう面もありましたが、name属性が付与されるようになったことで、パラメータ化テストではParameterized.classをそのまま使えそう。 なるほどね…More
[Mac][RedwoodHQ]Run on Mac
RedwoodHQ on Macを過去書いた時点ではMacで動かすことができていなかったのですが、最近見て見るとLinux/Mac上でも動作するようになっていました。 http://redwoodhq.com/redwood-download/ からダウンロード・展開して、 を実行、 http://172.0.0.1:3000 へブラウザからアクセスする、です。私はNode 4.7.2で実行していました。 ちなみに、このRedwoodHQは以下にフォークされてPRなどが取り込まれていました。 https://github.com/wolterskluwer-redwoodhq/RedwoodHQ もともと作ってた人は退いたのかな。More
[Java][Android]Error patternを検出する
Google製のFindBugsみたいなもののようです。 http://yone098.hatenablog.com/entry/2017/01/27/115753 https://github.com/google/error-prone これのパターンに何があるのかは以下に書かれていました。 http://errorprone.info/bugpatterns ざっと見てみると、DaggerなどのDIツールを使っている時のルールもありました。 独自ルールも追加できるみたいですね。 なので、何らかの自社製ライブラリへ適合させる時も使いやすいのかな。 Bazelを見ると、Bazelではすでにこれが組み込まれてて、デフォルトONなのですね。 https://github.com/bazelbuild/bazel/blob/c4e92b1ba06fba48121e4db8050a69b6d998e2e9/src/java_tools/buildjar/java/com/google/devtools/build/buildjar/BazelJavaBuilder.java#L108 もう少し話がそれると、Bazelでは以下がデフォルトで組み込まれているのですね。 https://github.com/bazelbuild/bazel/blob/c51d506eb83f1e5974e3317c53532f6e81ca50d8/third_party/BUILD#L310 以下、試しに適用してみたコミットになります。 https://github.com/KazuCocoa/WebSocketDemoForAndroid/commit/806fe6cebef4e4c4435817b989fddf74724c55de これに対してビルドすると、generated codeに対してwarningが確認されました。 内容は http://errorprone.info/bugpattern/MissingOverride なのですが、ここら辺を見ているとGoogleのJava style gideに合致しているかも見ているのですね。More
[app]fuse
ちょうど、 https://www.fusetools.com/ というツールを見つけたので触ってみた。 期待としては、やっぱり簡単にアプリの雛形を作ることができ、その雛形を参考にAndroid/iOSの各プラットフォームでプロダクトを開発することができる状態でしょうか。 少し触った感じ、previewがうまく動かなかった… マシンスペックも関係するのか。。。 まだBetaなので、もう少ししたらまた触ってみよう。 こういうのを試してみようとした。 https://www.fusetools.com/examples/circle-menuMore
[iOS]run tests on simulators vol2
[iOS]Run multi simulators with FBSimulatorControl にも書いている、iOSシミュレータを1つのマシンで複数動作させるやつ。最近ではLinkedInからOSSが公開されましたね。Blogはこちら。スターも多く、さすがLinkedInという感じ。 社内で FBSimulatorControl ベースの複数シミュレータで実行する環境を作ろうと思っていたけれど、もっと素晴らしいものが世に出てきててオォォォという感じ…(私、価値出せてない…) ここら辺、実装能力が顕著に現れて私は本当にまだまだと思う一方です。。。 以下、以前からある類似のものをピックアップ。 類似 https://github.com/linkedin/bluepill https://github.com/plu/pxctest このeBayに属している方、とても価値出している… https://github.com/plu/parallel_ios_tests 以前はxctoolを使って並列実行をサンプルとして実施可能にしていたのですが、今はpxctestをベースにしているらしいですね https://github.com/facebook/FBSimulatorControl 過去のBlogにも書いやつ。最近のこれ系のツールはこれを基本としていることが多い。 これを実施していると、正直なところ並列実行できないCloud実行環境はイマイチですね。 ローカル環境強し。。。More
Architecture for GUI Testing(mobile)
In 2014, I talked about GUI testing architecture. 20141018 selenium appium_cookpad from Kazuaki Matsuo Recently, someone asks me about the architecture.So, I post the blog about it. The following flow means the architecture. I think this architecture is common if anyone uses libraries such as Cucmber. Scenario layer Describe scenarios. This layer depends on “User…More