広告 プログラミング TECH CAMP(テックキャンプ) エンジニア プログラミングスクール プログラミングスクール体験記

【テックキャンプ】チーム開発へ! ポートフォリオ・個人アプリは何作った?

TECH CAMP チーム開発

どうも、テックキャンプ受講中 てぃかし です。

テックキャンプ (旧テックエキスパート)の50日後の経過報告です。(当時は「テックエキスパート」という名称でした。)

いよいよチーム開発がスタートします。

チームの決まり方チーム開発までに学ぶことなどについて書いていきます。

前回の記事はこちら

テックキャンプアプリ開発納期
【テックキャンプ】制作物 納期に注意! プログラミングスクール「TECH CAMP」体験談

テックキャンプの40日後の経過報告です。 テックキャンプでは、制作物を2つ作ることになります。 1つ目にチャットアプリ(ChatSpace)を作ることになるのですが、実はそれには納期があります。 今回 ...

続きを見る

------------------------------

〜当サイト限定!最大5万円分お得!〜

紹介コード【m0t2ki】を入力して、TECH CAMP エンジニア転職を受講される方は、1万円OFF。無料カウンセリング当日のお申し込みの場合は、さらに1万円OFFとなります。「TECH CAMP プログラミング教養」を受講される方は受講料が5%OFFとなります。

紹介コードを利用する方は以下から登録ページに移動し、紹介コード欄に「m0t2ki」をご入力ください。

テックキャンプ紹介コードを入力する>>>

紹介コード:m0t2ki
※紹介コードの 0(ゼロ)の入力間違いにご注意ください。o(オー)ではありません。コピーして貼り付け推奨。

テックキャンプアンバサダー経由の紹介で5万円分のAmazonギフト券がもらえます。(上記割引とは併用不可)

テックアンバサダーについてはコチラ

------------------------------

今回の内容は下記の目次の通りです。

テックキャンプ 50日で学んだこと

受講から40〜50日で学んだことは下記の内容です。

  • 個人アプリ
  • モデリング
  • リファクタリング
  • 例外処理
  • 情報セキュリティ
  • チャットアプリ理解度テスト(jQuery)
  • チーム開発

それぞれについて書いていきますね。

個人アプリ

チャットアプリ(ChatSpace)の制作が終わった人は、個人アプリの制作に進みます。

チーム開発まで1週間空いていたので、1週間、個人アプリの制作に取り組めました。

僕はチャットアプリ提出直後、風邪でダウンしてしまったので、制作時間もほぼありませんでした。

なので、個人アプリはチーム開発スタート時は未完成でした。

([追記]チーム開発終了後、タスク管理のアプリケーションを作成しました。)

個人アプリを披露する会があったのですが、良い感じのアプリを作っている人もちらほらいました。

お気に入りの服やアクセサリーの画像を掲載できるサイトとか、

天気予報が見れるサイトとか、

今まで学んだことをしっかり活用して作っている人もいました。

モデリング

やりたいことをプログラムに落とし込むために必要な工程の一つが、モデリングです。

例えば、猫を飼うことを擬似体験できるゲームがあったとします。

猫には、「性別」「種類」といった データ があって、「鳴く」「食べる」といった 振る舞い をします。

猫

作りたいものに合わせて現実の「猫」から必要なデータや振る舞いを選択することを「モデリング」あるいは「抽象化」と呼びます。

プログラムを作る際にこのモデリングは必須の作業となります。

リファクタリング

プログラミングにおいて、プログラムの外部から見た動作を変えずにソースコードの内部構造を整理することを「リファクタリング」と呼びます。

チーム開発では、複数の人が協力して、コードを記述しますが、自分勝手にコードを書いていくのではなくて、他人にも自分が書いたコードをわかりやすく見てもらう必要があります。

そこで、リファクタリングという考え方が必要になります。

RailsにはMVCという考え方があって、「Model - View - Controller」に役割を分けることができます。その役割はこんな感じです。

・Controller
リクエストに応じて適切な処理を呼び出す

・Model
ビジネスロジック(データ処理)を行う

・View
表示処理を行う

