feature image

2024年8月10日 | ブログ記事

QSoC 2024に参加してみた

こんにちは! 24Bのきつねでございます。先日traPで開催されたQSoCというイベントに参加したので、その概要や感想を書いていきます。ノクナートン先輩による2022年のQSoCに関するブログ記事もぜひご覧ください。

QSoCに参加しました
こんにちは、22Bのノクナートンです。アドベントカレンダー2022……ではなく、春にQSoCという企画に参加したのでその概要と感想を書いていきたいと思います。本来ならもっと早くに出すべきだったのですが、完全に忘れていてこんな時期に出すことになってしまいました。 QSoCとは19Bのtemmaさんが書いた2020年7月23日の記事 [https://trap.jp/post/1091/]によると > 「traQ Spring of Code」略してQSoCは、「Google Summer ofCode」をtraPでもやろうというコンセプトで、traQを中心としたtraPの運用するサービスにコントリビュートしてもらうと言う企画 らしいです。私も今初めて知りました。 要するにSysAd体験会です。少なくとも私はそのくらいの緩い認識で参加してました。 今年は5/8から5/15までの大体一週間かけて行われ、GitHubの中にあるIssueから好きなものを選んで解決する。わからないところがあったら先輩に聞く。みたいな形で行われました。今回のQSoCでは9人の参加者により合計1

QSoCとは?

端的に言えば「SysAd班の活動の体験会」です。

traPの7つの班のひとつ、SysAd班は "System Administrator" の略称であり、traP内で使われる様々なサービスを開発・運営しています。中でもコミュニケーションサービス「traQ」は自分の作品を部内で共有したり、進行中のプロジェクトについて相談をしたり、個人チャンネルで雑談をしたりと日常的に使用するのでtraP部員にとっては欠かせないものになっています。他にも予定管理のknoQ、備品管理のbooQなど多くのサービスがSysAd班によって運用されており、SysAd班以外のtraP部員も欲しい機能や使用感などに関して積極的にフィードバックを送っています。

QSoCはSysAd班員の手助けを得つつ部内のサービスの改良に参加するイベントです。今年は6月末から7月上旬までの2週間程度を開催期間として、この間の自由な時間にIssues(改善・解決したいことリスト)から好きなものを選んで解決しました。今回のQSoCには私を含めて14人による20のプルリクエストがマージされました!

期間中の流れ

QSoCは自由参加で、開会式も決まった会場もないような比較的ゆるめのイベントです。それぞれの参加者に対してSysAd班員のメンターが1人割り当てられ、期間中はメンターの手を借りつつ自由なペースでサービスを改良していきます。

QSoCでのサービス改良は、それぞれの改良点について大まかに以下のような流れを辿ります。

  1. "good first issue"(初心者向け)のタグが付いたIssueの中から1つ選ぶ
  2. Issueで求められている通りにソースコードを書き換えてみる
  3. GitHub上でプルリクエストとして自分が書き換えたソースコードの採用を提案する
  4. SysAd班員の誰かがレビューをしてアドバイスをくれる
  5. 3-4を繰り返し、LGTM(Looks Good To Me)の評価を得たら採用決定 🎉
  6. 提案したソースコードをメインにマージ(統合)する

私は共同開発の経験がほとんどなかったので、まずQSoCの開催期間の早いうちにメンターのzer0-star先輩にtraQでアポイントを取り、進捗部屋でTypeScriptや共同開発の作法を逐一教えていただくことにしました。我ながら褒めちぎりたい行動力です。

そこで教わったことを反芻しつつ、その後は一人で時間のある時にGitHubを開き、Issueを見つけて先ほどの流れを繰り返しました。少し早く大学に着いた時に1-2限が始まる前の教室で先輩からのレビューを確認したりとか、そんな感じです。

結果として、QSoC期間中に「1文字の数字のスタンプを検索可能にする」「URL内のリガチャを無効化」「メッセージの投稿日を表示」の3つのIssueを解決することができました。3つ目の「メッセージの投稿日を表示」はIssuesから見つけたものではなく、私自身がtraQを使用していて改良したいと思っていた部分に実際に取り組んだ成果です。

貢献がマージされるとすごく喜んでもらえる

感想

東工大に入学するまでの私は開発と言えばPythonを少し書いたことがある程度で、Gitも、traQの実装に使われているTypeScriptもほとんど触ったことがありませんでした。traPに入り興味のあったSysAd班に所属したはいいものの、右も左も分からない状態でみんなが使うサービスの開発に参加してよいものだろうか?迷惑をかけないか?となかなか手が出せずにいました。だからこそ、初心者として開発に参加することができるQSoCというイベントは私にとって願ってもない機会でした。とても感謝しています。

traPではGit講習会が毎年開催されており、自分でリポジトリを作成しコミットをするという操作そのものはそこでも練習できます。しかし、GitHub上でのコミュニケーションの取り方や、プルリクエストが承認されてマージへと至る流れなど、実際に開発に参加してみなければ分からないこともとても多いです。QSoCへの参加を通してこうした共同開発のノウハウを学べたことはとても大きな収穫でした。

SysAd班の先輩に助言をもらいつつ改良

QSoCは “traQ Spring of Code” という名の通りtraQをメインの改良対象としたイベントですが、Jomonやanke-toといった他の部内サービスの改良のプルリクエストもかなり勢いよく飛び交っている印象を受けました。自分たちで日常的に使っているツールだからこそ「ここがこうだったらいいな」という改良案はいろいろ出てきますし、それを自分の手で実現できるとなれば精が出るものです。開発環境で自分の改良が反映されているのを確認する瞬間は冗談抜きに感動ものです。

初めて一人でプルリクエストを出す瞬間の恐怖と言ったらなかったですが、メンターはもちろん、レビューしてくださる先輩方も皆本当にびっくりするくらい優しくて丁寧で、怒られたりする心配は杞憂でした。行動力はあればあるほど嬉しいことが待っています。traP部員でSysAd班での共同開発に興味がある方はぜひ参加してみることをお勧めします。

来年の今頃にはQSoCで教える側に立てるように、今のうちからスキルを積んでおきたいですね。他の班での活動もかなり忙しくなってきましたが、時間を見つけてフロントエンドだけでなくバックエンドの技術も学んでおこうと思います。

おわりに

traP公式ブログは幅広い分野の創作・開発に関する知見の宝庫です。ぜひ色々見ていってください!

kitsne icon
この記事を書いた人
kitsne

24B Game / SysAd / Sound / Graphic / Kaggle

この記事をシェア

このエントリーをはてなブックマークに追加
共有

関連する記事

2022年4月5日
アーキテクチャとディレクトリ構造
mazrean icon mazrean
2021年5月16日
CPCTFを支えたインフラ
mazrean icon mazrean
2024年7月20日
部員の活動紹介サービス traPortfolio をリリースしました
mehm8128 icon mehm8128
2023年12月24日
2024年はSolid.jsを使いませんか?【部内PaaS基盤 NeoShowcase フロント開発ログ】
d_etteiu8383 icon d_etteiu8383
2023年4月24日
traQを直すまで
noc7t icon noc7t
2022年8月13日
traQにOBからバグ報告が来た
logica icon logica
記事一覧 タグ一覧 Google アナリティクスについて 特定商取引法に基づく表記