[JUG-Indonesia] Code Readability

2010-04-19 Thread 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

2010-04-19 Thread Samuel Franklyn
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

2010-04-19 Thread Mirza Akhena
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

2010-04-19 Thread Ronsen
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

2010-04-19 Thread Adelwin, Adelwin
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

2010-04-19 Thread 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

<*> 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-04-19 Thread Andrian Kurniady
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

2010-04-19 Thread Samuel Franklyn
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

2010-04-19 Thread Hendry Luk
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

2010-04-19 Thread Hendry Luk
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

2010-04-19 Thread 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


Re: [JUG-Indonesia] Code Readability

2010-04-19 Thread Hendry Luk
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.
>
>