Post on 15-Jan-2015
description
มาเขียนโค้ดแย่ๆ กันเถอะ@somkiat
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
ทำไมต้อง JAVA
http://spectrum.ieee.org/computing/software/top-10-programming-languages
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
คำเตือน
เรื่องต่างๆ ที่จะพูดต่อไปนี้
เป็นเรื่องตลกทั้งิ้น
ไม่ใ่แนวปฎิบัติที่ดีเลย
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
คุณคือ
Maintenance Programmer
Maintenance Programming
ทําการเขียน
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
เชื่อเถอะว่า
มันก็ยากต่อการทําความเข้าใจเ่นกัน
ถ้าโค้ดมันเขียนยาก
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
แต่สิ่งที่มักพบเจอ
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
มาเขียนโค้ดกัน
http://hdwallpapers-download.com/best-girl-generation-image-06.html
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
ชื่อนั้นสำคัญไฉน
"นามนั้นําคัญไฉน กุหลาบถึงเรียกขานด้วย่ือใด ก็ยังคงความหอมเ่นเดิม"
William Shakespeare
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
A B C D E F G
A Boy Can Do Every Thing For Girl
http://www.urbandictionary.com/define.php?term=LMNOP&defid=7311415
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
ชื่อที่ไม่สื่อความหมาย
flagcount
processhandle
run data
inputoutput
perform
doIt
routine
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
ใช้ชื่อย่อ
Str = String
Usr = User
Frm = Frame/Form
Eff = Efficiency
Txt = Text
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
ไม่สนใจ Coding Convention
i_love_you
NUMBER_Format
Idontcareanything
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
ชื่อกับสิ่งที่ทำไม่ตรงกัน
isValid()
writeFile()
process()
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
ตั้งชื่อแบบ Hungarian
lAccountNumber
arrNumber
fnFunction
MonAM
FriPM
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
ซ่อนการทำงานเยอะๆ
Comment โค้ดทิ้งไว้ ไม่ยอมลบ
ต้ัง่ือคล้ายๆ กัน เ่น method1(), method2()
สร้าง overload method จํานวนมาก
ใ้ AOP เยอะๆ
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
การเขียน Comment
Comment ไม่ตรงกับการทํางานโค้ด
Comment อธิบายขั้นตอนการทํางานอย่างละเอียด
อัตรา่วนของ comment มากกว่า code
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
การออกแบบ
ใ้ type case
ไม่ต้องทําการ validate ข้อมูล
ไม่มีการ encapsulate ข้อมูล และการทํางาน
Copy-and-paste
ใ้ตัวแปรชนิด Global และ Static
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
เขียนโค้ดให้ดูวุ่นวาย
ใ้ magic number เยอะๆ เ่น if( status == 1 )
ใ้ if-else, switch-case เยอะๆ
ไม่ต้องใ้ {} ําหรับ block code ที่มีบรรทัดเดียว
ทําการ Override กันหลายๆ ้ัน ดูมีภูมิ
ไม่ชอบ throw exception
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
การทดสอบโค้ดที่เขียน
ไม่ต้องทดสอบ
ไม่เขียน test case
การทดสอบมันําหรับคนขี้ขลาด
ใ้ Debug
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
http://multiple-sclerosis-research.blogspot.com/2013/09/bad-posts.html
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
http://www.nspyre.ro/files//clean-code-1-728.jpg
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
http://xprogramming.com/articles/too-much-of-a-good-thing/
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
http://xprogramming.com/articles/too-much-of-a-good-thing/
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
โค้ดที่ดีเป็นอย่างไร
ตรงตามความต้องการของลูกค้า
ิ่งที่ออกแบบ ต้องอยู่ในโค้ด
ไม่มีโค้ดที่ํ้า้อน
แต่ละ่วนต้องมีขนาดเล็ก
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
อ่านซะ
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
http://www.gfi.com/blog/the-41-dumbest-security-decisions/
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
T E S T F R A M E W O R K
http://en.wikipedia.org/wiki/List_of_unit_testing_frameworks
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance
http://cheqbook.com/wp-content/uploads/2014/03/simple-accounting-software.jpg
SPRINT3R Siam Chamnankit Co., Ltd., Odd-e (Thailand) Co., Ltd. and Alliance