とあるStartupに勤めるエンジニアの技術ブログ

Salesforce、テスト関係の技術ブログなどを書く予定

今年もあの季節がやってきました!

そう、技術系Advent Calendarの季節です。

普段あまりアウトプットしないエンジニアもこのときばかりはこぞって投稿します(もしろ、このときのためにブログを持っている人も何人か。。。)

 

ということで、今年はForce.com Advent Calendar改めSalesforce1 Advent Calendarを立ててみました!

 

Salesforce1 Advent Calendar 2014 - Qiita

 

昨年までより少し範囲を広げてForce.com から Salesforce1に。ついでにATNDからQiitaに。Salesforce1にかすってる投稿であればOKです(過去いくつか小説も…)。まだ半分ちょっとくらいなので、まだまだ参加者募集中です。

 

ちなみに、Salesforce DUG Tokyoでは、今年のDreamforceのMiniHackの問題をみんなでやってみるもくもく会(11/28)をやります。Advent Calendarネタは参加レポートでもよいかなと思います。

 

Salesforce DUG Tokyo DF14 MiniHack Moku-Moku Meetup - Salesforce DUG Japan | Doorkeeper


さぁ、みんなで盛り上げましょう!

Enjoy Advent Calendar!

 

最後に。。。
はてなブログのAndroidアプリが出たッ!

Salesforce DUG Tokyo #7に参加してきた!

Salesforce DUG [Tokyo] Meetup #7 - Salesforce DUG Japan | Doorkeeper
参加と言いながら、一応主催者側なので早めに開場入りしてセッティングから。今回は皆さま集まりが早い。

Winter'15リリースノート輪読(@yonet77さん)

DreamforceではLightingやWaveに話題をかっさらわれてあまり新機能がないかな、と思っていてもかなりのボリューム。アクションリンクやオンラインストレージとの連携は地味に普段の使い勝手がよくなりそうなところです。
パイロットのものも結構ありますが、Quick Deployとか早くリリースされるといいですね。

あと、全部やらせてしまって、すみません、すみません、すみません。

Do you known issues ? - Practical use of known issue -(@xlouderさん)

Known Issuesはとりあえずfeedlyに突っ込んでほぼ毎日見てます。
OEMパートナーとしてサポートもしていると結構見てないと、どきどきすることもあったりなかったりとか。レポーターが多いと早く直るかもしれないので、知人の人がレポーターにいたら手伝ってあげるといいかもですね。

$1 Million Hackthon Challenger(チーム、オークニーさん)

今回のHackthonは過酷なものになったようです。
いきなりSwiftBlueToothすれ違い通信に挑戦するとかなかなかのチャレンジャーだったりしたようですが、そのおかげもあって今回の発表内容はProjectXばりのアツい内容でした。

発表ではこんな言葉を残していました。
「体力的にも、メンタル的にも厳しかった…」
「笑顔が消えた…」
「寝袋持参はアメリカン・ジョークじゃなかった…」

もう涙なしでは…。

ついでにMVPな方々に英語でビジネスプラン含めてプレゼンするとかかなりハードな審査だった模様。結果は置いといて、確実に日本にもHackthonの経験が蓄積されているので、来年も頑張りましょう!(いつか参加できるのか。。。)

Dreamforce2014 ~Mini Hack~(@pomu0325さん)

Dreamforceの会場では、Demo Paloozaと呼ばれるハイテンションにS1活用事例をLT形式で発表するところがあるとか。
そして、主に「Mini Hack」のご紹介。なかなかコードレスで作るとかパズル要素があって面白そうです(普段から限界に挑戦していないと分からなそうですが。。。)。また似た問題に出くわすかもしれないので、要学習ですね!

中の人からSalesforce1 World Tour Tokyoについて

2014/12/4はSalesforce World Tour Tokyo - セールスフォース・ドットコムがあるので、空けておくようにとのこと!
なんだかここに書くのは憚れる内容だったので、あとはtwitterまとめでも見てください。

twitterまとめ

twitterのツイートをまとめました。編集可にしているので、追加・削除・デコよろしくお願いします!

enjoy meetup!

第2回 日本Seleniumユーザーコミュニティ勉強会に参加してみた

第2回 日本Seleniumユーザーコミュニティ勉強会 - connpass に参加しました!
「勉強会はブログを書くまで」ということで、ざっくりと感想まで。
ハッシュタグ#seleniumjp」に勉強会中のツイートが流れてます。

