タグ

ブックマーク / techblog.yahoo.co.jp (27)

  • ドメイン駆動設計で保守性をあげたリニューアル事例 〜 ショッピングクーポンの設計紹介

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは! Yahoo!ショッピングクーポンチームの小倉です。 前回のフロントエンド技術刷新の話とは打って変わり、今回は2019年に行ったバックエンド技術刷新の話です。 刷新前のシステムはノンフレームワークPHPのモノリスでしたが、現在は主にJava/Spring Bootでマイクロサービス化しています。今回は、その中でもっとも仕様が複雑だったマイクロサービスにおいて、ドメイン駆動設計(Domain Driven Design:DDD)を実践した話をご紹介します。 ショッピングクーポンの自由度を知る みなさんは、ショッピングの商品が割引になるクーポンをご存じでしょうか? 実は、クーポンには、ヤフーが予算をだして発行する「モールク

    ドメイン駆動設計で保守性をあげたリニューアル事例 〜 ショッピングクーポンの設計紹介
    astk_f
    astk_f 2021/02/14
  • 社内勉強会で専門的技術力を高めるには

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog サイトオペレーション部に所属している大津と申します。普段CDNとNode.jsサポートの仕事をしていて、第9代黒帯(ヤフー内のスキル任命制度/ネットワーク・セキュリティ)に任命していただいています。1 先日ヤフー社内で黒帯LT会が開催されました。お題目は事前に指定された「専門的技術力を極めるための極意」ということで、10分ほど話をしました。しかし、これまでみたいにセミナールームで大勢の前で話すわけではなく、最近代わり映えしない自宅デスクからのオンラインLTは、正直勝手が違いました。時間配分もミスって中途半端に終了です。と思いきや数日前、このYahoo! JAPAN Tech Blog担当者から「いやー、よかったですよ。そのネタ書

    社内勉強会で専門的技術力を高めるには
  • 複雑な乗換体験を直感的に! 乗換案内アプリのデザイン

    これらを鑑みると、 アプリの画面上では乗り入れ箇所で路線色が変わり、誤って降車するリスクがある 行き先が異なる複数の乗客に対して、駅員さんは「直通運転」であることはアナウンスできても「乗換不要」という案内はできない アプリの画面を見ているのは人のみ、かつ目的地まで目視できるので「乗換不要」と伝える方が有益 このような経緯から、あえて「乗換不要」としています。 手法は大事、ユーザー視点はもっと大事 文言はサービス内で表現のズレが起きないよう、用語辞典を作成しています。「ルート/経路」「電車/列車/鉄道」など。ただし意味が伝わりづらい箇所では、表現のズレを許容しています。注意しなければならないのは、このようなフレームワークや手法などを優先して、ユーザー視点を見失わないようにすることです。 ワイヤとビジュアルを並行して行うことでUX品質を高める 路線情報チームのデザイナーは、ワイヤフレームとビ

    複雑な乗換体験を直感的に! 乗換案内アプリのデザイン
  • Callback を撲滅せよ

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。言語サポート(Node.js)チームの伊藤(@koh110)です。 Node.js v10 も10月にLTSとなり async/await によるフロー制御は当たり前のように利用されるようになってきました。JavaScriptの非同期処理は async/await から覚える人も今後増えていくでしょう。今回はそんな非同期処理について、社内での事例を交えて記事を書いていこうと思います。 index Promise 化がなぜ重要なのか ユーザーに promisify をさせる落とし穴 Road to Promise まとめ Promise 化がなぜ重要なのか ちょうど3年前のアドベントカレンダーで、今後はいろいろなモジュー

    Callback を撲滅せよ
  • ヤフー株式会社におけるWebフロントエンドの技術選定 - Yahoo! JAPAN Tech Blog

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog Yahoo! JAPAN Tech Advent Calendar 2018の6日目を担当します、Webフロントエンドエンジニアをやっている向井(@sakito)です! 今回はヤフー株式会社でWebフロントエンドエンジニアがどのような取り組みを行なっているのかをお伝えします。 ヤフーの組織体制 Webフロントエンドエンジニアの取り組みを紹介する前に、ヤフーがどのような組織体制なのか紹介します。 冒頭画像のようにヤフーではカンパニー制度を取り入れており、それぞれのカンパニーにサービスを開発する事業部があり、この事業部単位でデザイナーやエンジニア、そのほかにもさまざまな職種の方が所属し、サービスごとで日々開発に取り組んでいます。

    ヤフー株式会社におけるWebフロントエンドの技術選定 - Yahoo! JAPAN Tech Blog
  • アジャイルとテスト自動化の現場2016

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog 皆さんこんにちは。ヤフー株式会社の第6代黒帯(アジャイル開発プロセス)、伊藤 宏幸(@hageyahhoo)です。 システム統括部 技術支援部所属のアジャイルコーチ&自動化コーチとして、社内各サービスによるアジャイルおよびテスト自動化の自発的な実現を日々支援しております。また、Scrum Alliance公認の認定スクラムプロフェッショナル(CSP)でもあります。 12月19日のAdvent Calendarを担当させていただきます。 今回は、特に今年、アジャイルコーチ&自動化コーチとして現場で気付いた課題とその解決策について紹介します。皆さんの日々の仕事をより良くするための何らかのヒントになれば幸いです。 1. 仕事をしやす

    アジャイルとテスト自動化の現場2016
  • iOSアプリの不具合を申請なしで修正しよう

    2017年3月8日現在、Rollout SDKを利用したアプリが、Apple社へのリリース申請時にリジェクトされる事象がApple Developer Forums上で報告されています。 こちらの記事で紹介しているRollout.ioの利用については自己の判断の下お願い致します。 [Apple Developer Forums] https://forums.developer.apple.com/thread/73640 こんにちは。 ヤフー株式会社ヤフオク!カンパニー ヤフオク!開発部アプリ開発部の田中です。 皆さんはiOSアプリの開発をしていて、不具合などが見つかった際に アプリを素早く修正できたとしてもAppleの申請、審査に時間がかかってしまい 修正が反映されるまでに苦労をしたことはありますでしょうか? 今回はそんな苦労から解放されるサービスを紹介させていただきます。 Roll

    iOSアプリの不具合を申請なしで修正しよう
  • 爆速改善を実現するヤフオク!アプリのアジャイル開発

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちはヤフオク!アプリ開発ワーキンググループ長の西です。 インターネット業界の変化の速さは皆さんもご存じの通りです。 毎年メジャーバージョンアップするiOS,Android、より洗練されたユーザー体験を実現するためのUIの構築手法、PlatformerたるAppleGoogleの規約変更による対応、新登場するSwift言語、先日のGoogle Mobileセミナーで発表された新技術の数々とそれを受けて進化するサードパーティ製ライブラリ、競合サービスの登場によるユーザー体験の再試行、watchOS2やtvOSなどのiOS技術をベースにした新デバイスの登場などなど、1年に起きる変化の量は相当なものになってきました。 成長の早い犬

    爆速改善を実現するヤフオク!アプリのアジャイル開発
  • ブラウザー・WebViewが利用できないデバイスの課題とOAuth 2.0 Device Flow

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、ID連携黒帯 倉林 雅(@kura_lab)です。 昨年の「知っておきたい7つのID連携実装パターン」に続き今年も23日を担当することになりました!祝日も記事を投稿いたします! 今年のAdventCalendarも「Yahoo! JAPANを支える技術」をテーマとしていますが、今回は少し先の未来をみすえて今後Yahoo! JAPANを支えることになるかもしれない新しい技術についてご紹介しようと思います。 すでにPCやスマホ上で認証を行いサービスを利用することは普通になりつつありますが、今後はテレビゲーム機、ビデオカメラなどのデバイスでも認証や決済を利用したサービスが増えてくると思われます。Identity Provi

    ブラウザー・WebViewが利用できないデバイスの課題とOAuth 2.0 Device Flow
  • Objective-Cで書かれた5年もののiOSアプリを徐々にSwiftへ置き換えている話

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、ヤフーでiOSアプリを開発している林です。 私が関わっているYahoo!ショッピングでは、iOSアプリをObjective-CとSwiftの混在状態で開発しています。今年の6月末からこのスタイルに切り替え、新規で書くコードは原則Swiftを使い、徐々にObjective-Cで書かれたコードを減らしている状況です。一方で完全にObjective-Cのコードを捨てることは現実的でないとも考えており、混在状態がこの先もしばらく続く想定でいます。 Yahoo! JAPANのアドベントカレンダー14日目は、この形に至った経緯・開発の進め方・そこから得られた知見を共有したいと思います。 プロジェクトが動き出すまでの経緯 Yahoo

    Objective-Cで書かれた5年もののiOSアプリを徐々にSwiftへ置き換えている話
  • JavaScript で実装してみる Deep Learning

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめに はじめまして、安藤義裕と申します。ヤフー株式会社データ&サイエンスソリューション統括部ソリューション部でプログラマーをしております。趣味はカミさんの手料理です。 機械学習で用いられるアルゴリズムの一つにニューラルネットワークがあります。ニューラルネットワークは脳細胞の働きにヒントを得て考えられたものです。今回扱う多層ニューラルネットワークはニューラルネットワークの中間層と呼ばれる部分を多層化したものです。近年話題に上ることの多い Deep Learning ではこの多層ニューラルネットワークが利用されています。 多層ニューラルネットワークは用途に応じて異なるネットワークが利用されます。画像処理では畳込みニューラルネッ

    JavaScript で実装してみる Deep Learning
  • 次世代言語Kotlinを使ったAndroid開発とヤフーの新技術との向き合い方

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、ヤフーでAndroidアプリ開発をしている松田(@shoma2da)です。 今年もやってきたヤフーのアドベントカレンダー、僭越ながらトップバッターを務めさせていただきます! 初日となる今日は最近話題になっているKotlin(ことりん)という言語を使ったAndroidアプリ開発と、これに関連してヤフーが新技術にどのように向き合っているかについて書いていきます。 Kotlinとは Kotlinは2011年頃に登場した言語で、開発元はJetBrainsです。 JetBrainsといえばAndroid StudioのベースであるIntelliJを開発している企業でもあります。 ソースコードはOSSとして公開されておりGitHu

    次世代言語Kotlinを使ったAndroid開発とヤフーの新技術との向き合い方
  • Node.js+Socket.IOで作る、通信対戦ができるHTML5ゲームシステムの作り方

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog はじめまして、Yahoo!きっず開発担当です。 昨年Yahoo!きっずにてブラウザオンラインゲーム「おしゃべりリバーシ」をリリースしました。 ※おしゃべりリバーシは2015年10月をもってサービス終了しました。ご利用いただきまして、ありがとうございました。 このゲームは、通信対戦部分の通信プロトコルWebSocketを採用し、サーバミドルウェアにNode.js+Socket.IOを採用しました。この結果、ブラウザゲームでありながらマルチデバイスでの対戦を実現しました。 今回は、Node.js+Socket.IOによるWebSocketサーバのシステム構築方法について考慮すべきポイントを、「おしゃべりリバーシ」の実例を紹介しながら説

    Node.js+Socket.IOで作る、通信対戦ができるHTML5ゲームシステムの作り方
  • Gradleを使って業務を楽にする

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog 普段 Android アプリの開発を行っている takahirom こと毛受(めんじゅ)です。 さて、Android のIDEとしては先日長きベータ時代に終わりを告げてついに Android Studio が 1.0 となりました。 今まで Eclipse + ADT 環境から移行するのを迷っていた人たちも、ようやく重い腰を上げて Android Studio へのも進むのではないかと思います。 そんな Android Studio では次世代のビルドツールとして注目を集めている Gradle が採用されています。 Gradle の特徴 Gradle で採用されているビルドスクリプトは非常にシンプルな記述をできるのが特徴で 例えば

    Gradleを使って業務を楽にする
  • サーバーサイド実装を1行もせずにバックエンドと連携するiOSアプリを開発する

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog ヤフーで iOS エンジニアをやってます平松(@himara2)です。 最近 BaaS, MBaaS という言葉を良く耳にします。 アプリエンジニアのみでサーバーサイド込みの開発もできる、ということで以前より個人的に興味がありました。 実際に触ってみると想像以上に使いやすいものだと感じたので、その感想を紹介してみようと思います。 最近のモバイルアプリ開発事情と BaaS 最近のモバイルアプリはクライアント側で完結するものは少なく、サーバーサイドと連携して動くものがほとんどです。 サーバーサイド側で必要な機能としては、ユーザー管理、各種データAPI、Push通知機能、画像や動画のストレージなどがありますが、これをアプリ開発の度に毎回

    サーバーサイド実装を1行もせずにバックエンドと連携するiOSアプリを開発する
  • LollipopでのNotification

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは。Androidアプリエンジニアの筒井です。 11月27日の夜にヤフー社内で他社さんも含めたクローズドな合同勉強会を行いました。 その時の自分の発表内容を今日は書こうと思います。 LollipopでのNotification 5.0からのNotificationで自分が興味があるところについて調べてみました。 Heads Up Notification ロック画面上での通知の表示 その他 Tipsなど 環境 調べるにあたって利用した環境です。 Nexus5 (OS: 5.0) ソースコード android-5.0.0_r7 Heads Up Notification Lollipopから導入された新しい通知の仕組みです。

    LollipopでのNotification
  • HTTP/2 入門

    ストリームによる多重化 2つ目の特徴は「ストリーム」です。従来のHTTPでは、リクエストとレスポンスの組を1つずつしか同時に送受信できないことが、パフォーマンス上のボトルネックになっています。この問題を改善するべくHTTP/1.1では新たにパイプラインが導入されましたが、一部のレスポンスに時間がかかるような場面でレスポンスが詰まってしまう問題などがあり、広く使われてはいません。そこで、HTTP/2では1つの接続上にストリームと呼ばれる仮想的な双方向シーケンスを作ることでこの問題に取り組んでいます。 1つの接続上に作られた複数のストリーム上では、複数のフレームを同時並行で転送できます。例えば、あるストリーム上ではリクエストにあたるフレームが送信中でも、別のストリームではレスポンスにあたるフレームを受信するといったことが可能になります。これにより、全体的なパフォーマンスが向上します。 ヘッダー

    HTTP/2 入門
  • 爆速でわかるjQuery.Deferred超入門

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog Yahoo!デベロッパーネットワークの中野(@Hiraku)です。これまで、JavaScriptで非同期処理を書く上での問題として、コールバック地獄やエラー処理に例外が使えないことなどを解説してきました。 これらの問題に対処するライブラリの1つであるjQuery.Deferredに関して、もう少し丁寧に解説いたします。なお、jQueryのバージョンは記事執筆時点の最新である、1.9.1を想定しています。 jQuery.Deferredとは jQuery.DeferredとはjQueryのバージョン1.5から導入された、非同期処理をうまく扱うための標準モジュールです。使いこなすことで、以下のような効果が見込めます。 非同期処理を連結

    爆速でわかるjQuery.Deferred超入門
  • JavaScriptと非同期のエラー処理

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog Yahoo!デベロッパーネットワークの中野(@Hiraku)です。前回のコールバック地獄に関する記事では、複雑な入れ子になりやすい非同期処理でも、GeneratorやjQuery.Deferredを使うことで、同期的な見た目に変形できることを示しました。 ところで、非同期処理においてはもう一つ「 エラー処理に例外が使えない 」という問題があります。今回はエラー処理について考えてみたいと思います。 例外を使ったエラー処理 非同期処理の話の前に、一度「例外」についておさらいしておきましょう。JavaScriptに限らず、エラーと言えばよく例外を使って記述されます。 「Web APIから500が返ってきた」とか「入力された値が期待する型

    JavaScriptと非同期のエラー処理
  • 爆速JSONPをオープンソース化しました

    ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog 先日、ブログパーツ作成フレームワーク 爆速JSONP をGitHubにて公開しました。2012年8月にYahoo! JAPANのソフトウェアガイドラインをライセンスとするバージョンを公開しましたが、オープンソース化に伴い、CDNで配布しているファイルもGitHub版に差し替えています。(インターフェースは互換性を保っています) yahoojapan/bakusoku-jsonp · GitHub CDN版: https://s.yimg.jp/images/yjdn/js/bakusoku-jsonp-v1.js CDN版(圧縮済み): https://s.yimg.jp/images/yjdn/js/bakusoku-jsonp

    爆速JSONPをオープンソース化しました