Programming ඇඩවයිස් එකක්

virginboy27

Well-known member
  • Nov 9, 2018
    979
    1,419
    93
    meka waradie, methana oya return karanne $goodValue kiana variable eka, namuth ahala thiyena eke return wenna ona $someVar kiyana eka. ethakota double ?? enna ona
    me widihata: http://elakiri.com/threads/programming-ඇඩවයිස්-එකක්.1973705/post-26087673
    මචං මේ උබල අල්ලන් ඉන්නේ වැරදි එකක් බන්. මම ඕක අදහස් කරේ නෑ මම ! ඔපරේට එක ගැන අදහස් කරේ. ඕව බන් ගොඩක් ලයින්ස් තියෙද්දි යූස් කරන්න බෑනේ. මම උදාහරණයක් විදියට සරල කෝඩ් එකක් දැම්මේ.
     

    deepbug

    Junior member
  • Feb 11, 2017
    62
    60
    18
    Cyberspace
    meka waradie, methana oya return karanne $goodValue kiana variable eka, namuth ahala thiyena eke return wenna ona $someVar kiyana eka. ethakota double ?? enna ona
    me widihata: http://elakiri.com/threads/programming-ඇඩවයිස්-එකක්.1973705/post-26087673

    ඔව් මං ඒක හිතා මතා දැම්මෙ. ඔය තියෙන විදියට නම් return $someValue; එක ඇති. මං දැනං හිටියෙ නෑ PHP වල ?? කියලා operator එකක් තියෙනවා කියලා
     

    හෙනයා

    Well-known member
  • May 23, 2014
    16,871
    17,082
    113
    Kottawa
    Q1
    If else ඇතුලේ කරන්නේ return විතරයි නම් ternary. ඒකත් check කරන එකම return කරනවානම් ternary නැතුව මද්දට logical operator එක දානවා.. (හැම එකේම නැද්ද කොහෙද මේක) 🤔

    If else ඇතුලේ වෙන වෙන logics තියෙනවා නම් falsy වෙන case check කරලා return කරලා else එකක් නැතුව ලියනවා..

    Q2
    JS වල එහෙම bracket එක යට line එකට දාපුවාම සමහර තැන්වල(return) semicolon add වෙනවා..ඒ නිසා හැම තැනකම style 1
     
    • Like
    Reactions: virginboy27

    virginboy27

    Well-known member
  • Nov 9, 2018
    979
    1,419
    93
    if ( ! $someVar ) {
    return NULL;
    }
    return $someVar;
    මචං කෝඩ් ඔප්ටිමයිසේෂන් ගැන නෙමේ මම ඇහුවෙ. අඩෝ ඇයි බන් මේකෙ ගොඩක් ,උන් domain එකෙන් පිට හිතන්නේ. :baffled:
     

    deepbug

    Junior member
  • Feb 11, 2017
    62
    60
    18
    Cyberspace
    මම නම් කැමති 2 වෙනි ස්ටයිල් එකට. ඒකෙදි බන් ඕන්නැති ඒව මුලදිම අයින් කරල අවශ්‍ය දේ පහලට කෝ්ඩ් කරන්න පුලුවන්නේ. නැත්නම් මේන් ලොජික් එක මැදට වගේ එනව ඒකට යටින් අනවශ්‍ය ඒව ඉතිරි වෙනව. මෙහෙම කරාම යටට යන්න යන්න තියෙන්නේ ෆිල්ටර් වෙලා අවාසානම ලොජික් එක. මට එහෙම කියවන්න ලේසියි.

    මේක ඇත්ත බං. හැබැයි ඕක හැමතිස්සෙම කරන්න බෑ. ඒ නිසා ඕක style එකක් විදිහට පාවිච්චි කරන්න බෑ.
     

    හෙනයා

    Well-known member
  • May 23, 2014
    16,871
    17,082
    113
    Kottawa
    මචං කෝඩ් ඔප්ටිමයිසේෂන් ගැන නෙමේ මම ඇහුවෙ. අඩෝ ඇයි බන් මේකෙ ගොඩක් ,උන් domain එකෙන් පිට හිතන්නේ. :baffled:

    ගොඩක් උන් ඔහොම ලියන්නේ නෑ.. :baffled: පුළුවන් තරම් minimal, readable ලියන්න තමා try කරන්නේ...
     

    deepbug

    Junior member
  • Feb 11, 2017
    62
    60
    18
    Cyberspace
    මචං කෝඩ් ඔප්ටිමයිසේෂන් ගැන නෙමේ මම ඇහුවෙ. අඩෝ ඇයි බන් මේකෙ ගොඩක් ,උන් domain එකෙන් පිට හිතන්නේ. :baffled:
    code optimization නෙමේ බං. උඹ දාලා තිබ්බ style එක optimize කරලා තියෙන්නෙ...
     

    BLACKLIST_MEMBER

    Well-known member
  • Feb 9, 2008
    37,854
    14,813
    113
    127.0.0.1
    ඕක හැම language එකේම නැ.
    Syntax selector eke daala thiyenne PHP ganane? meya katha karanne PHP gana. :yes:
    මචං මේ උබල අල්ලන් ඉන්නේ වැරදි එකක් බන්. මම ඕක අදහස් කරේ නෑ මම ! ඔපරේට එක ගැන අදහස් කරේ. ඕව බන් ගොඩක් ලයින්ස් තියෙද්දි යූස් කරන්න බෑනේ. මම උදාහරණයක් විදියට සරල කෝඩ් එකක් දැම්මේ.
    performance waladi inverse karala check karanna ona nisa ! use karanne naha anawashya widihata. namuth php 7 waladi oka machine code ekata conver wenakota oka optimize wena nisa kohomath ekai.

    anik lokuma case eka thamai if ($value) dammama eke theruma isset($value) nemei isEmpty($value), ethakota hadissiyedi api adahas karanne if($someValue == null ) nam othanadi oka patalenawa.

    ethakota if(!$value) kiyana statement eka $value = null wela thibunoth, ethanadi statement eka eeth true wenawa, eetpasse eka aapahu !inverse karapuwahama eka nawatha false wenawa, patta confuse, mokada $value eka not empty nisa true wela ayeth false wena nisa. ethakota patta confusing.

    ea nisa style 1 use karanne anawashya lesa ! ekakata yanne na

    ea hethuwa arenna style 2 use karana eke waradak na. style 2 use karanna ona awasthawal enawa, habai enne else skip karanna puluwan awasthawaladi witharai, else thiyenawanam aniwaren style 1 thamai
     
    Last edited:

    Anonymous_Abstract

    Well-known member
  • Aug 7, 2018
    6,036
    4,570
    113
    Messier 87
    Syntax selector eke daala thiyenne PHP ganane? meya katha karanne PHP gana. :yes:

    performance waladi inverse karala check karanna ona nisa ! use karanne naha anawashya widihata. namuth php 7 waladi oka machine code ekata conver wenakota oka optimize wena nisa kohomath ekai.

    anik lokuma case eka thamai if ($value) dammama eke theruma isset($value) nemei isEmpty($value), ethakota hadissiyedi api adahas karanne if($someValue == null ) nam othanadi oka patalenawa.

    ethakota if(!$value) kiyana statement eka $value = null wela thibunoth, ethanadi statement eka eeth true wenawa, eetpasse eka aapahu !inverse karapuwahama eka nawatha false wenawa, patta confuse, mokada $value eka not empty nisa true wela ayeth false wena nisa. ethakota patta confusing.

    ea nisa style 1 use karanne anawashya lesa ! ekakata yanne na

    ea hethuwa arenna style 2 use karana eke waradak na. style 2 use karanna ona awasthawal enawa, habai enne else skip karanna puluwan awasthawaladi witharai, else thiyenawanam aniwaren style 1 thamai
    ( ! )
    true then false EXECUTE
    false then true EXECUTE

    loku confusion ekak na na
     
    • Like
    Reactions: BLACKLIST_MEMBER

    virginboy27

    Well-known member
  • Nov 9, 2018
    979
    1,419
    93
    Syntax selector eke daala thiyenne PHP ganane? meya katha karanne PHP gana. :yes:

    performance waladi inverse karala check karanna ona nisa ! use karanne naha anawashya widihata. namuth php 7 waladi oka machine code ekata conver wenakota oka optimize wena nisa kohomath ekai.

    anik lokuma case eka thamai if ($value) dammama eke theruma isset($value) nemei isEmpty($value), ethakota hadissiyedi api adahas karanne if($someValue == null ) nam othanadi oka patalenawa.

    ethakota if(!$value) kiyana statement eka $value = null wela thibunoth, ethanadi statement eka eeth true wenawa, eetpasse eka aapahu !inverse karapuwahama eka nawatha false wenawa, patta confuse, mokada $value eka not empty nisa true wela ayeth false wena nisa. ethakota patta confusing.

    ea nisa style 1 use karanne anawashya lesa ! ekakata yanne na

    ea hethuwa arenna style 2 use karana eke waradak na. style 2 use karanna ona awasthawal enawa, habai enne else skip karanna puluwan awasthawaladi witharai, else thiyenawanam aniwaren style 1 thamai
    මට ඒකනම් ලොකුවට අවුලක් නෑ මචං. $somevar = null නම් if (! $somevasr) එකේදි මම බලාපොරොත්තු වෙන්නේ if block එක run වෙන්න ඕන කියල. කියවන්නත් ලොකු අවුලක් නෑ $somevar true නොවන අවස්තාවල if block එක රන් වෙන්න. $somevar = null කියන්නේ true නොවන නිසා එය රන් විය යුතයි.

    මම මේ ස්ටයිල් එකට කැමති අගින් nested return false සමහර වෙලාවලට සෙට් වෙනව. මේන් ලොජික් එක කෝඩ් එකේ මැද. මම ආසයි ඒ returns false ටික උඩදිම දාල. අර මේන් ලොජික් එක පහලට අරන් එන්න. එතකොට කෝඩ් එකේ පහලම තියෙන්නේ ෆයිනල් ලොජික් එක.

    Phpstrom වල අපිට කැමති විදියට වෙනස් කරන්න පුළුවන්.
    මම දැකල තියෙනව දැන් trend එකක් වගේ හැම එකාම ගොඩක් projects වල ඔය දෙවෙනි ස්ටයිල් එක යූස් කරන්නේ. රීඩ් කරන්න ලේසි උනා. සෑහෙන්න ස්පේස් එක අපතෙ යන නිසා මගෙත් වැඩි කැමැත්තක් නෑ.
    ------ Post added on Jan 28, 2021 at 2:32 PM
     

    BLACKLIST_MEMBER

    Well-known member
  • Feb 9, 2008
    37,854
    14,813
    113
    127.0.0.1
    මට ඒකනම් ලොකුවට අවුලක් නෑ මචං. $somevar = null නම් if (! $somevasr) එකේදි මම බලාපොරොත්තු වෙන්නේ if block එක run වෙන්න ඕන කියල
    mamath ehema hithan hitiya godak kaalekata issara, Passe professional coders la ekka ekata work karanna unahama oya kathawa upside down una. ethakota mata hithena hithena code liyanna ba mage style ekata.
    already build karapu system ekakata plugin ekak code karanakota, anunge codes kiyawanna wenawa. ethakota ung godak welaawata professional ewun liyanne if ($value === null) wage statements. ea asse api gihin if ($value) kiyala liwwama wade awul wenawa, code eka kohen hari awulak yanawa, ithin debug karagena nataagena aawama thamai therenne ai aru ehema liyala thibbe kiyala.

    එහෙම performance penalty යක් එනවද inverse කරද්දි?? :o
    before and after microtime gap eka check karoth difference ekak thiyenawa, significant gap ekak nathi unath mama always liyanna purudu wela thiyenne most efficient way ekata, mokada ethakota readability ekatath wada samahara welawal walata eka important wenawa.

    off topic example ekak gattoth, IF statement wala PHP wala short circuit use wena welawaka, me elakrii eka run wena forum software eke adala punchi code kaalla run wenna newbi ekek awilla gahanawa if statement eke mulata enna ona lokuu tests keepayak pass wenna kalin, punchi kotasak aragena eka eeta issella test karala ethanadi eka false wenawanam AND kotasin ehaa paththe passe kaalla test karannawath PHP walin worry wenne naha ethanin short circuit karala daana nisa liyanna sudusu ehemai kiyala recommend karaddi, professional ekek advice karanne forum eka bigboard ekak nam, membersla hambaanekata innawanam, eeta galapenna ethakota ara punchi kotasa test karana eka nemei, ehema karath eka execute wena times gaana wadi wela server eke performance sahenna adinna patan gannawa, eka awasaneta check karanna kiyala. ethakota ethanadi oya microtime gap balala efficient widiha balala liwwata wadak na.
     

    kolavari

    Well-known member
  • Aug 11, 2012
    33,746
    1
    25,656
    113
    කැළෑ පොජ්ජේ
    ගැටලු අංක 01 - ඔය දෙකෙන් මම කැමති style 1 එකට...

    PHP:
    // style 01
    if ($someVar) {
        return $someVar;
    } else {
        return null;
    }

    This one is better for this specific case. However, I'd like it when there are least number of conditional statements. specially the 'else' part. It would always be better to refactor the code so you can totally get rid of that else thing.

    anyway what really matters is being consistent. doesn't really matter which style you choose, as long as you keep it consistent.

    same goes for the second question. I believe its about the placement of curly braces right?? In that case I really prefer the Style 01...This is 1TBS style. It says all your control structures should have braces, even if its a one liner. and they go in the same line.

    The other style is the Allman styles, which states you need to place braces on new lines. These are pretty old stuff...nobody cares much about styles these days anyways.
    Just pick one that you think it good, and most importantly, be consistent. that's what really matters. :)
     

    kolavari

    Well-known member
  • Aug 11, 2012
    33,746
    1
    25,656
    113
    කැළෑ පොජ්ජේ
    මචං මේ උබල අල්ලන් ඉන්නේ වැරදි එකක් බන්. මම ඕක අදහස් කරේ නෑ මම ! ඔපරේට එක ගැන අදහස් කරේ. ඕව බන් ගොඩක් ලයින්ස් තියෙද්දි යූස් කරන්න බෑනේ. මම උදාහරණයක් විදියට සරල කෝඩ් එකක් දැම්මේ.

    ! meka use karanakota poddak extra careful wenna one...unexpected results enna puluwan because it checks for all negate values..mama nam usually oya wage gahanne na exact check eka karnawa...for example, != = null somethin like that...but if you know what you're doing, then its totally fine.
     
    • Like
    Reactions: BLACKLIST_MEMBER

    deepbug

    Junior member
  • Feb 11, 2017
    62
    60
    18
    Cyberspace
    off topic example ekak gattoth, IF statement wala PHP wala short circuit use wena welawaka, me elakrii eka run wena forum software eke adala punchi code kaalla run wenna newbi ekek awilla gahanawa if statement eke mulata enna ona lokuu tests keepayak pass wenna kalin, punchi kotasak aragena eka eeta issella test karala ethanadi eka false wenawanam AND kotasin ehaa paththe passe kaalla test karannawath PHP walin worry wenne naha ethanin short circuit karala daana nisa liyanna sudusu ehemai kiyala recommend karaddi, professional ekek advice karanne forum eka bigboard ekak nam, membersla hambaanekata innawanam, eeta galapenna ethakota ara punchi kotasa test karana eka nemei, ehema karath eka execute wena times gaana wadi wela server eke performance sahenna adinna patan gannawa, eka awasaneta check karanna kiyala. ethakota ethanadi oya microtime gap balala efficient widiha balala liwwata wadak na.

    මේ කියල තියෙන්නෙ Hotspot detection වගේ දෙයක් ද? එහෙම දෙයක් නං මේ styles දෙකම එකයි වගේ මට පේන්නෙ, style 2 එකේ එක opcode එකයි වැඩි.
     

    BLACKLIST_MEMBER

    Well-known member
  • Feb 9, 2008
    37,854
    14,813
    113
    127.0.0.1
    මේ කියල තියෙන්නෙ Hotspot detection වගේ දෙයක් ද? එහෙම දෙයක් නං මේ styles දෙකම එකයි වගේ මට පේන්නෙ, style 2 එකේ එක opcode එකයි වැඩි.
    ehema mata hariyata mathaka naha ban, mokak hari case ekakadi oka note una, phone verification system ekedi yana check ekakadi wage mathaka.

    ! meka use karanakota poddak extra careful wenna one...unexpected results enna puluwan because it checks for all negate values..mama nam usually oya wage gahanne na exact check eka karnawa...for example, != = null somethin like that...but if you know what you're doing, then its totally fine.
    :yes: awurudu 20, 25 thisse paid softwares code karapu top level developers lage code wala kohewath ohoma anawashya ! eka daala thiyenawa man dakala na, ubage theory eka thamai hethuwa man hithanne.
    ------ Post added on Jan 28, 2021 at 4:24 PM


    එහෙම performance penalty යක් එනවද inverse කරද්දි?? :o

    Benchmark "without !"
    PHP:
    <?php
    if (true){
        return 0;
    }
    J65wmyV.png


    Benchmark "!"
    PHP:
    <?php
    if (!false){
        return 0;
    }
    UnKFG6o.png


    ! (style 2) ekedi execute wenna wadipura time yanawa.
    ------ Post added on Jan 28, 2021 at 5:53 PM
     
    Last edited: