Voicyテックブログのフィード

https://zenn.dev/p/voicy

Voicyの技術的な取り組みからVoicyエンジニアのつぶやきまで、Voicy×技術で様々な情報を発信していきます。

フィード

記事のアイキャッチ画像
外部サービスとの整合性の付き合い方
Voicyテックブログのフィード
はじめにVoicyでバックエンドエンジニアをしているmasaです。先日、こちらの記事で大型機能だったコラボ収録のリリースを振り返りました。こちらの記事で触れていた、開発の上で難しかったポイントのうち、「Voicyサービスと外部サービス間の整合性の担保」について記事にできればと思います。 コラボ収録ってどんな機能?前回の記事でも書いたのでそちらと同じ表現になりますが、一言で表すと、「リアルタイムで離れた距離にいる参加者と顔を合わせながら収録ができる機能」です。ざっくりイメージとしては、ZoomやGoogle Meetのようなオンライン通話機能 + 収録機能 といったイメー...
15日前
記事のアイキャッチ画像
エンジニアしか解けない謎解き
Voicyテックブログのフィード
この記事はVoicy Advent Calendar 2024の20日目の投稿になります。こんにちは。Voicyでエンジニアをしている窪田です。今回は思いつきで「エンジニアしか解けない謎解き」を作ってみました。謎解きは何度かやったことはありますが作るのは初めてなので単純なものしか作れませんが、よければ遊んでみてください。記事内の情報だけでは難しいものもあると思うので、適宜ネットなども活用してください。下の方に答えも書いてあります。折り畳んではありますが、間違えて見てしまわないようご注意ください。 問1 数値を求めよ688 >> 3 問2 数値を求めよ...
16日前
記事のアイキャッチ画像
Swift Testingは採用するべきか
Voicyテックブログのフィード
結論採用! Swift TestingとはSwift Testingとは、一言で表すのであれば、WWDC 2024で発表され、Xcode 16から使えるようになった、XCTestではできなかった色々な表現を使ってTestを書けるFrameworkです。ちなみに、UITestはSwift Testingには含まれておらず、Unit TestのためのFrameworkとなっております。 情報源Swift Testingの公式からの情報源はとても豊富なので、いくつか紹介していきます。 1: GitHubSwift TestingはOpen Sourceなのでコードを見るこ...
17日前
記事のアイキャッチ画像
Angular v19のハイブリッドレンダリングを試す
Voicyテックブログのフィード
本記事はAngularアドベントカレンダー2024の18日目の記事です。昨日はnao_yさんでした。https://qiita.com/advent-calendar/2024/angular はじめにこの記事では、Angular v19から開発者プレビューとして入ったサーバールーティングによるハイブリッドレンダリングを試して紹介します。 ハイブリッドレンダリングとはハイブリッドレンダリングは、サーバーサイドレンダリング(SSR)、プリレンダリングまたは静的サイト生成(SSG)、クライアントサイドレンダリング(CSR)を組み合わせて、フロントエンドアプリケーションを最適化す...
17日前
記事のアイキャッチ画像
大型機能リリースを振り返る
Voicyテックブログのフィード
はじめにVoicyでバックエンドエンジニアをしているmasaです。先日、パーソナリティ向けの新機能としてコラボ収録機能がリリースされました。自分が入社して初めて携わった大きな機能開発ということもあり、せっかくなのでつらつらと振り返りをしていこうと思います。 コラボ収録ってどんな機能?一言で表すと、「リアルタイムで離れた距離にいる参加者と顔を合わせながら収録ができる機能」です。ざっくりイメージとしては、ZoomやGoogle Meetのようなオンライン通話機能 + 収録機能 といったイメージになります。コラボ収録機能を利用するステップとしては、ホストが収録をするた...
20日前
記事のアイキャッチ画像
Angularをv15→v18にアップデートしました
Voicyテックブログのフィード
!本記事はVoicy Advent Calendar 2024の8日目の記事です。(8日目に出すとは言っていない) はじめにこの記事では、業務でAngularアプリケーションをv15→v18にアップデートする上でやったこと、考えたことなどを書いていきたいと思います。 アップデートの背景プロダクト開発においてアプリケーションのフレームワークやライブラリをアップデートすることは、セキュリティリスクの解消やバグの修正、新機能の活用、パフォーマンス向上などにおいて重要だと思います。voicyでは現在、基本的にAngularのLTSに追従する形でアップデートを行う方針となっていま...
24日前
記事のアイキャッチ画像
ログのタイミングと情報量: 処理の流れを完全に再現するために
Voicyテックブログのフィード
何のためのログか常時稼働しているソフトウェアシステム(Webサービスなど)を運用している開発現場なら、問い合わせ対応や障害調査は日常茶飯事のように起こるのではないでしょうか。すでに終わった処理をあとから振り返るためには、当時の情報が残ってなければならない。その手がかりが十分にあると、想像や推測を交えずに、事実だけで「その時、システムが、何をしていたか」が説明できるようになります。筆者はログのことを、完了した処理をあとから再現するために、残っていなければならない事実と考えています。 処理を再現するための適正な情報量を求めて極端な話、処理中のあらゆるところで現状を記録し...
1ヶ月前
記事のアイキャッチ画像
Alistair Cockburnさんの新しい書籍「Unifying User Stories, Use Cases, Story Map」
Voicyテックブログのフィード
Alistair Cockburnさんはアジャイルソフトウェア開発宣言を考えたエンジニアの一人です。読み方はカタカナだとアリスターコーバーンが近いでしょうか。Hexagonal Architectureでもまた有名です。 以前書いた記事Hexagonal Architectureについては以前読んで記事を書きました。コーバーンさん本人についても軽く書いています。https://zenn.dev/voicy/articles/722c810df3ba0bこの本と同時期に出た、Hexagonal Architecture Explainedについても一応記事を書いています...
1ヶ月前
記事のアイキャッチ画像
Alistair Cockburnさんの新しい書籍「Hexagonal Architecture Explained」
Voicyテックブログのフィード
Alistair Cockburnさんはアジャイルソフトウェア開発宣言を考えたエンジニアの一人です。読み方はカタカナだとアリスターコーバーンが近いでしょうか。Hexagonal Architectureでもまた有名です。 以前書いた記事オリジナルのHexagonal Architectureについては以前読んで記事を書きました。コーバーンさん本人についても軽く書いています。https://zenn.dev/voicy/articles/722c810df3ba0b 待望の新刊同じアジャイルソフトウェア開発宣言を考えたエンジニアたちの中でも多作で現在も旺盛な出版活動...
1ヶ月前
記事のアイキャッチ画像
SwiftUIで複数のアラートを一つのViewで管理する
Voicyテックブログのフィード
はじめにSwiftUIで複数のタイプのアラートを実装する場面はよくありますが、このようにアラートを実装するとうまく動作しません。struct ContentView: View { @State private var showInfoAlert = false @State private var showWarningAlert = false var body: some View { VStack { Button("情報アラート") { showInfoAlert = tr...
5ヶ月前
記事のアイキャッチ画像
Datadog dd-trace-goが何をしているのか追ってみよう
Voicyテックブログのフィード
Datadogって?https://www.datadoghq.com/ja/インフラ監視やログ、アプリケーションのパフォーマンス分析を行うためのクラウドサービスを提供している企業とそのサービス名です。また、このようなツールを使うことで効率的なパフォーマンス改善や不具合修正を行うことができます。競合的なサービスはNew RelicやDynatraceなどでしょうか。かつては私もAWS環境にSSH接続をしてファイルをgrepしたりlessしたりtailしたりでログを追っていましたが、Voicyのようにk8sを使っていて、アプリケーションがたくさんのpodにいるようなサービスで...
5ヶ月前
記事のアイキャッチ画像
Alistair CockburnさんのHexagonal architectureを読んで
Voicyテックブログのフィード
この記事はAlistair CockburnさんのHexagonal architectureを読んだので、特に印象に残った点を引用しながら書いていきます。https://alistair.cockburn.us/hexagonal-architecture/ Alistair Cockburnさんはアジャイルソフトウェア開発宣言を考えたエンジニアの一人です。読み方はカタカナだとアリスターコーバーンが近いでしょうか。Crystalという開発手法を考えたり、振り返り手法の一つであるKPTの生みの親とも言われたりしています。CrystalはXPやScrumほど現在の日本で...
6ヶ月前
記事のアイキャッチ画像
Swift: print()は #if DEBUGで囲むべきか
Voicyテックブログのフィード
print()はパフォーマンスに影響するのか?Swiftにおいて何かデバッグ用の情報を出力するためにprint statementを使うことはとても頻繁にありますが、print("Hello World!")と書く人と#if DEBUGprint("Hello World!")#endifと書く人がいます。printは開発中にのみ必要なものなので、リリースされたアプリのビルドの中では不要な処理です。なので#if DEBUGで囲むことによってリリース用の処理から外すのは合理的と言えるでしょう。もしprint処理がパフォーマンスに少しでも影響するなら、リリース用のアプリか...
6ヶ月前
記事のアイキャッチ画像
Go Conferenceに初めて参加しました
Voicyテックブログのフィード
Voicyでバックエンドエンジニアをしているmasaです。昨日(2024/6/8)、AbemaTowersで開催されたGo Conferenceに参加したのでその感想などを記事にしてみようと思います! 参加までの過程私はVoicyに入社するまでGoを実務としては使ったことがなく、Go Conferenceの存在自体は認知していたものの「興味はあるけどGo使ってないし参加まではしなくていいかなぁ」という気持ちで参加を見送っていたのですが、今年からは実務でもGoを使うようになり、関心度が今まで以上に増していたため参加してしてみようと思いました!connpassで事前に参加申し込みを...
7ヶ月前
記事のアイキャッチ画像
Xcodeプロジェクトで環境変数を設定し、読み込む方法
Voicyテックブログのフィード
Xcodeプロジェクトで環境変数を設定し、読み込む方法この記事では、Xcodeプロジェクトで環境変数を設定し、それらをAppDelegateで読み込む方法について説明します。xcconfigファイルやXcode Cloudでの環境変数設定を利用して、プロジェクトのビルドや実行時に適切な環境変数を使用する方法を紹介します。 環境変数の設定まず、環境変数をxcconfigファイルおよびXcode Cloudで設定する方法を見ていきます。 1. xcconfig ファイルの設定xcconfigファイルはビルド設定を定義するためのファイルです。以下に例を示します。Debug....
7ヶ月前
記事のアイキャッチ画像
ケント・ベックさんのImplementation Patternsを読んだ読書感想文
Voicyテックブログのフィード
ケント・ベックさんとはケント・ベックさんはアジャイルソフトウェア開発宣言を考えたエンジニアのなかのひとりで、テスト駆動開発(TDD)やエクストリームプログラミング(XP)で有名な方です。ほかには、超著名なテストフレームワークであるJUnitの開発者としても知られています。私はJUnitを利用した経験がありませんが、その影響を受けて開発されたPHPUnitを使った経験はあります。現代のソフトウェア開発に多大な貢献をしているお方ですね。 Implementation Patternsとはケント・ベックさんがソフトウェア開発をおこなうときに、こうしたらやりやすいんじゃないかなと...
8ヶ月前
記事のアイキャッチ画像
原著のすすめ
Voicyテックブログのフィード
はじめにVoicyでバックエンドエンジニアをしているmasaです。GWに何か記事を1つでも書けたらな〜と思っていたので、Voicyに入社して以降取り組み始めた「原著を読む」ということについて記事にしてみることにしました。ぜひ読んでいただけますと幸いです。 なぜ原著を読み始めたのか?私が原著を読み始めたきっかけは、主に以下のようなものです。(エンジニアなのに)英語に対する苦手意識があって、克服したいと思っていたVoicyに入社していろんなことにチャレンジしてみたいと思っていた(2024/1にVoicyにジョインしました)社内でタイミングよく輪読会が始まったまず、...
8ヶ月前
記事のアイキャッチ画像
GCPの料金削減をしたい パート2
Voicyテックブログのフィード
前回の記事では、GCPの料金内訳とその中でも特にBigQueryが占める割合に焦点を当てました。この記事では、具体的な削減措置とその結果について詳しく見ていきましょう。前回の記事で何にいくら使用しているのかが把握できました。 削減の流れ分析と方針の決定BigQueryの使用料金内訳確認BigQueryのコスト削減←今回の記事はここから定期実行頻度の見直し結果今後の改善に向けて BigQueryのコスト削減BigQueryは非常に強力なデータウェアハウスサービスですが、使い方によってはコストが膨らむこともあります。私たちは、GCPの料金の大部分をBigQuery...
9ヶ月前
記事のアイキャッチ画像
ホワイトボードOAuth: 本人、代理人、委任状から成り立つ操作の代行
Voicyテックブログのフィード
OAuth 2.0の世界観を5分で伝えるためにOAuth 2.0を知らない同僚に、5分で紹介するとしたら何を話せばいいか。「RFC 6749ではこういった用語やこういった流れが定義されてますよ」という風に説明しても興味を持ってもらえないだろうと筆者は思います。この記事ではRFC 6749をはじめとする公式の文献にあえて触れずに、口頭でも説明しやすい形でOAuth 2.0のあらすじを紹介していきます。 最初の一言OAuth 2.0がサポートされているサービスでは、ユーザー本人から委任状をもらった代理人は、サービス内でユーザーに代わって操作を代行することができる。とい...
9ヶ月前
記事のアイキャッチ画像
GCPの料金削減をしたい
Voicyテックブログのフィード
はじめにGoogle Cloud Platform(GCP)はその柔軟性、スケーラビリティ、強力なクラウドサービスのラインナップで、企業や開発者から高い支持を受けています。しかし、少しの油断で予想外の高額請求に直面することもあります。多くの人がGCPの料金に関して、何百万円もの損失を経験した話を聞いたことがあるでしょう。今回はVoicyで行ったコスト削減の取り組みについて紹介します。 削減の流れ分析と方針の決定BigQueryの使用料金内訳確認←今回の記事はここまでBigQueryのコスト削減定期実行頻度の見直しコストのアラートと上限設定結果今後の改善に向けて...
10ヶ月前