サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
techblog.lycorp.co.jp
こんにちは。コミュニケーションアプリ「LINE」のモバイルクライアントを開発している石川です。 この記事は、毎週木曜の定期連載 "Weekly Report" 共有の第 55 回です。 LINEヤフー社内には、高い開発生産性を維持するための Review Committee という活動があります。ここで集まった知見を、Weekly Report と称して毎週社内に共有しており、その一部を本ブログ上でも公開しています。(Weekly Report の詳細については、過去の記事一覧を参照してください) デメテルを知っているか プログラミング原則の一つに デメテルの法則 というものがあります。この原則では、操作するのは直接知るメンバ(プロパティ/メソッド)だけに限定し、「メンバのメンバ」は操作してはならないということを主張しています。別の表現では「話す相手は友人だけ (only talk to
こんにちは! アジャイルプロセス推進チームの日下(LINEヤフー株式会社)、岩井(LINEヤフー株式会社)、荒瀬(PayPayカード株式会社)です。私たちは、アジャイルコーチとしてPayPayカードのアジャイル開発を支援しており、現在E2E自動テスト(以下、E2Eテスト)の導入を進めています。この導入における戦略、直面した課題、そしてそれらをどのように克服したかについてお話しします。組織にこれからE2Eテストを導入しようと検討している方や、既に導入済みで安定稼働や運用に課題を抱えている方にとって、お役に立てれば幸いです。 また、私たちアジャイルコーチはLINEヤフー株式会社およびPayPayカードのものづくりに深く関わり、プロセス改善や仕組み作り、最新技術の導入を行っています。過去の事例は以下のリンクからご覧いただけます。 SWAT×Agile Coach: 異なるスキルが共創するまでヤフ
こんにちは。LINEヤフーでAIプラットフォームのネットワーク設計を担当している小林と深澤です。この記事ではRethinking AI Infrastructureの連載の第二弾として、LINEヤフーのAIプラットフォームを支えるGPUクラスタネットワークの設計とその考え方について解説します。 この記事が普段GPUクラスタやデータセンターネットワークなどのインフラを扱っている方々に役立つと嬉しいです。 AIのためのネットワーク GPUクラスタのためのネットワークの話をいきなりする前に、この数年の生成AIブームがネットワークインフラにどのような変化をもたらしたのかについて簡単に振り返りたいと思います。私たちはインフラを運用する部門に所属しており、ネットワーク技術の専門家として自社サービスの運営や事業課題の解決に必要な技術を選定・検証し、プロダクションに落とし込み安定運用することに責任を持って
はじめに みなさん、こんにちは! Actapio, inc.(LINEヤフー株式会社の100%子会社)の立見です。 今回から始まるこの連載では、AIインフラストラクチャについて、じっくりと掘り下げてい...
はじめに こんにちは。LINE PlusのLINE GAME PLATFORM Dev2チームのHyeonseop Lee、Hyungjung Leeです。LINE GAME PLATFORMでは、ゲーム開発に必要なさまざまなプラットフォームサービスを開発しています。私たちのチームはその中でも、ゲームデータを収集して分析するためのプロダクトやMLOps、LLMOpsを開発しています。この記事では、LLMOpsを開発するためにPythonベースの大規模なプロジェクトを進める中で経験した、プロジェクトの規模が大きくなるにつれて発生する構造的な問題とそれを解決した方法を紹介します。 Pythonの普及とともに巨大化したPythonプロジェクト Pythonは簡潔で柔軟というメリットから、長い間使われているスクリプト言語です。初期には主に簡単な自動化やプロトタイプの開発に使用されていました。ところ
こんにちは。LINEヤフーのSSL Admin、Inoue と Kuji です。 旧 LINE株式会社が管轄していたネットワークには 数十万もの TLS Endpoints があり、数多くの SSL/TLS 証明書(以下「証明書」)が利用されています。この記事では、そのうち約 20 万の TLS Endpoints が提供している証明書の有効期限を可視化した取り組みを紹介します。 この記事に書いてあること 証明書の可視化を行うまでのストーリー証明書の可視化によって生じた効果今後の展望 この記事に書いていないこと プログラムの具体的な実装 今回紹介するツール(開発したもの) ValidCertWatch ValidCertWatchは社内のあらゆるWeb siteの証明書情報を一目で確認できるツールです。UIはこのようなイメージで、証明書を利用しているFQDNの一覧や、FQDNに適用されてい
こんにちは。データ人材戦略部エバンジェリストチームの權です。 私が自然言語処理に関する入門的なKaggle Notebookを作成したときのプロセスや工夫について共有します。 この記事がKaggleを活用した効果的な学習を推進する際のヒントになれば幸いです。 Kaggleとは みなさんはKaggleというものをご存じでしょうか? Kaggleは、機械学習エンジニアやデータサイエンティストが集まって競い合う世界最大のデータサイエンスコンペティションプラットフォームです。初心者からプロフェッショナルまで、さまざまなレベルの参加者が腕を磨く場として広く利用されています。 LINEヤフーでは社員のリスキリングをするプロジェクトにKaggleを取り入れています。 高い壁にはチームでぶつかれ! 『ドラゴン桜』三田先生に聞く データがたくさんありますが、それを「精製」するデータサイエンティストの数がまだ
こんにちは。Messaging APIを開発しているソフトウェアエンジニアの奥薗と、LINE Developersサイトで開発ドキュメントを書いているテクニカルライターの銭神です。みなさんの開発の現場では、どのようにしてドキュメントを書いているでしょうか。この記事では、私たちの組織において、ソフトウェアエンジニア(以下「エンジニア」といいます)とテクニカルライターがどのように連携して社外向けのドキュメントを書いているかを紹介します。 私たちのチームについて エンジニアとテクニカルライターの協業についての話をする前に、私たちがそれぞれどのようなチームで、どのようなプロダクトを担当しているかを説明します。なお、各セクションのタイトル名の後ろに、どちらが執筆したかをカッコ書きで示しています。 Messaging APIの開発チーム(奥薗) まずは、Messaging APIの開発チームについてで
こんにちは、LINEヤフー株式会社でテクニカルライターとして働いている古木です。私は、LINE Developersサイトの技術ドキュメントやAPIリファレンスを書く専門職としてライティングを行う傍ら、社内用語集の管理にも携わっています。 今回は、LINEヤフーの社内用語集「Words」のご紹介を通じて、社内用語集サービスの立ち上げについてや、運営方法についてお話しします。 Wordsとは何か Wordsは、社内用語と分野別の専門用語を、テクニカルライターがわかりやすく解説した用語集です。韓国のLINE PlusとLINEヤフーのメンバーが協業して、運営を行っています。 Wordsは、社内のさまざまな部門やプロジェクトで使用されている用語とその説明を一箇所に集めて、検索しやすくすることで、社内のコミュニケーション効率を向上させています。特に、社内用語を初めて目にする新入社員が安心して業務に
LINEヤフー Advent Calendar 2024の記事です。 はじめに こんにちは、iOSアプリエンジニアの羽柴です。本記事では、LINEの膨大なソースコードを扱う上で欠かせない「コードオ...
こんにちは。CISO管掌の脅威情報分析対応チームでセキュリティエンジニアとして活動している首浦です。 本記事ではランサムウェアについての解説に加え、8Baseの解析結果を紹介します。 ランサムウェアとは まず初めにランサムウェアとは、感染端末から内部システムのデータを暗号化・窃取することでそのデータやコンピュータを「人質」として、身代金などを要求するマルウェアの一種です。 暗号化前のファイルは完全に端末から削除され、感染端末外部(USBメモリやクラウドストレージ等)にバックアップが存在しない場合、ファイルを復元するためには、暗号化されたファイルを復号する必要があります。 ランサムウェアを用いる攻撃者はこの復号に必要な鍵と引き換えに金銭などを要求します。ただし、身代金を支払った場合においても復号鍵の引き渡しを拒否する場合や、復号鍵での復号が失敗する場合があり、必ずしも身代金を支払えば解決する
Webアクセシビリティチーム中野です。 プロダクトとウェブサイトにおける、アクセシビリティの向上と啓発を行っています。 今年の10月に社内イベントのTech Week 2024でアクセシビリティチームとしてブースを出展し、画面の情報を合成音声で読み上げる支援技術であるスクリーンリーダーのチートシートを作成して配布しました。 社内イベントで視覚障害を体験してもらいました(スクリーンリーダーのチートシート配布中) 主にディスプレイで表示したり、印刷したりすることを想定して作ったPDFですが、スクリーンリーダーなどの支援技術でも閲覧できるようにしています。この記事ではPDFをアクセシブルにするための課題と理由について解説します。なお、今日から障害者週間(12/3-9)が始まりますので、この記事が障害者福祉の一環として考えるきっかけになればと思います。 そもそもPDFとは 「Portable Do
こんにちは。フロントエンドエンジニアの花谷(@potato4d)です。LINEヤフーでは、11月23日(土)に開催されたJSConf JP 2024へ参加・協賛を行いました。 今回私自身もスポンサースタッフとして、そしていち開発者としてイベントに参加してきたため、本記事にて現地の様子をご紹介します。 JSConf JP とは Japan Node.js Association が運営する JavaScript をテーマとしたカンファレンスとなります。グローバルのイベントブランドであるJSConfの日本ローカルコミュニティとして2019年より開催されていますが、前身となる東京Node学園祭を出自とするイベントであり、イベント全体としては10年以上の歴史を有しています。 特定の技術によらない点が一番の特徴であり、 React をはじめとしたフロントエンド領域はもちろんのこと、 Node.js
こんにちは。コミュニケーションアプリ「LINE」のモバイルクライアントを開発している石川です。 この記事は、毎週木曜の定期連載 "Weekly Report" 共有の第 51 回です。 LINEヤフー社内には、高い開発生産性を維持するための Review Committee という活動があります。ここで集まった知見を、Weekly Report と称して毎週社内に共有しており、その一部を本ブログ上でも公開しています。(Weekly Report の詳細については、過去の記事一覧を参照してください) 確信的な質問 ある開発者が、以下の関数 getOnlineUserStates のコードレビューの依頼を受けた状況を想定しましょう。 fun getOnlineUserStates(userIds: Set<UserId>): Map<UserId, UserState> { if (userI
はじめに こんにちは、コミュニケーションアプリ「LINE」のiOSクライアントアプリ開発を担当している、モバイル・ディベロッパーエクスペリエンスチーム(以下MDX)所属のfreddiです。 この記事では、2024年にLINEアプリをXcode 16に対応させるために、チームとして取り組んだことを紹介します。まず、Xcode 16対応を集中的に行うための取り組みやWWDCでの活動について紹介します。そして、β版のXcodeを利用した際に遭遇した問題とどうやって克服したかについて、AppleへのFeedbackやGitHub Issue、オープンソースへの貢献の例をもとに書いています。これらの取り組みを通じて、AppleプラットフォームやSwift関連の開発コミュニティで問題を解決するために、どのような行動をしたかについても触れています。 WWDCとβ期間におけるチームとしての取り組み 毎年6
こんにちは。コミュニケーションアプリ「LINE」のモバイルクライアントを開発している石川です。 この記事は、毎週木曜の定期連載 "Weekly Report" 共有の第 48 回です。 LINEヤフー社内には、高い開発生産性を維持するための Review Committee という活動があります。ここで集まった知見を、Weekly Report と称して毎週社内に共有しており、その一部を本ブログ上でも公開しています。(Weekly Report の詳細については、過去の記事一覧を参照してください) ワイルドすぎる引数 「図形」というデータが、スペースで区切られた文字列として表現されているとします。以下は、その文字列の例です。スペース区切りの最初の値は、図形の種類を示す「タグ」と呼ばれるもので、2 つ目以降は図形ごとの属性 (座標など) だとします。 circle 10 20 30 rect
課題解決のアプローチ 中間テーブルの設計 すべてのソーステーブルをまとめて処理しようとするので、ソーステーブルが一部でも欠落してしまうと、データマート全体の更新が止まってしまうという状況が発生しています。そこで今回は一度、中間テーブルを作成し、集計処理をソーステーブルごとに分割することにします。事業部へ提供するテーブルはその中間テーブルをさらに処理して作成される構成にしました。 中間テーブルの設計案について、2つの案が検討しました。1つ目は、複数あるソーステーブルから、機能ごとにいくつかの集計項目をまとめた中間テーブルを複数用意するという、OAの機能ごとにデータの保存を物理的に分離する案です。この場合、異なる機能であるクーポンとメッセージに関する集計値は、それぞれ異なる中間テーブルとして保存されます。2つ目は、OAの機能ごとにパーティションを用意し、ひとつの中間テーブルに格納することで、デ
はじめに こんにちは。京都大学大学院情報学研究科修士1年の上田蒼一朗と申します。 私はCloud Infrastructure本部NetDev部というところで、6週間のインターンシップに参加しました。本レポートでは、私のインターンシップでの取り組みである、L4ロードバランサのQUICサポートについて紹介します。 背景 LINEヤフーのプライベートクラウドはLBaaS、つまりロードバランサをサービスとして社内に提供しています。L4ロードバランサはLBaaSの中の1つで、TCPやUDPなどのトランスポート層までの情報を元にパケットを複数のサーバーに振り分けるものです。 L4ロードバランサの一部はLinuxのXDPという機能で実装されています。XDPとはLinuxカーネル内に実装されたパケット処理機構で、ユーザーが独自に実装したパケット処理のプログラムをカーネル内に組み込むことができます。また、
これを見ると、Rec Sys 1、Rec Sys 2などでは、評価指標に関する研究からモバイル端末内で行われる推薦、Cold-start問題への対処に関するものなど幅広い推薦システムに関する研究が発表されていました。 多くの研究は既存の手法の問題点を発見、その問題を解決する手法を提案するような研究でしたが、On (Normalised) Discounted Cumulative Gain as an Off-Policy Evaluation Metric for Top-nnn Recommendationでは推薦問題で一般的に使用されているnDCGがどの程度オンライン実験の結果を近似できるのかを調査し、DCG指標がオフライン実験/オンライン実験に対して不偏となる状況でもnDCGは手法の相対順位が変動する可能性があることを示していました。 DIET: Customized Slimmi
はじめに こんにちは。プライベートクラウドの開発運用、およびOSPOを兼任している早川です。 KubeDay JapanはCloud Native Computing Foundation(以下、CNCF)主催の、Kubernetesを中心としたクラウドネイティブ技術に関するカンファレンスです。 KubeDay Japan 2024(外部サイト) ご存じのとおり、LINEヤフーは旧LINE、旧ヤフーの方向性を引き継ぎ、オープンソースのテクノロジーとコミュニティに積極的に投資しています。そして、それはクラウドネイティブの分野においても同様です。去る8月27日に開催されたKubeDay Japanにおいては、スポンサーシップの提供とブース出展、社員からの2件の登壇と、イベントの盛り上がりをお手伝いさせていただきました。 この記事では、そんなLINEヤフーによるKubeDay Japan参加の様
こんにちは。コミュニケーションアプリ「LINE」のモバイルクライアントを開発している石川です。 この記事は、毎週木曜の定期連載 "Weekly Report" 共有の第 45 回です。 LINEヤフー社内には、高い開発生産性を維持するための Review Committee という活動があります。ここで集まった知見を、Weekly Report と称して毎週社内に共有しており、その一部を本ブログ上でも公開しています。(Weekly Report の詳細については、過去の記事一覧を参照してください) 終わり null ならすべてよし? Java や Kotlin の Iterator で next を呼ぶときは、「次」の要素が存在することを確認しなければなりません (通常は hasNext で確認します)。以下のコードのように、「次」の要素がない状態で next を呼び出すと、NoSuchE
こんにちは、LINEヤフー株式会社でRedisチームに所属している加藤です。現在はLINEヤフーの社内向けのDatabase as a ServiceとしてRedis DBaaSの開発と運用を行っています。 Redis DBaaSは、ヤフー株式会社(現LINEヤフー株式会社)で提供開始し7年がたちます。運用しているRedisは10,000台を超え、合算で毎秒1,000万以上のリクエストを処理する大規模なRedis基盤となりました。この記事では、まずRedis DBaaSで作成できるRedisのHA(High Availability)構成を説明し、次にRedisプラットフォームの成長とともに増加した社内のユーザーへのサポートの中で、ユーザーに安心してRedisを利用してもらうために行っている取り組みについて紹介します。 Redis DBaaSのHA構成 Redisはインメモリ(in-mem
LINEヤフー株式会社の開発組織では、開発文化を改善するためにさまざまな試みを行っています。今回は、LINEのクライアントアプリの開発プロセスを改善を担うMobile Developer Experience Devチームでの「コードの可読性」向上の取り組みについて、Munetoshi IshikawaさんとGiuk Jungさんのインタビューを通じて紹介します。 左からGiuk Jung、Munetoshi Ishikawa Giuk Jung:LINEのiOSアプリ開発を担当しています。特にiOSのビルド環境の改善や、ビルドに使われるツールの開発などに取り組んでいます。簡単に言うと、「開発者をサポートする開発」をしています。iPhone3GSが発売された2009年から日本で働き始め、今年で15年目になります。 Munetoshi Ishikawa: LINEのAndroidアプリの開発
こんにちは。エンジニアの中野です。前回は、私たちが開発している FractalDB: LINEヤフーのオンプレミス・マルチテナンシー型データベースシステムの紹介という記事を公開しました。 今回は続いて、開発に至った背景とそれからどのようなサービス設計を行ったのか、少し具体的な話をさせていただきます。 課題(FractalDB開発の背景) 社内クラウドDBが欲しい 比較的昔から「パブリッククラウドの"クラウドDB"、例えばAWS DynamoDB(以下DynamoDB)やGCP Cloud Spanner、Microsoft Azure CosmosDBのようなデータベースが社内にも欲しいよね」という漠然とした話はありました。 例えば、DynamoDBを使ったアプリケーション作成は、通常のRDBMSを使ったアプリケーション開発と以下のような違いがあります。 普通のRDBMSを使ったアプリDy
こんにちは。LINEヤフー株式会社でデータベースエンジニアをしている、松浦、中園、大塚、曽根、笠井です。 データベースはLINEヤフーのさまざまなサービスを支える重要なソフトウエアですが、その安定的な運用やトラブルシューティングには、データベースに関する専門的な知識が必要です。 一方で、データベース部門に配属される新卒のエンジニアは、全員が学生時代にデータベースを専門的に勉強しているわけではありません。このような新卒エンジニアは、データベース部門へ配属後、OJTや実際のデータベースの運用業務に携わりながら、データベースに関する専門知識を深めていきます。 今回のブログ記事では、データベースエンジニアとしての専門性を高めるために、部門内で実施している専門書の輪読会、そして、MySQLを題材としたデータベースカーネルのモブプログラミング(以下、モブプロ)の取り組みについてご紹介します。 1. 輪
こんにちは。私はLINEアプリのiOSエンジニア、Zang Zhihaoです。私たちのチームはLINEアプリの公式アカウント機能やLINE公式アカウントアプリを担当しています。今日は、iOS/Androidプラットフォーム間でのコード共有についてお話しします。 プラットフォーム間でのコード共有は、ソフトウェア開発コミュニティで長い間ホットな話題となっています。しかし最近では、モバイル開発の分野でさらに注目を集めています。古い技術であるXamarinは最近のニュースにはあまり登場しませんが、Kotlin Multiplatformについての話がiOSDCやDroidKaigiでは、少なくとも最近3年間は常に取り上げられています。FlutterやReact Nativeの技術についてもよく話題になります。しかし、今日は別の、Rustの話をしたいと思います。 Rustはモバイル開発のための明白な
次に、各段階の品質管理で汎用的に使えるようにプロンプトを作成します。すでに広く知られているプロンプトの作成手法を活用しており、代表的に役割指定と形式指定を中心に作成しています。この記事ではプロンプトについて詳しく触れず、どのような品質管理に活用されているかを中心に説明します。私たちは各品質管理の目的に合わせて、以下のようなプロンプトを作成しました。 Plan advisor:企画文書の内容の分析と要約を行い、ユーザーの質問によってさまざまな形で成果物を出力するThread summarizer:Slackのスレッドの内容を要約し、決定事項や予想される問題点、アクションアイテムなどを導き出すTest designer:入力された情報を基にテスト設計や図式化を行い、基本的なテストケースを導き出すTest helper:入力されたバグ情報を分析してラベルを抽出し、追加のテストが必要なパスを提示す
こんにちは。メディアカンパニーに所属する鴻巣和司 (@kazushikonosu) です。普段はLINEスキマニのフロントエンドの開発をしています。業務をきっかけに、TypeScriptの不要なデッドコードを自動で削除するツール ts-remove-unused を開発し、GitHub上でOSSとして公開しました。本稿では、ts-remove-unusedが解決しようとしている問題や直近で行った大規模な変更について紹介します。 exportしていることで気づきにくい不要なコード TypeScriptを使っている場合、tsconfig.json の compilerOptions.noUnusedLocals を有効にすることで、ファイル内で参照がない不要な変数などの定義をTypeScriptコンパイラの実行時に検知することが可能です。また、ESLintなどの静的解析ツールを使い適切にルール
こんにちは。AndroidアプリでLINE公式アカウントの開発を担当している高島です。今回は、私たちのチームで試しているモブプログラミングの取り組みと、実際に取り組んで感じたことについてご紹介します。 モブプログラミングについて モブプログラミングは、複数の開発者が1つのコンピュータを共有し、協力して問題を解決する開発手法です。モブである人たち(ナビゲーター)が解決方法を提示してガイドし、キーボードの前に座る1人(ドライバー)がコーディングします。ドライバーは一定時間ごとに交代します。 私たちのチームは、後ほど紹介する本を参考にして、合わないところは変更しながら、現在は次のような形で週に1度90分間行っています。 準備(5分) 新しいテーマに取り組む場合、問題を皆に共有し、どう進めるか方向性を話し合って決めます。前回から引き続き同じテーマで行っている場合、前回やったことと、前回の振り返りで
次のページ
このページを最初にブックマークしてみませんか?
『LINEヤフー Tech Blog』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く