SlideShare a Scribd company logo
1 of 20
Download to read offline
初心者向けチーム開発講座
睦月 (@ichigats)
自己紹介
● 株式会社インフィニットループ所属
● PHPでサーバサイドのプログラムをしています。
● 自衛官、営業、SE、大学職員といろいろやって
ました。
● 「睦月 Φ★」というキャップ名で某大型掲示板の
運営ボランティアをやっていました。
● ハンドルネームの由来は駆逐艦ではなく
某夢に出てきた天使の方です。
まずはじめに
● このセッションは文系学生向けの講義で使用した
資料をリライトしたものです。
● ということで初心者向けです
● 今回はコーディングスタイルが中心です。
目次
● 良いコードをとは?
● コーディングスタイルについて
● バグの一例
● コーディング規約の決め方
● ツールを有効活用しよう
良いコードをとは?
●
読みやすくて修正がしやすい
●
無駄にリソースを食わない
●
早く動く
● バグや障害が発生しない
良いコードをとは?
●
読みやすくて修正がしやすい ←今回はコレ
●
無駄にリソースを食わない
●
早く動く
● バグや障害が発生しない
おおまかな基準
入社2週間の社員が見て理解できて修正ができる
まずどうすればいいのか?
チーム内で統一された規約を作りましょう
まずどうすればいいのか?
チーム内で統一された規約を作りましょう
→まずコーディングスタイルを統一
コーディングスタイルついて
プログラマーには色々なコーディングスタイルが
あります。
● インデントの幅
– 半角スペース4文字
– 半角スペース8文字
● インデントの仕方
– タブ文字
– スペース
コーディングスタイルついて
● スペースの開け方
– if (hoge === hogehoge)
– if(hoge === hogehoge)
● 変数名や定数名の書き方
– user_info_array (スネークケース)
– userInfoArray (キャメルケース)
コーディングスタイルついて
● 改行の位置
– 関数の宣言の引数の後に改行するか?
– 1ステップを1行で書ききってしまうか?
コーディングスタイルついて
● 改行の位置
– 関数の宣言の引数の後に改行するか?
– 1ステップを1行で書ききってしまうか?
スタイルがバラバラだと非常に読みにくい
が、プロジェクトによってはバラバラの
場合がある
なぜバラバラになるのか?
● コーディング規約を決めていなかった。
● 別のプロジェクトのコードを引っ張ってきた
● その場しのぎでコミットしたものがそのまま残った。
● 規約を理解していない人が携わっていた。
こういう時のバグの一例
if (0 < $hoge)
return $hoge;
if (0 < $hoge) {
return $hoge;
}
こういう時のバグの一例
if (0 < $hoge)
return $hoge;
↓
if (0 < $hoge)
$hoge++;
return $hoge;
if (0 < $hoge) {
return $hoge;
}
↓
if (0 < $hoge) {
$hoge++;
return $hoge;
}
こういう時のバグの一例
if (0 < $hoge)
return $hoge;
↓
if (0 < $hoge)
$hoge++;
return $hoge;
if (0 < $hoge) {
return $hoge;
}
↓
if (0 < $hoge) {
$hoge++;
return $hoge;
}
この2つ全く意味が違う
コーディング規約の決め方
● 社内またはプロジェクト毎で話し合って決める。
● 言語やOSSのプロジェクトによる規約もある
例) PHP-FIGのPSR-0、PSR-1、PSR-2、PSR-3
ツールを有効活用しよう
● 統合開発環境(IDE)の利用
ただし設定ファイルは統一したものを使おう
● コーディング規約チェッカー
例) PHP_CodeSniffer, PHP Coding Standards Fixer
まとめ
入社2週間の社員が見て理解できて修正ができる
コードを書きましょう

More Related Content

Similar to 初心者向けチーム開発講座

フレームワーク使おうぜ!
フレームワーク使おうぜ!フレームワーク使おうぜ!
フレームワーク使おうぜ!Takuya Sato
 
