さくらのVPSを使ってシステム開発に必要な知識を学ぶ 〜第1回〜

プロローグ

自己紹介

初めまして、ライフウッドのキグレアキヒコと申します。フリーランスプログラマーをしていて、主にWebサイトの画面周り(フロントエンド)を開発しています。詳しいプロフィールやSNSなどは下記をご覧ください。

本記事について

この記事は以下の方を対象としています。

  • システム開発に興味ある
  • システム開発をやってみたい

システム開発に必要な知識を得るために、超ざっくり版ですが、一通りの流れを学んでいきたいと思います。
今回学んでいくにあたり、必要な知識については公式ドキュメントを紹介します。理由は、公式ドキュメントに必要な事が記載されているからです。公式ドキュメントを読む癖を付けておくと回り道が少なくなります。ただそれでは理解できない方もいるかと思いますので、補助的に参考になる記事を紹介します。

事前準備

今回の記事の対象者(この記事を通して一緒に学びたい方)は、下記のサービスのアカウントを作成や契約が出来ている方を想定しています。

GitHubアカウント

アカウントの作成方法などは以下をご覧ください。

レンタルサーバー

  • さくらのナレッジで公開している記事なので、本記事ではさくらのVPSを使用します。
  • OSは、Linuxを使う予定です。
  • すでに何らかのレンタルサーバーを契約済みの方は、無理に別途契約する必要はありません。

何を使ってどうするかを学ぶ

この連載は数本の記事を予定しています。全体としては以下のことを学んでいきます。

  • GitHubの紹介・使い方
  • レンタルサーバーを使ったサーバー構築
  • Webサイトの開発
  • バックエンド(超意訳:Web サイトのデータ・通信周り)
  • フロントエンド(超意訳:Web サイトの画面デザイン・制御周り)
  • CI/CD開発(超意訳:Webサイトの公開の自動化)

GitHub

なぜGitHubを使うかを説明します。
OSS(Open Source Software)開発や各種プロダクトの開発では、言語は何であれ、必ずプログラムコードを書きます。開発時のプログラムコードや設計は変わることがあるので、プログラムコードを変更した履歴を残す必要があります。いわゆるソースコード管理です。またプロダクトを製作するにあたり、スケジュールや作業の可視化が不可欠です。
GitHubでは、以下の事が管理可能です。

  • OSS開発や各種プロダクトの、プロジェクトの作業進捗の管理・可視化
  • 作業のグルーピング
  • 作業の可視化
  • プログラムコード管理

実際にGitHubを使ってOSS開発や各種プロダクトの開発作業の流れを学ぶ前に、GitHubの主な機能を紹介します。

  • project
  • wiki
  • label
  • milestone
  • issue

参考までに、ソースコード管理でよく使われるツールがこちらです。

参考記事

GitHubの主な機能の紹介

先ほど挙げたGitHubの機能について、個別に紹介します。

GitHub Project

GitHub Projectは、GitHubでの作業を計画および追跡するためのツールです。詳しくは公式ページをご覧ください。

実際の業務では、主にスケジュール管理や作業進捗管理に使われる事が多いです。

ちなみに、タスク管理ツールはGitHub Project以外にも多数あります。よく使われるツールがこちらです。

GitHub Projectの使用イメージはこんな感じです。

    • テーブル形式

    • ボード形式

    GitHub wiki

    GitHub wikiは、プロジェクトに関する情報をまとめるためのツールです。markdownで記述します。こちらも詳しくは公式ページを見てください。

    実際の業務では、主に以下のドキュメント作成に使われる事が多いです。

    • 仕様に関するドキュメント
    • デザインに関するドキュメント
    • 説明やガイドラインに関するドキュメント

    GitHub wikiの使用イメージはこんな感じです。

    こちらも同種のツールが多数あります。wiki的な使い方でよく使われるツールはこちらです。

    GitHub label

    GitHub labelは、GitHubにおける作業(issue、pull request、ディスカッションなど)にラベルを付けて分類するツールです。公式ページはこちらです。

    実際の業務では、作業のカテゴリ分けに使われる事が多いです。

    • 例:フロントエンド
    • 例:バックエンド

    使用イメージは以下のようになります。

    GitHub milestone

    GitHub milestoneは、Issueやpull requestの進捗を追跡するツールです。公式ページはこちらです。

    実際の業務では、作業スケジュールの目安やスプリント期間に使われる事が多いです。使用イメージを以下に示します。

    なお、マイルストーン管理で、GitHub milestone以外によく使われるツールとしてはこちらのものがあります。

    GitHub issue

    GitHub issueは、GitHubで管理しているソフトウェアに対するバグレポートやフィードバックなどに使われるツールです。公式ページはこちらです。

    実際の業務では、GitHub / GitLabのIssueではなく、下記のツールで管理することが多いです。

    ただし、OSSでは、Issueで管理するのが通例です。

    実際に開発現場で使用されているツールの紹介

    開発現場でよく利用されているツールを、それぞれが持つ機能とともに表にしてみました。ツールはアルファベット順で列挙しています。また、ご紹介するツールはあくまでもほんの一例です。会社、製作しているプロダクトで、使われるツールは異なります。

    ツール名 プロジェクト管理 チケット管理 wiki ページ ソースコード管理 備考
    Asana ※A
    Confluence
    esa
    GitHub
    GitLab
    Jira ※A, ※B
    Nortion
    Redmine ※A
    • ※A:ソースコード管理ツールと連携して使用します
    • ※B:wikiページツールと連携して使用します

    まとめ

    今回は連載の全体像と、GitHubの主な機能を紹介しました。

    GitHubのアカウント作成方法は、次回記事にて解説します。