@TaikiTkwkbysh (WAKA Engineer)

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

技術選定でThymeleafを選定する理由はなんでしょうか?

解決したいこと

興味本位での質問になります。
技術選定をされたことがある方、宜しければ教えて下さい。


現在、ある官庁系のシステム開発をスクラッチで現在行っております。(規模大きめ)
サーバはJava(Spring Boot)、フロントはThymeleaf、Vanilla JSを利用しております。

開発にthymeleafを使用すると聞いたときから嫌な予感はしていたのですが、
案の定、

● 各機能で共通して使用するコンポーネントに原因不明のバグやエラーが起きる
● JSも絡めて動的に画面の値を変更する必要もあり、処理やソースが複雑化する

といったことが起き、結果遅延が生じ、開発全体で苦労しているような印象です。


ただ、もし私が技術選定をする身だとしたら、Thymeleafは選定しなかったと思います。理由は以下のとおりです。


● 開発規模の大きさ

● スクラッチ開発であり、コーディングに関する細かいルールや規約ができていない

● そもそもThymeleafがバグの原因を特定しづらい

● 機能の多さ、複雑さ
 
※使用言語は要件定義中に確定したため、開発規模の大きさ、機能に関することは判断できた状況です。


上記のような理由から、

コーディングに細かいルールが決まっていないと実装に個人差が出過ぎてしまう、
規模が大きいと各チーム間でのコミュニケーションも密には取りづらい、
そのような状況でかつ機能が多く、複雑だとバグを特定することがより困難になる、
JSが絡むとより悪くなるので、
便利ではあるけど納期に影響が出やすいのでは?と感じておりました。
 
正直私がthymeleafを嫌っているということもあるのですが、
1チーム少数精鋭、数名での開発ならまだしも、大規模でのThymeleafを選定するという理由があまりわかりません...。
 
(少数精鋭ならチーム間のコミュニケーションで開発の統一はある程度保てるのかなと。)


実際に技術選定をしたことがなく、色々と見えていない部分も多いので、
かなり偏った意見になってるかと思います。

ただ私もいずれはそのような仕事をしてみたいため、好き嫌いで選定はしたくないと思っております、

直接現場の技術選定者に伺うことはできないので、宜しければ、

・Thymeleafを選定するメリット、
・他の言語ではなくThymeleafを選定する理由、
・その他どのような観点で技術選定をするのか

みたいなものがあれば、ご教示いただけますと幸いです。
よろしくお願いいたします。

0 likes

1Answer

回答の流れの都合上、質問に対して前後します。

他の言語ではなくThymeleafを選定する理由

Java(Spring)でサーバーサイドレンダリング(テンプレートエンジン)してデファクトだから。

Thymeleafを選定するメリット

デファクトであるがゆえに情報量が多い

その他どのような観点で技術選定をするのか

  • クライアント側で動的にどれだけ動かしたいか
  • フロントエンドでリーダーシップを取れる人がいるか
    • チーム内の経験値

余談ですが、

共通して使用するコンポーネントに原因不明のバグやエラーが起きる

Thymeleafでこの状況だと(バグの原因がなんなのかによりますが)コンポーネント指向の強いフロントエンドフレームワークを選択していたら、それこそ地獄だったのではって思ってしまいます。

0Like

Comments

  1. @TaikiTkwkbysh

    Questioner

    @h_kono0707 様
    この度はお忙しい中ご回答を頂き、誠にありがとうございます。

    フロントエンドでリーダーシップを取れる人がいるか

    こちらが特になるほどと感じました。
    上の方々でフロントエンドの経験値が高そうな方がいらっしゃらない印象でしたので、そういうのも含めて選定された可能性はとても高そうです。
     

    Thymeleafでこの状況だと(バグの原因がなんなのかによりますが)コンポーネント指向の強いフロントエンドフレームワークを選択していたら、それこそ地獄だったのではって思ってしまいます。

    こちらはコンポーネント指向の強い言語を選定してしまう(例えばReact)と、共通化するための粒度や分け方の判断が難しすぎて、より複雑化してうまくいかない。
    逆にThymeleaf、Vanilla JSくらいのほうが、小回りがきいて扱いやすい。みたいなことでしょうか?
    宜しければ、こちらの理由も合わせて教えていただけましたら幸いです。

Your answer might help someone💌