初学者教育のプロが教える学習のポイント ~できるインフラエンジニアを目指そう~
初学者教育のプロが教える学習のポイント ~できるインフラエンジニアを目指そう~初学者教育のプロが教える学習のポイント ~できるインフラエンジニアを目指そう~
初学者教育のプロが教える学習のポイント ~できるインフラエンジニアを目指そう~VirtualTech Japan Inc./Begi.net Inc.
 
本学部でのアクティブラーニングの導入事例
~コンセプトは「多読と発表」「原理と概念の理解」
本学部でのアクティブラーニングの導入事例
~コンセプトは「多読と発表」「原理と概念の理解」本学部でのアクティブラーニングの導入事例
~コンセプトは「多読と発表」「原理と概念の理解」
本学部でのアクティブラーニングの導入事例
~コンセプトは「多読と発表」「原理と概念の理解」Susumu Yamazaki
 
アジャイル開発を始めてみませんか?(思い出編)
アジャイル開発を始めてみませんか?(思い出編)アジャイル開発を始めてみませんか?(思い出編)
アジャイル開発を始めてみませんか?(思い出編)Miho Nagase
 
スクラム初心者セッション.pdf
スクラム初心者セッション.pdfスクラム初心者セッション.pdf
スクラム初心者セッション.pdfHideo Kashioka
 
PHPマニュアルの育て方
PHPマニュアルの育て方PHPマニュアルの育て方
PHPマニュアルの育て方Masahiro Takagi
 
e-Learning Design for Teacher
e-Learning Design for Teachere-Learning Design for Teacher
e-Learning Design for TeacherSunami Hokuto
 
アジャイル開発へのイテレーション・ゼロ
アジャイル開発へのイテレーション・ゼロアジャイル開発へのイテレーション・ゼロ
アジャイル開発へのイテレーション・ゼロTaisuke Shiratori
 
スモールリーダーシップ読書会ワークショップ
スモールリーダーシップ読書会ワークショップスモールリーダーシップ読書会ワークショップ
スモールリーダーシップ読書会ワークショップYukei Wachi
 
教えてみてわかった、新しいことを覚えるしくみ
教えてみてわかった、新しいことを覚えるしくみ教えてみてわかった、新しいことを覚えるしくみ
教えてみてわかった、新しいことを覚えるしくみMori Kazue
 
【Unity道場スペシャル 2017大阪】Post processing stackでワンランク上のビジュアル表現+時間をかけずに武器になるツー...
【Unity道場スペシャル 2017大阪】Post processing stackでワンランク上のビジュアル表現+時間をかけずに武器になるツー...【Unity道場スペシャル 2017大阪】Post processing stackでワンランク上のビジュアル表現+時間をかけずに武器になるツー...
【Unity道場スペシャル 2017大阪】Post processing stackでワンランク上のビジュアル表現+時間をかけずに武器になるツー...Unity Technologies Japan K.K.
 
気の合う人達と社外で社内勉強会
気の合う人達と社外で社内勉強会気の合う人達と社外で社内勉強会
気の合う人達と社外で社内勉強会Yu Shibatsuji
 
Tips for Presentation
Tips for PresentationTips for Presentation
Tips for PresentationKoichiro Eto
 
はじめてのアジャイル - Agile in a nutshell
はじめてのアジャイル - Agile in a nutshellはじめてのアジャイル - Agile in a nutshell
はじめてのアジャイル - Agile in a nutshellDai FUJIHARA
 
「KPTの理論と実践」プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
「KPTの理論と実践」プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと「KPTの理論と実践」プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
「KPTの理論と実践」プロジェクトへの「ふりかえりカイゼン」の導入で学んだことESM SEC
 
