エンジニア プログラミング

【テックエキスパート】プログラミングスクールの「チーム開発」に突入! 未経験エンジニアの転職や就活の武器「個人アプリ」の話〜TECH::EXPERT 50日後 体験談〜

更新日:

どうも、てぃかしです。テックエキスパートの50日後の経過報告です。

------------------------------
〜最大2万円OFF!&無料相談キャンペーン〜
てぃかしの紹介でTECH::EXPERTを受講される方で、無料カウンセリング前にご連絡いただいた場合、受講料が1万円OFFとなります。無料カウンセリング当日のお申し込みの場合は、さらに1万円OFFとなり、合計2万円OFFとなります。TECH::CAMPを受講される方は受講料が5%OFFとなります。詳細は本記事の最後に記載しています。
------------------------------

今回は、50日で学んだことと、チーム開発について書いていきます。

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

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

テックエキスパート50日で学んだこと

40〜50日で学んだことは下記のようなことです。

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

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

個人アプリ

チャットアプリ(ChatSpace)の制作が終わった人は、個人アプリの制作に進みます。チーム開発まで1週間空いていたので、受講中、1週間、個人アプリの制作に取り組めるスケジュールとなっています。

僕はチャットアプリ提出直後、風邪でダウンしてしまったので、制作時間もほぼなく、未完成となってしまいました。

なので、割愛しますが、簡単にいうと、タスク管理のアプリケーションです。

チーム開発が終わったら、また作りたいと思っています。(追記:後日ちゃんと作りました。)

他の人を見てると、いい感じのアプリを作っている人もちらほらいましたね。

お気に入りの服とかアクセサリーの画像を掲載できるサイトとか、天気予報が見れるサイトとか、今まで学んだことをしっかり活用して作ってるなと思われるものもありました。

モデリング

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

例えば、猫を飼うことを擬似体験できるゲームがあったとします。猫には、「性別」「種類」といった データ があって、「鳴く」「食べる」といった 振る舞い をします。

猫

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

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

リファクタリング

プログラミングにおいて、プログラムの外部から見た動作を変えずにソースコードの内部構造を整理することである。

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

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

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

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

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

・View
表示処理を行う

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

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

例外処理

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

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

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

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

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

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

具体的にどうやって例外処理を行うかというと、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日後の経過報告です。お楽しみに!

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

〜最大2万円OFF!&無料相談キャンペーン〜
てぃかしの紹介でTECH::EXPERTを受講される方で、無料カウンセリング前にご連絡いただいた場合、受講料が1万円OFFとなります。無料カウンセリング当日のお申し込みの場合は、さらに1万円OFFとなり、合計2万円OFFとなります。TECH::CAMPを受講される方は受講料が5%OFFとなります。又、私の紹介で受講決定された方限定で受講最初(2週間)悩むことがあれば、LINE@で相談乗ります。
TECH::EXPERT、TECH::CAMPのどちらかを受講をお考えの方は下記のいずれかの連絡先に、「受講コース」、「フルネーム」、「受講地域」をご連絡ください。

LINEでのご連絡は下記をタップしてください。
友だち追加
LINE ID検索はこちら→ @rfh1332u (@も入れて検索してください)

TwitterのDMでもOKです。
Twitter→ https://twitter.com/engineer_sakai

お申込み後にご連絡頂いた場合、割引が適用できない場合があります。必ず無料カウンセリングお申込み前にご連絡ください。

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

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

-エンジニア, プログラミング
-, , , , , , , , ,

Copyright© てぃかしのブログ , 2020 All Rights Reserved Powered by AFFINGER5.