Re: [請益] 大家會怎麼去避免重複的html程式碼
分合的時機先不論,要分要合都還是有些比較好看的作法
"All problems in computer science can be solved by another level of indirection"
要合的話
<?php
switch($client){
"deaf":
$show_text=true;
$show_audio=false;
$show_video=true;
break;
"blind":
$show_text=true;
$show_audio=true;
$show_video=false;
break;
"dog":
$show_text=false;
$show_audio=true;
$show_video=true;
break;
}
?>
<?php if($show_text): ?>
<div>text</div>
<?php endif; ?>
<?php if($show_audio): ?>
<div><embed src="audio.mp3" /></div>
<?php endif; ?>
<?php if($show_video): ?>
<div><embed src="video.mp4" /></div>
<?php endif; ?>
這樣會比
<?php if($client=="deaf" || $client=="blind"):?>
<div>text</div>
<?php endif; ?>
<?php if($client=="blind" || $client=="dog"):?>
<div><embed src="audio.mp3" /></div>
<?php endif; ?>
<?php if($client=="deaf" || $client=="dog"):?>
<div><embed src="video.mp4" /></div>
<?php endif; ?>
好,多加一個間接層,把邏輯複雜但對照起來有意義的東西聚集在一起,
底下只讓跟區塊和跟那個區塊有關係的變數同時出現。
--
要分的話,以下的作法對view來說可能不適合,但如果是controller/model,
或是不同客戶使用同一個code base來改的話,就比較適合
在這種情境下,每一個版本其實都是某個原始版的分支。沒錯,就是要用VCS,
每個客製化版都從公版branch出來改,公版有任何修正的時候也方便移植回
每個分支。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.221.51.22
※ 編輯: worry 來自: 61.221.51.22 (04/04 00:27)
討論串 (同標題文章)