…meie igapäevast IT’d anna meile igapäev…

2008-04-21

Kogutud teotused

Filed under: Kogutud teotused — Sander @ 11:14:09

Olen aegapisi korjanud kokku “parimaid palu” kahest rakendusest. Tehniliselt “keerukamad” apsud jätsin välja – vaevalt, et neid mõtet esitada oleks, pealegi muidu saaks siia kümmekond lehte lollusi…

Esimene aplikatsioon on kirjutatud mingil põhjusel VisualJ#, viimane punkt pärineb aga C#-rakendusest.

  • Järgmise visiidi kuupäev peab olema vahemikus 01.01.1754 – 01.01.9998
      (seletus: MS-SQL Server 2000’ndel oli esimene võimalik kuupäev 1753-01-01. Briti Impeerium võttis Gregorianuse kalendri kasutusele septembris 1752)
  • Lihtsaim võimalus server-side kuupäeva valideerimiseks. Tore, et Parse() ja TryParse() mittevajalikuks osutusid:
    if not checkExp(request.form("SDATE"),"(((0[1-9]|[12][0-9]|3[01])([.])(0[13578]|10|12)
    ([.])(\d{4}))|(([0][1-9]|[12][0-9]|30)([.])(0[469]|11)([.])(\d{4}))|((0[1-9]|1[0-9]|2
    [0-8])([.])(02)([.])(\d{4}))|((29)(\.)(02)([.])([02468][048]00))|((29)([.])(02)([.])
    ([13579][26]00))|((29)([.])(02)([.])([0-9][0-9][0][48]))|((29)([.])(02)([.])([0-9][0-9]
    [2468][048]))|((29)([.])(02)([.])([0-9][0-9][13579][26])))") then
  • Tore, kui asjad on lihtsalt kirjutatud:
    if(myToolaudComponent.TransferPatList(get_Context().get_Current().get_User
    ().get_Identity().get_Name(),get_Request().get_QueryString().get_Item("id").ToString(), ...
  • Hea lihtne on nimetada, eks?
    public function update_trans(par1 as integer,par2 as string,par3 as string,par4 as 
    string,par5 as integer,par6 as string,par7 as string,par8 as datetime,par9 as 
    integer,par10 as string,par11 as integer,par12 as string,par13 as string,par14 as 
    integer,par15 as string,par16 as integer,par17 as integer,par18 as integer,par19 as 
    integer) as string
  • Ilmselgelt on dataseti andmine ühelt funktsioonilt teisele liiga ressursikulukas – seega, paneme parem tulemused string[]’i sisse ühekaupa (27x) ja tagastame hoopis selle.
    String[] op_ = new String[27];
    this.sqlConnection1.Open();
    System.Data.SqlClient.SqlDataReader reader_ = this.sqlSelectCommand40_.ExecuteReader();
    while(reader_.Read())
    {
        op_[0] = reader_.get_Item("Nimi").toString();
        op_[1] = reader_.get_Item("Litsentsi_no").toString();
        op_[2] = reader_.get_Item("Suunav").toString();
        ...
    }
    

    Ning seejärel hakkame neid cn_[0]; jne kasutama. Mõnus, eks ole?

  • Hea, kui asju saab lihtsalt teha – miks teha key_char.ToString().Replace(‘,’,’.’) kui saab nii lahedalt teha selle asemel:
    private string DigitFilter(char key_char)
           {
               string ret = "";
     
               switch (key_char)
               {
                   case '0':
                       ret = "0";
                       break;
                   case '1':
                       ret = "1";
                       break;
                   case '2':
                       ret = "2";
                       break;
                   case '3':
                       ret = "3";
                       break;
                   case '4':
                       ret = "4";
                       break;
                   case '5':
                       ret = "5";
                       break;
                   case '6':
                       ret = "6";
                       break;
                   case '7':
                       ret = "7";
                       break;
                   case '8':
                       ret = "8";
                       break;
                   case '9':
                       ret = "9";
                       break;
                   case '.':
                   case ',':
                       ret = ".";
                       break;
                   default:
                       break;
               }
     
               return ret;
           }

8 kommentaari »

  1. khm… http://www.thedailywtf.com ei taha saata neid ? :p

    Kommentaar kirjutas Ray D. Noper — 2008-04-21 @ 11:17:59 | Vasta

  2. Eks mina olen ka seda laadi trikke teinud. Põhjus: ma ei oska programmeerida ja eriti ei viitsi õppida ka :)

    Aga kui on ülesanne antud, näiteks koolis, tuleb sellest hoolimata ära teha.

    Kommentaar kirjutas Mongoolia Surmauss — 2008-04-21 @ 11:25:29 | Vasta

  3. Ray: viimase tegelikult saatsin mõne aja eest. Aga DailyWTF paistab poolsurmas olevat viimasel ajal.

    MonS: kõik on teinud mingil ajal. Küsimus on aga selles kas tuleb õhtul enne magamajäämist pähe “WTF?! Mida ma küll tegin?!” ja ei saa öö läbi korralikult magada, enne kui hommikul ära parandad. Või jätad rõõmsalt sisse..

    Kommentaar kirjutas dukelupus — 2008-04-21 @ 11:28:19 | Vasta

  4. Kusjuures, ‘myToolaudComponent’ on hea objekti nimi: ma jäin paarikümneks sekundiks mõttesse, et mis projekti juurest võib selline nimi pärit olla: minu liiga lärmakas komponent… Siis alles märkasin, et ‘l’ on ju väike…

    Kommentaar kirjutas Ray D. Noper — 2008-04-21 @ 15:48:38 | Vasta

  5. Jamateanküll, et sõna on ‘loud’, aga eeldasin typot millegipärast…

    (ja wordpress vajaks ‘edit comment’ võimalust…)

    Kommentaar kirjutas Ray D. Noper — 2008-04-21 @ 15:49:26 | Vasta

  6. See viimane on ikka tõeline disainiklassika. Esimese kallal ma nii väga ei virisekski. Päris 1337 regexp.

    Kommentaar kirjutas Offf — 2008-04-21 @ 21:08:14 | Vasta

  7. Seda viimast tuleb kahjuks liigagi tihti igapäeva töös ette.
    Tundub et mõni progeja lihtsalt ei saa aru, et laiskus on edasiviiv jõud ja viitsib kirjutada 10, 50 või mõnel eriti masendaval puhul isegi 500 rida koodi täiesti tühja töö tegemiseks…

    Kommentaar kirjutas Pent — 2008-04-22 @ 00:58:44 | Vasta

  8. […] osa programmeerimisest? Filed under: Programmeerimine — dukelupus @ 10:06:22 Ühes hiljutises postituses õudsa koodi kohta olid […]

    Pingback-viide kirjutas Muutujate nimetamine: kõige raskem osa programmeerimisest? « …meie igapäevast IT’d anna meile igapäev… — 2008-04-29 @ 10:06:50 | Vasta


RSS feed for comments on this post. TrackBack URI

Leave a reply to Ray D. Noper Tühista vastus

Blog at WordPress.com.