対話のカウンセラー的アプローチ for 1on1conf2020
対話のカウンセラー的アプローチ for 1on1conf2020対話のカウンセラー的アプローチ for 1on1conf2020
対話のカウンセラー的アプローチ for 1on1conf2020Tokyo, Japan
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンスGuildWorks
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス増田 亨
 
リモート環境でも社内勉強会(てっくらんち)を運営してよかった!! - Bit valley inside- vol.17-kazuyuki takahashi
リモート環境でも社内勉強会(てっくらんち)を運営してよかった!! - Bit valley  inside- vol.17-kazuyuki takahashiリモート環境でも社内勉強会(てっくらんち)を運営してよかった!! - Bit valley  inside- vol.17-kazuyuki takahashi
リモート環境でも社内勉強会(てっくらんち)を運営してよかった!! - Bit valley inside- vol.17-kazuyuki takahashiKazuyuki Takahashi
 

Similar to 初心者向けチーム開発講座 (20)

フレームワーク使おうぜ!
フレームワーク使おうぜ!フレームワーク使おうぜ!
フレームワーク使おうぜ!
 
初学者教育のプロが教える学習のポイント ~できるインフラエンジニアを目指そう~
初学者教育のプロが教える学習のポイント ~できるインフラエンジニアを目指そう~初学者教育のプロが教える学習のポイント ~できるインフラエンジニアを目指そう~
初学者教育のプロが教える学習のポイント ~できるインフラエンジニアを目指そう~
 
本学部でのアクティブラーニングの導入事例
~コンセプトは「多読と発表」「原理と概念の理解」
本学部でのアクティブラーニングの導入事例
~コンセプトは「多読と発表」「原理と概念の理解」本学部でのアクティブラーニングの導入事例
~コンセプトは「多読と発表」「原理と概念の理解」
本学部でのアクティブラーニングの導入事例
~コンセプトは「多読と発表」「原理と概念の理解」
 
アジャイル開発を始めてみませんか?(思い出編)
アジャイル開発を始めてみませんか?(思い出編)アジャイル開発を始めてみませんか?(思い出編)
アジャイル開発を始めてみませんか?(思い出編)
 
スクラム初心者セッション.pdf
スクラム初心者セッション.pdfスクラム初心者セッション.pdf
スクラム初心者セッション.pdf
 
PHPマニュアルの育て方
PHPマニュアルの育て方PHPマニュアルの育て方
PHPマニュアルの育て方
 
e-Learning Design for Teacher
e-Learning Design for Teachere-Learning Design for Teacher
e-Learning Design for Teacher
 
アジャイル開発へのイテレーション・ゼロ
アジャイル開発へのイテレーション・ゼロアジャイル開発へのイテレーション・ゼロ
アジャイル開発へのイテレーション・ゼロ
 
スモールリーダーシップ読書会ワークショップ
スモールリーダーシップ読書会ワークショップスモールリーダーシップ読書会ワークショップ
スモールリーダーシップ読書会ワークショップ
 
教えてみてわかった、新しいことを覚えるしくみ
教えてみてわかった、新しいことを覚えるしくみ教えてみてわかった、新しいことを覚えるしくみ
教えてみてわかった、新しいことを覚えるしくみ
 
【Unity道場スペシャル 2017大阪】Post processing stackでワンランク上のビジュアル表現+時間をかけずに武器になるツー...
【Unity道場スペシャル 2017大阪】Post processing stackでワンランク上のビジュアル表現+時間をかけずに武器になるツー...【Unity道場スペシャル 2017大阪】Post processing stackでワンランク上のビジュアル表現+時間をかけずに武器になるツー...
【Unity道場スペシャル 2017大阪】Post processing stackでワンランク上のビジュアル表現+時間をかけずに武器になるツー...
 
気の合う人達と社外で社内勉強会
気の合う人達と社外で社内勉強会気の合う人達と社外で社内勉強会
気の合う人達と社外で社内勉強会
 
