* ハッカソンに行ってきた
Feb 19 2014
ハッカソンに行ってきました。
ある企業の選考の一貫で、2日間のハッカソンに行ってきました。
情報を公開していいのかわからない(というか内容漏らすなみたいなやつ書いた)ので詳細は話しませんが、優勝することができました。
とはいえ技術力が他チームより勝っていたというよりはアイディアでウケを取ったという感じになると思います。
賞品がトロフィーと好きな技術書2冊という素晴らしすぎるものでした。感謝。
人生で初トロフィーというね。
一緒に開発した相方やコミュ障の僕にも仲良くしてくれた参加者各位の皆様、本当にありがとうございましたm(_ _*)m
何作ったん?
ハッカソンのテーマは、社内オンリーのAPIを使って何か開発しろ!というかなりフリーなテーマ。
APIを使う縛りもないし特にテーマもなし。
ただ、「なぜそのサービスを作ったのか」が発表要項に入っていたのでサービスであるという前提はありますね(当たり前か)。
最初の2時間でうだうだ考えて出てきたのが
”使ってる化粧品からその女性が1ヶ月にかけてる化粧代、また、その女の子とデートに行く時にかけるべきデート代を計算します”
なんという性格の悪い。笑
けどおもしろいねってなって開発。
僕は基本的に裏側ーAPI使って情報引っ張ってきて整形するインターフェースをひたすら書いてました。
APIの使用がGETリクエストとパラメータを送るとJSONが返ってくるって感じだったので、まぁ下みたいな感じに。
/* 商品の検索情報を返す */ public function getProductInfo($product) { $url = "指定されたURL"; /* Request Paramater */ $fw = "?fw=".urlencode($product); $url = $url.$fw.$this->request_id; /* GET */ $response = file_get_contents($url); $json = json_decode($response); /* Response array */ $name = array(); $company = array(); $img_url = array(); $price = array(); $capacity = array(); $category_id = array(); $brand_name = array(); $product_id = array(); $s = 0; for($i=0;$i<10;$i++){ $j_result = $json->result[$i]; $name[] = $j_result->product_name; $company[] = $j_result->maker_name; $img_url[] = $j_result->image_url; /* parse */ $list = explode("・",$j_result->volume_price_label); if($list){ if(count($list) == 2) { $price[] = $list[1]; $capacity[] = $list[0]; } else if(strpos($list[0],"ml") !== FALSE){ $price[] = ""; $capacity[] = $list[0]; } else { $price[] = $list[0]; $capacity[] = ""; } } $category_id[] = $j_result->item_categories[0]->second_category_name; $brand_name[] = $j_result->brand_name; $product_id[] = $j_result->product_id; } $result = array($name, $company, $img_url, $price, $capacity, $category_id, $brand_name, $product_id); return $result; }
こんな感じで指定された単語をパラメータにGETリクエストを飛ばし、返ってきたJSONを整形して返すだけの簡単なお仕事。
を5個くらい作りました。笑
楽しかった。
ただ、json_decode()
関数を使うと返ってくるのがobject(stdClass)
とかいうよくわからん型で最初苦労したのですが、終わった後にメンターの方にその話をしたら
「え、確か引数でarray()型で返ってくるように指定できなかったっけ?」
え、マジで。
で、調べてみたらありました。
どうやら第2引数にtrueを入れなきゃダメみたいですね。
json_decode($json) -> ☓
json_decode($json, true) -> ◯
教訓:ドキュメントはちゃんと読もう
時間ないと焦っておろそかになりがちだけど、やっぱりちゃんと仕様を確認することは大事ですね。
動けばなんぼってのもあるけどなんで動いてるのか分からないとそれは進歩と言えるのかどうか。
まぁとにかく
とても楽しい2日間でした。
ここの会社さんは次で最終面接なので頑張ります。頑張ります。
ではまた。
※この記事は WordPress に投稿した記事を変換したものです。一部不自然な表示があるかも知れません。ご了承ください。また、記事タイトル先頭の * は WordPress から移行した記事である印です。