タグ

ブックマーク / blog.recruit.co.jp (20)

  • CI での Docker Build のベストプラクティスを考えてみた

    要約 Docker in Docker な CI では、以下の Docker Build をオススメします。 スクリプト Buildx を使う Buildx を使えないならば、BuildKit + –cache-fromオプションを使う Dockerfile ステージ間の依存を弱くする(依存インストールとビルドを分ける) 中間イメージも軽量化する 不要なキャッシュを削除 ファイル変更差分によりますが、これらにより最大 1/3 へビルド時間を短縮しました。 はじめに 『ホットペッパービューティー』美容クリニックのカウンセリング予約サービスのバックエンドを担当している安達です。 新卒として 4 月に入社して、5 月中旬に美容クリニックに配属され、すでに約 4 ヶ月が過ぎました。 まず、チーム内で自分が活躍できる庭を作りたかったため Docker について詳しくなろうと思いました。 そこで、CI

    CI での Docker Build のベストプラクティスを考えてみた
  • 「ホットペッパービューティー」美容クリニックでのElasticsearchのユーザー辞書登録による検索改善

    クリニック検索では、Ngramと形態素解析を併用することにより検索結果のヒット数を担保しつつ検索ノイズの増加による悪影響をスコアソートにより軽微なものに抑えています。 施術メニューピックアップのための全文検索では、検索ノイズが少ない形態素解析のみを利用しています。 美容クリニックでの検索における問題 形態素解析では、辞書に含まれている単語の集合に基づいて形態素が認識されます。 Sudachiの辞書において美容医療の専門用語が網羅されておらず、問題が発生します。 形態素解析で専門用語がカバーされていない問題 上記の表の通り、形態素解析では検索漏れが多いです。 例えば、「ダーマペン」は美容医療では人気な単語ですが、Sudachiに搭載されているデフォルトの辞書ではカバーされていないので、形態素として抽出されません。 形態素解析で期待通り認識・分割されない問題 「二重」が「フタエ」でなく「ニジュ

    「ホットペッパービューティー」美容クリニックでのElasticsearchのユーザー辞書登録による検索改善
  • フォームが多いアプリケーションの UX 改善 | Recruit Tech Blog

    はじめに はじめまして、今年のRecruit Job for Student 2020 で Web フロントエンドエンジニアとしてアルバイトをしていた井関です。 私は 1 ヶ月のアルバイト期間で、あるプロジェクトに参画してユーザー体験 (以下 UX) を改善する取り組みを行いました。今回改善していたアプリケーションは、目的を達成するまでに入力しなければならないフォームがとても多い、正確な入力が要求される、利用者がとても多いという特徴があります。この特徴に沿って、多くのユーザーがより快適に正しく入力できるフォームを目指して様々な施策を行ったので、調査から改善までの手順や具体的な改善例を開発者の目線から紹介します。 想定読者 UI / UX に興味がある開発者 フォームの改善に興味がある開発者 目次 調査方法 改善のプロセス 実際に見つかった問題と改善例 フォーカスとアウトライン表示 フォーム

    フォームが多いアプリケーションの UX 改善 | Recruit Tech Blog
    tomiyanx
    tomiyanx 2020/10/11
  • SUUMOにおける継続的なパフォーマンス改善の取り組み | Recruit Tech Blog

    web vitailsはchrome extentionを使って簡単に計測できます。 広告への影響 ・リスティング広告の表示順位、ROIに影響する(出典) -Googleのメディアには、「広告と速度は密接に関連しており、ランディングページが高速であるほど、ROIが向上します」と記載がある ・chrome83から重たいディスプレイ広告をブロックする(出典) -デバイスのリソースを過度に消費する広告は、バッテリーの消耗や帯域幅の許容量の消費など、UXに悪影響を及ぼします。そのため、いずれかを満たす広告はブロックされます。 -メインスレッドを合計60秒以上使用する -メインスレッドを30秒のウィンドウで15秒以上使用する -4メガバイト以上のネットワーク帯域幅を使用 このように、パフォーマンスが重要視される中で、SUUMOがどのように継続的なパフォーマンス維持・改善活動を行なっているのか紹介して

    SUUMOにおける継続的なパフォーマンス改善の取り組み | Recruit Tech Blog
    tomiyanx
    tomiyanx 2020/08/07
  • CircleCI 2.1 の新機能を使って冗長な config.yml をすっきりさせよう! – PSYENCE:MEDIA

    CircleCI 2.1 の新機能を使って冗長な config.yml をすっきりさせよう! 福井祐人 2018.10.11 280 585115102 こんにちは。スタディサプリ English の開発を担当しているwebフロントエンドエンジニアの福井です。 CircleCI で 2.1 configuration がプレビューとして使えるようになりました。試しに使ってみたところ冗長なconfig.ymlが ものすごくすっきりした ので簡単な例を交えて紹介します。 参考 CircleCI-Public/config-preview-sdk CircleCI new configuration documentation 2.0 の冗長な config.yml 今回用意したconfig.ymlはwebフロントエンドの典型的な例で、下記のような流れで順次ジョブを実行します。 setup -

    CircleCI 2.1 の新機能を使って冗長な config.yml をすっきりさせよう! – PSYENCE:MEDIA
  • リクルートテクノロジーズ エンジニアコース新人研修の内容を公開します(2018年度版) | Recruit Tech Blog

    こんにちは、フロントエンド開発をリーディングしている古川 (@yosuke_furukawa)です。 昨年、こちらのブログで新人研修の特別講座の内容を紹介したところ、大反響だったので、今年も公開します。 リクルートテクノロジーズの新人研修 7月、リクルートテクノロジーズは新人の部署配属の季節を迎えました。 4月に(株)リクルートの新卒Web採用枠で入社した新人のうち、今年は20名が弊社に配属。3か月の研修期間を経て、早速現場での業務にあたってくれています。 リクルートテクノロジーズでは、配属までの3か月間「ブートキャンプ」という技術研修を実施しています。 ブートキャンプのコースは2つ。 一つは、プログラミングやWebサービスの構造の基礎を学び、その後1つのスマホサイトを企画からリリースまで行うコース。 もう一つは一定以上のプログラミングスキルと開発経験のある層向けに、より現場での技術に即し

    リクルートテクノロジーズ エンジニアコース新人研修の内容を公開します(2018年度版) | Recruit Tech Blog
    tomiyanx
    tomiyanx 2018/07/26
  • ECSを運用している中でAWSのVPCのCIDRを変えずに使用するIPアドレス減らしていく方法

    そこで、開発環境やステージング環境は可用性を妥協できるのでSpot Fleetで安いお値段で強いインスタンスをたてるという方針にして、これでインスタンスの個数を大分減らすことができました。 対応策2: ALBのルールベースの振り分けを使う ECSのサービスは基的にロードバランサーがないと使えない仕組みになってます。『基的』と言ったのは、なくても動くっちゃ動くという意味です。ただし、動的ポートマッピングされたコンテナのヘルスチェックやサービスディスカバリなど、現状ロードバランサーがやってくれることを自分でこなす必要があります。 ECSで運用する場合、通常httpやhttpsで通信するサービスはL7のロードバランサーであるALBを使うわけですが、今まではALB : ECS service = 1 : 1の関係で作っていました。しかしこれでは、apiやadminみたいなサービスが増えるたびに

    ECSを運用している中でAWSのVPCのCIDRを変えずに使用するIPアドレス減らしていく方法
  • リクルート流SRE・インフラ運用がサービスを変える世界"を講演しました" | Recruit Tech Blog

    SRE部シニアマネジャーの河村です。6月8日に、@IT編集部主催の「SREのエンタープライズ適用を考える」において、特別講演を行いましたので、その内容について共有します。 当初講演のお話を頂いた時から、今回聴講頂いた方々に何か持って帰ってもらえるような話をしたい、という思いを込めて発表内容を決めていきました。 特に、運用・オペレーションというものは、比較的地味な印象を持たれていると思いますし、一旦手順としてルールが与えられると簡単には変えがたいものと思われるでしょう。 しかし、どんな環境であっても、どんな人でも、運用に対して技術的な取り組みは可能ですし、様々な方法や視点で改善を盛り込んでいけるクリエイティブなものであるという事を中心に据えてお話しすることにしました。 SREとは、簡単に説明すると、サイト信頼性の向上を命題におき、運用オペレーションにソフトウェアの知識を持ち込む事で、自動化や

    リクルート流SRE・インフラ運用がサービスを変える世界"を講演しました" | Recruit Tech Blog
    tomiyanx
    tomiyanx 2018/06/13
  • すくすく!子育てエンジニアMeetup #2を開催しました! | PSYENCE:MEDIA

    こんにちは!英語学習Gの浅井です。2018年4月3日(火)に すくすく!子育てエンジニアMeetup #2 を開催しましたので、その様子をレポートします。 すくすく!子育てエンジニアMeetupとは? その名の通り、絶賛子育て中または子育てに興味があるエンジニアが集まるMeetupです。家庭や育児において大変なことをエンジニアリングによって解決しようとしている人が集まったら面白くなるのでは?というところから発足しました。実際何かを作って家庭内で利用しています!だとか、既存技術の組み合わせで育児や家事をハックしています!なんていう話をみんなで共有・発信しようというのがコンセプトです。 このMeetupには、他の勉強会とはちょっと変わった以下のような特徴があります。 早い時間帯に開催します アルコールなどは出しません とにかく早く家に帰りたいという強い意思を反映しています。今回は17:00開始

    すくすく!子育てエンジニアMeetup #2を開催しました! | PSYENCE:MEDIA
    tomiyanx
    tomiyanx 2018/04/10
  • ULTRABeerBashで『大規模サービスのリプレイスへの道』と題して登壇してきました

    はじめに こんにちは。ビューティー事業ユニットプロダクト開発グループでマネジャーをしている小川です。 先月のことではありますが、ホットペッパービューティーというサービスで取り組んでいるシステムのリプレイスについて ULTRABeerBash でお話してきました。 ULTRABeerBashとは ビズリーチ社が主催する、ビールをのみながら、技術、知識、経験、哲学を共有するイベントです。 詳細については、ULTRABeerBash公式サイトをご覧ください。 ホットペッパービューティーについて 国内最大級のヘアサロン・リラク&ビューティーサロン検索予約サイトです。 予約などがおこなえるカスタマー向けのサイトと予約管理や集計分析などがおこなえるクライアント向けサイト、他にも内部向けにいくつかのサイトを連結してできているというようなサービスです。 資料の中にも記載していますが、2017年9月更新の数

    ULTRABeerBashで『大規模サービスのリプレイスへの道』と題して登壇してきました
    tomiyanx
    tomiyanx 2017/11/11
    あー、わかるわかる感しかない ホットペッパービューティーだけで150人も開発者がいるんだな
  • 【インストールせずにすぐ実行できる!】Android Instant Apps を使ってみた | PSYENCE:MEDIA

    【インストールせずにすぐ実行できる!】Android Instant Apps を使ってみた 王セン 2017.06.06 67 15101824 皆さん、こんにちは。王です。 Google I/O 2016 にて発表された Instant Apps。『インストールせずに実行できる』ということで注目を集めましたが、当時は一部のベータ・テスターへの公開に留まっていました。Google I/O 2017 にて全てのデベロッパーへの公開が発表されました。 当エントリでは Instant Apps の概要と実際に使ってみての所感をご紹介します。 Instant Apps とは アプリの共有と検索の進化形である Android Instant Apps は、Android アプリをインストールすることなく、すぐに実行できるようにします。Instant Apps により、タップするだけで、高速で美しい

    【インストールせずにすぐ実行できる!】Android Instant Apps を使ってみた | PSYENCE:MEDIA
    tomiyanx
    tomiyanx 2017/06/07
  • 【Angular2入門】TypeScriptをコンパイルからのWatchifyでファイル結合、ブラウザで動作確認するところまで - Gulpで作るwebフロントエンド開発環境 | PSYENCE:MEDIA

    Angular2入門】TypeScriptをコンパイルからのWatchifyでファイル結合、ブラウザで動作確認するところまで - Gulpで作るwebフロントエンド開発環境 wakamsha 2016.10.03 70 15101629 正式版もリリースされたことだし、そろそろ Angular2 を始めてみませんか? 2016年9月15日に Angular2 の正式版がしれっとリリースされました。前バージョンの AngularJS 1.x は独自の路線で HTML や Web フロントエンドを拡張するといった志向のフレームワークでしたが、2系は 1.x系の魅力でもある豊富な機能は引き継ぎつつ、より web 標準に寄り添った実装となっているのが特徴です。 One framework. - Angular これまでは β版の期間が続いていたためになかなか手を出せずにいましたが、ここにきてよう

    【Angular2入門】TypeScriptをコンパイルからのWatchifyでファイル結合、ブラウザで動作確認するところまで - Gulpで作るwebフロントエンド開発環境 | PSYENCE:MEDIA
  • WordPressをマジメにAMP(Accelerated Mobile Pages)対応させた話 #AMPlify | PSYENCE:MEDIA

    WordPressをマジメにAMP(Accelerated Mobile Pages)対応させた話 #AMPlify ku-suke 2016.10.06 474 6616395150 こんにちは、2016年中途入社のku-sukeです。現在はkidslyという保育園むけサービスのプロダクトオーナーを担当しています。今回は個人的にも注目しているAMP(Accelerated Mobile Pages)をこのテックブログに実装した話を書きたいと思います。特に、WordPressプラグインを入れるだけの簡易対応ではなく、フッターまわりやデザインの調整などをまじめに対応させたので、企業をはじめメディア運営をWordPressで運用されている方のお役に立てば幸いです。 事業サイドがAMPに乗っかるか考える事 - ku-sukeのブログ AMPとは? AMPとはAccelerated Mobile

    WordPressをマジメにAMP(Accelerated Mobile Pages)対応させた話 #AMPlify | PSYENCE:MEDIA
    tomiyanx
    tomiyanx 2016/11/28
  • iOSエンジニアがAndroid Studioで開発をする際に知っておきたかったショートカットまとめ | PSYENCE:MEDIA

    iOSエンジニアAndroid Studioで開発をする際に知っておきたかったショートカットまとめ 吉田レオ 2015.12.11 85 13312021 この記事は RECRUIT MARKETING PARTNERS Advent Calendar 2015 の投稿記事です。 はじめに こんにちわ。英単語サプリ担当の吉田麗央です。 英単語サプリはGoogle Playベストアプリ2015に選ばれた英単語学習アプリです。 元々私は英単語サプリのiOS版を担当していたのですが、スーパーiOSエンジニアが入社したのを機に、以前から興味があったAndroidアプリの開発にも携わるようになりました。しかし、私自身Androidの知識は皆無であったため、右も左も分からない状態からのスタートでした。 そんなXcoderな私がAndroid開発をしていくうえで予め知っておきたかったAndroid S

    iOSエンジニアがAndroid Studioで開発をする際に知っておきたかったショートカットまとめ | PSYENCE:MEDIA
  • [ Android ] - これからの「設計」の話をしよう | PSYENCE:MEDIA

    はじめまして。 6/1より入社いたしましたAndroidエンジニアの釘宮です。よろしくお願いいたします。 今日はAndroidの設計について語ってみようと思います。 その前に 「良い設計とはなにか」という議論が「正義とはなにか」という議論のようにいつまでたっても結論がでないのは、環境やチームメンバのスキルセット、ステークホルダーによって目指すべきゴールが変わるためだと考えます。 つまるところ、設計に正解はありません。 そのため以下で話すことは、「これが設計の正解だ!!」というわけではなくて、「こういう設計の仕方するとうまくいくっぽい」くらいのノリです。 あと、特にMVCとかDDDとか人によって解釈のズレが起きやすいところなどは、冗長になるのを嫌って自分の解釈で言い切っています。ご了承ください。 設計の目的について ハードルが下がったところで、早速。 まず設計の目的ってなんでしょうか? この

    [ Android ] - これからの「設計」の話をしよう | PSYENCE:MEDIA
  • Scalaプログラミングスタイル集 | PSYENCE:MEDIA

    はじめに 人によって様々な書き方ができてしまうのがScala記事では、階乗を求めるfac関数を例に、いくつかの興味深いプログラミングスタイルを紹介します。 以下のコードは、REPLで:pasteすることで、簡単に動作を確認できます。 手続きプログラミング 破壊的操作をためらわない男らしいプログラミングスタイル。 def fac(n: Int) = { var result = 1 for (i <- 1 to n) { result *= i } result } 再帰で書くより速い(はず)です。 普通の再帰 初学者泣かせの再帰スタイル。 def fac(n: Int): Int = if (n == 0) 1 else n * fac(n - 1) // 再帰呼び出しの外側に * による演算がある このように書くとスタックをどんどん消費するので、後述する末尾再帰を使ったほうがいいで

    Scalaプログラミングスタイル集 | PSYENCE:MEDIA
  • 【kyobashi.dex】Android勉強会を開催しました! | PSYENCE:MEDIA

    こんにちは。釘宮です。 9/7(月)にkyobashi.dexというAndoirdの勉強会を開催しました。 kyobashi.dex #1 kyobashi.dexとは kyobashi.dexは、京橋周辺にいるAndroidエンジニアとそうでないAndroidエンジニアが集まって情報共有する場を作ろうと企画した勉強会です。 当社でAndroidの勉強会を開催するのは初めての試みで当日になるまで不安でしたが、多くの方にお越しいただきました。 また、発表内容に関してもライブラリの話からインフラやテストの話、さらにはライブコーディングまでと幅広くかつ面白いものばかりでした。 発表資料まとめ 発表してくださった方たちの資料をまとめました。 読むと怖くないDagger2 by kgmyshin 3分間ライブコーディング by konifar 調整中 使おう AWS Device Farm by n

    【kyobashi.dex】Android勉強会を開催しました! | PSYENCE:MEDIA
  • 【Kyobashi.go】Go言語勉強会を開催しました! | PSYENCE:MEDIA

    こんにちは。 ainoyaです。 昨日 ( 8/26 ) 、Kyobashi.goと題してGo言語に関する勉強会を弊社スペースにて開催いたしました! Kyobashi.goについて この勉強会は、社内でGo製のツールが使われることが増えてきたのをきっかけに、Go言語に興味がある弊社エンジニアが有志となって企画したイベントです。 勉強会では、普段Goを書いている人はもちろんのこと、今までGoを書いたことがなかったiOS/Androidエンジニアまで幅広い層の方々がゲスト含めて計9名登壇してくださいました。 おかげさまで、参加枠を大幅に上回る参加希望をいただき、初心者からベテランまで楽しめる素晴らしいイベントを開催することができました。 発表資料まとめ 以下に、Kyobashi.goでの弊社エンジニアによる発表資料をまとめました! このあと滅茶苦茶LGTMした by kgmyshin gomo

    【Kyobashi.go】Go言語勉強会を開催しました! | PSYENCE:MEDIA
  • Gulp で TypeScript をコンパイル & tsify で連結 - Gulp で作る Web フロントエンド開発環境 #4 | PSYENCE:MEDIA

    GulpTypeScript をコンパイル & tsify で連結 - Gulp で作る Web フロントエンド開発環境 #4 wakamsha 2015.04.22 56 971822 TypeScript とは http://www.typescriptlang.org/ TypeScript はマイクロソフトによって開発されたフリーでオープンソースのプログラミング言語である。TypeScriptJavaScript に使用するかどうかが任意の静的型付けとクラスベースオブジェクト指向を加えたスーパーセットとなっている。C# のリードアーキテクトであるアンダース・ヘルスバーグが TypeScript の開発に関わっている。 TypeScript - Wikipedia Alt JS として何かと CoffeeScript と比較されることの多い言語です。これまでは Rails

    Gulp で TypeScript をコンパイル & tsify で連結 - Gulp で作る Web フロントエンド開発環境 #4 | PSYENCE:MEDIA
  • 【悲報】オフィスが無くなりました | PSYENCE:MEDIA

    ※ この記事は 2015年4月1日 にエイプリルフールとして公開されたものです。 俺の名は吉田レオ 今日から新卒2年目となる iOS エンジニアだ 突然だが、俺の働いているリクルートマーケティングパートナーズではリモートワークを推進している しかし社内でリモートワークの気運が高まる中、俺は『リアルコミュニケーションこそ至高』という言葉を信念に仕事をしていた ・ ・ ・ 一方でリモートワークは着実に社内に浸透していた 日に日にリモートで働く社員は増え、皆それぞれの生活に合わせたワークスタイルを実現した そんな中でも俺が所属するチームは『リアルコミュニケーションこそ至高』という信念を共有し、 断固としてリモートワークの波には飲まれない盤石なチーム体制だった・・・ はずだった・・・。 ・ ・ ・ リモートワークが浸透するにつれて 一人・・・ また一人・・・ 気がついたら一人になっていた・・・ と

    【悲報】オフィスが無くなりました | PSYENCE:MEDIA
    tomiyanx
    tomiyanx 2015/04/01
  • 1