Tips for Presentation
Tips for PresentationTips for Presentation
Tips for Presentation
 
はじめてのアジャイル - Agile in a nutshell
はじめてのアジャイル - Agile in a nutshellはじめてのアジャイル - Agile in a nutshell
はじめてのアジャイル - Agile in a nutshell
 
はじめてのアジャイル
はじめてのアジャイルはじめてのアジャイル
はじめてのアジャイル
 
「KPTの理論と実践」プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
「KPTの理論と実践」プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと「KPTの理論と実践」プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
「KPTの理論と実践」プロジェクトへの「ふりかえりカイゼン」の導入で学んだこと
 
対話のカウンセラー的アプローチ for 1on1conf2020
対話のカウンセラー的アプローチ for 1on1conf2020対話のカウンセラー的アプローチ for 1on1conf2020
対話のカウンセラー的アプローチ for 1on1conf2020
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
 
実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス実践に向けたドメイン駆動設計のエッセンス
実践に向けたドメイン駆動設計のエッセンス
 
リモート環境でも社内勉強会(てっくらんち)を運営してよかった!! - Bit valley inside- vol.17-kazuyuki takahashi
リモート環境でも社内勉強会(てっくらんち)を運営してよかった!! - Bit valley  inside- vol.17-kazuyuki takahashiリモート環境でも社内勉強会(てっくらんち)を運営してよかった!! - Bit valley  inside- vol.17-kazuyuki takahashi
リモート環境でも社内勉強会(てっくらんち)を運営してよかった!! - Bit valley inside- vol.17-kazuyuki takahashi
 

Recently uploaded

企業規模で選ぶフライクサービス | 大企業向け 部署横断+全体最適化システムコンサルティング
企業規模で選ぶフライクサービス | 大企業向け 部署横断+全体最適化システムコンサルティング企業規模で選ぶフライクサービス | 大企業向け 部署横断+全体最適化システムコンサルティング
企業規模で選ぶフライクサービス | 大企業向け 部署横断+全体最適化システムコンサルティングFlyke1
 
企業規模で選ぶフライクサービス | 中堅企業向け 業務フロー改善×システム導入コンサルティング
企業規模で選ぶフライクサービス | 中堅企業向け 業務フロー改善×システム導入コンサルティング企業規模で選ぶフライクサービス | 中堅企業向け 業務フロー改善×システム導入コンサルティング
企業規模で選ぶフライクサービス | 中堅企業向け 業務フロー改善×システム導入コンサルティングFlyke1
 
From Generative AI to Cooperative AI: 協働AIのもたらす社会、2030年への課題と展望
From Generative AI to Cooperative AI: 協働AIのもたらす社会、2030年への課題と展望From Generative AI to Cooperative AI: 協働AIのもたらす社会、2030年への課題と展望
From Generative AI to Cooperative AI: 協働AIのもたらす社会、2030年への課題と展望Osaka University
 
株式会社Human Matureの会社紹介および事業紹介資料_20240514.pdf
株式会社Human Matureの会社紹介および事業紹介資料_20240514.pdf株式会社Human Matureの会社紹介および事業紹介資料_20240514.pdf
株式会社Human Matureの会社紹介および事業紹介資料_20240514.pdfinfo719141
 
【サービス紹介資料】株式会社フライクってどんな会社? - 企業の組織改革・DX推進を加速するフライクのサービス
【サービス紹介資料】株式会社フライクってどんな会社? - 企業の組織改革・DX推進を加速するフライクのサービス【サービス紹介資料】株式会社フライクってどんな会社? - 企業の組織改革・DX推進を加速するフライクのサービス
【サービス紹介資料】株式会社フライクってどんな会社? - 企業の組織改革・DX推進を加速するフライクのサービスFlyke1
 
