Koodist pulbitseb välja jõudu, kui see on loetav ja arusaadav. Seda vaadates ei hakka kõhus keerama. Jõud on tugev, kuid tasane ja vaikne. Rünnates seda jõudu, peegeldub kogu rünnak tagasi. Looda, et see ei ole jälestuse jõud.
Loe koodi kõva häälega nagu heeroldile kohane ning parem ära ole halva sõnumi tooja. Halva teate toojat ei austa keegi. Kui keel läheb sõlme ja suust välja tuleb ainult podin, siis parem põleta see ära ja meisterda see uuesti.
//Näide 1
public void DoSomethingUseful( )
{
SqlConnection conn = new SqlConnection(connStr);
string q = "SELECT * FROM users";
SqlCommand comm = new SqlCommand(q, conn);
try
{
SqlDataReader r = comm.ExecuteReader();
while (r.Read())
Console.WriteLine(r["username"]);
}
catch (SqlException ex)
{
Logger.Write(ex);
}
finally
{
conn.Close();
}
}
public void RetrieveAllUsers( )
{
using (var connection = new SqlConnection(connectionString))
{
var query = "SELECT * FROM users";
var command = new SqlCommand(query, connection);
try
{
connection.Open();
using (var reader = command.ExecuteReader())
{
while (reader.Read())
{
Console.WriteLine(reader["username"]);
}
}
}
catch (SqlException exception)
{
Logger.Write(exception);
}
}
}
//Näide 2
Load += (sender, arguments) =>
{
if (!IsPostBack)
Presenter.Initialize();
};
Load += (x, y) => Should.Do(Presenter.Initialize).Unless(IsPostBack);
Eesti keel on ilus, kuid mitte lähtekoodis. Nii mõnigi õppejõud on soovinud saada koodi eesti keelsena, et vähendada lõika/kleebi tehnikat. Siiski on jäänud neil nägemisulatusest välja ümberstruktureerimise vahendid, mis lubavad hõlpsalt koodis nimesid ümber muuta. See nõue ei aita sel puhul ja risustab koodikirjutamise praktikaid.
Eesti keel koodis tekitab tunde, et seda juttu võiks kuulda noorte seast tänaval – põimunud inglise keelega. See ei ole eriti arusaadav, kuid popp (ropp) ja noortepärane.
vaade.PaneTootajaInfo(string.Format("{0} - {1} ", tootaja.VotaTaisnimi, tootaja.Iskukood));
See kood maitseb kibedalt ja hapult ning ainult gurmaanid võiksid sellest mõnu tunda.
Mõtle, et see inimene, kes su koodi loeb on sarimõrvar ja ta teab kus sa elad. Kas siis julgeksid ikka kirjutada samalaadselt kui enne? Kui julged, siis ei karda sa surma või kirjutad nii, et teised ei raevutse selle nägemisest. Lisaks see ei lehka see nii jubedalt, et nina ära kukuks.
Et paremini mõista, mida lähtekood öelda tahab, tuleks läbi lugeda Kent Beck’i raamat “Implementation patterns” [Amazon] [Krisostomus] – see kirjeldab kõige paremini pulbitsevat jõudu.
Pigem võtta jõu väljakutse vastu ning õppida kirjutama inglise keeles nagu raamistikud seda välja pakuvad. Raamistikuga ühte sulandumine peaks olema eesmärk.
Jaksu teile jõu tunnetamisega ja ärge pöörduge pimeduse poole – jälestuse jõud.
Loe veel sarnastel teemadel:
- Ruby väärtuslikkus, 27. aprill
- Mängime peitust, silur, 11. juuli
- Iluvõtted koodile III, 27. aprill
- Ebameeldivad erijuhud, 21. jaanuar
- Vaesed inimesed, 28. jaanuar
KAIZEN FEED
Telli endale Kaizeni uudisvoog
KOMMENTAARIDE FEED
Telli endale kommentaaride voog
KAIZEN TWITTER
Lühiuudised Kaizeni autoritelt
KAIZEN FACEBOOK
Liitu Kaizeniga
MIS ON KAIZEN?
Kaizen on Saiku tarkvaraarendusealane blogi, kus kirjutame erinevatest lähenemistest meisterlikule tarkvaraarendusele.
KATEGOORIAD
- .NET (18)
- Analüüs/Arhitektuur (11)
- Arendus (66)
- Ettevalmistus (1)
- Juhtimine (2)
- Varia (23)
SILDIPILV
- .NET (41)
- ilus kood (23)
- Arendus (23)
- C# (20)
- Analüüs/Arhitektuur (14)
- Testimine (10)
- raamat (8)
- Ruby (8)
- projektijuhtimine (8)
- printsiibid (6)
- produktiivsus (5)
- ReSharper (5)
- PHP (5)
- NHibernate (4)
- objekt-orienteeritud (4)
- pidev integratsioon (4)
- Viited (4)
- agile (4)
- Java (4)
- Geekdinner (4)
- lean (4)
- raamatukogu (4)
- CI (3)
- Cruise Control.NET (3)
- Robert C. Martin (3)
- scrum (3)
- iteratsioon (3)
- suhtlus (3)
- jQuery (2)
- TechEd 2008 (2)
- Visual Studio (2)
- valideerimine (2)
- intervjuu (2)
- analüüs (1)
- ASP.NET (1)
- ümberstruktureerimine (1)
- üritus (1)
- CodeRush (1)
- dokumentatsioon (1)
- Kent Beck (1)
- LINQ (1)
- Martin Fowler (1)
- Moq (1)
- Rhino Mocks (1)
- stackoverflow (1)
- võltsitud objektid (1)
- Whiteboard Wednesday (1)
- hindamine (1)
- tarkvara kvaliteet (1)
- ajagraafikud (1)
- Saiku (1)
- koolitus (1)
- tagasivaate (1)
- koosolek (1)
- dünaamilised keeled (1)
- staatilised keeled (1)
- FluentNHibernate (1)
- facebook (1)
- aastapäev (1)
- Rake (1)
- Oredev 2008 (1)
- toyota way (1)
- raiskamine (1)
- NDepend (1)
- podcasts (1)
- väle tarkvaraarendus (1)
- raido tonts (1)
- minimal marketable feature (1)
- kasutajalugu (1)
- twitter (1)
- Joomla! (1)
- MVC (1)
- andmebaas (1)
- versioonimine (1)
- diskussioon (1)
- regulaaravaldised (1)
- motiveerimine (1)
- mõõdikud (1)
- agileestonia (1)
- riistvara (1)
- koolitused (1)
- kujundus (1)
- kodulehed (1)
- veeb (1)
