สรุปให้ #โปรแกรมเมอร์ ขีดเส้นใต้เฉพาะมือใหม่ ควรเรียนรู้อะไรบ้าง? /เครดิตคุณ ijemmy
-ใช้ version control บทความนี้จะเป็น Git
-รู้จักคำสั่ง Linux + Command Line Interface (CLI)
-รู้จัก Shortcut ของ IDE/Editor ที่ใช้อยู่
-สำหรับ Web Dev หัดใช้เครื่องมือ debug ให้เป็น ซึ่งในบทความจะใช้ Chrome Developer Tool
-Design Patterns ซึ่งก็คือรูปแบบการแก้ปัญาที่พบเจอบ่อยๆ ในโลกเขียนโปรแกรม
ส่วนใหญ่ก็หนีไม่พ้นในรูป OOP (Object-oriented Programming)
แต่ OOP มันมีทั้งข้อดีข้อเสีย บางโจทย์ปัญหาไม่เหมาะเท่าไร
ถ้าเป็นไปได้ ลองเรียนรู้รูปแบบเขียนโปรแกรมอย่างอื่นๆ บางก็ดี
-หัดใช้ Docker
ส่วนทักษะอื่นๆ
-มีทัศนคติในการเรียนรู้
-ภาษาอังกฤษให้เป็น
-อย่าเน้นที่ปริมาณภาษา เน้นที่วิธีการเขียนโปรแกรม
-เรียนรู้สาขาต่างๆแบบตัว T หมายถึง ให้ลงลึกในสาขาหนึ่ง ส่วนสาขาอื่นๆรอบข้าง ไม่ต้องลงลึกมาก แต่ต้องพอรู้
-ทำงานร่วมกับผู้อื่นให้เป็น
-รู้จักดูแลสุขภาพตัวเอง
สำหรับด้านเทคนิค อยากเสริมเรื่อง Test, Refactoring , clean code
รวมถึงใช้เว็บพวก Google, Stack overflow ฯลฯ ใช้หาข้อมูลให้เป็น
พยายามอ่าน error หรือข้อความแจ้งเตือนต่างๆ ให้ออก อันนี้ก็สำคัญ ตกม้าตายกันได้ง่ายๆ เพราะบ้างทีข้อความมันแจ้งชัดว่าเกิดอะไรขึ้น แต่ไม่ได้ใส่ใจ
อ่านต่อภาค 2
http://www.notaboutcode.com/…/07-career-start-non-technical/
同時也有1部Youtube影片,追蹤數超過22萬的網紅BorntoDev,也在其Youtube影片中提到,เคยเขียนโปรเจคแล้ว Code เยอะ ใหญ่ กินพื้นที่เยอะขึ้นเรื่อยๆไหม แน่นอนว่าถ้าเก็บมันไว้อีกคงเหม็นเน่าเหมือนขยะที่ไม่ได้ทิ้งแน่ๆ ! ดังนั้นวันนี้เรามาดูเท...
refactoring 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 八卦
System.out.println() ในภาษา Java ถือว่าออกแบบผิดหลักการข้อใด?
.
อันนี้อ้างอิงตามตำรา
Head First Design Patterns (2008) หน้า 268 📗 📗
(ใครมีตำราก็ไปกางเปิดดูได้)
.
👧 คำตอบ การออกแบบคำสั่งชุดนี้ในภาษา Java
จะถือว่าผิดหลักการออกแบบโปรแกรมเรื่อง
"Principle of Least Knowledge"
แปลเป็นไทย "หลักการของความรู้น้อยที่สุด"
.
Principle of Least Knowledge
เป็นหลักการออกแบบ Object ให้รู้จักเพื่อนๆ ที่ใกล้ชิดไม่กี่คน 👩❤️💋👨
.
.
จากประโยคคำสั่ง System.out.println()
System กว่าจะรู้จัก println() ก็ต้องผ่าน out มันไกลเกินไปลูกพี่
ซึ่งข้อเสียมันทำให้โค้ดมีลักษณะยึดติดกันเกินไป
.
ศัพท์ทาง Object Oriented Programming โค้ดจะมีอาการเรียกว่า "coupling" โค้ดเป็นคู่สามีภรรยา เกี่ยวดองกันแนบแน่น
เช่น ถ้าเกิด out มีการแก้ไขก็จะกระเทือนต่อ println() และ System ไปด้วย (อันนี้แค่ยกตัวอย่างนะ ของจริงอาจไม่กระทบเลยก็ได้)
.
ในขณะที่ภาษาสมัยใหม่พวก Swift, Kotlin
จะเขียนสั้นๆ print(), println() ตามลำดับ
ไม่ต้องมาทำพิธีกรรมเรียกหลายชั้น หลายซ้อนแบบนี้
ก็เราแค่แสดงผลออกทางหน้าคอนโซลนี้น่า
มันจะทำอะไรให้มันวุ่นวายไปใย
.
จะขอยกตัวอย่างโค้ดในหนังสือเช่น
station.getThermometer().getTemperature();
เขียนแบบนี้ จะเห็นว่ามันยาวเหยียด
ถ้าเขียนครั้งเดียวพอทนได้
แต่ถ้าให้เขียนซ้ำๆ มันขี้เกียจเหมือนกันเนอะ
.
สำหรับวิธีแก้ไขปัญหาโค้ดที่ละเมิดหลัก
"Principle of Least Knowledge"
ไม่ยากเลย เราสามารถใช้หลักของดีไซน์แพทเทิร์นตัวหนึ่ง
นั้นก็คือ "เดอะเฟสไทยแลนด์"
...เฮยไม่ใช่แหละ 😜 😜
.
ใช้แพทเทิร์นที่เรียกว่า "The Facade"
เพื่อแก้ไขโค้ดลักษณะนี้
สนใจก็อย่าลืมไปทบทวน
ดีไซน์แพทร์นของ GOF นะ (ขอไม่ลงรายละเอียด)
.
แต่จะว่าไปมันก็เป็นแค่แนวคิดและหลักการเฉยๆ
แล้วแต่เราแหละ เขียนผิดหลักการยังไง
โค้ดก็รันได้ ปกติอยู่แล้ว
มันเป็นแนวคิด ไม่ใช้กฏหมายบังคับซะเมื่อไร
.
เพราะถ้าคนออกแบบเขาจะเอาแบบนี้
ชอบแบบนี้ ชอบที่เป็นแบบนี้ ชอบแววตาแบบนี้
ชอบรอยยิ้มแบบนี้ ก็ชอบคนนี้ ...โฮ้ว~~~
.
ถ้าทำแล้วโค้ดไร้บั๊ก ลูกค้าแฮปปี้พอใจ จ่ายเงินให้เรา ก็คือโอเคสองฝ่าย
ส่วนโปรแกรมเมอร์ที่มารับไม้ต่อ ไม่ชอบดีไซน์โค้ดแบบนี้
ก็จับ refactoring เอาเองแล้วกันเด้อ
.
อีกอย่างที่ยกตัวอย่างมาเป็นภาษา Java
ซึ่ง System.out.println() ใช้กันเป็นเรื่องปกติ
บิดา Java เขาจัดวาง println() ให้อยู่เป็นสัดเป็นส่วนอย่างนี้เอง
.
แต่เราต้องยอมรับว่า IDE ปัจจุบันมันฉลาดมาก
บางตัวแค่พิมพ์ S ก็แสนรู้
เดาใจเราออกว่าเราจะพิมพ์ System.out.println();
IDE สมัยนี้มันช่วยเราได้เยอะเลยทีเดียว
ไม่ต้องเสียเวลาพิมพ์ยาวเมื่อยมือ เสียเวลา
แต่ถ้ายังใช้ notepad อยู่ ก็ต้องทนเหนื่อยเอา
.
.
.
.
.
.
.
.
.
.
.
.
ทิ้งท้ายก่อนจากกันไป
<ประชาสัมพันธ์ขายของ>
หนังสือ "โปรแกรมเมอร์ก็รวยได้ ด้วยเส้นทางเอาท์ซอร์สสายดำ"
หนังสือที่จะเล่าเส้นทางสายเอาท์ซอร์สเงินดีรายได้งาม
✔ สำหรับตัวอย่างหนังสือ 👇
PDF: https://drive.google.com/file/d/1tAnMozeYd63dcbBGTQmT_ZrpSaamZS3e/edit
หรือดูจาก youtube: https://youtu.be/Ljf9iJhLcIs
.
รายละเอียดอ่านเพิ่มเติมได้ที่่ 👇
https://www.patanasongsivilai.com/blog/sale_book_rich_with_outsource/
.
✍ เขียนโดย โปรแกรมเมอร์ไทย thai programmer
เราจะผ่านโควิด-19 ไปกันนะทุกคคนนน
refactoring 在 91 敏捷開發之路 Facebook 八卦
喔喔喔喔!沒想到博碩談到版權,再次出版了 Working Effectively with Legacy Code 的繁體中文書了!
>> https://www.tenlong.com.tw/products/9789864344000
我推薦的重構三部曲:
① Working Effectively with Legacy Code
② Refactoring
③ Refactoring to Patterns
原本三本的簡體、繁體中文都絕版了(當然,Refactoring 是推出新版)
現在最難買到的 Working Effectively with Legacy Code 就沒這問題啦,無疑是一大福音。
對我來說,先看這一本,再看 Martin Fowler 的 Refactoring 會更順一點。
畢竟, Working Effectively with Legacy Code 帶到了蠻多「在無測試保護的情況下,如果用低風險的手法重構」
沒啥好說的了,先訂個 30 本來當學員贈書就對了。
※ 用新台幣支持 天瓏資訊圖書 跟 博碩 就對啦!
※ 兵貴神速,已經建立完成這本書的閱讀交流社團:https://www.facebook.com/groups/342463580015957/
refactoring 在 BorntoDev Youtube 的評價
เคยเขียนโปรเจคแล้ว Code เยอะ ใหญ่ กินพื้นที่เยอะขึ้นเรื่อยๆไหม แน่นอนว่าถ้าเก็บมันไว้อีกคงเหม็นเน่าเหมือนขยะที่ไม่ได้ทิ้งแน่ๆ ! ดังนั้นวันนี้เรามาดูเทคนิคการทำให้โค้ดเราสะอาดตา มีระเบียบ ซึ่งไม่ใช่แค่สิ่งที่ควรทำ แต่มันเป็นสิ่งที่ต้องทำกันเถอะ !
-----------------------------------------
➤ ติดต่อโฆษณา สนับสนุนได้ที่ : [email protected]
➤Kittikorn Prasertsak (P.Prame)
Founder & Co-Founder of BorntoDev
➤กดติดตามช่องของ Youtube ได้ที่ : https://www.youtube.com/c/BorntoDevTH...
➤Facebook : https://www.facebook.com/borntodev
➤Website : http://www.borntodev.com
refactoring 在 Refactoring UI: Bad About - YouTube 的八卦
... <看更多>