タグ

ブックマーク / techlife.cookpad.com (16)

  • インフラ新卒研修と社内ISUCONのはなし - クックパッド開発者ブログ

    インフラ部の荒井(@ryot_a_rai)です。 今年の4月、弊社には11名の新卒エンジニアが入社しました。そして現在、3ヶ月間の研修を受けています。ビジネスマナーから技術研修まで幅広く行われていますが、その中で5月下旬におこなったインフラ研修とその後の社内ISUCONについてご紹介します。 インフラ研修(講義) インフラ研修はインフラ部に配属されるエンジニアに限らず、全新卒エンジニアが参加する研修です。日常業務でコードを書いてサービスを開発していくうえで知っておいてほしい、インフラに関する基礎知識や共通言語を獲得することを目的としています。合計3日間をインフラ部の@kani_bと分担して講義しました。研修内容の内容はざっくりと以下のようなものです。 1日目 インターネットとは ブラウザでウェブサイトを閲覧する際になにが起きているのか IPからHTTPまでざっくりと Webインフラアーキテ

    インフラ新卒研修と社内ISUCONのはなし - クックパッド開発者ブログ
  • 日本語形態素解析の裏側を覗く!MeCab はどのように形態素解析しているか - クックパッド開発者ブログ

    こんにちは、買物情報事業部の荒引 (@a_bicky) です。 前回、「検索結果の疑問を解消するための検索の基礎」で単語単位でインデキシングする前提で説明しましたが、今回は文などを単語単位で分割するために使う技術である形態素解析について触れます。 形態素解析器には色々ありますが、中でもメジャーと思われる MeCab の仕組みについて説明します。 MeCab の解析精度を上げるために辞書に単語を追加したことのある方もいると思いますが、動作原理を理解することで単語を追加する際に適切な生起コストを設定できるようになったり、学習の際に適切なパラメータを設定できるようになったりするはずです。 なお、MeCab は汎用テキスト変換ツールとしても使用できます が、簡単のため MeCab + IPA 辞書のデフォルト設定前提で説明します。 アジェンダ 形態素解析とは MeCab における最適な解析結果の推

    日本語形態素解析の裏側を覗く!MeCab はどのように形態素解析しているか - クックパッド開発者ブログ
  • 開発の見積もりとスケジュール管理 - クックパッド開発者ブログ

    こんにちは。会員事業部の丸山です。 エンジニアが開発を開始する時にはタスクの見積もりとスケジュールを作成行って、実装を進めていくと思います。 しかし1ヶ月を超えるような規模の開発をする場合、なかなか予定通りの期日に終わらなかったりすると思います。 そして大抵の場合、増える方向になりますよね。 今回はそういうことにならないために、私が気をつけていること・実践していることをいくつか紹介したいと思います。 見積もりとは まずは「見積もり」とは何なのかを正しく理解したいと思います。 一般的には「見積もり」=「全タスクとその工数を洗い出す」というものだと思います。 しかしここで以下のことに気をつける必要があります。 見積もりとスケジュールとコミットメントは違う 見積もりとはあるタスクがどれだけの工数(規模)なのかを算出することです。 対して、スケジュールとはあるタスクがどれだけの工期(期間)なのかを

    開発の見積もりとスケジュール管理 - クックパッド開発者ブログ
  • インフラエンジニアの責任範囲と評価 - クックパッド開発者ブログ

    インフラストラクチャー部の成田です。2015年10月現在、インフラストラクチャー部には私を含め7人のインフラエンジニアが所属しており、このメンバーでクックパッド体サービスをはじめ様々な新規事業やいくつかの子会社のサーバを運用しています。私自身もエンジニアではありますが部のマネージャも兼ねているため、立場上、社外の方からインフラエンジニアのマネジメントについて質問されることがよくあります。今回は、私自身の考え方とクックパッド社における事例を紹介したいと思います。 「インフラエンジニア」とは 「インフラエンジニア」という言葉の定義はあいまいで、しばしば議論の的になります。傍目からは明らかにインフラエンジニアであるように見えるにも関わらず「私はインフラエンジニアでは無い」と主張する人たちもいます。このような状況になっているのは、サーバ運用に関する業務分掌が会社ごとに異なるからであると私は考えて

    インフラエンジニアの責任範囲と評価 - クックパッド開発者ブログ
  • いまさら聞けない「コードの英語」超入門 - クックパッド開発者ブログ

    広告事業部の鈴木達矢です。コーディングをしてると変数やメソッド名の付け方に悩むことって多々ありますよね。逆にコードを読んでいると単語の選択がこれでいいのかなという時や、動詞の活用形が間違っていてよく意味がわからない、時に潔く日語の変数名になっていることも見かけます。でもプログラミング言語の単語が英語をベースにしていますし、Railsを使っている場合は日語が規約(Convention)に合わなかったりします(複数形が無いなど)。それから動詞の活用形が違っていると主語(動作の主体)が変わってしまい、意味が変わってしまいます。その結果コードの可読性が落ち混乱を招きやすくなります。 いくつかの基的な法則だけおさえておけばコーディング中に可読性の高い単語の選択ができるようになります。今回はそれを目的に、英語の扱いに都度時間を費やしてしまうような方に向けていくつかの法則をご紹介します。*1 変数

    いまさら聞けない「コードの英語」超入門 - クックパッド開発者ブログ
  • ブラウザ拡張を用いた業務改善手法 - クックパッド開発者ブログ

    買物情報事業部の根岸(@negipo)です。今回はブラウザ拡張を日常業務でどう使っているかについて紹介します。 ブラウザ拡張とは ブラウザ拡張は、ブラウザによるウェブとのインターフェースをJavaScriptCSSを用いて自分好みにカスタマイズする機能です。Google Chromeを利用していればChromeウェブストアなどで公開されている拡張をインストールできるでしょう。一方で、開発したブラウザ拡張を自分で使うために、Chromeウェブストアによる公開と言うプロセスを踏むのは面倒です。日常的にウェブのインターフェースを改変する道具としてブラウザ拡張を使うためにはいくつかの手法がありますが、僕はGithubのdefunktさんが作ったdotjsを使っています。詳細は省きますが、今開いているページでalertを出すぐらいの機能であれば10秒で開発作業を終えることができると思います。 また

    ブラウザ拡張を用いた業務改善手法 - クックパッド開発者ブログ
  • クックパッドにおけるサーバ監視と運用の工夫 - クックパッド開発者ブログ

    こんにちは。インフラストラクチャー部の加藤(@EugeneK)です。 今回はWebサービスを運用する上で欠かせない、モニタリングをクックパッドでどうしているかという話をします。 死活監視と性能監視 Webサービスを運用している以上、そのサービスを稼働しているサーバがあり、サーバには故障やトラブルが発生します。 また、どれくらいのパフォーマンスが出ているか、リソースをどのくらい消費しているかなどのトレンドを把握することは、成長するサービスを支えていく上で欠かせません。 故障やトラブルにいち早く気づくための仕組みを死活監視と言います。 また、サーバリソースの時系列での推移を知るために、グラフとしてトレンドを可視化する仕組みを性能監視と言います。 ポーリング監視の限界とZabbixのアクティブ監視 クックパッドでは死活監視にNagios、性能監視にMuninを使用してきましたが、サーバ台数の増加

    クックパッドにおけるサーバ監視と運用の工夫 - クックパッド開発者ブログ
  • クックパッドの課金を支える技術 - クックパッド開発者ブログ

    こんにちは、技術部の大石です。開発基盤グループで課金システムの担当をしています。 インターネットサービスの決済・課金システムの開発や運用は、サービスの根幹を支えるために正確性と機能性を満たさなくてはなりません。また同時に、価格や料金体系、決済手段のバリエーションでユーザーに利便性を提供する必要もあります。「堅牢性」「信頼性」と「柔軟性」「開発スピード」という相反する要素の両立が求められます。 その結果、決済・課金システムは適切な設計や運用を意識しないと複雑になってしまいがちです。 課金システムの開発、運用でよくある問題 複数の決済方法を同じサービスの上で共存させる難しさ 例えば、最初にクレジットカード決済を導入して、その後にコンビニ決済、キャリア決済やアプリ内決済と決済方法が増えていくことはよくあることです。 最初の導入の際にクレジットカード決済への設計だけでなく、その後に増えていく決済を

    クックパッドの課金を支える技術 - クックパッド開発者ブログ
  • 新卒ソフトウェアエンジニアのための技術書100冊 - クックパッド開発者ブログ

    こんにちは、技術部 高井です。 春といえば、フレッシュマンの季節ですね。このブログを読む方の中には、明日からエンジニアとして新社会人になるという方もいらっしゃるのではないでしょうか。クックパッドでも新しい仲間を迎えるための準備をしていたところで、その準備の一環として「新卒ソフトウェアエンジニアのための技術書100冊」というものを作成しました。 この100冊は、職業ソフトウェアエンジニアとしてキャリアを積むにあたって、読むべき技術書に悩んだら、まずはこのリストから選ぶとよいのではないでしょうかという提案です。 リストに多少の趣味や主張がはいっているのは、まあご愛嬌ということでお許しいただければとおもいますが、職業プログラマとして知っておくべき知識を網羅できるように心がけました。古典と呼ばれる名著についてはできるだけ取りいれ、独習が難しい難解なコンピュータサイエンスの教科書は避けています。これ

    新卒ソフトウェアエンジニアのための技術書100冊 - クックパッド開発者ブログ
    Takao
    Takao 2015/04/08
  • フェーズと目的に応じたプロトタイピングの手法と意味 - クックパッド開発者ブログ

    こんにちは。ユーザーファースト推進室の元山です。 みなさんはスマートフォンアプリケーションやWebサービスの開発・改善をするときにどのようなプロセスで行っているでしょうか?アジャイルやリーンなどの最近では一般的なよくある開発プロセスの中で、今やプロトタイピングは当たり前に行うものとなっていると思います。プロトタイピングを支援するアプリやWebサービスも数多くありますが、ただ闇雲にプロトタイプを作ればいいわけではありませんし、プロトタイプモックを作ること自体が目的化されては意味がありません。 クックパッドでもプロトタイピングを取り入れた開発プロセスを行っていますが、開発のフェーズであったり、または目的によってどのようなアウトプットとしてプロトタイピングするのかは変わってくると思います。今回はクックパッドで実際に行っているプロトタイピングについてフェーズや目的ごとにご紹介しようと思います。 コ

    フェーズと目的に応じたプロトタイピングの手法と意味 - クックパッド開発者ブログ
  • スマートフォンWebのフロントエンドを高速化する取り組み - クックパッド開発者ブログ

    ユーザファースト推進部の丸山(@h13i32maru)です。 先日「撮るレシピ」というサービスを cookpad.com にて公開しました。「撮るレシピ」というサービスは料理や雑誌のレシピを写真に撮ってクックパッド上に保存できるというものです。料理や雑誌でレシピを良く見る方はぜひ使ってみてください(Androidアプリ版もあります)。 この「撮るレシピ」は全体公開前に一部のユーザに限定公開をしていました。そして全体公開をするにあたりフロント側のコードを全面的に書き換え高速化を行いました。その結果、最大で30倍高速化することができユーザの使い勝手が向上しました。以下が「書き換え前」と「書き換え後」の計測結果です(Android端末8機種 + iOS3機種で各操作のターンアラウンド時間*1を計測)。 閲覧系 最大: 30倍高速化(4.2秒→0.14秒) 平均: 15.7倍高速化(3.6秒→

    スマートフォンWebのフロントエンドを高速化する取り組み - クックパッド開発者ブログ
  • 料理動画を支える技術 - クックパッド開発者ブログ

    インフラストラクチャー部 星野(@con_mame)です。 少し前から、一部レシピページに料理動画を掲載していました。当初はYoutubeを使用していましたが、日から自社配信に切り替わりました。現在はまだ掲載数は少ないですが、今後掲載数を増やしていきたいと考えております。 そこで、今回は、動画配信プラットフォームの裏側がどうなっているかという点を簡単にですがご紹介したいと思います。 構成図 構成図を見ていただくのが一番わかり易いと思うので、最初に掲載します。 見て分かる通り、今回は全てAWSのサービスを使用して構築しています。 今回使用したサービスは エンコード: Elastic Transcoder データストア: DynamoDB + DynamicDynamoDB ストレージ・配信: S3 + CloudFront エンコード通知など: SNS 今回、構築までの期間とエンコードや動

    料理動画を支える技術 - クックパッド開発者ブログ
  • クックパッドインフラ勉強会 - クックパッド開発者ブログ

    クックパッドでインフラ勉強会を開催します! 当日は、AWS移行をきっかけに取り組んだ技術や、今までに培った技術をご紹介します。閉会後は懇親会を予定しておりますので、忌憚ない意見交換の場にできれば幸いです。 ※プレゼンタイトルは決定次第随時アップ致します。 ■発表内容/発表者 「ゴシッププロトコルによる冗長化と負荷分散の検証」 菅原 元気 (@kingerawagasu) 技術部インフラストラクチャーグループ グループリーダー 「今日からできるApacheモジュール開発と運用」 成田 一生 (@mirakui技術部インフラストラクチャーグループ 「AWSの負荷分散」 高田 悟史 (@satoship) 技術部インフラストラクチャーグループ 「10+ Deploys Per Day: クックパッドの場合」 濱崎 健吾 (@hmsk) Happy Author部 Happy Authorグル

    クックパッドインフラ勉強会 - クックパッド開発者ブログ
  • 資料公開:AWS移行に向けたクックパッドの取り組み  (クラウドアドバンテージセミナー) - クックパッド開発者ブログ

    2011年4月6日に開催されたアマゾンウェブサービスクラウドアドバンテージセミナーで弊社技術部インフラグループリーダーの菅原元気が事例セッションを行いました。 お忙しい中お集まりくださった参加者の皆さまには感謝するとともに、 ご参加いただけなかった方々の為に資料を公開します。 ぜひご覧ください。 [slideshare id=7595339&doc=aws-110411224602-phpapp01] 資料がAWS活用の参考事例の一つになれれば幸いです。 今後も外部で発表させていただいた資料などは随時公開して参ります。 このたびは、誠にありがとうございました。

    資料公開:AWS移行に向けたクックパッドの取り組み  (クラウドアドバンテージセミナー) - クックパッド開発者ブログ
  • 資料を公開しました(グリー×クックパッド合同勉強会~それぞれのスマートフォン開発~) - クックパッド開発者ブログ

    3月2日に、グリー×クックパッド合同勉強会を開催致しました。 お忙しい中お集まりくださった参加者のみなさま、GREEのみなさま、誠にありがとうございました。 弊社会員事業部 西岡の資料を公開しますので、ぜひご覧ください。 [slideshare id=7119973&doc=2011-03-02-gree2-110302074812-phpapp02] ※ジュリアンの発表はスライドを使用しておりません。ご了承ください。 このイベントが、スマートフォンを利用した素敵なサービスが生まれるきっかけのひとつになれれば幸いです。今後もこういった技術系イベントを定期的に開催する予定ですので、奮ってご参加ください! ありがとうございました。

    資料を公開しました(グリー×クックパッド合同勉強会~それぞれのスマートフォン開発~) - クックパッド開発者ブログ
  • Hadoopを業務で使ってみた話 - クックパッド開発者ブログ

    8月に入社した佐々木です。こんにちわ! 入社してからはHadoopを使うことが多く、日々、大規模データと格闘しています。大変ではありますが、個人ではなかなか触ることが出来ないような大規模データを触れるのは楽しいです。 さて、Hadoopは最近色々なところで使われ始めてきていると思うんですが、実際に利用してみて困った事やtipsなど、実践的な情報はまだあまり公開されていません。その辺の情報をみんな求めているはず…!! そこで、僕が実際に触ってみて困った事やHadoopを使う上でポイントだと思ったことなどを社内勉強会で発表したので公開してみます。Hadoopを使っている(使いたいと思っている)方の参考になれば幸いです。 [slideshare id=2711363&doc=20091214techblog-091213183529-phpapp02] Hadoopの利用はまだまだ試行錯誤の連続

    Hadoopを業務で使ってみた話 - クックパッド開発者ブログ
  • 1