Programmer Interrupted 🫥
เป็นปรากฏการณ์ที่นักพัฒนาซอฟต์แวร์ถูกขัดจังหวะบ่อยครั้งในขณะทำงาน ซึ่งอาจส่งผลเสียต่อประสิทธิภาพการทำงานและความสามารถในการมีสมาธิ การขัดจังหวะสามารถเกิดขึ้นได้ในหลายรูปแบบ เช่น การประชุม อีเมล ข้อความโต้ตอบแบบทันที โทรศัพท์ หรือแม้แต่เพื่อนร่วมงานที่แวะมาคุย จากการศึกษาพบว่าจะใช้เวลาเฉลี่ย ใช้เวลาอย่างน้อย 10-15 นาที ในการกลับมาโฟกัสในงานได้เต็มที่ หลังจากถูกขัดจังหวะ ซึ่งหมายความว่าหากโปรแกรมเมอร์ถูกขัดจังหวะหลายครั้งตลอดทั้งวัน พวกเขาอาจใช้เวลาส่วนใหญ่ไปกับการพยายามกลับไปทำงานตามปกติ แต่แทนที่จะได้ทำงานให้มีก้าวหน้ามากกว่าเดิม บทความ **The Real Cost of Interruption and Context Switching
มีกลยุทธ์ที่น่าสนใจบางข้อเพื่อช่วยลดผลกระทบให้เหลือน้อย อ่านเพิ่มเติมได้ที่นี่
ทำ Python Monolith ให้ถูกต้อง 💅
ในการพัฒนาซอฟต์แวร์ สถาปัตยกรรมแบบ Monolith หมายถึงแอปพลิเคชันหรือระบบที่สร้างขึ้นเป็นหน่วยเดียวที่แบ่งแยกไม่ได้ ในบริบทของ Python แอปพลิเคชันแบบ monolithic จะเป็นแอปพลิเคชันที่เขียนโค้ดทั้งหมดสำหรับแอปพลิเคชันในไฟล์ต้นฉบับหรือโมดูลเดียว เจาะลึก วิธีจัดโครงสร้างโปรเจกต์ Monolith Python ของคุณ
วูล์ฟเวอรีน 🐺
นักพัฒนาสร้างโปรแกรม AI regenerative ที่แก้ไขข้อบกพร่องได้ทันที โดย Wolverine สามารถแก้ไขข้อบกพร่องของ Python ในขณะที่โปรแกรมทำงานอยู่และใส่โค้ดใหม่ได้ ซึ่งมันเจ๋งมาก ทดลองไปเอาใช้ได้ที่ https://github.com/biobootloader/wolverine
ไอเดียโปรเจคสุดสัปดาห์ 🧰
สร้างแอนิเมชั่นที่นำแสดงโดยตัวละครที่คุณวาดเอง คุณอาจจะเพิ่มมันลงไปในพอร์ตโฟลิโอของเจ้าก็ได้ เพื่อสร้างความประทับใจให้กับนายจ้าง
วิวัฒนาการของ Pandas 🐼
Pandas ไลบรารีที่ยอดเยี่ยมของ Python ที่ได้รับความนิยมมากที่สุด เรามีบทความเปรียบเทียบ ****Pandas 2.0 กับ Pandas 1.3** คุณจะเห็ฯว่าการอัปเดทครั้งใหญ่ของ Pandas นี้เร็วมากแค่ไหน
แอสทรัล (Astral)🪐
เป็นสิ่งที่น่าจับตามอง เพราะ Astral ได้มีผลิตภัณฑ์แรกของพวกเขาคือ Ruff ที่เป็นโมดูล python linter เขียนบทภาษา Rust เผื่อใครไม่คุณเคยสามารถไปอ่าเอกสาร Ruff ได้ที่นี่เลย
Publishers ที่เชื่อถือได้ 🌝
PyPI ประกาศฟีเจอร์ ความปลอดภัยใหม่ก็คือ Trusted Publishers ผู้ดูแลแพ็คเกจบน PyPI สามารถใช้วิธีการเผยแพร่แบบใหม่ที่ปลอดภัยกว่า ซึ่งไม่ต้องใช้รหัสผ่านที่ใช้งานมาอย่างยาวนานหรือโทเค็น API อ่านเพิ่มเติมได้ที่นี่ หรือบางท่านอาจจะไม่ทราบว่า Python Package คืออะไร? สามารถเข้าไปอ่านที่นี่
Dependency Injection บน Python 🎯
Dependency Injection เป็นรูปแบบการออกแบบที่ใช้เพื่อให้เกิดการเชื่อมต่อระหว่างโมดูลและส่วนประกอบในแอปพลิเคชัน แทนที่จะใช้ฮาร์ดโค้ดที่ขึ้นต่อกันภายในโมดูลหรือคลาส พวกมันจะถูกฉีดเข้ามาจากภายนอก ใน Python สามารถใช้ Dependency Injection ได้โดยใช้ไลบรารีต่างๆ เช่น Flask Inject, PyInjector และ Django อย่างไรก็ตาม Dependency Injection แนวคิดพื้นฐานยังคงเหมือนเดิม
ตัวอย่างการใช้งานการ Dependency Injection ใน Python โดยใช้ไลบรารี PyInjector:
import pyinjector
class UserRepository:
def __init__(self, db_connection):
self.db_connection = db_connection
def get_user(self, user_id):
# โค้ดเพื่อดึงผู้ใช้จากฐานข้อมูล
pass
class UserService:
def __init__(self, user_repository):
self.user_repository = user_repository
def get_user(self, user_id):
return self.user_repository.get_user(user_id)
def get_db_connection():
# โค้ดเพื่อสร้างการเชื่อมต่อฐานข้อมูล
pass
injector = pyinjector.Injector()
injector.bind(get_db_connection)
injector.bind(UserRepository, db_connection=injector.get_binding('get_db_connection'))
injector.bind(UserService, user_repository=injector.get_binding('UserRepository'))
# ใช้งาน
user_service = injector.get_instance(UserService)
user = user_service.get_user(1)
อ่านเพิ่มเติมได้ที่บทความนี้ Dependency Injection in Python
Sharding (การแบ่งส่วน) ทำงานอย่างไร 🧇
หากคุณเคยใช้ Google หรือ YouTube คุณอาจเคยเข้าถึงข้อมูลที่แยกส่วนออกเป็น Sharding ช่วยให้คุณปรับขนาดฐานข้อมูลของคุณโดยการจัดเก็บพาร์ติชันของข้อมูลของคุณในเซิร์ฟเวอร์หลายเครื่อง แทนที่จะเก็บทุกอย่างไว้บนพาร์ติชันขนาดใหญ่เพียงเครื่องเดียว โพสต์นี้ จะแนะนำวิธีการทำงานของฐานข้อมูลการแบ่งส่วนย่อย วิธีคิดเกี่ยวกับการนำฐานข้อมูลส่วนย่อยไปใช้ในงานของคุณ และเครื่องมือที่มีประโยชน์บางอย่างขึ้น โดยเน้นไปเฉพาะที่ MySQL และ Postgres
คุณชอบเรียนรู้ฐานข้อมูลงั้นทำไมไม่ลองเรียนรู้ SQL โดยการ เล่นเกม ดูหล่ะ
ข่าวรอบโลก 🗺
• Brave Search ได้นำ Bing ออกจากหน้าผลการค้นหา เพื่อ ทำให้เป็นอิสระ 100% และให้ทางเลือกที่แท้จริงแทนการค้นหาของ Big Tech
ข่าวเทคโนโลยีขนาดใหญ่ 🏢
- Twitter กำลังแบ่งปันการทำงานภายใน อัลกอริทึมที่พวกเขาใช้ ในวัน April fools และพวกเขายังทำ เรื่องตลกๆ แบบนี้ ด้วยซ้ำ
- Apple ชนะการต่อสู้ในศาลต่อต้านการผูกขาดกับ Epic Games (Fortnite) นี่ถือว่าเป็นชัยชนะครั้งใหญ่ของ Apple เลยก็ว่าได้
- การต่อสู้ของ AI กำลังดำเนินต่อไปเรื่อยๆ โดย Microsoft กำลังสร้างชิปปัญญาประดิษฐ์ของตนเอง ขึ้นมาสำหรับขับเคลื่อนโมเดลภาษาขนาดใหญ่เพื่อทำหน้าที่ในการทำความเข้าใจและสร้างภาษาที่เหมือนมนุษย์
- Google ประกาศเปิดตัว Bard ซึ่งเป็นการทดสอบในช่วงแรกที่ให้คุณทำงานร่วมกับ generative AI ได้
- จับตาดูวิธีใหม่ในการใช้ GPT โดย “agents”: Auto-GPT
อาจจะไม่ได้มีประโยชน์อะไรอาชีพของคุณ แต่มันก็ยังยอดเยี่ยมอยู่ 🤖
• หุ่นยนต์กำลังยึดครองโลก ด้วยเปียโนก่อน
• น้ำสามารถ แก้ปัญหาเขา วงกตได้หรือไม่?
• แอนิเมชั่นที่ขยายตัวอย่างต่อเนื่องของชีวิตบนชั้น 796 ของสถานีอวกาศ
• นี่คือวิธีสร้างสรรค์และเล่นกับการเลื่อนเว็บไซต์ของคุณ ความ คิดอัจฉริยะ
โมดูลประจำฉบับนี้ 📖
datasette
เครื่องมือ Python สำหรับสำรวจและเผยแพร่ข้อมูล สามารถเผยแพร่ข้อมูลรูปแบบต่างๆ เช่น CSV, JSON, ฐานข้อมูล ฯลฯ ลงในอินเทอร์เฟซ API หรือหน้าเว็บได้ภายในไม่กี่นาที และใช้งานฟังก์ชันต่างๆ เช่น การแสดงภาพเว็บ การค้นหา และการวิเคราะห์ชุดข้อมูลได้อย่างง่ายดาย
erpnext
ระบบ ERP แบบโอเพ่นซอร์สที่สมบูรณ์ คือระบบการวางแผนทรัพยากรภายในองค์กร (ERP) ที่พัฒนาด้วย Python+JavaScript ซึ่งสามารถใช้ในการสร้างความสัมพันธ์กับลูกค้า กัยทรัพยากรบุคคล เรื่อง การขาย/การซื้อ/คลังสินค้า ระบบการเงินและการจัดการอื่นๆ สำหรับองค์กรขนาดเล็กและขนาดกลาง
mercury
เฟรมเวิร์กที่เปลี่ยน Jupyter Notebooks เป็นเว็บแอปพลิเคชัน โดยโปรเจ็กต์นี้ให้คุณสามารถเพิ่มคอมโพเนนต์เชิงโต้ตอบใน Python Notebook เพื่อสร้างเว็บแอปพลิเคชันที่สวยงามโดยอัตโนมัติ ซึ่งสะดวกสำหรับการแชร์และแสดงผลของคุณ
pyotp
ไลบรารีรหัสผ่านแบบใช้ครั้งเดียวสำหรับ Python เป็นไลบรารีที่สามารถสร้าง/ยืนยันรหัสผ่านแบบใช้ครั้งเดียว (รหัสยืนยัน SMS) ซึ่งสามารถใช้วิธีตรวจสอบสิทธิ์แบบสองปัจจัย (2FA) หรือหลายปัจจัย (MFA) บนเว็บแอปพลิเคชันหรือระบบอื่นๆ ที่ต้องมีการเข้าสู่ระบบได้
import pyotp
import time
totp = pyotp.TOTP('base32secret3232')
totp.now() # => '492039'
# OTP verified for current time
totp.verify('492039') # => True
time.sleep(30)
totp.verify('492039') # => False
sqladmin
อินเทอร์เฟซการจัดการพื้นหลังของ FastAPI/Starlette นี่คือพื้นหลังการจัดการ SQLAlchemy ที่ยืดหยุ่น ซึ่งใช้ Tabler เพื่อสร้างเว็บอินเตอร์เฟส รองรับการรวมเข้ากับ FastAPI และ Starlette และใช้ฟังก์ชันพื้นหลังการจัดการในตัวที่เหมือน Django
beeware
BeeWare เป็นชุดเครื่องมือและไลบรารี ซึ่งแต่ละชุดทำงานร่วมกันเพื่อช่วยคุณเขียนแอปพลิเคชัน GUI Python แบบข้ามแพลตฟอร์ม