夏休みの振り返り
夏休みMaximumがやったこと
- 夏休み講習会 X 10
- ホームページサイト開発
- Leaderboardサイト開発
- ボウリング大会 X 2
- バーチャルコンテスト X 17
- ISUCON模擬大会 X 6
どれくらい参加できましたか...?
みなさんの夏休みの振り返りを聞きたいです。
自分が投稿したものを拾っていくので、Discordの自分のTimesなどに適当に投下して行ってください。
プログラミング以外の振り返り
例)「飲み会に30回行った」「ゲームを100時間やった」「アニメを100話見た」など
プログラミングの振り返り
例)「Kaggleでコンペに参加した」「AtCoderで○○問解いた」「○○のライブラリを作った」など
後期のガイダンス
後期のガイダンスをします。後期のテーマは「チーム開発」です。 前期の授業で扱った「Maxitter」をGithub上でチーム開発しながら拡張していき、より実践的な開発能力を身につけていきます。
アジャイル開発について
アジャイル開発とは、ソフトウェア開発の手法の一つです。開発を短い期間に分割して、その期間ごとに成果物を出していきます。そして、その成果物をもとに次の期間の開発を行っていきます。この期間のことを「イテレーション」と呼びます。 今回はGithubの「Project」機能と「Issue」機能を使って、アジャイル開発を行っていきます。
次回以降のWeb研について
Maximumは一週間をイテレーションとして、毎週月曜日に成果物を発表するような形で開発を進めていきます。 Web研半分を「MTG」に当てて、その時間内で「今週〇〇機能を作りました」というような実演を含めた発表をしたり、「今週忙しかったのでXX機能を追加するIssueを立てることだけやりました」というような発表をしてもらいます。
Issueについて
IssueはTodoリストだと思ってください。 「Level 1」から「Level 5」までのラベルが貼られたIssueがあります。これは、それぞれの難易度を表しています。 レベルが高くなるにつれて難しくなるので、様子を見ながら自分に合ったレベルのIssueを探してください。
また、今ある30個ほどのIssueは全て講師陣が考えたものですが、今後は自分たちで気になった部分や欲しい機能をIssueにしていってください。 レベルがどれくらいかわからない場合はレベルをつけずにIssueを作成し、講師にメンションを飛ばしてください。
サポートについて
1,2年の開発経験がない人はおそらくこれが初めてのチーム開発になると思うので難しい部分もあると思います。 そういう人は、僕や3年生に質問してください。僕はDiscordのDMを開放しているので、そちらでも大丈夫です。
一つ注意があって、これはWeb研だけでなくどこでもそうだとは思いますが「丸投げ質問」をしないようにしてください。 「質問する前に自分で調べたか」や「調べた上で具体的な質問ができているか」を意識してください。
もし解決法が思いつかなかったら「〇〇にXX機能を実装したくて、今YYのような技術を使っているのですが、どうやったらZZが実装できるかその手順を提案してください」というような質問をChatGPTにすると具体的な方針が見えてきます。 (自分もよくタスク分割に困るので、その時はChatGPTに質問しています。)
試しに開発している様子を見てみよう
Githubのおさらいも兼ねて、試しに僕が開発を実演します。
- Issueからブランチを作成する
- ブランチをローカルに持ってくる
- ローカルで開発する
- ブランチをpushする
- Github上でプルリクエストを作成する
- コードレビューを受け、変更依頼が来たら無くなるまで修正を繰り返す
- コードレビューが通ったらマージする
- ブランチを削除する
- Issueをクローズする
最後に
この活動の狙いは「チーム開発を通して、実践的な開発能力を身につける」ことです。お互いを助け合うことで、自分のコードが実際のサイト上で動いているという実感がとてもいい経験になると思います。
実務でバグが起きた時にはとても責任が重くなりがちですが、今回はサークル活動なので気軽に開発を楽しんでください。 バグやコードレビュー時の指摘を恐れずに、どんどん開発していきましょう!