บทความนี้ก็เราจะเน้นเรื่องของการลงมือทําเหมือนเช่นเคย ไม่ต้องอ่านมาก ไปลงมือเล่นกันดีกว่า เรียนรู้อย่างงี้จะเข้าใจมากกว่า อ่านอย่างเดียวแน่นอน

GitHub Repository: https://github.com/howtoautomateinth/awesome-python

แนะนําให้กด STAR ไว้ที่ repository ด้วย จะได้ไม่พลาดทุกการ update เพราะว่าเวลามีอะไรใหม่มาจะคอยอัพเดตผ่าน repository นี้

แต่ที่แนะนําให้เข้าไปอ่านสรุปจริงๆเลยจะคือ รวมเนื้อหา python เพราะว่าเจ้าตัวนี้จะรวบรวมเนื้อหาแบบสั้นๆๆและเข้าใจง่ายไว้หมดแล้ว


โดยหลักๆแล้วบทความนี้จะรวบรวมการใช้งาน python ตั้งแต่ statements แบบต่างๆ (loop,if,elif,etc) รวมไปถึง data structure แบบต่างๆ, การสร้าง module, decorators, generator,  magic method, oop, unittest, pytest และ ไปถึงการสร้าง your own pip package เพื่อ publish ไปบน repository ด้วย 🙂

มาดูตัว Workshop ที่จะเล่นกัน

จะมีแบ่งเป็นการใช้งาน Python ตามข้อที่น่าสนใจต่างๆ โดยจะมีดังนี้

  1. IO
    • เป็นตัวอย่างการใช้งาน IO ของ python ที่ใช้ในการ read-write file
    • รวมไปถึง StringIO และ BufferIO ที่เป็นการใช้ memory ในการจัดการ Stream file ที่มี performance ดีขึ้น
  2. OOP
    • OOP concept ใน python
    • การทํา multiple inheritance
    • อ่านเนื้อหาก่อนลองเล่นได้ที่ Python OOP
  3. data-structure
    • data structure ของ python มีแบบไหนบ้าง และความสามารถต่างๆของมันไว้ทําอะไร
    • อ่านเนื้อหาก่อนลองเล่นได้ที่ สรุป Python Data Structure
  4. decorators
    • decorators pattern ที่ใช้ในการ decorate function/method ใน python เราจะใช้งานมันยังไง
  5. error-handling
    • การจัดการกับ exceptions แบบต่างๆใน python และ custom message
  6. example-pip-pkg
    • ถ้าเราอยากจะทํา pip package ขึ้นมาใช้เอง เราต้องสร้างยังไงและ deploy ยังไง
    • ตัวอย่างง่ายๆจบในที่เดียวแบบ ตัวอย่าง pip pkg อันนี้
  7. generator
  8. magic-method
    • พวก method ที่มี underscore ขึ้นต้น ใน python มีไว้เพื่ออะไร
  9. module
    • สงสัยมั้ยทําไมต้องมีไฟล์ __init__.py ใน root module structure นี้เป็นตัวอย่างการสร้าง module ของตัวเองและเอาไว้ใช้งานเพื่อให้ reusable กับทีม
  10. statements
  11. testing
    • ความแตกต่างระหว่าง pytest และ unittest
    • อ่านเนื้อหาก่อนลองเล่นได้ที่ Python Unit Test 101, Test Double in Python

สิ่งที่ควรจะทําก่อนที่จะลองเล่นกับ Python

บางหัวข้ออย่าง Pytest จะไม่ใช่ built-in function เลยต้องทําการ install ลงเครื่องก่อน เพราะฉะนั้นแนะนําให้ ใช้ python env. module เพื่อไม่ให้มัน install ลงบนเครื่องจริงๆ โดยสามารถทําตาม README.md นี้ได้เลย

หรือถ้าอยากเขียนเอง อยากใช้ Jupyter Notebook ในการลองทํา มากกว่าใช้ cli สั่ง run python เพราะว่าพวก UI และ error msg ที่มีมันช่วยให้เราอ่านได้ง่ายกว่า 🙂

สิ่งที่อยากให้ลองเล่นที่สุดใน Workshop

คือเรื่องการสร้าง pip package ของตัวเองใน บทที่ 6 ซึ่งจะช่วยเป็นตัวอย่างง่ายๆที่จะทําให้เราทํางานได้ง่ายๆเลย โดยสิ่งที่เราต้องมีคือ

โดยหัวใจของการทํา pip package เองเลยคือเรื่องของ setup.py ที่จะเป็นตัวบอกรายละเอียดเช่น README.md ที่จะขึ้นไปบนเว็ป รวมถึง version ของ package

ทีนี้เวลาเราสร้าง package ของเราเอง ก็แค่ไป directory เดียวกับ setup.py แล้วก็สั่ง


python3 setup.py sdist bdist_wheel

แล้วก็จะได้ package มาเพื่อ publish ได้เลย 🙂

FYI: file setup.py เราสร้างเอง ไม่มีตัวอะไร generate ให้ ถ้าอยากทําง่ายๆก็ copy ตัวอย่างไปเปลี่ยนชื่อได้เลย นั้นคือเบสิคสุดละ

ซึ่งจริงถ้าไปสังเกตุหลายๆ public package ของ pip เช่น requests จะเห็นว่าคนส่วนใหญ่จะ custom ดึง version และ เตรียมทุกอย่างที่จะใช้ในการ deploy package ไว้ที่ไฟล์นี้เลย

 

0 0 vote
Article Rating
guest

This site uses Akismet to reduce spam. Learn how your comment data is processed.

0 Comments
Inline Feedbacks
View all comments