[JUG-Indonesia] Code Readability
Dear all, Saya ada method seperti ini, Mana yang lebih mudah dibaca ? 1. if (isTidakAdaKreditMacet()) hapusBlacklistNasabah(); 2. if (!isAdaKreditMacet()) hapusBlacklistNasabah(); Thanks, Andika
Re: [JUG-Indonesia] Code Readability
On 4/20/2010 11:00 AM, andika.wibawanto wrote: > Dear all, > > Saya ada method seperti ini, Mana yang lebih mudah dibaca ? > > 1. if (isTidakAdaKreditMacet()) hapusBlacklistNasabah(); > > 2. if (!isAdaKreditMacet()) hapusBlacklistNasabah(); > Yang nomor 1 lebih mudah dibaca. Yang nggak ngerti Java juga bisa menduga maksudnya apa. Sedangkan yang ke 2 musti ngerti bahwa ! adalah not/negasi di Java.
Re: [JUG-Indonesia] Code Readability
ohya, mungkin bisa dijadikan bahan referensi, beberapa framework yang ada (tidak hanya java), mereka juga selalu (sering) menggunakan positive statement. misalnya : isAvailable() isVisible() isExist() isActive() isRunning() isDoubleBuffered() dll.. saya belum pernah lihat : isNotAvailable() isNotVisible() isNotExist() dll... _ 2010/4/20 Mirza Akhena > IMO, sebaiknya gunakan positive statement daripada negative statement. > > isTidakAdaKreditMacet() --> Negative Statment > isAdaKreditMacet() --> Positive Statement. > > karena (menurut pengalaman saya) statement negative bisa bikin bingung > dalam hal pembacaan. > > contohnya : > > public void doSomething(){ > return (isTidakAdaKreditMacet() == false); // return > (!isTidakAdaKreditMacet()); > } > > kan jadinya aneh, agak susah mengartikannya, dan bertele2. > > lebih baik : > > public void doSomething(){ > return isAdaKreditMacet(); > } > > *statement : maksudnya bisa method, field, atau apapun. > > btw, knapa gak pake bahasa inggris aja? coding kalo pake bahasa indonesia > jadinya agak aneh. (misal : isKreditMacetExist()) > > _ > 2010/4/20 andika.wibawanto > > >> >> Dear all, >> >> Saya ada method seperti ini, Mana yang lebih mudah dibaca ? >> >> 1. if (isTidakAdaKreditMacet()) hapusBlacklistNasabah(); >> >> 2. if (!isAdaKreditMacet()) hapusBlacklistNasabah(); >> >> Thanks, >> Andika >> >> >> > > > > -- > Best Regards > > Mirza Akhena > -- Best Regards Mirza Akhena
Re: [JUG-Indonesia] Code Readability
Mirza Akhena wrote: > ohya, mungkin bisa dijadikan bahan referensi, beberapa framework yang ada > (tidak hanya java), mereka juga selalu (sering) menggunakan positive > statement. misalnya : iya lebih enak pake positive statement. menghindari kalo ada yg iseng bikin gini: if (!isTidakAdaKreditMacet()) hapusBlacklistNasabah(); pusing dah lo. wakakaka... btw kalian pake bahasa inggris kalo bikin perintah (class, statement, dll) atau bahasa indo-english? http://www.codinghorror.com/blog/2009/03/the-ugly-american-programmer.html -- Ronsen http://twitter.com/Ronsen18 Buktikan Anda peduli pendidikan Indonesia. Dukung Kurikulum SMK berJava.. kirimkan surat resmi perusahaan dukungan ke moderator JUG. === Kalau mau keluar dari mailing list ini, caranya kirim sebuah email ke jug-indonesia-unsubscr...@yahoogroups.com. Jangan lupa, website JUG Indonesia adalah http://www.jug.or.id Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/jug-indonesia/ <*> Your email settings: Individual Email | Traditional <*> To change settings online go to: http://groups.yahoo.com/group/jug-indonesia/join (Yahoo! ID required) <*> To change settings via email: jug-indonesia-dig...@yahoogroups.com jug-indonesia-fullfeatu...@yahoogroups.com <*> To unsubscribe from this group, send an email to: jug-indonesia-unsubscr...@yahoogroups.com <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
RE: [JUG-Indonesia] Code Readability
Bukan java... Bukan yang aneh2... Javascript... isNan... ini negative khan? Not a number.. :p Adelwin Handoyo Standard Chartered Bank Wholesale Bank - Group Credit Risk Control Mobile: (65) 8253 8272 Tel: (65) 659 61395 FoneNet: +659 61395 Email: adelwin.adel...@sc.com Address: 7, Changi Business Park Crescent, Level 3 Singapore 486028 Website: http://www.standardchartered.com <http://www.standardchartered.com/> From: jug-indonesia@yahoogroups.com [mailto:jug-indone...@yahoogroups.com] On Behalf Of Mirza Akhena Sent: Tuesday, April 20, 2010 1:29 PM To: jug-indonesia@yahoogroups.com Subject: Re: [JUG-Indonesia] Code Readability ohya, mungkin bisa dijadikan bahan referensi, beberapa framework yang ada (tidak hanya java), mereka juga selalu (sering) menggunakan positive statement. misalnya : isAvailable() isVisible() isExist() isActive() isRunning() isDoubleBuffered() dll.. saya belum pernah lihat : isNotAvailable() isNotVisible() isNotExist() dll... _ 2010/4/20 Mirza Akhena mailto:mirken...@gmail.com> > IMO, sebaiknya gunakan positive statement daripada negative statement. isTidakAdaKreditMacet() --> Negative Statment isAdaKreditMacet() --> Positive Statement. karena (menurut pengalaman saya) statement negative bisa bikin bingung dalam hal pembacaan. contohnya : public void doSomething(){ return (isTidakAdaKreditMacet() == false); // return (!isTidakAdaKreditMacet()); } kan jadinya aneh, agak susah mengartikannya, dan bertele2. lebih baik : public void doSomething(){ return isAdaKreditMacet(); } *statement : maksudnya bisa method, field, atau apapun. btw, knapa gak pake bahasa inggris aja? coding kalo pake bahasa indonesia jadinya agak aneh. (misal : isKreditMacetExist()) _ 2010/4/20 andika.wibawanto mailto:andika.wibawa...@yahoo.com> > Dear all, Saya ada method seperti ini, Mana yang lebih mudah dibaca ? 1. if (isTidakAdaKreditMacet()) hapusBlacklistNasabah(); 2. if (!isAdaKreditMacet()) hapusBlacklistNasabah(); Thanks, Andika -- Best Regards Mirza Akhena -- Best Regards Mirza Akhena This email and any attachments are confidential and may also be privileged. If you are not the addressee, do not disclose, copy, circulate or in any other way use or rely on the information contained in this email or any attachments. If received in error, notify the sender immediately and delete this email and any attachments from your system. Emails cannot be guaranteed to be secure or error free as the message and any attachments could be intercepted, corrupted, lost, delayed, incomplete or amended. Standard Chartered PLC and its subsidiaries do not accept liability for damage caused by this email or any attachments and may monitor email traffic. Standard Chartered PLC is incorporated in England with limited liability under company number 966425 and has its registered office at 1 Aldermanbury Square, London, EC2V 7SB. Standard Chartered Bank ("SCB") is incorporated in England with limited liability by Royal Charter 1853, under reference ZC18. The Principal Office of SCB is situated in England at 1 Aldermanbury Square, London EC2V 7SB. In the United Kingdom, SCB is authorised and regulated by the Financial Services Authority under FSA register number 114276. If you are receiving this email from SCB outside the UK, please click http://www.standardchartered.com/global/email_disclaimer.html to refer to the information on other jurisdictions.
Re: [JUG-Indonesia] Code Readability
On 4/20/2010 12:28 PM, Mirza Akhena wrote: > > > ohya, mungkin bisa dijadikan bahan referensi, beberapa framework yang > ada (tidak hanya java), mereka juga selalu (sering) menggunakan positive > statement. misalnya : > > isAvailable() > isVisible() > isExist() > isActive() > isRunning() > isDoubleBuffered() > > dll.. > > saya belum pernah lihat : > > isNotAvailable() http://documentation.softwareag.com/webmethods/wmsuite8_ga/Third-Party/Blaze_Advisor_6-8/api/innovator/com/blazesoft/template/engine/NdProviderStaticArg.html > isNotVisible() http://docs.atlassian.com/atlassian-selenium/1.3/apidocs/com/atlassian/selenium/Conditions.html > isNotExist() > https://www.docjar.com/docs/api/com/port80/eclipse/jdt/util/PersistentItem.html Nah sekarang sudah lihat. He he he. Itu software diatas bukan software sembarangan lho yang ke 1 web methods, yang ke 2 selenium dan yang ketiga eclipse. Buktikan Anda peduli pendidikan Indonesia. Dukung Kurikulum SMK berJava.. kirimkan surat resmi perusahaan dukungan ke moderator JUG. === Kalau mau keluar dari mailing list ini, caranya kirim sebuah email ke jug-indonesia-unsubscr...@yahoogroups.com. Jangan lupa, website JUG Indonesia adalah http://www.jug.or.id Yahoo! Groups Links <*> To visit your group on the web, go to: http://groups.yahoo.com/group/jug-indonesia/ <*> Your email settings: Individual Email | Traditional <*> To change settings online go to: http://groups.yahoo.com/group/jug-indonesia/join (Yahoo! ID required) <*> To change settings via email: jug-indonesia-dig...@yahoogroups.com jug-indonesia-fullfeatu...@yahoogroups.com <*> To unsubscribe from this group, send an email to: jug-indonesia-unsubscr...@yahoogroups.com <*> Your use of Yahoo! Groups is subject to: http://docs.yahoo.com/info/terms/
Re: [JUG-Indonesia] Code Readability
2010/4/20 Samuel Franklyn > On 4/20/2010 12:28 PM, Mirza Akhena wrote: > > > > > > ohya, mungkin bisa dijadikan bahan referensi, beberapa framework yang > > ada (tidak hanya java), mereka juga selalu (sering) menggunakan positive > > statement. misalnya : > > > > isAvailable() > > isVisible() > > isExist() > > isActive() > > isRunning() > > isDoubleBuffered() > > > > dll.. > > > > saya belum pernah lihat : > > > > isNotAvailable() > > > http://documentation.softwareag.com/webmethods/wmsuite8_ga/Third-Party/Blaze_Advisor_6-8/api/innovator/com/blazesoft/template/engine/NdProviderStaticArg.html > > > isNotVisible() > > > http://docs.atlassian.com/atlassian-selenium/1.3/apidocs/com/atlassian/selenium/Conditions.html Comment yang ini dulu (karena gw banyak pake selenium 2.0): isNotVisible() di Selenium bukan return boolean, tapi return Condition (predicate yang intinya ngecek bahwa something is not visible) - ini diperlukan karena Condition tidak bisa dibalik simply by adding "!". Jadi tidak cocok dengan context thread ini hehe... Mengenai bagian "Sedangkan yang ke 2 musti ngerti bahwa ! adalah not/negasi di Java." menurut saya mestinya tanggung jawab yang baca untuk ngerti basic operator Java. Toh ! bukan cuman Java, language lain juga (C/C++/JS) juga menggunakan "symbol standar" yang sama (sama kayak misalnya * itu buat multiplication...) Ada baiknya kalau mau pake opsi 1, daripada ditulis if (isTidakAdaKreditMacet()) hapusBlacklistNasabah(); lebih baik sekalian direname if (isStatusKreditLancar()) hapusBlacklistNasabah(); Selain nama method is yang preferably gak pake negasi, nama variable boolean juga preferably gak pake negasi, menurut saya lebih readable demikian. Demikian pendapat saya (readability kan subyektif, jadi lebih readable menurut saya belum tentu lebih readable buat orang lain)... -Kurniady
Re: [JUG-Indonesia] Code Readability
On 4/20/2010 1:24 PM, Andrian Kurniady wrote: > > > 2010/4/20 Samuel Franklyn mailto:sfrank...@gmail.com>> > > On 4/20/2010 12:28 PM, Mirza Akhena wrote: > > > > > > ohya, mungkin bisa dijadikan bahan referensi, beberapa framework yang > > ada (tidak hanya java), mereka juga selalu (sering) menggunakan > positive > > statement. misalnya : > > > > isAvailable() > > isVisible() > > isExist() > > isActive() > > isRunning() > > isDoubleBuffered() > > > > dll.. > > > > saya belum pernah lihat : > > > > isNotAvailable() > > > http://documentation.softwareag.com/webmethods/wmsuite8_ga/Third-Party/Blaze_Advisor_6-8/api/innovator/com/blazesoft/template/engine/NdProviderStaticArg.html > > > isNotVisible() > > > http://docs.atlassian.com/atlassian-selenium/1.3/apidocs/com/atlassian/selenium/Conditions.html > > > Comment yang ini dulu (karena gw banyak pake selenium 2.0): > isNotVisible() di Selenium bukan return boolean, tapi return Condition > (predicate yang intinya ngecek bahwa something is not visible) - ini > diperlukan karena Condition tidak bisa dibalik simply by adding "!". > Jadi tidak cocok dengan context thread ini hehe... > > Mengenai bagian "Sedangkan yang ke 2 musti ngerti bahwa ! adalah > not/negasi di Java." menurut saya mestinya tanggung jawab yang baca > untuk ngerti basic operator Java. Toh ! bukan cuman Java, language lain > juga (C/C++/JS) juga menggunakan "symbol standar" yang sama (sama kayak > misalnya * itu buat multiplication...) Masalahnya yang ditanya adalah readability. Kalau scope pembacanya cuma programmer maka statement diatas dari kamu memang benar. Sedangkan saya berpikir code itu nggak selalu dibaca programmer. Saya pernah ketemu satu organisasi dimana pembuat algoritma utama adalah bukan seorang programmer jadi dia nggak coding. Tapi walau nggak coding dia bisa baca code. Bahkan yang paling banyak nemuin bug adalah dia. > > Ada baiknya kalau mau pake opsi 1, daripada ditulis > > if (isTidakAdaKreditMacet()) hapusBlacklistNasabah(); > > lebih baik sekalian direname > > if (isStatusKreditLancar()) hapusBlacklistNasabah(); Yap ini lebih readable. > > Selain nama method is yang preferably gak pake negasi, nama variable > boolean juga preferably gak pake negasi, menurut saya lebih readable > demikian. > > Demikian pendapat saya (readability kan subyektif, jadi lebih readable > menurut saya belum tentu lebih readable buat orang lain)... > > -Kurniady > >
Re: [JUG-Indonesia] Code Readability
Btw gw sebel sama convention isXxx() buat boolean-field di java... e.g. isExist() isNotExist() isHasParent() Itu kan grammatically ngaco.. 2010/4/20 Samuel Franklyn > On 4/20/2010 12:28 PM, Mirza Akhena wrote: > > > > > > ohya, mungkin bisa dijadikan bahan referensi, beberapa framework yang > > ada (tidak hanya java), mereka juga selalu (sering) menggunakan positive > > statement. misalnya : > > > > isAvailable() > > isVisible() > > isExist() > > isActive() > > isRunning() > > isDoubleBuffered() > > > > dll.. > > > > saya belum pernah lihat : > > > > isNotAvailable() > > > http://documentation.softwareag.com/webmethods/wmsuite8_ga/Third-Party/Blaze_Advisor_6-8/api/innovator/com/blazesoft/template/engine/NdProviderStaticArg.html > > > isNotVisible() > > > http://docs.atlassian.com/atlassian-selenium/1.3/apidocs/com/atlassian/selenium/Conditions.html > > > isNotExist() > > > > > https://www.docjar.com/docs/api/com/port80/eclipse/jdt/util/PersistentItem.html > > Nah sekarang sudah lihat. He he he. > Itu software diatas bukan software sembarangan lho > yang ke 1 web methods, yang ke 2 selenium dan yang ketiga eclipse. > > > > > > Buktikan Anda peduli pendidikan Indonesia. > Dukung Kurikulum SMK berJava.. kirimkan surat resmi perusahaan dukungan ke > moderator JUG. > === > > Kalau mau keluar dari mailing list ini, caranya kirim sebuah email ke > jug-indonesia-unsubscr...@yahoogroups.com. > > Jangan lupa, website JUG Indonesia adalah http://www.jug.or.id > > Yahoo! Groups Links > > > >
Re: [JUG-Indonesia] Code Readability
Kebetulan gw lagi into DSL, dan ini exactly one of the side topics... Good API design adalah customer.!isAdaKreditMacet() Tapi kalo lu bikin DSL, lu mesti sadar bahwa things that apply to good API development practice gak selalu apply ke business communication. Dalam DSL, ini lebih make sense: customer.isTidakAdaKreditMacet() Same thing dengan if-else syntax. Sebagai programmer, lu cenderung ngerasa ini lebih make sense: if (customer.is_favorable and customer.total_spending > 500) or (customer.is_not_favorable and customer.total_spending > 1000) then apply free_sms_bonus.for(2.months) Tapi buat most non-developers, in this particular scenario (rule configuration buat customer's bonus), kalimat ini jauh lebih masuk akal: apply free_sms_bonus.for(2.months) if (customer.is_favorable and customer.total_spending > 500) or (customer.is_not_favorable and customer.total_spending > 1000) Jadi, short answer... buat general API, nomer 1 is better. Kalo tujuannya buat DSL, maka nomer 2 is better. 2010/4/20 andika.wibawanto > > > Dear all, > > Saya ada method seperti ini, Mana yang lebih mudah dibaca ? > > 1. if (isTidakAdaKreditMacet()) hapusBlacklistNasabah(); > > 2. if (!isAdaKreditMacet()) hapusBlacklistNasabah(); > > Thanks, > Andika > > >
Re: [JUG-Indonesia] Code Readability
IMO, sebaiknya gunakan positive statement daripada negative statement. isTidakAdaKreditMacet() --> Negative Statment isAdaKreditMacet() --> Positive Statement. karena (menurut pengalaman saya) statement negative bisa bikin bingung dalam hal pembacaan. contohnya : public void doSomething(){ return (isTidakAdaKreditMacet() == false); // return (!isTidakAdaKreditMacet()); } kan jadinya aneh, agak susah mengartikannya, dan bertele2. lebih baik : public void doSomething(){ return isAdaKreditMacet(); } *statement : maksudnya bisa method, field, atau apapun. btw, knapa gak pake bahasa inggris aja? coding kalo pake bahasa indonesia jadinya agak aneh. (misal : isKreditMacetExist()) _ 2010/4/20 andika.wibawanto > > > Dear all, > > Saya ada method seperti ini, Mana yang lebih mudah dibaca ? > > 1. if (isTidakAdaKreditMacet()) hapusBlacklistNasabah(); > > 2. if (!isAdaKreditMacet()) hapusBlacklistNasabah(); > > Thanks, > Andika > > > -- Best Regards Mirza Akhena
Re: [JUG-Indonesia] Code Readability
Whoops kebalik 2010/4/20 Hendry Luk > > Jadi, short answer... buat general API, nomer 1 is better. Kalo tujuannya > buat DSL, maka nomer 2 is better. > >