Vi utvecklare har vant oss vid att inte vara rädd för att ange långa variabelnamn när vi kodar. Det är ett mönster som är bra att göra. Men det finns dock tillfällen när längden på variabelnamn faktiskt spelar roll.
Jag har två exempel:
Xml
Xml som skall beskriva någon form av data, som repeteras, och har långa element- eller attributnamn kan vara ha betydelse. Det är viktigt att man analyserar sina xml-dokument och ser om sådana saker kan uppkomma i produktion, för visst är det sällan som detta märks vid utvecklingsfasen. Ofta är det också så att det efter själva utvecklingsfasen, inte är någon som kommer att titta på xml-dokumenten. Det används snarare endast av program. Ett annat förslag på hur man undviker långa namn i xml är att använda kontexten bättre. Genom helheten, strukturen, får man fram samma information. Låt mig få ge ett exempel:
Vi har ett xml-dokument som skall beskriva ett antal ordrar. Vi har elementnamnet <order>. Varje order har ett ordernummer. Detta element skulle vi kunna namnge till <ordernummer>, men det förstår vi igentligen i alla fall utifrån kontexten. Det skulle räcka med <id> eller något liknande.
Asp.Net
När Asp.Net renderar sidorna, det vill säga gör om dem till html, så har den ett sätt att kunna göra alla taggar unika. Om det endast är en enkel sida, så blir det samma som de variabelnamn som man anget i koden. Det stora problemet börjar att uppstå om man använder sig av usercontrols eller dylikt. Då kommer usercontrolens variabelnamn att läggas till, framför kontrollens namn. Har man sedan ändå flera nivåer av usercontrols och kanske i någon usercontrol en datagrid som spottar ut sig kontroller, så börjar sidan att växa.
Låt mig avslutningsvis ge ett enkelt exempel på detta.

Här är en enkel webbsida som jag har skapat. Den innehåller en usercontrol och kontrollen innehåller en datagrid med en rad data. En del av den genererade htmlkoden för den här sidan ser ut på följande sätt:
<table cellspacing="0" rules="all" border="1"
id="ShowCustomerInformation1_DataGridShowCustomers" style="border-collapse:collapse;">
<tr>
<td>Name</td>
<td> </td>
</tr>
<tr>
<td>
<span>kalle</span>
</td>
<td>
<a href="javascript:__doPostBack
('ShowCustomerInformation1$DataGridShowCustomers$_ctl2$_ctl1','')">
Select</a>
</td>
</tr>
</table>
Datagridkontrollen, vilket heter DataGridShowCustomer, ligger inuti en usercontrol med namnet ShowCustomerInformation1. Id för den generarede tabellen, vilket är så en datagrid ritas ut, blir ShowCustomerInformation1_DataGridShowCustomers. Vi ser också att javascriptet för postback i datagriden innehåller också det långa namnet, ShowCustomerInformation1$DataGridShowCustomers$_ctl2$_ctl1. I det här fallet gör inte detta så mycket, men tänk om man har fler nästlade usercontrols och/eller många rader i datagriden.
Recent Comments