---
# System prepended metadata

title: システム開発部　オリエンテーション

---


# システム開発部　オリエンテーション

## シス開メンバーの紹介機能を作ろう！
自分でシス開メンバーに年齢や趣味などを聞いてデータを集めよう！
<br>

### 前提
- CodeEditorは好みのものを使ってOK🙆‍♂️（推奨はInteliJ IDEA）
- [Git](https://git-scm.com/downloads)をインストールしていること
- [InteriJ IDEA Community Edition](https://www.jetbrains.com/ja-jp/idea/download/#section=mac)をインストールしていること
- 【Mac】[Eclipse](https://qiita.com/yacchi1123/items/31c5ced9700b7c109c03)インストール方法
<br>

## 👆手順1　JAVA開発環境を構築 (MacOS)💻
1. [Javaの実行環境構築 手順](http://www602.math.ryukoku.ac.jp/OOProg/jdk-mac.html)
2. InteriJ IDEAを立ち上げる
3. 新規プロジェクトを作成する
<br>

## 👆手順2　実装を行う 🛠

developブランチから作業用のブランチを切ってから作業をはじめましょう！

1. 【mainブランチ】に移動<br>`git checkout main`
2. リモートに存在するブランチを確認（developブランチがあることを確認）<br>`git branch -r`
3. 【mainブランチ】から【developブランチ】を作成<br>`git branch develop`
4. 【mainブランチ】から【developブランチ】に切り替え<br>`git checkout develop`
5. 【developブランチ】から【作業ブランチ】を作成 & 切り替え<br>`git checkout -b xxxx`
6. 現在のブランチを確認（作業ブランチ名が緑色になっていればOK）<br>`git branch`
9. 機能単位で【commit】する
10. 作業が完了したら【push】する
11. githubで【developブランチ】に対して【Pull Request】を行う
12. レビューを受ける（書いたコードを説明していただきます！）

<br>

# シス開メンバー紹介Webアプリケーション実装プラン ⛳️

> 下記プランの他に、実装したい機能（こんな機能あったらいいな）は自由に追加していただいて構いません 🙌
 
<br>
 
## Development Phase 1 🐥

### Javaを使いこなそう👻
> 下記の手順通りに勉強してJavaをモノにしましょう！！

1.[Javaの基本構文](https://qiita.com/tomonori_hioki/items/cec47a366208d43d7339)⇦を覚えてある程度使えるようになろう！
2.Udemyを観ながらJavaを網羅的に学習しよう！
3.Javaアルゴリズム演習問題を解こう！

<br>

### Javaアルゴリズム演習問題😈
それではJavaの演習問題を解いて行こう、簡単ではないが色々試してみてほしい。

<br>

> 問題１（配列）👼🏿


    入力された2つの数の和を出力するプログラムを作成しなさい。

    入力する数は、共に整数とする。
    負の数も含む。負の数の場合は、数値の直前に空白を挟まずに「-」（マイナス）を付加して入力するものとし、数値の範囲は-10000～10000とする。
    入力例：

      5 4

    出力例：

      9

<br>

> 問題２（分岐／多重分岐）😱


    入力された四則演算の結果を出力するプログラムを作成しなさい。下記が条件だ。

    入力する数は、すべて整数とする。
    演算記号は「+」(和) 「-」(差) 「*」(積) 「/」(商)を使用する。
    四則演算の式は、1回の演算とし、2回以上の演算は行わない。（正しい：23 * 58 / 誤り: 23 + 58 + 7）
    商を求める際は、余りを「 … N」と表示する
    「0」(ゼロ)で割る式は入力しない
    負の数も含む。負の数の場合は、数値の直前に空白を挟まずに「-」（マイナス）を付加して入力するものとし、数値の範囲は-10000～10000とする。
    入力例

      23 * 58

    出力例

      1334
     
<br>

> 問題３（繰り返し）🥵


    入力された加算／減算演算の結果を出力するプログラムを作成しなさい。

    入力する数は、すべて整数とする。
    演算記号は「+」(和) 「-」(差)を使用する。
    （正しい:      23 + 58 + 7）
    負の数も含む。負の数の場合は、数値の直前に空白を挟まずに「-」（マイナス）を付加して入力するものとし、数値の範囲は-10000～10000とする。
    演算の途中経過における取りうる値の反は-10000～10000とする。
    入力例

      23 + 58 + 7

    出力例

      88

<br>

> 問題４(再帰)🥶 ⇦に関しては１〜３が終わって時間が余ったらやってみましょう！


    入力された加算／減算演算の結果を出力するプログラムを作成しなさい。

    入力する数は、すべて整数とする。
    演算記号は「+」(和) 「-」(差)を使用する。
    演算の式は、最低1回の演算を行うものとし、複数回の演算を行う場合もある。
    四則演算の記法に乗っ取り、先に行うべき演算は「（」および「）」でくくるものとし、入れ子構造も可とする。【正しい:  23 + 58 + 7 – ( 10 + 3 ) – ( 3 – ( 5 + 4  – ( 8 – 2 ) ) )】
    負の数も含む。負の数の場合は、数値の直前に空白を挟まずに「-」（マイナス）を付加して入力するものとし、数値の範囲は-10000～10000とする。
    演算の途中経過における取りうる値の反は-10000～10000とする。
    入力例

      23 + 58 + 7 - ( 10 + 3 ) - ( 3 - 2 - ( 5 + 4 - ( 8 - 2 ) + 8 ) )

    出力例

      85
      
<br>

上記のアルゴリズム問題を全て解き、gitにあげよう！
アルゴリズム問題に行き詰まったら、遠慮なく相談してください！😿
ガチでむずいです；；


<br>

## Development Phase 2 🦆



### 【シス開メンバーの紹介サービス】をSpringで作成しよう！！
- 実装期間は○週間程度
- ログインユーザのみが閲覧操作可能
- シス開メンバーの紹介サービスの作成
    - ディビジョンとメンバーのCRUD機能
        > メンバー情報は聞きに行く(Slackではなく直接聞いてみよう！) 
        > メンバー登録時にログインユーザーを登録者として保存
    - 検索機能(ユーザーネーム、ディビジョン、更新日)
    - ソート機能(ID順、更新順)

- 必須機能
    - 認証
    - リレーション
    - バリデーション
    - 多重クリック対策

- テーブル定義
 > Memberテーブルのuser_idには作成したユーザーIDを入れる(作成時にログインしているユーザーID)
- ### User
| カラム名(日本語) |   カラム名   |    型     |
| ---------------- |:------------:|:---------:|
| ID               |      id      |    INT    |
| ユーザー名       |     name     |  VARCHAR   |
| メールアドレス      |   email   | VARCHAR  |
| パスワード      | password |  VARCHAR   |
| 登録日           |  created_at  | TIMESTAMP |
| 更新日           |  updated_at  | TIMESTAMP |

### Member
| カラム名(日本語) |     カラム名     |         型          |
| ---------------- |:----------------:|:-------------------:|
| ID               |        id        | INT(AUTO_INCREMENT) |
| メンバー名       |       name       |       VARCHAR       |
| 誕生日           |     birthday     |      Date       |
 得意な言語       | programming_language | VARCHAR             |     |
| 趣味           | hobby       | VARCHAR             |
| ディビジョンID   | division_id  |    INT    |
| 登録日           |  created_at  | TIMESTAMP |
| 更新日           |  updated_at  | TIMESTAMP |

### Division
| カラム名(日本語) | カラム名   |    型     |
|:---------------- | ---------- |:---------:|
| ID               | id         |    INT(AUTO_INCREMENT)    |
| ディビジョン名   | name       |  VARCHAR   |
| 登録日           | created_at | TIMESTAMP |
| 更新日           |  updated_at  | TIMESTAMP |

<br>

## Development Phase 3 🍗
### 機能単位でAPI化を行い、viewを返さずフロントと分離しよう！
<br>


## ❓ Q&A

<br>



## git

- こちらを参照<br>
  - https://github.com/frontier-vision/SystemDev_wiki_contents/wiki/git
  - https://qiita.com/wann/items/688bc17460a457104d7d

|                              |                          | 
| ---------------------------- | --------------------------------------- | 
| git clone 【url】            | 【url】のリポジトリをクローンする       | 
| <br>                         |                                         | 
| git stash                    | 現在の編集状態を退避                    | 
| git stash -u                 | 新規ファイルも退避                      | 
| git stash list               | 編集状態の一覧を表示                    | 
| git stash apply stash@{番号} | 番号の状態を戻す                        | 
| git stash drop stash@{番号}  | 番号の退避を消す                        | 
| <br>                         |                                         | 
| git branch                   | ブランチ一覧を表示                      | 
| git branch 【xxx】           | 現在のブランチから【xxx】ブランチの作成 | 
| git checkout 【xxx】         | 【xxx】ブランチに切り替え               | 
| git add .                    | 編集した全ファイルをステージングに移動  | 
| git add xxx.php xxx.js       | 指定したファイルをステージングに移動    | 
| git commit -m  'xxx'         | xxxというコミットメッセージを追加       | 
| git push origin xxx          | リモートのxxxへ送信（更新）             | 




