クオカードでは、ソフトウェアエンジニアの採用プロセスの一環としてコーディングテストを実施しています。候補者の皆様には貴重な時間を割いて取り組んでいただくことになるため、十分な準備をしていただけるようにテストの内容と評価の観点を事前に公開することにしました。テストの目的を損なうことなく、候補者が必要とするスキルを身につけられる機会を提供したいと考えています。
コーディングテストの内容
現時点でのコーディングテストは、書籍管理システムの構築をお願いしています。具体的には、以下の仕様で実装していただきます。期限は2週間です。
Kotlin、Spring Boot、jOOQを使用
書籍には著者の属性があり、書籍と著者の情報をRDBに登録・変更・検索できる機能
著者に紐づく本を取得できる機能
このテストではWeb APIの作成のみをお願いしており、フロントエンドの実装は不要です
完成したプロジェクトはGitHubにアップロードし、プロジェクトのURLをご送付ください
進め方の例
進め方の例を記載します。今回はSpring initializrや追加プラグインを利用していますが、こちらを利用しない形でも上記の技術スタック・仕様通り構築頂ければ問題ありません。
環境構築
業務上、新しいツールや技術の導入があり得るため、ドキュメントを参照しながら必要な環境構築が行えるかを確認します。
今回は例として、Spring initializrを使い以下の設定でプロジェクトを生成しました。今回は以下の追加プラグインを利用しましたが、プラグインの利用は必須ではありません。
利用ツール: Spring initializr(https://start.spring.io/)
Project:Gradle - Groovy
言語選択: Kotlin
追加プラグイン: JOOQ Access Layer, Flyway Migration, PostgreSQL Driver, Docker Compose Support
Java :21 or 17
SDKMANやasdf等を利用し、上記で指定したJDKをインストールします。
IDEはIntelliJ IDEA Community版(業務ではUltimate版を使用しています)を利用します。
Spring initializerで生成したプロジェクトをIntelliJ IDEAにインポートし、JDK、Gradleの設定を行い開始します。
実装
必要なコントローラーやクラスを追加し、機能を実装していきます。データベースの構築にはFlywayを使用し、その後jOOQでコードを自動生成して利用します。
jOOQでコードを自動生成する為に、以下を参照し設定を追加します。
https://www.jooq.org/doc/3.19/manual/code-generation/codegen-gradle/
https://www.jooq.org/doc/3.19/manual/code-generation/codegen-configuration/
評価の観点
評価は主に以下の観点で行います。
指定された技術スタックの適用
フレームワークやライブラリの適切な利用
実行可能性
仕様に沿った動作
変数名やクラス名、関数名が実態を明確に反映しているか
Null安全性
コードフォーマットの整合性
変数に再代入しないなど、ベストプラクティスの遵守
この記事がどなたかの助けになれば幸いです。 ご不明な点やサポートが必要な場合は、遠慮なくお問い合わせください。
最後に
クオカード デジタルイノベーションラボでは新しい仲間を募集しています。
少しでも興味をお持ちいただけた方は、是非カジュアル面談でお話させていただければと思います!