Seleniumをもっと知るための本の話(玉川竜司さん)

エンジニアたるもの英語情報を読むといいよ、というお話。耳が痛いですね。
英語の技術書を読むには、このあたりを利用するとよいそうです。特に、Safari Books Onlineについては定額サービスで面白いですね。

脱・独自改造!GebでWebDriverをもっとシンプルに(玉川紘子さん)

Geb(じぇぶ)の紹介でした。
WebDriverをJavaで書くとDOMを操作するときのような煩雑さがあり、テストコードが長くなってしまいがち。Gebを利用すると、要素検索などをjQueryライクに記述でき、かなりスッキリとしたテストコードが書けるとのこと。

GebはGroovyで利用するライブラリで、Javaで利用する場合はFluentLeniumがあるようです。

海外のSeleniumカンファレンスではどんな発表がされているのか2014(伊藤望さん)

Selenium Conference に動画や資料が上がっているので、見てみると面白いよ、というお話。
いろいろおもしろいタイトルの発表があるようです(笑)。

  • OSSを使い早く失敗するために、エンタープライズの雲の上に築かれたドラゴンをどう調教したか」
  • Seleniumのノードには、宝の島から海賊が奪った戦利品よりも素晴らしいお宝が眠っている」
ハイパフォーマンスSeleniumテスト@サイボウズ(宮田淳平さん)

Kintone中の人によるテスト自動化に関するお話。
Platformerということもあり、自動化には結構力が入っている感じでした。大規模なアプリケーションに対して、テストケースの軽量化、並列化を行って、テスト実行が30分以内で収めているところに並々ならぬ意気込みを感じました。

「テストコードの品質は製品のコードと同様に重要になってくる」

この言葉にはテスト自動化で苦労してきた重みを感じました。

社内勉強会で利用した書籍たち。

継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化

継続的デリバリー 信頼できるソフトウェアリリースのためのビルド・テスト・デプロイメントの自動化

実践アジャイルテスト テスターとアジャイルチームのための実践ガイド (IT Architects’Archive ソフトウェア開発の実践)

実践アジャイルテスト テスターとアジャイルチームのための実践ガイド (IT Architects’Archive ソフトウェア開発の実践)

クックパッドアプリの開発を支援するAppiumの話(松尾和昭さん)

クックパッド中の人によるモバイルアプリのテスト自動化に関するお話。
Appiumでテスト自動化する範囲、ユニットテストで自動化する範囲、人間系でテストする範囲を意識的に分けて、最適な分担を戦略的に考えているところは参考になりました。

感想

翻訳本執筆者、テスト自動化を支援する立場、プラットフォーマー、B2Cサービス提供者の違いが出て、楽しく聴くことができました。
特に、プラットフォーマーはバッチサイズを極力小さくするためにテスト実行時間にこだわるところ、B2Cサービス提供者はツールと人間のテストをうまく使い分ける戦略にこだわるところには哲学を感じました。

enjoy selenium!

Chatterが有効化されているか判定する

ChatterのプロファイルベースのロールアウトがSummer'14からGAとなりました(有効化するためにはサポートへの連絡が必要です)。
これによって、組織としてはChatterを有効化してもユーザレベルではChatterを無効化することができるようになりました。そのため、利用しているユーザがChatterを利用できるか判定するための方法が変わってきます。

ということで、Chatterが利用できるか判定する方法を調べてみました。

有効化していない場合

組織単位でChatterが有効化されているかチェックする

ConnectApi.OrganizationSettings o = ConnectApi.Organization.getSettings();
System.debug('Chatter=' + o.features.chatter);
有効化した場合

ユーザごとにChatterが有効化されているかチェックする

ConnectApi.UserSettings u = ConnectApi.Organization.getSettings().userSettings;
System.debug('Chatter=' + u.hasChatter);

基本的には、ConnectApiを叩けば値を取得できます。UserSettingsクラスのhasChatterはChatterのプロファイルベースのロールアウトを有効化していない状態でも値を取得できましたので、有効化した場合の書き方をしておけば、どちらの状況でも対応できそうです。

ただ、UserSettingsのhasChatterはAPIレファレンスに載っていないようなので今後変更になるかもしれません。

Enjoy Chatter!

