平成最後の夏、Playとscalaと私の記録。Labとは、アスタミューゼのエンジニアとデザイナーのブログです。アスタミューゼの事業・サービスを支えている知識と舞台裏の今を発信しています。2018-09-12平成最後の夏、Playとscalaと私の記録。開発プロセスおはようございます、chotaroです。我が家のエアコンは、平成最後のお仕事を終えました。平成最後の秋は音楽の秋にする予定です(๑•̀ᄇ•́)و✧さてこの夏、2つほどの機能を持つ小規模なWEBアプリケーションを、Playで組んでリリースしました。Playに関しての詳細は公式ドキュメントや、弊ブログ内の記事が詳しいので割愛します。何かとはじめてのことばかりで、初々しく甘酸っぱい経験になりました。本エントリはその甘酸っぱさを忘れないうちに形にしておくための試みです。概要つくるものメインの画面は2つ。詳細情報の画面から、問い合わせを送る事ができる仕組みと、アクセスログを専用のテーブルに保存する仕組みを実装しています。要件から、エンティティ図を出して、そこからEDMに落とし込んで、というプロセスで設計し、edmを作成。一人ではそもそもエンティティ図の段階で限界があったので経験値豊富な先輩にフォローしてもらってなんとか形に。Scalaの採用Javaのリリースサイクルが大幅に変更されるにあたり、既存アプリケーションも大きな影響を受けざるを得ませんでした。(開発リソース上の問題もあり、モジュールシステムの検証も十分にできてない状況ではありますし。)せっかく小規模なアプリ開発案件なのだから、実験的にやってみてもいいのではないか、ということでscalaを採用してみました。公式で提供されているプロジェクトテンプレートを用いれば動くものが手っ取り早く用意できるので、上述のscalaのトレーニング的な意味も込めて、採用しました。良かったことscala細かいところを詰めるとわからないことだらけではあるが、javaよりも記法に柔軟性があり、どちらかといえばswiftライクで個人的にとても好印象。(あと単純に新しい言語を学ぶのはすごく楽しい。framework最高です。htmlからscalaのfunctionを呼び出せる実装の柔軟性が高いroutesによるurl定義がかなり可読性高くわかりやすいwebpackのように常時実装とコンパイル、画面の表示結果を確認しながら開発が可能なので、上記の確認も高速でできる今までmavenやらtomcatやらjspやらの世界にいたのでなんかこう、アツいものがこみ上げてきます。自分一人で組むならこれ以外の選択肢はない、気がします(ただし、実装者に関する課題点は多々あるのと、多人数で進めるときのテスト戦略は別途検討が必要な印象。)しんどかったことDB設計とりあえず議論しながら作ってみよう、で進めたがうまく議論が回らず時間ばかりかかり、失敗。最終的に原理原則を知った上でたたき台を作って、それをベースに議論を突き合わせる、でなんとかEDMまでたどり着きました。ありがとうございました保守性の問題WEB自体はスムーズにできたものの、自分ひとりで組んでしまったので怪しい部分がいくつかあります。箇条書きするとこんな感じです。実装の構造がやや煩雑コードに他人の目が入ってないので、冗長なコードになっている可能性がある動きを確認しながら進めていたので、現状は問題ないが、単体テストの充実度低めで改修負荷がやや高い(私がこっちにほぼかかりっきりになってしまったので、並行しているプロジェクトのコードも同様に属人化してしまっている)また、playや基盤の問題として次のようなことがあります。テンプレートhtmlへの変数の当て込みがControllerのfunctionを把握してないと書けないので、デザイナーさんやフロントエンドの人にとって難しい印象ユーザも絞られているため、最低限の実装のみ具備。→セキュリティや次フェーズの改修、となったタイミングで検討が必要もう少しうまく作ることでそれぞれ解消できるかもしれず、自分の経験値的な壁を感じました。今後のことこの夏の経験を踏まえた学びとしてはこんな感じです。例外のハンドリング実装の責務配置、手スタビリティを考慮した構造化より美しく、かつ強固なアプリケーションを組めるように経験や知識を得る必要がありそうです。技術的な負債の解消が前提になる改修決定時のタイミングなどでにペアプロでテストコードを充実させるなど、コモンセンスを広げる施策を打つ必要があるいくつか輻輳している状況であっても、レビューとテストファーストの文化を大事にしていく必要があるかも(git-flowとか、サイクルに沿った運営を徹底していくべき)課題点も含め、得られたものが多く、平成最後の夏は良い夏でした。12:15平成最後の夏、Playとscalaと私の記録。Tweet関連記事2019-06-26スクラムはじめましたこんにちは。...2019-05-08Scalaから始めるRust入門お久しぶりでございます。Scalaでバックエンドを開発しているax...2019-03-13働きたくないのでコードを自動生成してみたよこんにちは、開発部のNishikawaです。fra...2017-11-24そうだScalaでAsta4dを使おうこんにちは、yanagitaです。いつもPlay関連の話をしていますが...2017-10-25技術的負債と戦う指標の取り方と改善の仕方、そして諦め方どうも、えいやです。今回は技術的負債と戦う話をしています。Labとは、アスタミューゼのエンジニアとデザイナーのブログです。アスタミューゼの事業・サービスを支えている知識と舞台裏の今をブログとTwitterで発信しています。@astamuseLabアスタミューゼで働きませんか?アスタミューゼでは現在エンジニア、デザイナーを募集中です。興味のある方はぜひご応募ください。(1)@astamuseLabさんのツイートastamuseサービスサイトastamuse世界中のinnovatorのために、創造活動を可視化し未来を創るためのプラットフォームです。活用や新規事業に役立つ様々な機能を提供します。ビッグデータ分析から情報提供し、あなたの知らない未来を発見するメディアです。reserved.スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。