1. Qiita FM-エンジニアのキャリアを深掘り-
  2. #80 【アドカレ開発の裏側③】..
2025-11-18 22:04

#80 【アドカレ開発の裏側③】エンジニア編 | 初めてのアドカレ開発!先人たちの設計に支えられた新機能開発

spotify apple_podcasts

Qiitaメンバーと一緒に Qiita Advent Calendar の開発にまつわる裏話などをお届けする特別編・第3弾【エンジニア編】。


<トークテーマ> 

・新機能「複数カレンダーへの紐付け」開発の背景と狙い

・カテゴリ選定の工夫:迷いづらく、探しやすく、登録しやすく

・カレンダーにもタグを設定可能に!開発の裏話

・「先人の設計の上に今のQiitaがある」──過去の開発者への感謝と敬意

・「変更すると別のところが壊れる!?」歴史あるコードとの格闘

・年に一度しか検証できない難しさ、来年はもっと最高のアドカレへ!


Qiita Advent Calendar2025

https://qiita.com/advent-calendar/2025


Qiita Advent Calendar 2025のアップデートの紹介

https://qiita.com/Qiita/items/6f8ca2d3ed513f316e66


<X(Twitter)ハッシュタグ>

#QiitaFM


<番組へのメッセージはこちらから>

https://forms.gle/K9HyUGy7phDBGpht7

See Privacy Policy at https://art19.com/privacy and California Privacy Notice at https://art19.com/privacy#do-not-sell-my-info.

サマリー

今回のエピソードでは、鈴木隆さんがQiitaのアドベントカレンダーの開発に関する裏話を語り、カレンダーカテゴリーの変更や新機能の追加について詳しく説明しています。特に、複数カレンダーへの紐付け機能やカテゴリーの選定基準に焦点を当て、エンジニアの視点から改善点が討議されています。アドベントカレンダーの開発における新機能や操作性の向上については、特にタグ機能の追加がユーザーの利便性向上につながることが強調されています。また、利用者からのフィードバックが次年度の改善にとって重要であることも示されています。

