質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

Q&A

2回答

2054閲覧

htmlへのテキストベタがきの是非

H4L

総合スコア88

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

0グッド

1クリップ

投稿2020/04/15 15:04

プログラミングを学習中、他の方のリポジトリを拝見していると、
viewで文章を表示する際に、
⓵htmlにベタがきしている方
⓶定数で全て値を持っておいてそれを呼び出して出力している方
の2種類の方がいらっしゃることに気づきました。
現在自分はhtmlにベタがきで文章を表示する方法をとっているのですが、
どちらを採用するのがベターなのか考えあぐねております。

自分で考えてみた結果、
・テキストの管理を一元化できる(メンテしやすい)
・多言語化対応時に役に立ちそう
という漠然とした二つのメリットが思い浮かんだのですが、
その他こんなメリットがある、または定数化はすべきでないなどのご教授をいただきたいです。
よろしくお願いいたします。

ベタ書きの場合

<h1>ようこそ</h1>

定数管理の場合(rails)

<h1><%= Constants::welcome %></h1>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

前提条件などを共有しないと最適解は出ない話かなと。

  • 多言語化する予定があるのかないのか
  • ページ数が多いのか少ないのか
  • そのテキストは動的に変化するのか
  • デザイナーと分業かどうか(デザイナーはrails環境はなく、ベタのHTMLとCSSだけ送ってくるのか?)

ベタ書きが良いか悪いかは一般化する事は出来ません。
例えば、デザインに関しては外注していて、
デザイナー主導かつ、テンプレートのHTML(CSS,JS、画像などの一式)がリモートワークなどで
送られて来る場合、いちいち定数に置き換えてるほうが面倒です。
最低限の置き換えにしたほうが工数が少ないです。
デザイン変更などで手戻りが発生する可能性もあります。

ベタ書きのほうが引き継いだ時に楽だったりします(grepで見つけやすい)。
ドキュメントやコードの説明を前任者から完璧にしてもらえるパターンは皆無で
ソースしかないものを渡されるパターンが多いです。
私の環境だけかもしれませんが(笑)
下手に小賢しいテクニックを使われるより、ベタのほうがあらゆる点で優れています。
初見でだいたい何がしたいのか分かるコードという意味で。

投稿2020/04/15 15:17

mingos

総合スコア4025

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

結論から言うと、案件によります
ですが、メリット・デメリットは、状況や言語によらない部分で回答を試みてみます。

htmlにベタがき

メリット

  • 技術がいらない
  • 言語やプラットホームによるが、処理が挟まれないため、表示が高速
  • ほとんどの場合、反映が早い
  • 同じフォーマットで、1ページだけ違う文字列にしたいときに、すぐに対応可能
  • 一番目の理由から、実装が楽

デメリット

  • ページ数が嵩んだとき、一箇所直すのに、全ページのファイルを修正する必要がある。

例えばショッピングサイトで、ヘッダーの文字列を帰るとき、ベタ書きだと、1,000ページとか全部修正とかになる。

  • キャッシュにより、逆に反映が遅くなるパターンもある
  • メンテナンス性は最悪(二番目の理由から)
  • コピペミスなど、目に見えづらいミスが増えやすい

定数で全て値を持っておいてそれを呼び出して出力

メリット

  • メンテナンス性に優れている。一箇所で修正が済む
  • サーバーサイドや、フロントエンドスクリプトにての処理がやりやすい
  • 定義後は気軽に使いまわせる
  • 違う用途で使うこともやりやすい。(カテゴリ名を、トップページ内と、サイドバーで使う、など)

デメリット

  • 実装には多少の技術と、構築力を要する
  • 言語によって実装の仕方がまちまちになるケースがある。(チーム内での共有が大事)
  • 使用箇所が少ない場合、逆に実装のコストが増え、デメリットが大きくなるケースもある
  • 同じフォーマットで、1ページだけ変えたいって時に、条件処理を入れなくてはならなくなる

他にもいろいろあるかと思いますが、
ひとまずこんなところかと・・・。
基本的に定数で定義するのは、規模が大きくなればなるほど、メリットになります。
逆に、1、2ページ程度なら、ベタの方が、実装も楽で早いですし、
むしろそっちの方がいいパターンもある、ということです。
つまりは、冒頭で申し上げた通り、案件によるに尽きます。

参考になれば幸いです。

投稿2020/04/15 15:29

miyabi_takatsuk

総合スコア9528

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問