2014/8/17追記:APIリファレンスに掲載されていることを確認

Salesforce DUG [Tokyo] Meetup #6 で輪読発表してきました!

Salesforce DUG [TOKYO] #6 Meetup に参加してきました。
f:id:a-kura:20140715190414j:plain

今回も会場は、株式会社セールスフォース・ドットコム社のセミナールームをお借りし、Pizza&Drinkもいただきました。いつもありがとうございます!

幹事メンバーは時間を過ぎて到着…。
ごめんなさい、ごめんなさい。次回はちゃんと会場設営手伝いますぅ。


ということで、御礼と謝罪が終わったとこで本題に。

全体の流れについては、なかやまろぐ
なかやまろぐ: Salesforce DUG [Tokyo] Meetup #6にいってきた!
を見てもらうとイラスト付きでわかりやすいので、そちらに譲ります。

Salesforce Summer'14がリリースされるので、新機能の輪読として「ISVforce」パートを担当しました。今回正式リリースになるUsage Metricsの落とし穴あたりを中心に発表しました。


さて、6/9のSalesforce1 Crowd Hack ChallengeのLTでは落選した挙句「安易に猫に逃げるのは…」と発想の陳腐さを斬り捨てられたわけですが、今回は「富豪プログラム…」との誹りを…。

うぅ…心が…。


でも、悪いことばかりじゃない。いいこともありました!
そう、@nakayama_sanイラスト描いてもらえました!ありがとうございます!

Enjoy Meetup!

Salesforce Developer User Group [Tokyo] Meetup #5 のまとめ

5/19 に開催されたAppExchange Developers Meetingの帰りがけにS1 DevWeekのおみやげをゲットしました!ビニールを開けるのがめんどうだったので…。
f:id:a-kura:20140520225914j:plain

(誰か郵送を頼んだ人いるのかな?)


せっかくブログを書くので、ついでにSalesforce Developer User Group Tokyo Meetup #5 の発表資料のまとめです。

Mobile HackChallengeエントリ紹介(1)
- pomu0325 Yaccl
- a_kuratani +Message(#寿司forceの楽しみ方)

Mobile HackChallengeエントリ紹介(2)
- stomita Salesforce1 最速経路
- i556 Inside Quizar
- yonet77 進捗どうですか?

6月の開発者向けイベントとスピーカーの公募のご案内
- mitsuhiro Salesforce1 Developer Week

LT
- Masato Setoyama Salesforceモバイル案件で経験した3つの難しい要件とその対応方法
- Masashi Nishiwaki Salesforce Mobile SDKにモノ申す!


6/9 には Salesforce1 Developers Community MAX が開催されます。Hack Challengeのテーマもこちらで発表されています。期間も短くテーマも多いので、高確率で賞金をゲットできるかもしれませんね!

Enjoy Hack Challenge!

Salesforce Developer User Group [Tokyo] Meetup #5で発表してきました!

技術的には話すことないので文字通りネタで埋め尽くしました(最後のページとか)。

発表資料「#寿司forceの楽しみ方」です

少しだけ補足。

技術的に話すことはない、と書きましたが、ちょっとだけ補足しておきますと、AngularとForce.comを組合せて実装する上で困難な課題やトピックがなかったということです。
一昔前から考えると、Force.com上でごく普通の技術を適用してごく普通に作れたことは、昔からやっているエンジニアから見ると逆に衝撃的なことなのかもしれません。

最後に、AngularJSについて。

AngularJSの特徴ですが、DOM操作なしでコーディングできるので、個人的にはかなり気持ちいいコーディングでした。

View(HTML/CSS)、Controller(JavaScript)、API(Apex)という分割も分かりやすくてよかったです。

AngularJSは学習曲線が2段階になっていて途中の停滞期がある、と聞きますが、今回のアプリでは停滞期を超えるほどの技術を利用していないです。なので、ページ再描画の仕組みとか、難読化対応などはまだ理解してないのです。

ただでさえ起動の遅いSalesforce1のWebViewで、重たいAngularJSを使うことの是非はありそうなので、もっと軽量なものを使ってもいいかもしれません。

注記

上記のことは、標準画面では満足できないときの開発よりの話です。VisualforceタグやAuraはユーザ自身が簡単なページを準備したり、標準画面に組み込んだりするために利用されると思います。

Enjoy #寿司force!