読者です 読者をやめる 読者になる 読者になる

/home/by-natures/dev*

ソフトウェア開発者として働く人の技術的なメモ

「第3弾 週末ランサーズ」に参加しました

「週末ランサーズ」とは…

普段WEBサービスを作る若手エンジニアの方たちが集まり、技術について語り、開発し、交流を深めることを目的とする勉強会です。

ということで、ランサーズ株式会社さんが主催しているエンジニア向けの勉強会です。

まだ始まったばかりで試行錯誤している途中とのことですが、数時間程度のハッカソン(もくもく会)や、その結果を披露しあえるなど、他のイベントよりも参加者同士の交流が深まるイベントだと感じました。

週末ランサーズの第3回に、会社の先輩から紹介を受けて参加してきたので、その様子をお伝えいたします。

AngularJS の紹介

Lang-8 のささたつ(@sasata299)さんは、AngularJS の紹介をしました。

AngularJS は JavaScriptフレームワークで、一言で言えば jQuery で出来ることをより簡単に行えるようです。同様のフレームワークには Backbone.js, Knockout などのフレームワークがありますが、ささたつさんは Google 社が開発しているという信頼性から、AngularJS を選択したとのこと。

jQuery で出来るのにわざわざ AngularJS を使う理由として、jQuery は複雑でコードが読みづらくなりがちであることと、DOM の変更に弱いことを挙げました。特に DOM の変更について、jQuery では DOM を検索してから操作を行う必要があり、jQuery 側で HTML を常に意識する必要があります。しかし、AngularJS では DOM 検索の必要がなく、記述方法が簡潔です。

例として、ボタンを押したときにテキストの★を増やす、簡単なサンプルを見てみましょう(私が適当に作ったサンプルです):

function toggleButtonTextCtrl($scope) {
  $scope.stars = "★";
  $scope.buttonName = "click to add a star";
  $scope.toggle = function() {
    $scope.stars = $scope.stars + "★";
  };
}

{{stars}}

{{stars}}

このように、HTML 側では JavaScript 側の変数を二重カッコ {{ }} でくくったりして指定します。HTML と JavaScript の対応はこれで取れており、HTML は HTML, JavaScriptJavaScript にのみ処理を専念することが可能です。

他にも多様な機能があるため、JavaScriptフレームワークを検討されている方は、簡単に使えてパワフルな AngularJS を検討してみてください。

サクラの専用サーバからAWSに移行したお話

ランサーズの秋好聡さんは、自社のクラウドソーシングサービス「ランサーズ」を、オンプレ環境から AWS 環境へ移行した話をしました。

移行の理由としては、さくらインターネットのオンプレ環境を契約していたものの、契約上サーバ台数に上限があってこれ以上スケールできなかったことや、テレビ放映などの突発的なアクセス増に耐えるべく、AWS のスケーラビリティを活用したいとのことでした。サービスリリース当初はオンプレサーバ1台で運用しており、現在では20台を超える EC2 インスタンスで運用を行っています。

興味深かったのは、オンプレ環境と AWS 環境での性能差です。やはりオンプレ環境の方が性能は良いとのことで、特に I/O 速度が顕著だとのことでした。秋好聡さん曰く、5倍程度の開きがあるとのこと。オンプレ環境で4台で運用していたのを、AWS 移行時には 7台で対応していたことから、やや AWS の方が台数がかさむことが伺えます。

料金についても、同じ規模感であれば AWS だと 1.2〜1.5 倍ほど費用がかかってしまうと仰っていました。しかし AWS は定期的に値下げを行っており、リザーブ度インスタンスなど料金を安くする方法も多いため、今後も AWS を積極的に活用していくとのことでした。

ハッカソン

最後に、約2時間のハッカソンがありました。チームではなく個人で取り組むため、もくもく会と言った方がイメージが近いかもしれません。

今回のお題は「コミュニケーションツールを作ろう!」。お題はこれだけで、何を作ってもよいとのことでした。私は AngularJS について紹介があったので、これを機に触ってみようと思い、AngularJS を使ってブログに関する機能拡張をしようと取り組みました。

当初案では AngularJS で制御されたボタンをクリックすると、Twitter 投稿画面が立ち上がって、ブログ著者(つまり私)宛にツイートが送れるような機能を描いていました。しかし初めて使う AngularJS で戸惑うことが多く、ドキュメントや FAQ を漁っていたり、ブラウザ互換問題などにぶつかったりしている間に時間がきてしまいました。

2時間はあっと言う間で、知らない技術に触れてみたり、環境を準備する必要があった方は(私も含めて)それだけで時間が終わってしまう方もいました。しかし与えられた2時間で各自が何を考えて、何を作ったのか(もしくは作ろうとして作れなかったのか)を発表しあうことで、他のエンジニアの方達の考え方や取り組み方法などが分かり、とても面白かったです。

出てきた要素技術としては、AngularJS, node.js, twillio, twitter, facebook, Unity などが挙がりました。「コミュニケーションは苦手なので、R で LISP インタプリタを拡張した」という面白い方も。

参加者同士でコミュニケーションが取れるイベントは、懇親会がとても盛り上がります。この「週末ランサーズ」も例に漏れず、非常に盛り上がりました。特に今回の参加者は保有技術が富んでおり、普段の業務内容などを聞いたり話したりするのがとても面白かったです。

勉強会の参加自体が初めてという方も多かったのですが、初めての方でも楽しめるイベントでした。ランサーズさんに興味があったり、勉強会に行ってみたいと思っている方、本格的なハッカソンは緊張するけど、体験してみたい!という方にはオススメのイベントです。ランサーズさんも勉強会に力を入れていると仰っていたので、第4回以降の参加を検討してみてはいかがでしょうか。