これらについてコードを記述していきますが、モデルの書くべき処理をコントローラに記述してしまったり、コントローラに書くべき処理をビューに記述してしまったりすることで、どこにコードが記述されているのかがわかりづらくなり、見通しが悪くなります。

そのようなことを改善していくのがリファクタリングです。

例外処理

例外処理とは、例外が発生した場合に実行する処理のことを指します。

例えば、オンラインゲームでチケットを消費して、プレイするゲームがあるとします。

そのゲームに障害が発生して、お詫びに「全ユーザーに補償のチケットを10枚発行する」ということをするときに、途中でなんらかのエラーが発生してしまうと、チケットを発行する処理が止まってしまいます。

その結果、チケットを受け取れたユーザーと受け取れなかったユーザーに分かれてしまいます。

そうなったら、不都合、不公平ですよね。

そこで活躍するのが例外処理です。

具体的には発生した例外を捕捉し、例外が起こった際に呼び出されるrescueという条件節を使います。

エラーが発生した場合の処理をrescueの中に書きます。

このrescueを使って、例外が起こった時に、

そのまま全ユーザーにチケットを発行する処理をするか、

全ユーザーにチケットを発行しなかったことにして処理を中止することにするか、

というように、エラーが発生したときの対処が可能になります。

情報セキュリティ

情報セキュリティ

情報セキュリティと言っても、色々あります。

今から書くことはユーザーとしても、エンジニアとしても注意すべきことです。

xss

まず、表示処理に伴う問題です。

xss(クロスサイトスクリプティング)という、外部からの入力に対しての脆弱性を突いた攻撃と対策に関して学びました。

xssは、外部よりスクリプトを埋め込まれて、クッキーを盗まれたり、JavaScriptによる攻撃を受けてしまう攻撃です。

例えば、

  1. 悪い人Aがあるサイトに悪意のあるスクリプトを埋め込みます。
  2. Aはそのサイトに誘導する罠サイトを用意します。
  3. AはBに罠サイトに誘導するようなメールを送ります。
  4. Bは罠サイトにアクセスして、悪意のあるスクリプトが埋め込まれたサイトにアクセスする。
  5. Bのブラウザ上で、Aが埋め込んだスクリプトが実行される。
  6. このような手順で攻撃を受けてしまい、クッキーが盗まれたり、ウイルスに感染したりします。

このXSSを防ぐにはHTML生成時に意味を持つ特殊文字列を文字参照によりエスケープさせます。

SQLインジェクション

SQL呼び出しに伴う脆弱性。

SQLインジェクションという、アプリケーション側のSQLの呼び出し時のセキュリティ不備を意図的に利用する攻撃です。

CSRF

次に「重要な処理」に伴う脆弱性です。

CSRF(クロスサイトリクエストフォージェリ)という、ユーザーにとって重要な処理を勝手に行ったことにしてしまう攻撃手法です。

重要な処理とは、例えばこんなことですね。

  • 利用者のアカウントによる物品の購入
  • 利用者の退会処理
  • 利用者のアカウントによる掲示板への書き込み
  • 利用者のパスワードやメールアドレスが変更

セッションハイジャック

セッション管理の不備により生じる、セッションハイジャックとは名前の通り、なんらかの方法を用いて正規利用者ではないものが他人のセッションIDを乗っ取る攻撃手法です。

正規利用者の個人情報閲覧、送金や物品購入、なりすましメールの送信やSNSへの犯罪予告など正規利用者への被害はとても大きくなります。

ChatSpace理解度テスト(jQuery)

チャットアプリの制作でjQuery使っていきましたので、その理解度テストです。

内容としては、簡単に書くと、

  • Ajaxによる投稿
  • 入力文字数のカウント

などに関する問題が出ましたね。テスト形式で実装していくという感じです。

テックキャンプ のチーム開発

チーム開発

最終課題のチーム開発では、アジャイル開発と呼ばれるモダンな開発手法を、スクラムを用いてチャレンジします。

メルカリのコピーサイトを開発します。

アジャイル開発と呼ばれるモダンな開発手法で、スクラムを用いて開発を進めていきます。

