ブックマーク / tech.every.tv (31)

  • 日本CTO協会の合同新卒研修に参加しました - every Tech Blog

    はじめに こんにちは、株式会社 エブリー の24新卒の蜜澤、きょー、新谷です。 今回は、2024年5月から7月にかけて開催された日CTO協会主催の合同新卒研修に参加した際の内容と学びについてご紹介します。 合同新卒研修とは 研修は、日CTO協会が主催する新卒エンジニア向けの合同研修です。新卒エンジニアが業界全体・企業横断で育てられる試みとして、今年から開催されました。 日CTO協会が新卒エンジニアを業界全体・企業横断で育てる試み「新卒エンジニア向けの合同研修」を5月29日から実施 上記記事にも書いてありますが、開催に至る背景として 現状企業が経営・事業を大きくする、新たなチャレンジをする上でもエンジニアが常に足りない状況にある スタートアップや中小企業が新卒エンジニアを採用するには、採用コストだけではなく育成のコストも大きくかかる といった課題があることから、研修が開催されていま

    日本CTO協会の合同新卒研修に参加しました - every Tech Blog
    yug1224
    yug1224 2024/08/20
  • VueUse: 5分で分かる Vue.js 開発の効率化術 - every Tech Blog

    はじめに こんにちは、Retail Hub 事業部でエンジニアを務めている 羽馬 です。 この記事は、Vue.js 日ユーザーグループ主催の Vue.js v-tokyo Meetup #21 で登壇した際の発表資料を元に、VueUse というライブラリを使って Vue.js 開発を効率化する方法をご紹介します。 登壇資料はこちら: speakerdeck.com VueUse とは VueUseは、Vue Composition APIのための包括的なユーティリティコレクションです。以下の特徴があります: 200以上の便利な関数を提供 Vue.jsアプリケーション開発の生産性を大幅に向上 ローカルストレージ、デバイス情報、スクロール位置、フォームバリデーションなど、幅広い機能をカバー 宣言的で再利用可能なコンポーザブル ライフサイクルフックの自動処理 必要な機能のみをインポート可能(t

    VueUse: 5分で分かる Vue.js 開発の効率化術 - every Tech Blog
    yug1224
    yug1224 2024/08/16
  • メンテナンスで出来るだけ再現性を持たせて考えることを減らそう - every Tech Blog

    はじめに そもそもなぜメンテナンスが必要になってくるのか メンテの手順にどうやって再現性を持たせるか コード化して再現性を持たせる コマンドライン上で再現性を持たせる 事前に模擬メンテを行う アプリケーションコードの変更なしでメンテに追従できるようにする まとめ はじめに こんにちは、トモニテ開発部ソフトウェアエンジニア兼、CTO 室 Dev Enable グループの rymiyamoto です。 今回はバックエンド系を触っている人なら誰しもが一度は関わるであろうメンテナンス(以下メンテと省略します)の話をしていきたいと思います、 実際のメンテのための計画方法は以下の記事で紹介されていますので、気になる方はご覧ください。 tech.every.tv そもそもなぜメンテナンスが必要になってくるのか まずメンテが起きないように基オンタイムでアプリケーションが更新されるように仕組みを作ることは

    メンテナンスで出来るだけ再現性を持たせて考えることを減らそう - every Tech Blog
    yug1224
    yug1224 2024/08/09
  • go1.22 からのテストカバレッジとの付き合い方 - every Tech Blog

    はじめに そもそも話題の背景 低下の要因たち 仕様変更に至るまでの経緯 計測方法の見直し テストファイルがあるものだけ抽出する(ホワイトリスト型) 除外したい pkg を名指しする(ブラックリスト型) まとめ はじめに こんにちは、トモニテ開発部ソフトウェアエンジニア兼、CTO 室 Dev Enable グループの rymiyamoto です。 最近はエルデンリングが再燃しています。 2024/06/18 に Go Conference 2024 の非公式イベントとして の Go BASH が開催されました。 andpad.connpass.com その際に go の ver 1.22 におけるテストカバレッジについて話をしてきたため、その内容を記事にまとめたものです。 speakerdeck.com そもそも話題の背景 go1.22 が出たタイミンで影響少なそうなリポジトリで試しにアップ

    go1.22 からのテストカバレッジとの付き合い方 - every Tech Blog
    yug1224
    yug1224 2024/07/19
  • リアーキテクチャを支えるテスト駆動開発:効果的なリファクタリングの方法 - every Tech Blog

    この記事は every Tech Blog Advent Calendar 2024(夏) 27日目の記事です。 目次 はじめに 背景と問題点 既存設計の問題 新しい設計方針 リファクタリングの準備 テストを書く リファクタリング作業 実装する テストする まとめ 終わりに はじめに DELISH KITCHENのiOSアプリ開発を担当している池田です。DELISH KITCHENでは皆様の料理体験がより良いものになるよう、日々新しい機能を追加しています。今回は「リアーキテクチャを支えるテスト駆動開発:効果的なリファクタリングの方法」について、実際の経験をもとにお伝えします。テスト駆動開発の重要性を改めて確認しながら、効果的なリファクタリングの方法を紹介します。 背景と問題点 DELISH KITCHENのiOSアプリは2016年のリリース以来、様々な機能を追加してきました。しかし、しっか

    リアーキテクチャを支えるテスト駆動開発:効果的なリファクタリングの方法 - every Tech Blog
    yug1224
    yug1224 2024/06/29
  • Go 言語で行うメール解析 - every Tech Blog

    この記事は every Tech Blog Advent Calendar 2024(夏) 6 日目の記事です。 目次 はじめに イントロダクション そもそもメールヘッダーとは net/mail パッケージ メールの解析 ヘッダーの取得 Body の取得 net/mail パッケージのメール解析で辛いところ MIME マルチパートメッセージの解析が不完全 MIME マルチパートメッセージとは デコード機能が不十分 メールプロトコルに沿わせた構成にするのが大変 メールプロトコルとは net/mail で解析したメールを送信可能なメールにするために jhillyerd/enmime パッケージ メールヘッダーの設定 net/mail と jhillyerd/enmime の比較 net/mail メリット デメリット jhillyerd/enmime メリット デメリット まとめ 最後に はじ

    Go 言語で行うメール解析 - every Tech Blog
    yug1224
    yug1224 2024/06/08
  • Go 言語の並行処理: ゴルーチンとチャネルの活用法について - every Tech Blog

    はじめに この記事はevery Tech Blog Advent Calendar 2024(夏) 4 日目の記事です。 こんにちは!トモニテで開発を行っている吉田です。 今回はGo 言語の特徴的な機能である並行処理について書いていきます。並行処理を支えるゴルーチン (goroutine) とチャネル (channel) の仕組みと使い方を、サンプルコードとともに紹介します。 並行処理を実現するにあたり まずはゴルーチンとチャネルについて理解を進めます。 ゴルーチンとは ゴルーチンとは 他のコードに対して並行に実行している関数のことです。 前提として全ての Go のプログラムには最低 1 つのゴルーチンがあります。それがメインゴルーチンです。 下記のように関数の前に go キーワードを追加することでゴルーチンを起動することができます。 func PrintStr(str string){

    Go 言語の並行処理: ゴルーチンとチャネルの活用法について - every Tech Blog
    yug1224
    yug1224 2024/06/05
  • go 言語で cobra と slog を使った CLI ツール開発 - every Tech Blog

    この記事は every Tech Blog Advent Calendar 2024(夏) 3 日目の記事です。 はじめに こんにちは、トモニテでバックエンド周りの開発を行っている rymiyamoto です。 最近は学園アイドルのプロデューサー業に追われています。 今回は、Go 言語で CLI ツールを開発する際によく使われるライブラリである cobra と go1.21 から標準パッケージで使えるようになった slog を使って、CLI ツールを開発する方法について紹介します。 選定理由 現状の課題 Go 言語だとスクリプト処理を実装する際、簡単なものであれば main.go にそのまま処理を書いていくことが多いですが、コマンドライン引数を取るような処理を書く場合、コードが複雑になりがちです。 実際トモニテ内のスクリプト処理も当時の実装メンバーに依存しており以下のような課題がありました

    go 言語で cobra と slog を使った CLI ツール開発 - every Tech Blog
    yug1224
    yug1224 2024/06/05
  • Vuex から Pinia への移行を行いました - every Tech Blog

    はじめに この記事は、every Tech Blog Advent Calendar 2024(夏) の1日目の記事です。 DELISH KITCHEN開発部の羽馬(@NaokiHaba)です。 この記事では、DELISH KITCHEN チラシ で使用している Vuex の Pinia への移行について紹介します。 chirashi.delishkitchen.tv 記事では、これらの知識があることを前提に説明を進めます。 Vue.jsの基的な知識 Nuxt.jsの基的な知識 Vuexの基的な知識 Piniaとは Pinia(ピーニャ)は、Vue.js用の新しい状態管理ライブラリです。Vuexの次のイテレーションとして開発が始まり、Vuex 5に組み込むことを想定していたアイデアを多く取り入れています。 pinia.vuejs.org Piniaは、Vuexと比較して以下のような

    Vuex から Pinia への移行を行いました - every Tech Blog
    yug1224
    yug1224 2024/06/01
  • 簡単に高品質なドキュメントスキャナーが実装できる、ML Kit Document Scanner API がリリースされたので使用してみた。 - every Tech Blog

    はじめに ML Kit とは ML Kit Document Scanner API とは 主なクラスについて GmsDocumentScannerOptions (オプション) スキャナーのモード 最大ページ数 フォトギャラリーからのインポートの可否 結果のフォーマット GmsDocumentScanning (スキャナーの開始) GmsDocumentScanningResult (結果処理) まとめ 余談 未実装のキャプチャーモード はじめに トモニテでAndroid開発を担当している岡田です。 先日、ML Kit Document Scanner API のベータ版がリリースされました。 公式ドキュメントやサンプルアプリを参考に、今回はAndroidでの実装方法・内容をご紹介したいと思います。 以下に参考にしたサイトのリンクを示します。是非覗いてみてください。 android-de

    簡単に高品質なドキュメントスキャナーが実装できる、ML Kit Document Scanner API がリリースされたので使用してみた。 - every Tech Blog
    yug1224
    yug1224 2024/04/29
  • ネットスーパーアプリ GraphQL から REST へ移行始めました - every Tech Blog

    はじめに こんにちは、retail HUBで Software Engineer をしているほんだです。 今回は私が現在着手している事業譲渡されたアプリを社内で持続的なプロダクト開発を行える状態にするリプレイスプロジェクトをどのように行っているか紹介しようと思います。 この記事ではリプレイスを行うにあたってどのようなことを課題に感じてその課題に対してどのような解決策をとったか主にサーバーの実装について説明しています。 ネットスーパーアプリとは 現在弊社ではネットスーパーアプリとして Web アプリとスマホアプリの二つのシステムを提供しています。 Web アプリは販促コンテンツの設定や売り上げの管理・集計を行うことが可能な管理システムと受け取り方法に応じた価格変更や送料変更にも対応し、消費者の柔軟な買い物を実現するお客様向けアプリを 17 の小売り様に、スマホアプリでは Web アプリのお客

    ネットスーパーアプリ GraphQL から REST へ移行始めました - every Tech Blog
    yug1224
    yug1224 2024/03/31
  • DevEnableグループを 新設しました! - every Tech Blog

    はじめに エブリーでCTOをしている今井です。先日の池のブログ でも少し触れておりますが、2月にDevEnableグループ を設立したので、その紹介と設立した背景ついてお話しできればと思います。 tech.every.tv DevEnableグループとは DevEnableグループはCTO室に属しているグループで、開発部を横断し、組織の活性化・成長環境の提供・発信・広報の強化・採用など、さまざまな課題解決を推進するグループです。 DevEnableという名前は Developer Enablement から取られており、「社内外から憧れる開発組織へ」というのをミッションに、エンジニア自身やエンジニア組織がより活性化し、成果を出し続けられる人・組織にすることを目標としています。 Developer Enablementは各社定義もかなり幅があるように感じておりますが、自分は、エンジニア自身

    DevEnableグループを 新設しました! - every Tech Blog
    yug1224
    yug1224 2024/03/22
  • 開発組織のナレッジ共有とコミュニケーションを促進する社内イベント「TechTalk」の紹介 - every Tech Blog

    はじめに こんにちは。DELISH KITCHEN 開発部 SERS グループ兼、CTO 室 DevEnable グループ所属の池です。 SERS グループでは主に小売向けプロダクトの開発を行なっており、DevEnable グループでは社内開発組織活性化に向けた活動を行なっています。 今回は DevEnable グループの活動の一つである、”TechTalk” という社内技術共有会の取り組みにスポットを当てたイベントレポートをお届けします。 DevEnable グループとは 2024 年 2 月に DevEnable グループが新設されました。有志が組織活性化委員会として行なっていた活動を正式な組織活動としてより広く深く取り組むためのグループです。 私たち DevEnable グループのミッションは「社内外から憧れる開発組織へ」です。そのミッションの実現に向けて採用・発信・成長環境などの課

    開発組織のナレッジ共有とコミュニケーションを促進する社内イベント「TechTalk」の紹介 - every Tech Blog
    yug1224
    yug1224 2024/03/20
  • Github Copilot Chat の機能・使い方を整理しつつ開発者体験が向上する活用事例を考えてみた - every Tech Blog

    はじめに 子育てメディア「トモニテ」でバックエンドやフロントエンドの設計・開発を担当している桝村です。 エブリーは、現在 GitHub Copilot Business を持つ Organization アカウントであるため、多くの開発メンバーが Github Copilot を業務で活用しています。 Github Copilot は、コーディング時に AI ペアプログラマーからオートコンプリート スタイルの候補を提示する拡張機能です。 github.com Github Copilot のユースケースとして、コーディングにおける補完はもちろん、コメントからのコード・テストの自動生成やコードの説明を求めるなど、様々な場面で活用しています。 今回は Github Copilot Chat について、その基的な機能や使い方を整理しつつ、開発者体験が向上するような活用事例を考えてみました。 前

    Github Copilot Chat の機能・使い方を整理しつつ開発者体験が向上する活用事例を考えてみた - every Tech Blog
    yug1224
    yug1224 2024/03/08
  • Go testにおける可読性を保つ方法を考える - every Tech Blog

    はじめに TIMELINE開発部の内原です。 日はGo言語のテストにおける可読性について考えてみます。この記事を読んでいただいている皆さんにも、テストを書いていて以下のような問題を感じた経験があるのではないでしょうか。 既存のコードに機能追加をするためテストコードにもテストケースを追加しようとしたが、テストコードが複雑で読み解きづらく、テストを追加するのに苦労した テストケースの種類が多く、少しデータを追加しただけでも既存のテストが動かなくなる テストデータの登録方法が複雑で、テストコードの実装以前に手間取る 上記のような問題に対処するべく、実践的なシナリオに従ってGo言語のテストコードを実際に書きつつ都度改善していくことにします。 仕様(ver.1) ユーザ情報には名前、状態(有効、無効)とがある 有効なユーザ一覧を返却する関数 LoadActive() を実装する。その際並び順はID

    Go testにおける可読性を保つ方法を考える - every Tech Blog
    yug1224
    yug1224 2024/02/29
  • Datadog Synthetic Monitoring API Tests で 20 を超えるドメインの SSL を監視した - every Tech Blog

    エブリーで小売業界向き合いの開発を行っている @kosukeohmura です。 昨年、エブリーではネットスーパーの事業を株式会社ベクトルワン様から引き継ぎました。引き継いだシステムを運用していく中で、ネットスーパーの各種サイトや API に使用している 20 個超の SSL 証明書の有効期限を切らさないように更新していく必要があり、そのために監視を導入したお話をします。 引き継ぎ作業の概観については以前公開しました ゼロからはじめるシステム引き継ぎ - every Tech Blog に書きましたので、合わせて御覧ください。 背景とモチベーション システムを引き継いだ時点では SSL 証明書の更新の運用は素朴なものでした。具体的にはエンジニアが有効期限を切らさないようにたまにそれぞれのサイトの有効期限をチェックし、有効期限が近づいたものを発見次第手動で更新作業を行うというものです。抜け漏

    Datadog Synthetic Monitoring API Tests で 20 を超えるドメインの SSL を監視した - every Tech Blog
    yug1224
    yug1224 2024/02/20
  • DELISH KITCHENにおけるNuxt3へのアップグレードに向けた挑戦 - every Tech Blog

    はじめに はじめまして。DELISH KITCHEN開発部の羽馬(@naokihaba)と申します。 私が所属するDELISH KITCHEN開発部では、現在Nuxt3へのアップグレードに向けた取り組みを進めています。 この記事では、私たちが行っているNuxt3へのアップグレードに向けた取り組みについて紹介いたします。 移行背景 私が所属するDELISH KITCHEN開発部では、いくつかのプロダクトでNuxt.jsバージョン2.xを利用しています。 しかしながら、Nuxt.js@2.xのサポートは2024年6月30日に予定されており、Nuxt3にアップグレードする必要が出てきました。 そこで、私たちはNuxt3へのアップグレードに向けて「Nuxt3に移行するべきか、それともNext.jsに移行するべきか」という議論を続けてきました。 Nuxt3への移行を選択した理由 近年、Next.js

    DELISH KITCHENにおけるNuxt3へのアップグレードに向けた挑戦 - every Tech Blog
    yug1224
    yug1224 2024/02/18
  • 2023年の振り返りと2024年に向けて - every Tech Blog

    ドウデュース、武豊さん、さすがの競馬でしたね。 CTOの @imakei_ です。株式会社エブリーの2023年アドベントカレンダーの締めとなる25日目のブログです。 他のブログも力作が揃っておりますでの、まだの方はぜひ こちら をご覧ください! ブログでは、2023年の振り返りと、2024年に向けた思いを書きたいと思います。 2023年は、開発部としても「挑戦WEEK」を始めたり、 7月から会社としても「挑戦」をテーマに掲げるなど、 「挑戦」をたくさん行った1年となりました。 2023年のハイライト 開発部としての挑戦をいくつか振り返ります。 コンパウンドなプロダクトへの挑戦 弊社はDELISH KITCHEN、トモニテ、TEMELINEと3つのカンパニーに分かれ、 ドメインの異なる複数のプロダクトを運営しています。 これだけでもコンパウンドといえばコンパウンドなのですが、 さらに各

    2023年の振り返りと2024年に向けて - every Tech Blog
    yug1224
    yug1224 2023/12/26
  • monorepo環境でeslint flat configを導入してみた - every Tech Blog

    はじめに この記事は、every Tech Blog Advent Calendar 2023 の21日目の記事です! 男梅シート、あのクセになるしょっぱさと噛めば噛むほど溢れ出てくる旨さは悪魔的ですよね。僕の推しです。 初めまして!エブリーで内定者インターンをしている @きょー です! インターンでは業務でサーバーやフロントをタスクベースで開発しています。 現在フロントのコードをリプレイスしていて、Eslintの設定ファイルを見直す機会をもらったのでその際に得た知見を共有していきたいと思います! 導入に至った背景 We expect the first alpha release of ESLint v9.0.0 to be released in December or January, depending on the progress we make on our tasks. E

    monorepo環境でeslint flat configを導入してみた - every Tech Blog
    yug1224
    yug1224 2023/12/25
  • 実務に入る前に理解していたらもう少し開発速度を上げられたかなと思うこと - every Tech Blog

    はじめに こんにちは!トモニテにて開発を行なっている吉田です。 この記事は every Tech Blog Advent Calendar 2023 の 21 日目の記事となります。 今回は、私が実務に入る前に理解していたらもう少し開発速度を上げられたかなと思うことについて取り上げます。 経緯 私は今年の 2 月にエブリー入社し、エンジニアとしてのキャリアも同じタイミングでスタートしました。 入社してもうすぐ1年経つのですが、日々の業務に取り組む中でさまざまなサービスや技術にふれてきました。 出会うもの全てが未知との遭遇でエブリー入社当初、知らないことだらけでまずい!と思ったことを覚えています。 そこで今回はタイトルの通り「実務に入る前に理解していたらもう少し開発速度を上げられたかなと思うこと」、その中でもアークテクチャとテストについて取り上げます。 エンジニアとしての初心者の立場からの視

    実務に入る前に理解していたらもう少し開発速度を上げられたかなと思うこと - every Tech Blog
    yug1224
    yug1224 2023/12/25