Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Proposal of Projects Improvement with GitHub
Search
Inoue-KK
September 13, 2022
Technology
77
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Proposal of Projects Improvement with GitHub
とあるプロジェクトでのGitHub導入を想定した、個人的な提案資料です。
Inoue-KK
September 13, 2022
Other Decks in Technology
See All in Technology
41歳でAWSが好きすぎてITエンジニアになったおっさんの話
yama3133
1
740
_NIKKEI_Tech_Talk__勉強会は熱量では続かない___17回続いた輪読会の設計術.pdf
_awache
1
100
探索・可視化・自動化を一本化 Amazon Quickでデータ活用スピードを上げる方法
koheiyoshikawa
0
170
【公開用】AI_Dev_Ex2026_AI_登壇資料
matsuritechnologies
PRO
1
490
変更し続けられるシステムをどう保つか — AI時代のSSoTという設計原則
kawauso
1
1.1k
AmplifyHostingConstructからSSRフレームワークのためのホスティング設計を考察する/amplify-hosting-construct
fossamagna
1
300
大 AI 時代におけるC# の事情 ~ぶっちゃけトークを交えながら~
nenonaninu
0
120
仕様駆動開発、導入半年。「本当に速くなってるの?」にデータで答える / AICon2026_hirakawa
rakus_dev
0
320
OpenTelemetryにおけるGoのゼロコード・コンパイル時計装について #fukuokago
quiver
0
210
AIコード生成×サプライチェーン攻撃 — PHPが直面する“二重の信頼問題
shinyasaita
0
460
JAWS_ICEBERG_BASECAMP
iqbocchi
2
110
Jitera Company Deck
jitera
0
280
Featured
See All Featured
Utilizing Notion as your number one productivity tool
mfonobong
4
450
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.4k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.1k
Measuring & Analyzing Core Web Vitals
bluesmoon
9
900
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
Agile that works and the tools we love
rasmusluckow
331
22k
AI: The stuff that nobody shows you
jnunemaker
PRO
9
840
Designing for humans not robots
tammielis
254
26k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Balancing Empowerment & Direction
lara
6
1.2k
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Transcript
バージョン管理システムによる 開発環境の課題改善検討案 Inoue-KK
目次 • 課題と改善案の概観 • 課題1: バージョン管理 • 課題2: 手作業による比較・マージ •
課題3: バグ・タスク管理 • バージョン管理システム「GitHub(ギットハブ)」紹介 • セキュリティ及び安全性 • 検証スケジュール(案) • まとめ
課題と改善案の概観 本資料では下記の課題とその改善案を提案する。 なお全ての課題はバージョン管理システム「GitHub(ギットハブ)」によって改善可能と想定さ れ、次ページ以降でその詳細と改善可能性・想定検証内容を紹介する。 1. バージョン管理 [現在の状況] バージョン名フォルダをファイルサーバで管理 [課題] 容易に書き換え・削除のリスクあり、検知・追跡・復旧が困難
[改善案] バージョン管理システムによるバージョン管理を導入 2. 手作業による比較・マージ [現在の状況] 部分修正等の差分を手動でマージ [課題] マージ作業に多くの工数が必要、マージ作業にノウハウが必要となり属人的、マージ後にも手 動での動作検証が必要 [改善案] バージョン管理システムによるパッチ提出・レビュー支援と半自動マージを導入 3. バグ・タスク管理 [現在の状況] ソースコードをファイルサーバで、バグやタスクをエクセルシートで管理 [課題] バグ・タスクの管理状況、ドキュメントの変更状況、ソースコードの改修状況がそれぞれ独立 しており一致しない [改善案] バージョン管理システムの課題管理機能とソースコード管理機能による一元管理
課題1: バージョン管理 現状 フォルダ名にバージョン番号を入れて ファイルサーバ上で管理 課題 • 書き込み権限があればバージョンの 変更・削除ができてしまう •
万が一意図せず変更・削除された際、 検知や追跡、復旧が困難 改善案 • GitHubの「リリース」機能と「タ グ」機能により、バージョンが変更 されないよう固定できる見込み • 後述の「監査ログ」により操作履歴 を追跡できる見込み [対象機能] • リポジトリのリリースを管理する https://docs.github.com/ja/repositories/relea sing-projects-on-github/managing-releases- in-a-repository • リポジトリのリリースとタグを表示する https://docs.github.com/ja/repositories/relea sing-projects-on-github/viewing-your- repositorys-releases-and-tags ├ project-a │ ├ │ │ ◦◦ツール_ソース ◦◦ツール_ver1.0.0 ◦◦ツール_ver1.0.1 ◦◦ツール_ver1.0.2
課題2: 手作業による比較・マージ 現状 以下の流れで変更作業を行っている 1. 対象ソースコードを複製して開発者に渡す 2. 開発者が対象ソースコードを変更 3. 開発者が変更後のソースコード一式をファイ
ルサーバの指定フォルダに配置 4. マージ担当者が変更内容をマージツールで確 認しながらマージ 5. マージ担当者がマージ結果を検証 6. マージ担当者がマージされたソースコード一 式をファイルサーバの指定の場所に配置 課題 • 作業に時間を要する • 人為的ミスが生じやすい • マージ作業が複雑 • マージ作業の分担が困難 改善案 • GitHubの「プルリクエスト」機能により、 ソースコードの変更箇所が視認性高くレビュー でき、対象ファイルのみを安全にマージできる 見込み • 経過をプロジェクトメンバー間で共有できるた め、分担や再修正も効率的に行える可能性が高 い [対象機能] • Pull requestsについて https://docs.github.com/ja/pull- requests/collaborating-with-pull- requests/proposing-changes-to-your-work-with- pull-requests/about-pull-requests • プルリクエストのレビューについて https://docs.github.com/ja/pull- requests/collaborating-with-pull- requests/reviewing-changes-in-pull- requests/about-pull-request-reviews
課題3: バグ・タスク管理 現状 ソースコードやドキュメントはファイル サーバ、課題やバグ等はエクセルシート でそれぞれ管理している 課題 課題・バグ等の資料からソースコードや ドキュメントの変更が追跡しにくいため、 課題やバグ修正が完了しているかの確認
作業が発生 改善案 GitHubの「イシュー」機能や「マイルストー ン」機能により、課題・バグの管理と、開発進 捗の把握・共有が効率良くプロジェクト内で共 有できる見込み [対象機能] • Issueについて https://docs.github.com/ja/issues/tracki ng-your-work-with-issues/about-issues • タスクリストについて https://docs.github.com/ja/issues/tracki ng-your-work-with-issues/about-task- lists • マイルストーンの進捗状況を表示する https://docs.github.com/ja/issues/using -labels-and-milestones-to-track- work/viewing-your-milestones-progress
バージョン管理システム「GitHub(ギットハブ)」紹介 GitHub(ギットハブ)とは? Microsoft社傘下のGitHub社により提供され ているバージョン管理サービス。 日本に限らず世界中の名だたる企業がソフ トウェア開発のために活用している。 導入実績 • 株式会社 日立製作所
https://github.co.jp/customer-stories/hitachi https://github.com/Hitachi • 富士通株式会社 https://github.co.jp/customer-stories/fujitsu https://github.com/fujitsu • KDDI株式会社 https://www.macnica.co.jp/business/dx/manufacturers/github/case _kddi.html https://github.com/KDDI-tech • 凸版印刷株式会社 https://github.co.jp/customer-stories/toppan • GMOフィナンシャルホールディングス株式会社 https://github.co.jp/customer-stories/gmo • Google https://github.com/google • Apple https://github.com/apple • Meta (Facebook) https://github.com/facebook • Amazon https://github.com/amzn • Microsoft https://github.com/microsoft
セキュリティ及び安全性 以下の機能でセキュリティを強化可能 • 2要素認証 (2FA) • 監査ログ • シングルサインオン (SSO)
• LDAPによる社内アカウントとの連携と一元管理 • IPアドレスによる接続元制限 • 自社ホスティングによる安心と安全基準の担保
検証スケジュール(案) 2022. 10 2022. 11 2022. 12 2023. 01~ バージョン管理
機密情報を含まない サンプルプロジェク トを新規作成し、リ リースバージョン管 理の検証。 パッチ提出・レビュー支 援・半自動マージ サンプルプロジェク トにてパッチ提出と レビュー支援機能を 検証。 半自動マージによる 成果物が検証される ことを確認。 課題とソースコード の一元管理 (予定)次期フェーズ 検証 サンプルプロジェク トにて疑似的に発生 させたバグや機能追 加要望を管理し、 ソースコードと合わ せて一元管理可能か 検証。 顧客知的財産・個人 情報と関連の低いプ ロジェクトなどで導 入検証 複数名での使用、費 用感などを検証 など 全期間共通 隔週で進捗を報告 [成果物] デモンストレーションを兼ねてWebブラウザで閲覧可能なGitHub上のサンプルプロジェクトを提出。 (プロジェクト、アカウント等はセキュリティ担保のため、会社とは無関係かつ類推されないものを作成し使 用する)
まとめ • 現在、顕在または潜在的に存在する複数の課題は、バージョン管理システ ム「GitHub(ギットハブ)」導入と適切な運用により改善できると期待され る • 世間で広く導入実績があり、セキュリティも担保可能と考えられる • 追加費用なし、かつ少人数で検証可能である まずは「検証スケジュール(案)」の通り検証を進めたくご提案する。