アドベントカレンダーの開発背景
日本最大級のエンジニアコミュニティQiitaプロダクト開発部部長の清野俊文です。
この番組では、日本で活躍するエンジニアをゲストに迎え、キャリアやモチベーションの話を深掘りしながら、エンジニアの皆さんに役立つ話題を発信していきます。
普段はゲストの方をお呼びして、3回のインタビュー会を配信していますが、Qiitaアドベントカレンダーの投稿期間が開始されたこともあり、
今月はQiitaで働くメンバーと一緒にQiitaアドベントカレンダーの開発にまつわる裏話などをお届けする特別編でお送りします。
今回は、プロダクト開発部Qiita開発グループエンジニアの鈴木隆さんに登場してもらいます。よろしくお願いします。
よろしくお願いします。
では、軽く自己紹介をお願いしてもよいですか。
Qiita株式会社でプロダクト開発部Qiita開発グループでエンジニアをしております。
鈴木隆です。今日はよろしくお願いします。
はい、よろしくお願いします。
鈴木くんはですね、今年新卒2年目?
2年目ですね。
2年目だよね、まだ。
はい。
はい、ということで、若手のエースとしてアドベントカレンダーを今回開発してくれているということで、
ぜひですね、その中のこだわりポイントだったりとか、どうしたポイントとか色々お伺いできたらなと思っています。
お願いします。
お願いします。
はい、ということで今回開発編なので、本当に開発周り色々お伺いしたいなと思っていて、
出口くんの方からご紹介してもらっていたアップデート周りで、
特に開発周りで聞きたいなと思うところを聞いていきたいなと思っています。
まず一つ目がカレンダーカテゴリーの変更ですかね。
今回改めてこのカレンダーカテゴリーの変更というところでどういうことをやったのか聞いてもよいですか。
はい。カレンダーカテゴリーの変更をしたというところなんですけど、
これまでのカテゴリーと少しカテゴリー自体を変えたっていうのと、
それに対してディスクリプションというかサブタイトルを追加するっていうことをしました。
ディスクリプションも入ったんですね。
そうですね。
ちなみにどういう感じのイメージのものが入ったんですか。
カテゴリーに対してそれの説明文が入るようになっていて、
例でいうとプレゼントの場合は、記事を投稿してプレゼントをゲットしようだったり、
データベース、データウェアハウスに関しては、
RDBMS、NoSQL、クラウドデータベースなど、
DBおよびデータの管理活用などといったディスクリプションを追加するようにしました。
なるほど。今まで以上にどのカテゴリーにしようかなと思ったときに、
そこのディスクリプション読めばある程度イメージがつきやすくなったみたいな、
そんな感じのイメージですかね。
そうですね。
あとカテゴリーの分け方自体も今回いろいろ見直してるんですよね。
はい。見直しました。
それは鈴木君がいろいろ選定をしたんですか。
そうですね。僕と同期の鈴木君で選定をしたっていう感じになってますね。
はいはいはい。新人2人で今回は見直してくれたってことですね。
はい。そうです。
カレンダーカテゴリーの見直し
なるほど。どういう観点で今回は選定したんですか。
観点としては、一番は迷いづらくするっていうこと。
探しやすく、登録しやすくするっていうのをメインに変更しましたね。
なるほど。例えば今までってどういうカテゴリーが微妙っていうのもあれですけど、
分かりづらそうだったんですかね。
一番分かりづらいなと思ってるのがLibrary Frameworkっていうもので、
そのカテゴリーはすごいごったに状態になっていたというか、
僕たちWebエンジニアからしたらLibrary Frameworkっていうと、
Next.jsとかRailsとかを想定していると思うんですけど、
いざ開いてみると機械学習のLibraryが出てきちゃったり、
3Dスキャンとかが出てきちゃったりしていたので、
その辺があまり良くないなっていうふうに思ってたところですね。
なるほど。カテゴリーのワードチョイスとかがふんわりしすぎてて、
結構どういう解釈の仕方もできちゃうみたいな、そういう課題があったイメージですかね。
そうですね。
なるほど。他にあるんですか?見直したところとかは。
他で言うと、OSとエディターっていうカテゴリーがあったんですけど、
そこに関してはほとんどカテゴリーというよりも決まりきっていて、
カレンダー自体がすごく少ない状態だったので、
それを削除して別のカテゴリーに統合したっていう感じになりますね。
なるほど。結構そういう単純に増やしたとか文言を変えただけではなくて、
統配語というか、そういうのも今回やっているってことですね。
はい、そうですね。
なるほど。これは僕も毎年アドベントカレンダーに関わっている人間として聞きたいなと思っていることなんですけど、
アドベントカレンダーって毎年開催してるから、毎年分のデータあるじゃないですか。
なので、新機能を追加するとか、カテゴリー見直すってなると、
結構過去のデータも色々影響しちゃうみたいなことって、
アドベントカレンダーあるやろうと僕は勝手に思ってるんですけど、
今回そこら辺の見直しをしていく上で、
そこら辺の工夫って何かやってたりしますか。
例えば過去のアドベントカレンダーがどうなるのとか。
過去のアドベントカレンダーとも、ちゃんと互換を取れるように変更したっていう風になってますね。
なので、去年のアドベントカレンダーを見ていただくと、OSエディターっていうカテゴリーは存在するんですけど、
今年からはなくなってるっていう風になります。
なるほど。そこら辺の過去のデータちゃんと残しつつ、
今年そこら辺の見直しはちゃんと維持しつつっていうのをやってるってことですね。
そうですね。
なるほど。そこら辺大変じゃなかったですか、工夫するの。
元の設計が良かったっていうのもあって、
上手い具合にカテゴリーを追加したり消したりするっていうのはそこまで苦労はしなかったですね。
そうなんですね。すごい。先人がそこら辺も見据えて作ってくれてたってことですね。
そうですね。それに乗っかってっていう感じですね。
なるほど。あとはもう一個聞きたいなって思ったのが、
結構カテゴリーって難しいなって僕も毎年見直そうみたいな話って出てきて、
いろいろ追加したりとか文言変えたりっていうのはよくやってるかなと思うんですけど、
なんていうんですかね、いわゆる見石にしにくいものでもあるし、
あとやっぱり人によってこういうカテゴリー欲しいよねっていうのもいろいろある気がするんですよ。
それこそさっきのウェブ系の人だったらこういう感じだろうなって思えば、
機械学習とかデータサイエンス系だとこういうのあったほうがいいなとかいろいろある気がするんですけど、
そこら辺の最終的ななんていうんですかね、
これでいこうってするときって最後どうやって決めたんですか。
最後決めるときはどのエンジニアにとっても役に立つようにするというか、
今回新しく追加したカテゴリーとしてはゲームっていうのがあるんですけど、
もともとゲーム用のカテゴリーは存在しなくて、
ライブラリーの中にゲームのライブラリーを入れるみたいな状態だったんですけど、
やっぱりゲームエンジニアにも楽しんでもらいたいし、
AI機械学習エンジニアの方にも楽しんでもらいたいし、
ウェブエンジニアの方にも楽しんでもらいたいなということで、
誰にとっても楽しんでもらえるようなカテゴリーに分けをするということを意識しましたね。
いいですね、なるほど。
本当に誰かに偏る感じではなく、
みんなが使いやすいようなカテゴリーに今回はトライとして変えてみたっていう感じですかね。
はい、そうですね。
なるほど。ここら辺もぜひフィードバック欲しいですね。
そうしたら、このカテゴリーが良かったのかどうかっていうところは。
カテゴリーに関してはすごくフィードバックが欲しいと思っていて、
複数カレンダーへの新機能
毎年毎年フィードバックをいただけると、
次の年にこういうふうにしていけるんだろうなっていうのがあると思うので、
ぜひフィードバックお願いします。
はい、よろしくお願いします。
では続いてのアップデートのところもお話聞きたいなと思っているんですけど、
大きいところで言うと複数カレンダーへ紐付け可能にするところですかね。
はい。
これは本当に今までのKiitaのAdvent Calendarなかった機能、
本当に文字通り新機能かなと思うので、
結構作るのも大変だったんじゃないかなと思うんですけど、
ここら辺も改めて機能の紹介というところと、
どこら辺が目的としてあるのかみたいなところを伺ってもいいですか。
はい。機能の紹介としてはそのままなんですけど、
これまでは一つの記事に対して一つのカレンダーを紐付けることしかできなかったんですけど、
今年からは複数のカレンダーを紐付けられるようになりました。
どのカレンダーに対しても複数紐付けをできるっていうわけではなくて、
オーガナイゼーションカレンダーとオーガナイゼーションではないカレンダーに複数紐付けをすることができるようになりました。
今回のこの機能は去年のAdvent Calendarは実は過去最高の参加人数だったんですけど、
Xなので盛り上がっていないっていう意見があったっていうのと、
オーガナイゼーションがあまりにも盛り上がりすぎていて、
その他のカレンダーが盛り上がってないように見えるっていう現象があったので、
それを改善するために今回この機能を追加したっていう形になってます。
本当に今鈴木君も言ってくれた通り、
KiitaのAdvent Calendarって毎年参加者数もそうですし記事投稿数も増えてるんですよね。
数もちろんカレンダー数も増えていて、
データとしては毎年順調にいろんな人に使っていただけているかなと運営としては思ってはいるんですが、
その一方で結構偏りが出ちゃってるっていうのが今のKiitaの課題はあるかなと思っていまして、
1回目の話の時も鈴木君と話したんですけど、
自分が所属しているオーガナイゼーションに記事って紐付けやすいんですよね。
別に記事の内容とか関係なく自分が所属しているっていう理由だけで紐付けられるし。
かつやっぱりAdvent Calendarってオーガナイゼーションでやってこようっていう盛り上がりを作ってくださっている企業様だったり団体という方も結構いっぱいいらっしゃるので、
そうなるとどうしても何も考えなければオーガナイゼーションに紐付けやすいっていうのがやっぱりKiitaの中でちょっと課題としてあるなと思っていて。
もちろんやっぱりAdvent Calendarっていろんなカレンダーがあってそこにいろんな記事が詰まってくるってところが本来の醍醐味かなっていうのは思っているので、
単純にオーガナイゼーションに紐付けちゃったから他のところに紐付けられなくて結果的にオーガナイゼーションカレンダーだけしか盛り上がっていないように見えるっていうのは
やっぱり運営としてもできるだけ変えていきたいなと思っているところなので今回はちょっとチャレンジとして1個のトライとしてこの機能を追加しているというような感じですかね。
はい、そうですね。
これ実際今回開発編というところなので開発のところも聞いていきたいんですけど、結構大変だったんじゃないですか。
今までって聞いたのカレンダーって要は記事って1カレンダーにしか紐付けられないという設計になってたわけじゃないですか。
はい。
そこが変わったのって結構大変じゃなかったですか。
そこまで大変ではなかったですね。
もともと1つしか紐付けられない状態だったのを2つに紐付けるようになったので純粋に変更量は多かったですけど、それ以外のところはそこまで難しくはなかったですね。
なんかこう気にしてたポイントとかあるんですか、作っていく中で。
作っていく中で気にしてたっていうか少し発見だったことなんですけど、2014年か2015年の頃って実はカレンダーの紐付けが1つじゃなくて複数紐付けができる状態の時があったんですけど。
そうなんだ、知らなかった。
これはもう僕が開発してて、そうなんだって思ったことなんですけど、それもあってかもともと複数紐付けができる状態がせいだったのでそこに戻したっていうのもあって、
割と道筋が分かりやすかったというか、こう変更していったらいいんだろうなっていうのが分かりやすかったっていう部分はありましたね。
なるほど、そうなんですね。
そこも先人がいろいろ作ってくれてきたものを使って今回は作れたっていう感じなんですかね。
そうですね、カテゴリーと一緒で乗っからせていただきましたね。
先人様様ですね、本当に。
そうですね。
もしかしたらこのポッドキャストを聞いている方で、元Kiitaの方とかいらっしゃるかもしれないんですけど、本当にそういう方たちの上に僕たちがいろいろKiitaを作っていってるってところがあるので本当にありがたいですね。
ありがたいですね。
アドベントカレンダーの開発の苦労
実際、今回初めてだよね、アドベントカレンダーの開発入ったの。
そうですね、僕は。
そうだよね。どうでした?初めてアドベントカレンダー今回開発入ってみて。
めちゃくちゃ大変でしたね。
そうなんだ、やっぱり。何が大変だった?
何が大変だった。やっぱり何年も継ぎ足されてきてるものなので、ここを変更するとここが壊れるんだとか、
あとテストのやつがすごく大変で、2025年のここを変更したらここのテストが落ちるようになってみたいなところとかもかなりあって、その辺はすごい大変でしたね。
なるほど、まあそうですよね。
多分Kiitaの機能の中でもかなり古いものに分類されるんじゃないかなって気がするので、
確かアドベントカレンダーって2011年からあるのかな、2012年。
多分Kiitaができた当初から結構ある古い機能だったりするので、やっぱりそういう歴史的経緯というか結構いろんなコードが比較的あったりはしますよね。
そうですね。
僕も手を動かしてた頃は結構そこら辺はすごい、しかも年に1回しか触らないんで忘れちゃうんですよね、毎年。
確かに。
だから僕はすごい毎年毎年しかハックしてましたけど、いろいろキャッチアップするのに。
きっとつづき君もまた今回大変だったなと思いつつ、1年間で記憶喪失になってまた来年、あ、ここどうなってるんだっけってなると思います。
楽しみですね。
今回初めての開発ってところで、実際どう使われるかってところもまだわかんないかなと思うんですけど、
ユーザーさんに今回アドベントカレンダー使ってもらうにあたって、こんな感じで楽しんでもらえたら嬉しいなみたいなのってあったりしますか?
やっぱり今回開発した機能を活かしてほしいなと思ってて、
複数紐付けをすることでよりちゃんとKiitaのアドベントカレンダーが盛り上がってるっていうことを正しく伝えられるようにしたいし、
カテゴリーもこれを選べばいいんだなっていうふうに感じてもらいたいというか、
こういうふうに紐付けたら自分の記事というかカレンダーがこういう人に伝わるっていうのを考えながら使っていただけたらすごい嬉しいなっていうふうに思いますね。
本当に一旦僕たちが想定しているユースケースみたいなのはもちろんありますけど、
それが本当に実際どう使われるのかっていうのはやっぱり使ってもらわなきゃわからないところが多いかなと思うので、
かつ難しいのが年に1回しかその検証ができないっていうのがアドベントカレンダーの難しさはあるので、
本当にこう使っていく中で思ったことみたいなところをフィードバックもらえると嬉しいですよね。
すごく嬉しいですね。
僕たちもちゃんと使っていきたいですね、その機能。
はい。
もう来年はより盛り上がるアドベントカレンダーにきっとツーキ君がしていってくれるかなと思うので。
今年最高を出して来年もっと最高のアドベントカレンダーにするんで。
そうですね、どんどん最高のアドベントカレンダーにしていきましょう。
はい。
新機能のタグ追加
あとタグのところですかね、タグのところもちょっと機能のところ聞いていきたいなと思ってるんですが、
改めてこれも機能の紹介とどういう目的で作ったのかみたいなところ聞いてもいいですか?
はい。
今年からは記事ではなくてカレンダー自体にタグを付けられるようになりました。
目的としては主に検索のところなんですけど、
今ってアドベントカレンダーの検索窓で検索すると、
それはタイトルで検索する形になっていて、
それ以外の検索要素がなかったんですけど、
それをタグで引っかかるようにすることによって、
よりユーザーの方が探しているカレンダーを見つけやすくするっていう目的があって、
今回タグを追加させていただきました。
より絞り込みだったり検索がしやすくなるっていうところですよね。
はい。
このタグも、やっぱりタグっていうもの自体がすでに聞いたってあるわけじゃないですか、
結構いろんなデータが紐づいていると思いますけど、
これは新しくアドベントカレンダーで紐づけていくみたいなのは大変じゃなかったですか?
そうですね。
これもさっきの話と一緒で先陣に乗っかる形になってしまうんですけど、
記事にもタグを紐づけられますし、
最近で言うとストックのシェア機能ですかね、
公開ストックリストとかあると思いますけど、
あれにもタグを紐づけられるようになっているんですけど、
それと同じ感じでアドベントカレンダーに対してもタグを紐づけられるようにしたので、
そこまで難しくはなかったですね。
そうなんですね。
それもそういう感じでやりやすい設計になっているってことですね。
はい、そうですね。
なるほど。すごいこれ、聞いたのアピールになりますね。
確かに。
結構設計ちゃんとしているぞっていう。いいですね。
過去のやつも一応タグつければ、
過去のカレンダーの絞り込みは過去のカレンダーの検索ページでできるみたいな、
そんな感じのイメージですかね。
そうですね。
結構シリーズで毎年カレンダー作ってくださっている方とかもいるので、
過去のカレンダーとかもそうやってタグつけてもらったりとか、
もちろん今年のカレンダーはタグつけてもらって、来年以降もやっていただけるとありがたいんですけど、
そういう感じでシリーズでタグで絞り込みしやすくするとか、
そういう使い方をしてもらうのもアリかもしれないですね。
はい、ぜひお願いしたいですね。
ありがとうございます。
ちなみにタグつけなくてもいいんですか、これ。
はい、タグはつけなくても大丈夫ですね。
つけないっていう選択も取れるんですね。
はい。で、最大5個までになってますね。
はいはいはい。
ぜひいろいろタグつけてもらいたいですね。
はい、ぜひお願いしたいです。
お願いします。
フィードバックの重要性
ということで、本当に今年も新卒の鈴木くんが頑張っていろいろ機能作ってくれて、
よりいいAdvent Calendarになったんじゃないかなと思うので、
ぜひ今聞いてくださってる皆さんは参加していただいて、
鈴木くんにフィードバックを返していただけるとありがたいなと思ってます。
はい、本当にさっきも話しましたけど、
Advent Calendarって実際使ってもらう機会が年に1回しかない。
年に1ヶ月、正確に言うと2ヶ月くらいかな。
しかないっていうのがあるので、
このタイミングで思ったことはぜひフィードバックいただけると
本当に運営としてもありがたいなって思っているので、
そこのフィードバックの内容で来年の改善も決まってくるので、
ぜひ思ったところはフィードバックいただけるとありがたいなと思ってます。
ということで、今回鈴木くんとお送りしてきた開発編も
締めの方に行きたいなと思うんですが、
どうでした?鈴木くん。
ポッドキャスト参加してみて、今回。
びっくりするくらい緊張しましたね。
緊張してたね。
ガチガチな感じだね。
元鈴木くんいつもはノリノリな感じだけど、
今日は結構ガチガチだったね。
それもすごい浮遊いしい感じで僕はいいなって思って見ていました。
これからもKITはいろいろ機能アップデートしていきますし、
イベントもいろいろやっていくので、
その中で鈴木くんもまたいろいろ開発やっていくみたいな
シーンもあると思うので、
そういう時はまたポッドキャスト遊びに来てください。
ぜひお願いします。
次は緊張せずに、ゆるい感じで来てもらえると嬉しいです。
鈴木くん今日はありがとうございました。
ありがとうございました。
さてこの番組では感想や次回ゲストへの質問、リクエストなどをお待ちしております。
番組詳細はアニマルリンクよりお気軽にご投稿ください。
XではハッシュタグKITAFMをつけてポストしてください。
表記は番組名と一緒でQFMが大文字、残りは小文字です。
そしてApple PodcastやSpotifyのPodcastではレビューもできますので、
こちらにも感想を書いてもらえると嬉しいです。
KITA株式会社はエンジニアを最高に幸せにするというミッションのもと、
エンジニアに関する知識を記録、共有するためのサービス、KITA、
社内向け情報共有サービス、KITAチーム、
を運営しています。
ぜひカタカナでKITAと検索してチェックしてみてください。
来週も火曜日の朝6時に最新話が更新されます。
番組のフォローをして最新話もお聞きください。
ご相手はKITAプロダクト開発部部長の清野俊文と、
エンジニアの鈴木孝明でした。
22:04

コメント

スクロール