Re: [JUG-Indonesia] Code Readability

2010-04-20 Terurut Topik 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-20 Terurut Topik Andrian Kurniady
2010/4/20 Samuel Franklyn 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...)

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-20 Terurut Topik 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 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

  



Re: [JUG-Indonesia] Code Readability

2010-04-20 Terurut Topik 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 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


Re: [JUG-Indonesia] Code Readability

2010-04-20 Terurut Topik Hendry Luk
Whoops kebalik

2010/4/20 Hendry Luk hendrym...@gmail.com


 Jadi, short answer... buat general API, nomer 1 is better. Kalo tujuannya
 buat DSL, maka nomer 2 is better.




Re: [JUG-Indonesia] Code Readability

2010-04-19 Terurut Topik 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 Terurut Topik 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 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 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


Re: [JUG-Indonesia] Code Readability

2010-04-19 Terurut Topik 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/