repository for training
thori0908 / training Goto Github PK
View Code? Open in Web Editor NEWrepository for training
repository for training
jQueryでのDOM操作について学びます。
jQueryのDOM操作を用いて、以下の要素を追加するコードをHTMLファイルに追記、もしくは外部ファイル化しブラウザで表示させて下さい。
<header>
のフォントサイズを30pxに変更<p id="msg">
の次に<p class="sample">サンプル2です。</p>
というタグを追加<footer>
のコピーライトの年数を2013に置換Gitとはどういう仕組みかを理解してもらいます。
調べた結果はIssueのコメントにまとめて下さい。
HTML5で新しく定義された文章構造について理解し、実際に作成したフォームに適用します。
以下の文章構造タグについて調べて下さい。
作成したフォームに対し、文章構造タグを適用して下さい。
GitHubのワークフローの1つであるWIP PR
について学びます。
WIP PR
とは何か調べてくださいWIP PR
を出してくださいLaravelは最近トレンドになっているPHPのフレームワークです。
ここではLaravelを触るのを通じてフレームワークについて学びます。
Laravelを調べる時は公式サイトなどを活用して下さい。
なお、研修ではLaravel4.x系を使います。Laravel3.x系とは挙動が異なるため、調べる際には注意して下さい。
Laravelのインストール(プロジェクト作成)と初期設定について学びます。
composer
コマンドを用いて、$HOME/public_html/
直下にlaravel_training
というフォルダ名でLaravelをインストールして下さい。
(Laravelのインストーラーは設定済みです)
インストールしたらLaravelの公式サイトを参考に初期設定と #36 のVHを設定し、ブラウザで以下ページを確認出来るようにして下さい。
確認出来たら、GitHubでLaravel用のリポジトリを作成しlaravel_training
をGitHubで管理するように設定して下さい。
設定ファイルを編集しVirtualHostを設定します。
※すでにApacheのインストール、設定ファイルは対応済みの状態という前提
Apacheの設定ファイル、補助設定ファイルを編集してVirtualHostを設定して下さい。
設定する際には作業ログを残し、Issueには残さず個別に研修担当者に共有して下さい。
jQueryでのイベント操作について学びます。
jQueryでのイベントの種類を5つ程度あげてください。
jQueryのクリックイベントとDOM操作を用いて文字の変更をして下さい。
<p id="msg">サンプルです。</p>
をクリックサンプルです。
がテストです。
に変更するようにDOM操作をするjQueryのホバーイベントとDOM操作を用いて背景色の変更をして下さい。
<p class="sample">サンプル2です。</p>
(jQueryで追加しているDOM)にマウスをホバーLaravelのControllerを作成してMVCのCについて学びます。
Controllerを作成し、routing内で行っていた値の取得やアサインを全てControllerで行って下さい。
routingにはRoute::get('user/{id}', 'UserController@showProfile');
のようにメソッド、URL、Controllerのみを定義して下さい。
対応したらGitHubのPRで共有して下さい。
GitHubを使い、Gitとの連携の流れを学びます。
終わったらGitHubのリポジトリ、およびPRを共有して下さい。
SQLを用いてレコードの挿入、抽出などについて学びます。
テーブル作成 > 課題1で作成したテーブルに対し以下レコード操作を行って下さい。
発行したコマンドはIssueに記述して下さい。
sato
に更新sato
のレコードを削除Windowsではマウスをクリックするれば大抵のことはできますが、Linuxではコマンドを使って操作していきます。ここではPuTTYを用いて基本的なコマンドを覚えてもらいます。
自分のPCからPuTTYを使用して開発環境にリモートアクセスします。
下記のコマンドを実行しその結果を確認して下さい。入力したコマンドや実行前、実行後の確認や出力結果は、Issueのコメントに記述して下さい。記述する際にはMarkdown記述を用いて見やすいよう工夫して下さい。
echo "hello world";
jQueryでのAPIやajax通信について学びます。
以下について調べて下さい。
事前に以下の値のjSONファイルを作成し公開領域に設置して下さい。
id | name | kana |
---|---|---|
1 | Java | ジャバ |
2 | Ruby | ルビー |
3 | Python | パイソン |
4 | Perl | パール |
5 | PHP | ピーエイチピー |
jQueryのajax通信を用いてJSONファイルを読み込み、その内容をHTMLで表形式で出力して下さい。
また、ページ下部に「もっと見る」ボタンを設置し、ボタンが押されたら再度上記処理を実行するようにイベント処理をして下さい。
PHPについては必ず公式ドキュメントを参考にして下さい。
http://php.net/manual/ja/index.php
コーディングルールはPEARに基づいて下さい。
http://pear.php.net/manual/ja/standards.php
PHPでよく使う用語などを理解します。
以下について調べて下さい。
LinuxのエディタであるVimは使いこなせればWindowsのエディタより効率的に編集ができ、サーバ内でのファイル編集等が可能となります。ここではVimを用いて入力、コピーペースト、検索等を学びます。
$ vim /home/xxxx/public_html/training/index.html
上記コマンドからVimを用いてファイルを作成して下さい。 ※xxxxには自分のユーザー名を入れてください
作成の際には以下の項目にならって作成し、実行のコマンド等はIssueのコメントに記載して下さい。
フレームワークについて理解する
以下について調べて下さい。
GitHubとはどういう仕組みかを理解してもらいます。
GitHubに関連する以下の単語の意味を調べて下さい。
調べた結果はIssueのコメントにまとめて下さい。
フォーム画面とは別に、DBに登録した値を一覧で表示する画面を作成して下さい。仕様は以下の通りです。
名前 | 性別 | 郵便番号 | 都道府県 | メールアドレス | 趣味 |
---|---|---|---|---|---|
佐藤 和弥 | 男性 | 150-0036 | 東京都 | sato@test.com | 音楽鑑賞 |
Laravelでのフォームバリデーション、CSRF対策について学びます。
PHP > フォーム作成と同様の対応をLaravelを用いて対応して下さい。
対応したらGitHubのPRで共有して下さい。
JavaScript、jQueryについて理解してもらいます。
以下について調べて下さい。
合わせて、下記にも一通り目を通してください。
http://dotinstall.com/lessons/basic_chrome_dev_v2
tmuxを見やすく使いやすくするよう、カスタマイズする方法を学びます。
.tmux.conf
を編集し、自分が見やすく使いやすくなるようカスタマイズしてみて下さい。
例えば、以下のカスタマイズ例があります。
また、他の開発者が公開しているdotfiles
などを参考してみるのもよいと思います。
https://github.com/tokorom/dotfiles/blob/master/.tmux.conf
https://github.com/chocoby/dotfiles/blob/master/.tmux.conf
WebサーバやApacheについて理解します。
以下について調べて下さい。
Gitの基本的なコマンドを使い一連のバージョン管理の流れを学びます。
調べた結果はこのIssueのコメントにまとめて下さい。
合わせて、下記のサイトで学習してみてください。
http://k.swd.cc/learnGitBranching-ja/
この課題を一通り終えたら、ブランチ運用についても目を通してください。
https://github.com/fact-real/developers_training_public/wiki/Git%E3%81%AE%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E9%81%8B%E7%94%A8
SSHの認証方法の1つである鍵交換を学び、セキュリティの高いSSH接続を行います。
上記の調べた内容、発行したコマンドと出力結果をIssueのコメントに記述して下さい。
jQueryでの条件分岐の書き方について学びます。
以下の要素をHTMLファイルの<article>
タグ内に追加して下さい。
<form action="#" method="get">
<input type="text" name="val"><input type="submit" value="送信">
</form>
送信を押したら、テキストフィールドの値によってアラートを表示する条件分岐を実装して下さい。
入力して下さい
とアラート表示数字です
とアラート表示数字以外です
とアラート表示SQLを用いてDBを作成、操作します。
発行したコマンドとその結果はIssueに記述して下さい。
MySQLコマンドからMySQLサーバに接続し、以下を満たすDBを作成して下さい。DB名はお任せします。
作成後はDB一覧を表示して作成されたかどうかを確認して下さい。
もう1つDBを作成し、作成したDBに切り替え、切り替えられたかどうかまで確認をして下さい。
課題2で作成したDBを削除して下さい。
CSSを用いて作成したフォームのレイアウトを変更します。
style
タグを用いて以下のレイアウトを対応して下さい。
PHPで簡単なプログラムを書いてみます。
1 + 2
の結果を出力10202/243
の余りを出力$array = array('a', 'b', 'c');
$str = "abcdefgaabbacd";
$array = array(
1 => 'first',
2 => 'second',
3 => 'third'
);
for
を使って配列の要素を全て出力foreach
を使って配列のキー、要素を全て出力foreach
、if
を使って配列のキーが奇数の場合のみ要素を出力MySQLは世界で一番普及しているオープンソースのデータベース(以下DB)です。
ここではDBの概要やMySQLを用いたDB操作について学びます。
DBはどういう仕組みかを理解してもらいます。
以下について意味を調べて下さい。
以下のテーブルをDB設計ツールを用いて設計してもらいます。
■ユーザー情報
日本語名 | カラム名 | 型 |
---|---|---|
ユーザーID | user_id | INT |
姓 | last_name | TEXT |
名 | first_name | TEXT |
メールアドレス | varchar(255) | |
都道府県ID | pref_id | INT |
登録日時 | created_at | datetime |
更新日時 | updated_at | timestamp |
■都道府県情報
日本語名 | カラム名 | 型 |
---|---|---|
都道府県ID | pref_id | INT |
都道府県名 | pref_name | TEXT |
MySQL Workbench を用いてDB設計、SQL化を学びます。
公式サイトからMySQL Workbenchをインストールして下さい。
MySQL Workbenchを使って課題のテーブルを持つDBを構築して下さい。
構築する際には正規化、外部キー制約など考慮して構築して下さい。
構築し終えたら以下をIssueのコメントに記載、添付して下さい。
クラスベースのオブジェクト指向について学びます。
クラスベースのオブジェクト指向を用いてプログラミングができるようになる。
適切にファイルを分割し、ソースコードのメンテナンス性を高めることができる。
下記用語について調べてください。
下記制御構造について調べてください。
※ここからは「サーバサイド - PHP - フォーム作成」の課題で作成したフォームを使用します。
例を参考に、制御構造を用いて各画面2ファイル以上に分割してください。
<?php
function fullName($last_name, $first_name) {
return sprintf('%s %s', $last_name, $first_name);
}
$full_name = fullName($_POST['last_name'], $_POST['first_name']);
?>
<html>
~ 省略 ~
名前:<?php echo $full_name ?>
~ 省略 ~
</html>
<?php
function fullName($last_name, $first_name) {
return sprintf('%s %s', $last_name, $first_name);
}
$full_name = fullName($_POST['last_name'], $_POST['first_name']);
include 'profile.html.php';
<html>
~ 省略 ~
名前:<?php echo $full_name ?>
~ 省略 ~
</html>
フォームに入力された項目を保持するクラスを下記ルールに従って設計、実装してください。
また、今回作成したクラスを用い表示処理を行ってください。
$profile = new Profile($_POST['mail_address']);
<html>
~ 省略 ~
メールアドレス:<?php echo $profile->getMailAddress() ?>
~ 省略 ~
</html>
サーバの負荷状況、ログファイルからの解析等、コマンドを用いて調査します。
WEBサイトでページが重たい場合や、不具合があって調査をするために負荷状況の把握やログファイルからの解析が必要になります。
自分のPCからPuTTYを使用して開発環境にリモートアクセスします。
開発環境のCPU利用率、load average等を調査し、調査で用いたコマンドの出力結果、およびCPU利用率やload average等の負荷状況をIssueのコメントに記述して下さい。
開発環境のメモリ使用量を調査し、調査で用いたコマンドの出力結果、およびメモリの利用率、空きメモリ容量をIssueのコメントに記述して下さい。
開発環境で動作中のプロセスを調査し、調査で用いたコマンドの出力結果の一部をIssueのコメントに記述して下さい。
開発環境のHDD容量を調査し、調査で用いたコマンドの出力結果とHDDの残り容量をこのissueのコメントに記述して下さい。
開発環境のApacheのログから複数のコマンドを用いて以下を出力して下さい。発行したコマンドと出力結果(長い場合は一部のみ)をIssueのコメントに記述して下さい。
Apacheのログファイルは/usr/local/apache2/logs/access_log
にあります。
[01/Jan/2010:22:01:04 +0900]
/index.html
例)
2 /download/1.html
2 /download/2.html
1 /download/3.html
HTMLの概念や構文、タグなどを理解します。
以下について調べてIssueに記述して下さい。
tmuxを起動し、ウインドウやペインの操作方法について学びます。
以下それぞれの操作を実行して下さい。調べたコマンドやキーはIssueに記述して下さい。
文字列のパターンを表現する正規表現を学び、文字列の検索や置換の仕方を学びます。
課題は全てLinuxのgrepコマンドで行ってもらいます。
あらかじめ以下内容のテキストファイルを作成しておいて下さい。
12345
67890
123456789
abcde
cdeab
test0123
\100
01-1234-5678
012-3456-7890
[email protected]
[email protected]
test@test
[email protected]
基本的な正規表現方法としてメタ文字があります。
メタ文字を用いて、テキストファイルから以下の値をそれぞれgrepコマンドを用いて表示して下さい。
メタ文字には繰り返し、エスケープなどがあります。
それらを用いて以下の値をそれぞれgrepコマンドを用いて表示して下さい。
実際に正規表現を使うケースとして、
電話番号やメールアドレスなど、決まったフォーマットの値を正しく入力しているかのチェックで用います。
テキストファイルから以下の値をそれぞれgrepコマンドを用いて表示して下さい。
CSSを外部ファイル化し読み込む方法を学びます。
作成したCSSを外部ファイル化し、HTML内で読み込むようにして下さい。
SQLを用いてテーブル作成、操作を学びます。
課題毎に発行したコマンドをIssueに記述して下さい。
作成したDBに対し、以下を満たすテーブルを作成して下さい。
カラム名 | 型 | NULL可 |
---|---|---|
id | INT | NO |
title | VARCHAR(32) | YES |
note | TEXT | YES |
created_at | DATETIME | NO |
作成したテーブルを削除し、IDをプライマリーキーにして再作成して下さい。
テーブル削除、再作成をせずに以下のカラム追加、変更、削除をして下さい。
以下のテーブルを別に作成し、課題1で作成したテーブルを親として外部キー制約を追加して下さい。
カラム名 | 型 | NULL可 |
---|---|---|
id | INT | NO |
detail | TEXT | YES |
課題4で作成したテーブルを削除して下さい。削除後は次の課題で使うので再度テーブルを作成して下さい。
jQueryで簡単なプログラムを書いてみます。
以下のソースを基にHTMLファイルを作成して下さい。
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="http://code.jquery.com/jquery-2.1.0.min.js"></script>
</head>
<body>
<!-- header -->
<header>
<h1>jQueryサンプル</h1>
</header>
<!-- content -->
<article>
<p id="msg">サンプルです。</p>
</article>
<!-- footer -->
<footer>
Copyright 2014
</footer>
</body>
</html>
作成したHTMLファイルをブラウザで開いた時にHello World!
とアラートが表示されるようにして下さい。
その際、以下の事を考慮、調べて実装して下さい。
Laravelのroutingとviewを作成してMVCのVについて学びます。
Laravelのroutingとviewを用いて、HTML/HTML5 > HTMLタグと同様の静的フォーム画面を作成して下さい。
作成したらGitHubのPRを共有して下さい。
CSSの概念や記述方法などを理解します。
以下について調べてIssueに記述して下さい。
SQLを用いてアカウントを作成します。
以下の権限を持つアカウントをSQLを用いて作成して下さい。
アカウント名、パスワードはお任せしますがアカウント名は分かり易い、パスワードは複雑性のあるものにして下さい。
作成の際に発行したコマンドとその結果はIssueに記述して下さい。(パスワードは****と伏せて記述して下さい)
Laravelで採用しているBladeを用いて、テンプレートエンジンについて学びます。
LaravelではテンプレートエンジンにBladeを採用しています。
前課題で作成した静的HTMLをBladeにし以下を対応して下さい。
<? echo $name; ?>
といったPHP構文をviewで使わない対応したらGitHubのPRを共有して下さい。
HTMLのタグを理解し、実際に簡単なフォームを作成します。
例
<blockquote>
<p><em>developers</em>, training.</p>
</blockquote>
<ul>
<li>php</li>
<li>ruby</li>
<li>smalltalk</li>
</ul>
<footer>
<p>training</p>
</footer>
フォーム項目 | フォームタイプ | 備考 |
---|---|---|
姓 | テキストボックス | |
名 | テキストボックス | |
性別 | ラジオボタン(男性・女性) | リスト形式で表示 |
郵便番号 | テキストボックス(3桁と4桁でテキストボックスを分ける) | |
都道府県 | セレクトボックス(いくつかの都道府県を選択肢にし、1行目は--) | |
メールアドレス | テキストボックス | |
趣味 | チェックボックス 設問:趣味はなんですか 選択肢:音楽鑑賞,映画鑑賞,その他(テキストボックスあり) | |
ご意見 | テキストエリア |
研修サーバ情報にあるURLからブラウザで確認出来るようにして下さい。
tmuxでのデタッチ・アタッチをしセッション管理を学びます。
以下操作を実行して下さい。調べたコマンドやキーはIssueに記述して下さい。
MySQLコマンドを用いてDBのバックアップ、リストアについて学びます。
課題毎に発行したコマンドをIssueに記述して下さい。
MySQLコマンドを用いて作成したDBのバックアップファイルを作成して下さい。
MySQLコマンドを用いて課題1で作成したバックアップファイルからDBをリストアして下さい。
入力値復帰やvalidateなど、フォーム作成に必要な事を学びます。
ページ構成は下記を参照して下さい。
https://github.com/fact-real/developers_training_public/wiki/%E9%96%8B%E7%99%BA%E7%A0%94%E4%BF%AE-html-html5
以下、仕様を満たすフォームを作成して下さい。
name | type | エラーチェック | エラー文言 | 備考 |
---|---|---|---|---|
姓 | text | 必須項目 | 姓を入力してください。 | |
- | - | 全角50文字以内 | 姓は50文字以内で入力してください。 | |
名 | text | 必須項目 | 名を入力してください。 | |
- | - | 全角50文字以内 | 名は50文字以内で入力してください。 | |
性別 | radio | 必須項目 | 性別を選択してください。 | 男,女 |
郵便番号 | text | 必須項目 | 郵便番号を入力してください。 | 3桁・4桁でテキストボックスを分ける |
- | - | 半角数字のみ | 郵便番号を正しく入力してください。 | |
都道府県 | select | 必須項目 | 都道府県を選択してください。 | 47都道府県。1行目は--とする |
メールアドレス | text | 必須項目 | メールアドレスを入力してください。 | |
- | - | メールアドレス書式チェック | メールアドレスを正しく入力してください。 | 携帯&PCのメールアドレスが使えるように |
趣味 | checkbox | 設問:趣味はなんですか | ||
- | - | - | - | 選択肢:音楽鑑賞,映画鑑賞,その他 |
- | text | - | その他の詳細を入力してください。 | その他選択時、テキスト入力必須 |
- | - | - | - | テキストボックスを入力した時には、その他に自動でチェックを入れる |
ご意見 | textarea |
PHPからDBへの接続と操作について学びます。
完了画面に遷移した際に、DBへ接続しフォームの値を登録して下さい。
フォーム値はPOSTで送信し、DB設計は下記を参考にして下さい。
https://github.com/fact-real/developers_training_public/wiki/%E9%96%8B%E7%99%BA%E7%A0%94%E4%BF%AE-db%E8%A8%AD%E8%A8%88%E3%83%84%E3%83%BC%E3%83%AB#mysql-workbench
PHPからのMySQL接続などはPDOを用いて実装して下さい。
http://www.php.net/manual/ja/pdo.construct.php
テスティングフレームワークのインストールと簡単なテストコードの記述をおこない、自動ユニットテストの基礎を学びます。
xUnit系、xSpec系の記述の違いについても簡単に触れます。
数値の加算を行う簡単なプログラムがある。
RSpecおよびPHPUnitをインストールし、以下のことを検証するテストを記述してください。
※rubyの研修をやっていない場合はPHPUnitのみでよいです
class Adder
{
public function add($x, $y)
{
return $x + $y;
}
}
class Adder
def add(x, y)
x + y
end
end
テスティングフレームワークはxUnit系とxSpec系に大別できます。PHPUnitはxUnit系であり、RSpecはxSpec系です。
両者の違いを調べ、テストコードの可読性やメンテナンス性、テストのドキュメントとしての価値という観点から説明してください。
ヒント: 歴史的にはxUnit系のほうが古いので、主にxSpec系が台頭した理由を考えるという方向性で調べてみてください。
作成したフォームに対し必要なテスト項目を考え、実際にテストを記述して下さい。
JavaScriptでの関数の作り方について学びます。
以下について調べて下さい。
前回課題で作成したアラート表示処理を、以下を満たすユーザー定義関数を定義して実行して下さい。
前回課題で作成したアラート表示処理を、即時関数で定義して実行して下さい。
Vimはオプションを設定する事によって、自分の使いやすいようにカスタマイズ出来ます。ここでは必要最低限なVimのカスタマイズを設定します。
自分のカレントディレクトリにvimrcを設置して下さい。設置し終えたらvimrcに以下を設定して下さい。
また、必要に応じてNeoBundleのようなvimプラグイン管理ツールや、NERDTreeのようなツリー表示が可能なプラグインも入れて下さい。
vimなどの設定ファイルは開発者がGitHubに公開していたりするので参考にしてみて下さい。
dotfiles などで検索すれば出てきます。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.