2020年2月9日どうも、てぃかしです。テックエキスパートの50日後の経過報告です。------------------------------〜最大2万円分お得!&無料相談キャンペーン〜てぃかしの本名を紹介欄に書いて、TECH::EXPERTを受講される方は、1万円分のAmazonギフト券がもらえます。無料カウンセリング当日のお申し込みの場合は、さらに1万円OFFとなります。TECH::CAMPを受講される方は受講料が5%OFFとなります。詳細は本記事の最後に記載しています。------------------------------今回は、50日で学んだことと、チーム開発について書いていきます。※本記事の内容は2019年11月中旬にYouTubeで公開した内容とほぼ同じです。今回の内容は下記の通りです。次回予告テックエキスパート50日で学んだこと40〜50日で学んだことは下記のようなことです。情報セキュリティチャットアプリ理解度テスト(jQuery)チーム開発それぞれについて書いていきますね。個人アプリチャットアプリ(ChatSpace)の制作が終わった人は、個人アプリの制作に進みます。チーム開発まで1週間空いていたので、受講中、1週間、個人アプリの制作に取り組めるスケジュールとなっています。僕はチャットアプリ提出直後、風邪でダウンしてしまったので、制作時間もほぼなく、未完成となってしまいました。割愛しますが、簡単にいうと、タスク管理のアプリケーションです。チーム開発が終わったら、また作りたいと思っています。(追記:後日ちゃんと作りました。)他の人を見てると、いい感じのアプリを作っている人もちらほらいましたね。お気に入りの服とかアクセサリーの画像を掲載できるサイトとか、天気予報が見れるサイトとか、今まで学んだことをしっかり活用して作ってるなと思われるものもありました。モデリングやりたいことをプログラムに落とし込むために必要な工程の一つが、モデリングです。猫を飼うことを擬似体験できるゲームがあったとします。作りたいものに合わせて現実の「猫」から必要なデータや振る舞いを選択することを「モデリング」あるいは「抽象化」と呼びます。プログラムを作る際にこのモデリングは必須の作業となります。リファクタリングプログラミングにおいて、プログラムの外部から見た動作を変えずにソースコードの内部構造を整理することである。チーム開発では、複数の人が協力して、コードを書いていきますが、自分勝手にコードを書いていくのではなくて、他人にも自分が書いたコードをわかりやすく見てもらう必要があります。そこで、リファクタリングという考え方が必要になります。Controller」に役割を分けることができます。その役割はこんな感じです。・Controllerリクエストに応じて適切な処理を呼び出す・Modelビジネスロジック(データ処理)を行う・View表示処理を行うこれらについてコードを書いていくんですけど、モデルの書くべき処理をコントローラに記述してしまったり、コントローラに書くべき処理をビューに記述してしまったりすることで、どこにコードが記述されているのかがわかりづらくなり、見通しが悪くなっていくのです。例外が発生した場合に実行する処理のことを指します。オンラインゲームでチケットを消費して、プレイするゲームがあるとします。そのゲームに障害が発生して、お詫びに「全ユーザーに補償のチケットを10枚発行する」ということをするときに、途中でなんらかのエラーが発生してしまうと、チケットを発行する処理が止まってしまいます。その結果、チケットを受け取れたユーザーと受け取れなかったユーザーに分かれてしまいます。なったら、不都合、不公平ですよね。そこで活躍するのが例外処理です。具体的にどうやって例外処理を行うかというと、rescueという、発生した例外を捕捉し、例外が起こった際に呼び出される条件節を使います。全ユーザーにチケットを発行しなかったことにして処理を中止することにするか、ということが可能になります。情報セキュリティ情報セキュリティと言っても、色々あります。今から書くことはユーザーとしても、エンジニアとしても注意すべきことです。xssまず、表示処理に伴う問題です。xss(クロスサイトスクリプティング)という、外部からの入力に対しての脆弱性を突いた攻撃と対策に関して学びました。xssは、外部よりスクリプトを埋め込まれて、クッキーを盗まれたり、JavaScriptによる攻撃を受けてしまう攻撃です。悪い人Aがあるサイトに悪意のあるスクリプトを埋め込みます。Aはそのサイトに誘導する罠サイトを用意します。AはBに罠サイトに誘導するようなメールを送ります。Bは罠サイトにアクセスして、悪意のあるスクリプトが埋め込まれたサイトにアクセスする。Bのブラウザ上で、Aが埋め込んだスクリプトが実行される。このような手順で攻撃を受けてしまい、クッキーが盗まれたり、ウイルスに感染したりします。このXSSを防ぐにはHTML生成時に意味を持つ特殊文字列を文字参照によりエスケープさせます。SQLインジェクションSQL呼び出しに伴う脆弱性。SQLインジェクションという、アプリケーション側のSQLの呼び出し時のセキュリティ不備を意図的に利用する攻撃です。CSRF次に「重要な処理」に伴う脆弱性です。CSRF(クロスサイトリクエストフォージェリ)という、ユーザーにとって重要な処理を勝手に行ったことにしてしまう攻撃手法です。重要な処理とは、例えばこんなことですね。利用者のアカウントによる掲示板への書き込み利用者のパスワードやメールアドレスが変更セッションハイジャックセッション管理の不備により生じる、セッションハイジャックとは名前の通り、なんらかの方法を用いて正規利用者ではないものが他人のセッションIDを乗っ取る攻撃手法です。物品購入、なりすましメールの送信やSNSへの犯罪予告など正規利用者への被害はとても大きくなります。ChatSpace理解度テスト(jQuery)チャットアプリの制作でjQuery使っていきましたので、その理解度テストです。入力文字数のカウントなどに関する問題が出ましたね。テスト形式で実装していくという感じです。最終課題のチーム開発では、アジャイル開発と呼ばれるモダンな開発手法を、スクラムを用いてチャレンジします。何を開発するかというと、メルカリのコピーサイトです。アジャイル開発と呼ばれるモダンな開発手法で、スクラムを用いて開発を進めていきます。ここで出てきた、「チーム開発」「アジャイル開発」「スクラム」については、次回の記事で深掘りしていきたいと思います。チームは新たに編成されます。テストの成績などで決まるそうなので、できない人が固まってチームが破綻するといったことはほぼないかと思います。Githubで開発の資材を共有しながら進めるので、チームでのGithubの使い方も学ぶことが多いです。(※Githubは、プログラムコードなどを保存、公開、共有することができるWebサービスです。)チーム開発が始まって1週間が過ぎたところですが、感想は、やっぱり難しいですね。1週間でやったことは、DB設計、ビューの制作です。DB設計はみんなで考えながらやりました。DBはあとあと何度も変更するのは難しいので、最初にチームの認識を合わせるためにきっちりとやっておくべきだと思います。あと、Githubをチームで使っていくことになるので、チームでの使い方も話し合いました。テックエキスパートのチーム開発に限らず、これは現場のエンジニアの方々もしっかりやっておくべきことだと思います。次回は、チーム開発後半ということで、チーム開発ではどんなことをしていくのかをもう少し深掘りして話していこうと思っています。未経験の方はもちろん、エンジニアの方にも参考になるような内容にしたいと思っていますので、興味のある方はぜひご覧ください。次回は60日後の経過報告です。お楽しみに!動画でご覧になりたい方は、ぜひYouTubeの方もチェックしてください。〜最大2万円分お得!&無料相談キャンペーン〜てぃかしの本名を紹介欄に書いて、TECH::EXPERTを受講される方は、1万円分のAmazonギフト券がもらえます。無料カウンセリング当日のお申し込みの場合は、さらに1万円OFFとなります。TECH::CAMPを受講される方は受講料が5%OFFとなります。私の紹介で受講決定された方限定で受講最初(2週間)悩むことがあれば、LINE@で相談乗ります。TECH::EXPERT、TECH::CAMPのどちらかを受講をお考えの方は下記のいずれかの連絡先に、「受講コース」、「フルネーム」、「受講地域」をご連絡ください。LINEでのご連絡は下記をタップしてください。(@も入れて検索してください)TwitterのDMでもOKです。https://twitter.com/engineer_sakaiお申込み後にご連絡頂いた場合、割引が適用できない場合があります。無料カウンセリングお申込み前にご連絡ください。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。体験記〜どうも、てぃかしです。テックエキスパートの60日後の経過報告です。体験談〜どうも、てぃかしです。プログラミングスクール「TECH::EXPERT」受講20日後の経過報告をしていきます。フリーランス案件獲得でやることのリストてぃかしです。これから他の会社にエンジニアとして転職する人、これからフリーランスエンジニアになる人に向けた記事です。AFFINGER5.。