株式会社ブレーンバディ / エンジニア
自社プロダクトのバックエンド開発
プロジェクト概要1 特定の条件に適合するコンテンツを検索し、表示するための機能の実装を含みます。詳細については以下の通りです。 チーム情報 ・チームメンバー: 3名 ・業務委託: 2名 使用した技術 ・ruby on rails ・ruby ・MySQL 開発・実装内容 ・特定の検索条件に合致するコンテンツを取得し、特定の順序で表示します。 ・特定の検索条件(期間、ソート順など)に合致するコンテンツをデータベースから抽出します。 ・抽出したコンテンツを特定の順序で表示し、ダミーコンテンツも取得して表示に含める処理を実装します。 問題点/苦労した点 Ruby on Railsの特性により、アクティブレコードを使用してデータの取得と処理を行う場面で、複雑な実装や実装が難しい状況が発生しました。この問題を解決するために、データベースのテーブル整理やエラーパターンの詳細な理解が必要でした。問題解決のため、上司や有識者に相談し、さまざまな解決策を提案しました。今回の実装において、問題解決策が見つからなかったため、アンチパターンと言える直接SQLを記述する方法を採用しました。 プロジェクト概要2 私たちのプロジェクトは、スキル評価とスキルマップの可視化を実珸して、メンバー層に個人のスキルマップを見えるようにすることを目指しています。このプロジェクトは、管理者がスキル評価を行い、その評価結果をメンバーに公開できる仕組みを提供します。 開発・実装内容 概要 このプロジェクトでは、管理者がスキル評価を行い、評価結果を公開する機能を提供します。また、メンバーはこれらの評価結果を閲覧し、自分のスキルマップを確認できます。以下は主要な機能の詳細です。 スキル評価 - 管理者はスキル評価詳細画面から一人ひとりのスキル評価を実施できます。 - 複数の評価を一括で公開または非公開に設定できます。 スキルマップ - メンバーはホーム画面から自分のスキル評価結果を閲覧できます。 - 過去のスキル評価結果も確認可能で、過去の成長を追跡できます。 - スキル評価には、レーダーチャート、コメント、スキル評価のタイトルなどの情報が含まれます。 メンバー画面での表示 - メンバー画面では、ユーザーに紐づくスキル評価結果が表示されます。 - ユーザーごとに最新の6つの評価結果を表示し、過去の評価結果も取得できます。 公開非公開の設定 - 管理者は公開または非公開の設定を行えます。 - 公開設定を行うと、メンバーが評価結果を閲覧できるようになります。 使用した技術 このプロジェクトでは、以下の技術を使用しました。 バックエンド: Ruby on Rails フロントエンド: JavaScript, Vue.js データベース: MySQL API設計: RESTful API 問題点/苦労した点 テーブル設計に関して苦労しました。プロジェクトでは、スキルマップの作成だけでなく、評価のためのテンプレートや前回の評価結果を保存するための中間テーブルなど、多くの機能を実装する必要がありました。そのため、適切なテーブル設計が非常に重要でした。初期のテーブル設計に欠陥があることが判明し、新しいテーブルの作成と既存データの移行スクリプトの作成に多くの時間と労力がかかりました。この経験から、設計の重要性を強く認識しました。 今後、身につけなければいけないと思っている技術 将来的に身につけていきたい技術の中で、セキュリティに焦点を当てることが不可欠だと感じています。デジタル環境がますます複雑化し、情報の価値が高まる中で、セキュリティの確保は極めて重要な要素です。したがって、これについての知識を深め、スキルを磨いていくことが将来的な成長につながると確信しています。 特に、アプリケーション開発の過程で脆弱性に対する理解を深める必要があると考えています。システムやアプリケーションに潜む潜在的な脆弱性を見つけ、定期的なセキュリティオーディットを通じて予防的な対策を講じることが大切です。これにより、開発したアプリケーションが安全で信頼性の高いものとなり、ユーザーにとって安心感を提供できるようになるからです。 また、アンチパターンを使っての実装を行なってしまっているので、セキュリティーの丈夫さはなおさら大切だと感じています。 その他 以上が私たちのプロジェクトの概要、チーム情報、開発・実装内容、および使用した技術に関する情報です。この2つのプロジェクト以外にも、プロフィール機能の実装や、おすすめコンテンツ表示機能など様々なAPI開発を行いました。そちらに、関しては、面談等でお話できればと思っています。