営業資料_会社概要(アフィ) _24051511111111111111.pdf
営業資料_会社概要(アフィ) _24051511111111111111.pdf営業資料_会社概要(アフィ) _24051511111111111111.pdf
営業資料_会社概要(アフィ) _24051511111111111111.pdfssuserfb441f
 
株式会社Asobicaが提供するロイヤル顧客プラットフォームcoorum概要資料
株式会社Asobicaが提供するロイヤル顧客プラットフォームcoorum概要資料株式会社Asobicaが提供するロイヤル顧客プラットフォームcoorum概要資料
株式会社Asobicaが提供するロイヤル顧客プラットフォームcoorum概要資料thayashi6
 
2405_インパクトレポート/会社概要_雨風太陽
2405_インパクトレポート/会社概要_雨風太陽2405_インパクトレポート/会社概要_雨風太陽
2405_インパクトレポート/会社概要_雨風太陽AmeKazeTaiyo
 
intra-mart Accel series 2024 Spring updates
intra-mart Accel series 2024 Spring updatesintra-mart Accel series 2024 Spring updates
intra-mart Accel series 2024 Spring updatesNTTDATA INTRAMART
 
COMPANY PROFILE - 5分でわかるフライク - 【株式会社フライク会社紹介資料】
COMPANY PROFILE - 5分でわかるフライク - 【株式会社フライク会社紹介資料】COMPANY PROFILE - 5分でわかるフライク - 【株式会社フライク会社紹介資料】
COMPANY PROFILE - 5分でわかるフライク - 【株式会社フライク会社紹介資料】Flyke1
 
Golfcart Vision_202407_09_mediaguide.pdf
Golfcart Vision_202407_09_mediaguide.pdfGolfcart Vision_202407_09_mediaguide.pdf
Golfcart Vision_202407_09_mediaguide.pdftomihara1
 
ふりかえりを1枚で実施できる新フレームワーク(アジャイルレトロスペクティブズ2)
ふりかえりを1枚で実施できる新フレームワーク(アジャイルレトロスペクティブズ2)ふりかえりを1枚で実施できる新フレームワーク(アジャイルレトロスペクティブズ2)
ふりかえりを1枚で実施できる新フレームワーク(アジャイルレトロスペクティブズ2)Keisuke Tameyasu
 
企業規模で選ぶ、フライクサービス | 中小企業向け 業務フロー診断 × 改善提案
企業規模で選ぶ、フライクサービス | 中小企業向け 業務フロー診断 × 改善提案企業規模で選ぶ、フライクサービス | 中小企業向け 業務フロー診断 × 改善提案
企業規模で選ぶ、フライクサービス | 中小企業向け 業務フロー診断 × 改善提案Flyke1
 
motto whitepaper 20240514forsaleshub.pdf
motto whitepaper 20240514forsaleshub.pdfmotto whitepaper 20240514forsaleshub.pdf
motto whitepaper 20240514forsaleshub.pdfharukatakiguchi
 

Recently uploaded (14)

企業規模で選ぶフライクサービス | 大企業向け 部署横断+全体最適化システムコンサルティング
企業規模で選ぶフライクサービス | 大企業向け 部署横断+全体最適化システムコンサルティング企業規模で選ぶフライクサービス | 大企業向け 部署横断+全体最適化システムコンサルティング
企業規模で選ぶフライクサービス | 大企業向け 部署横断+全体最適化システムコンサルティング
 
企業規模で選ぶフライクサービス | 中堅企業向け 業務フロー改善×システム導入コンサルティング
企業規模で選ぶフライクサービス | 中堅企業向け 業務フロー改善×システム導入コンサルティング企業規模で選ぶフライクサービス | 中堅企業向け 業務フロー改善×システム導入コンサルティング
企業規模で選ぶフライクサービス | 中堅企業向け 業務フロー改善×システム導入コンサルティング
 