ここで出てきた、「チーム開発」「アジャイル開発」「スクラム」については、次回の記事で深掘りしていきたいと思います。

チームは新たに編成されます。

テストの成績などで決まるそうなので、テストの結果が良くない人が固まってチームが破綻するといったことはほぼないかと思います。

Githubで開発の資材を共有しながら進めるので、チームでのGithubの使い方も学ぶことが多いです。(※Githubは、プログラムコードなどを保存、公開、共有することができるWebサービスです。)

チーム開発が始まって1週間が過ぎたところですが、感想は、

やっぱり難しいですね。

1週間でやったことは、DB設計、ビューの制作です。

DB設計はみんなで考えながらやりました。

DBはあとあと何度も変更するのは難しいので、最初にチームの認識を合わせるためにきっちりとやっておくべきだと思います。

あと、Githubをチームで使っていくことになるので、チームでの使い方も話し合いました。

テックキャンプのチーム開発に限らず、これは現場のエンジニアの方々もしっかりやっておくべきことだと思います。

次回予告

次回は、チーム開発後半ということで、チーム開発ではどんなことをしていくのかをもう少し深掘りしてお伝えします。

未経験の方はもちろん、エンジニアの方にも参考になるような内容にしたいと思っていますので、興味のある方はぜひご覧ください。

今回はここまで。次回は60日後の経過報告です。お楽しみに!

TECH CAMP経過報告の次の記事はこちら

TECH CAMP60日
【テックキャンプ 】チーム開発のアピールポイント〜TECH CAMP 体験記〜

テックキャンプ (旧テックエキスパート)の60日後の経過報告です。(当時は「テックエキスパート」という名称でした。) 今回の記事では、テックキャンプ(TECH CAMP)のチーム開発で得られる知識や技 ...

続きを見る

動画でご覧になりたい方は、ぜひYouTubeの方もチェックしてください。

------------------------------

〜当サイト限定!最大2万円分お得!〜

紹介コード【m0t2ki】を入力して、TECH CAMP エンジニア転職を受講される方は、1万円OFF。無料カウンセリング当日のお申し込みの場合は、さらに1万円OFFとなります。「TECH CAMP プログラミング教養」を受講される方は受講料が5%OFFとなります。

紹介コードを利用する方は以下から登録ページに移動し、紹介コード欄に「m0t2ki」をご入力ください。

テックキャンプ紹介コードを入力する>>>

紹介コード:m0t2ki
※紹介コードの 0(ゼロ)の入力間違いにご注意ください。o(オー)ではありません。コピーして貼り付け推奨。

テックキャンプ申込

テックキャンプアンバサダー経由の紹介で5万円分のAmazonギフト券がもらえます。(上記割引とは併用不可)

テックアンバサダーについてはコチラ

※本記事の内容は2019年11月中旬にYouTubeで公開した内容とほぼ同じです。

YouTubeでも役立つ情報を配信しています!

ボタンをクリックしてチャンネル登録お願いします!

  • この記事を書いた人
てぃかし プロフィール画像

てぃかし

当ブログの運営責任者。 エンジニア、プログラマー、YouTuber、ブロガー、Webマーケター。 1987年生まれ。 滋賀県出身。 同志社大学 工学部 エネルギー機械工学科 卒業。 滋賀に18年、京都に4年、大阪に3年半、東京に7年ほど移り住む。 その後、滋賀に戻り、これまでの経験をもとにフルリモートで様々な仕事をこなしている。 経験した仕事は、数学の塾講師、マーケティングコンサルタント、エンジニア、SEOコンサルタント。個人では、ブログ運営、YouTubeの企画・撮影・動画編集を1人で行なっている。 YouTubeでは主にプログラミングスクールの体験談やエンジニア転職の方法を実体験をもとに配信することから始め、人生で役立つハウツーを発信。 blogでは、YouTubeでは話さない役立つ内容やお得情報を執筆。

-プログラミング, TECH CAMP(テックキャンプ), エンジニア, プログラミングスクール, プログラミングスクール体験記
-, , , , , , , , , , ,