一週間のカリキュラム 1週間で、Ruby 〜 Ruby on Railsまでを学ぶ
シリーズの7日目、今後開発を進める上での抑えるポイントをまとめています。
7日目
今後の課題 開発
ある程度、自身の好きなように開発を進めていくうちに、手を動かさずとも作成するものに対して必要な要素を想定できるようになります。
また、テストなどを書いたり、ロジックを実装するうちに人間ならOKでもプログラム的に再現が難しい問題や矛盾した内容に気づくようになります。
基本はしきい値が設定できない判定をシステムに持ち込む事はできません。
そういった事を、開発を発注する側と受託する側ですり合わせるためにも下記の内容を勉強し、作ってみる事が必要です。
- RFP(提案依頼書) ※依頼を出す方が書く物です。
- 要件定義書 ※RFPをもとにシステム要件(機能、非機能)を定義します。
- 仕様書(詳細設計書) ※要件定義をもとに開発の詳細を設計します
これらをもとに課題を立て、工程を管理したりしていくうちに、プログラミングだけない上流の工程をマスターしていける事になります。
また、品質保持の為に
- テストとカバレッジ率 も必要となるでしょう。
より高度な設計思想を
サービスを大きくスケールアウトしたり、安定的にサービスを提供する為にも、抽象的ですがその設計思想を表現した文章があります。
時がたって上記の12項目に追加変更を加えた物も定義されています。
具体的な対策
Redisを使ったセッション管理
非同期処理、jobの管理
- 脆弱性への対応
以下を、後日整理
gem BrakemanでRails製アプリケーションの脆弱性を検知する
Railsでセキュリティ用ヘッダをまとめて付与secureheaders[Gem]
【Rails】Form Objectを使ってModelに依存しないFormを作成する
Ruby製HTTPクライアント用gemの「Faraday」を使おう
ただし、Net::HTTPを使うとパラメーターや設定などが複雑になってしまうところを、Faradayを使うことでよりシンプルに、HTTPクライアントとしてアクセスする部分を実装できるメリットがあります。
Railsアプリで実際にあった5つのセキュリティ問題と修正方法(翻訳)
【Rails入門】Rails ERDでER図を自動作成しよう!オプションも網羅