From Generative AI to Cooperative AI: 協働AIのもたらす社会、2030年への課題と展望
From Generative AI to Cooperative AI: 協働AIのもたらす社会、2030年への課題と展望From Generative AI to Cooperative AI: 協働AIのもたらす社会、2030年への課題と展望
From Generative AI to Cooperative AI: 協働AIのもたらす社会、2030年への課題と展望
 
株式会社Human Matureの会社紹介および事業紹介資料_20240514.pdf
株式会社Human Matureの会社紹介および事業紹介資料_20240514.pdf株式会社Human Matureの会社紹介および事業紹介資料_20240514.pdf
株式会社Human Matureの会社紹介および事業紹介資料_20240514.pdf
 
【サービス紹介資料】株式会社フライクってどんな会社? - 企業の組織改革・DX推進を加速するフライクのサービス
【サービス紹介資料】株式会社フライクってどんな会社? - 企業の組織改革・DX推進を加速するフライクのサービス【サービス紹介資料】株式会社フライクってどんな会社? - 企業の組織改革・DX推進を加速するフライクのサービス
【サービス紹介資料】株式会社フライクってどんな会社? - 企業の組織改革・DX推進を加速するフライクのサービス
 
営業資料_会社概要(アフィ) _24051511111111111111.pdf
営業資料_会社概要(アフィ) _24051511111111111111.pdf営業資料_会社概要(アフィ) _24051511111111111111.pdf
営業資料_会社概要(アフィ) _24051511111111111111.pdf
 
株式会社Asobicaが提供するロイヤル顧客プラットフォームcoorum概要資料
株式会社Asobicaが提供するロイヤル顧客プラットフォームcoorum概要資料株式会社Asobicaが提供するロイヤル顧客プラットフォームcoorum概要資料
株式会社Asobicaが提供するロイヤル顧客プラットフォームcoorum概要資料
 
2405_インパクトレポート/会社概要_雨風太陽
2405_インパクトレポート/会社概要_雨風太陽2405_インパクトレポート/会社概要_雨風太陽
2405_インパクトレポート/会社概要_雨風太陽
 
intra-mart Accel series 2024 Spring updates
intra-mart Accel series 2024 Spring updatesintra-mart Accel series 2024 Spring updates
intra-mart Accel series 2024 Spring updates
 
COMPANY PROFILE - 5分でわかるフライク - 【株式会社フライク会社紹介資料】
COMPANY PROFILE - 5分でわかるフライク - 【株式会社フライク会社紹介資料】COMPANY PROFILE - 5分でわかるフライク - 【株式会社フライク会社紹介資料】
COMPANY PROFILE - 5分でわかるフライク - 【株式会社フライク会社紹介資料】
 
Golfcart Vision_202407_09_mediaguide.pdf
Golfcart Vision_202407_09_mediaguide.pdfGolfcart Vision_202407_09_mediaguide.pdf
Golfcart Vision_202407_09_mediaguide.pdf
 
ふりかえりを1枚で実施できる新フレームワーク(アジャイルレトロスペクティブズ2)
ふりかえりを1枚で実施できる新フレームワーク(アジャイルレトロスペクティブズ2)ふりかえりを1枚で実施できる新フレームワーク(アジャイルレトロスペクティブズ2)
ふりかえりを1枚で実施できる新フレームワーク(アジャイルレトロスペクティブズ2)
 
企業規模で選ぶ、フライクサービス | 中小企業向け 業務フロー診断 × 改善提案
企業規模で選ぶ、フライクサービス | 中小企業向け 業務フロー診断 × 改善提案企業規模で選ぶ、フライクサービス | 中小企業向け 業務フロー診断 × 改善提案
企業規模で選ぶ、フライクサービス | 中小企業向け 業務フロー診断 × 改善提案
 
motto whitepaper 20240514forsaleshub.pdf
motto whitepaper 20240514forsaleshub.pdfmotto whitepaper 20240514forsaleshub.pdf
motto whitepaper 20240514forsaleshub.pdf
 

初心者向けチーム開発講座