ถ้าพูดถึงการพัฒนาซอฟต์แวร์ จะว่าไปแล้วมันก็ดูเป็นสิ่งนึงที่ติดลูป วนไปวนมาในชีวิตชาวเดฟเหมือนกันนะ โดยเฉพาะอย่างยิ่งกับองค์กรที่ใช้ Agile และ Scrum ในการทำงาน ที่มีการแบ่งการทำงานเป็นรอบ ๆ (Sprints)
.
เพราะคุณจะต้องเก็บ Requirements ของลูกค้าหรือผู้ใช้งาน แล้วก็นำไป Design และ Process เป็นซอฟต์แวร์ขึ้นมา จากนั้นก็ไปเก็บ Feedback จากลูกค้าหรือผู้ใช้งาน เพื่อนำ Feedback ไปปรับปรุงและพัฒนาซอฟต์แวร์ต่อในรอบถัดไป 🤔
.
👉 ซึ่งในการพัฒนาซอฟต์แวร์จะมีคำอยู่คำนึงที่มักพูดถึงกันบ่อย ๆ นั่นก็คือคำว่า “Technical Debt” หรือแปลเป็นไทยตรง ๆ ว่า “หนี้ทางเทคนิค” นั่นเอง
.
.
🔥 Technical Debt คืออะไร?
.
คำว่า Technical Debt เกิดขึ้นครั้งแรกโดย Ward Cunningham ตอนกำลังทำ Software ด้านการเงินอยู่ (เขาคือ 1 ใน 17 คนที่ได้คิดคำว่า Agile ขึ้นมา) ซึ่งเขาอยากอธิบายปัญหาที่เจออยู่ให้นายจ้างที่ไม่รู้เรื่อง Technical จึงเลือกเปรียบเทียบปัญหาทางเทคนิคกับหนี้ทางการเงิน (Monetary Debt) 💸
.
👉 คำว่า Technical Debt จึงพูดถึงปัญหาต่าง ๆ ด้านเทคนิค 💻 ไม่ว่าจะมาจากการเขียนโค้ดที่ไม่ดี Design ที่ไม่มีคุณภาพหรือไม่ยืดหยุ่น การละเลยปัญหาบางอย่างระหว่างพัฒนา หรือสาเหตุใด ๆ ก็ตามที่สุดท้ายก็ต้องมาตามแก้ทีหลังอยู่ดี
.
.
🔥 Technical Debt เกิดจากอะไรได้บ้าง?
.
เป็นคำถามที่มีคำตอบได้ล้านแปดอย่าง เพราะการพัฒนาซอฟต์แวร์คงหลีกเลี่ยงปัญหาไม่ได้อยู่แล้ว ยิ่งเป็นซอฟต์แวร์ขนาดใหญ่แล้ว ยิ่งใช้เวลามากเท่าไหร่ หรือมีคนร่วมพัฒนาเยอะแค่ไหน ก็อาจทำให้มีปัญหาอีกมากมายที่รอให้เราไปตามแก้อยู่ 🤕
.
👉 และที่สำคัญ Technical Debt ไม่ได้มีแค่ “โค้ด” เท่านั้น ไม่ว่าจะปัญหาจากการออกแบบ การเทสต์ การทำเอกสาร เครื่องมือที่เลือกใช้ในการพัฒนา หรือผู้ร่วมพัฒนาเองก็เป็น Technical Debt ได้เหมือนกัน
.
.
🔥 ตัวอย่าง Technical Debt ที่คุณอาจจะได้เจอ
.
🔹 ใช้ Architecture หรือ Tools ต่าง ๆ ไม่เหมาะกับสิ่งที่พัฒนาอยู่
🔹 รู้ว่าซอฟต์แวร์มีปัญหาตรงไหน แต่ไว้ก่อนจนสุดท้ายไม่ได้แก้
🔹 เวลาที่ให้ไม่สอดคล้องกับจำนวนงานที่ต้องทำ
🔹 ไม่เข้าใจซอฟต์แวร์ที่กำลังทำอยู่
🔹 ลืมทำ Documents หรือทำแบบขอไปที ไม่มีคุณภาพ
🔹 เขียนโค้ดซับซ้อน อ่านทำความเข้าใจและ Maintain ได้ยาก
🔹 คนในทีมมีภาระหนักเกินไป เช่น ทำงานมากกว่า 1 งาน ในเวลาพร้อม ๆ กัน
.
.
🔥 ทำยังไงดี ถ้าไม่อยากมี Technical Debt
.
เอาเข้าจริง ๆ แล้วการพัฒนาซอฟต์แวร์ คงจะหลีกเลี่ยง Technical Debt ได้ยาก แถมพอมีแล้วก็ต้องตามแก้กันอีก ราวกับส่งดอกให้เจ้าหนี้ 😔 แต่ถึงจะเลี่ยงได้ยาก ก็ไม่ได้แปลว่าจะเลี่ยงไม่ได้เลย เรามาดูวิธีลด Technical Debt กันดีกว่า
.
👉 แน่นอนว่า สิ่งที่ช่วยลด Technical Debt ได้ดีที่สุด ก็คือการไม่สร้างมันขึ้นตั้งแต่แรกด้วยวิธีต่าง ๆ เช่น เขียนโค้ดให้ Clean, ใช้ Test-Driven Development (TDD) ในการพัฒนา, ทำ Unit Testing รวมถึงวางแผนการพัฒนาซอฟต์แวร์ให้ดีและเลือกใช้เทคโนโลยีที่เหมาะกับสิ่งที่ทำ
.
🤔 แต่ถ้ามันเกิดขึ้นมาแล้ว จะทำยังไงล่ะ? ข้อแรกเลยคือต้องรู้ก่อนว่า อะไรเป็น Technical Debt ของซอฟต์แวร์ แล้วจึงหาวิธีแก้ไขปรับปรุง โดยจัดลำดับความสำคัญของปัญหาที่เจอ แล้วแก้ไปเรื่อย ๆ เพื่อให้ Technical Debt ลดลง อย่าแค่รู้ว่ามีปัญหาอะไร แล้วก็ไว้ก่อน จนสุดท้ายก็ไม่ได้แก้
.
.
📌 สรุปแล้ว Technical Debt ก็ไม่ได้ต่างจากหนี้ทางการเงินเท่าไหร่ เพราะมีหนี้ก็ต้องมีจ่าย และไม่ได้จ่ายแค่เงินต้น เราต้องเสียดอกเบี้ย และจะเสียมากขึ้นไปอีก ถ้าปล่อยให้หนี้ก้อนนี้อยู่ไปนาน ๆ เหมือนกับ Dev ที่ต้องมาตามแก้ปัญหาต่าง ๆ แถมถ้าทิ้งไว้นานแล้ว หรือเป็นหนี้ก้อนใหญ่ ก็ต้องใช้ทั้งแรง ทั้งเวลา และทั้งเงินในการขจัดปัญหานั้นมากกว่าเดิม
.
เพราะฉะนั้น ถึงเวลาแล้วล่ะ 🙌 ที่จะบอกลา (หรือลด) คำพูดก่อหนี้อย่าง “เดี๋ยวค่อยทำ” หรือ “ทำ ๆ ให้เสร็จไปก่อน” หรือ “ไม่ต้องมี Test หรอก” เพื่อให้เกิดหนี้ทางเทคนิคอย่าง Technical Debt น้อยที่สุดนั่นเอง~
.
.
🔖 ขอบคุณข้อมูลจาก
https://siamchamnankit.co.th/ว่าด้วยเรื่อง-หนี้ทางเทคนิค-technical-debt-ทำไมต้องใส่ใจ-b7a0c296b590
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
#TechnicalDebt #BorntoDevวันละคำ #BorntoDev
同時也有3部Youtube影片,追蹤數超過37萬的網紅ADBIG,也在其Youtube影片中提到,แจกการ์ดจอฟรี! กดแชร์ให้ด้วย รีวิวการ์ดจอแพงกว่าทอง ออกแบบมาเพื่อการเล่นเกม 4K โดยเฉพาะ SAPPHIRE NITRO+ AMD Radeon™ RX 6800 ลิงค์ร่วมกิจกรรม https:/...
「software architecture design」的推薦目錄:
- 關於software architecture design 在 BorntoDev Facebook 的最讚貼文
- 關於software architecture design 在 軟體開發學習資訊分享 Facebook 的最佳貼文
- 關於software architecture design 在 BorntoDev Facebook 的精選貼文
- 關於software architecture design 在 ADBIG Youtube 的精選貼文
- 關於software architecture design 在 ehsan mokhtary Youtube 的最佳貼文
- 關於software architecture design 在 ehsan mokhtary Youtube 的最讚貼文
- 關於software architecture design 在 Getting the Basics - Software Architecture Introduction (part 1) 的評價
- 關於software architecture design 在 GitHub - mehdihadeli/awesome-software-architecture 的評價
- 關於software architecture design 在 What is a software architecture and how to represent it? 的評價
- 關於software architecture design 在 Software Design vs. Software Architecture - Stack Overflow 的評價
software architecture design 在 軟體開發學習資訊分享 Facebook 的最佳貼文
NT 390 特價中
使用 SOLID 原則和設計模式建立智慧的、可重複使用的軟體指南
https://softnshare.com/basics-of-software-architecture-design-in-java/
software architecture design 在 BorntoDev Facebook 的精選貼文
🔥 ในวันนี้แอดได้รวบรวม Java Framework สำหรับพัฒนา Microservice มาให้เพื่อน ๆ ได้ไปลองใช้งานกัน มีอะไรบ้าง ไปดูกันเลยจ้า
.
✨ Microservice หรือ Microservice Architecture เป็นการออกแบบที่ทำให้ Service มีขนาดเล็กลงเพื่อแก้ไขจุดด้อยของสถาปัตยกรรมการออกแบบอื่น ๆ นั่นเอง
.
⭐ 1) Spring Boot
เป็น Java Framework ที่ใช้พัฒนา Microservice ยอดนิยม สามารถสร้างแอปพลิเคชันทั้งขนาดเล็กและขนาดใหญ่ได้ สามารถใช้งานร่วมกับ Framework อื่น ๆ ได้อย่างมีประสิทธิภาพ มีความยืดหยุ่นมาก
.
💥 ทดลองโหลดใช้งานได้ที่นี่ >> https://spring.io/projects/spring-boot
⭐ 2) Dropwizard
ใช้พัฒนาเว็บที่เป็นมิตรกับผู้ใช้อย่างมาก มีประสิทธิภาพสูง รองรับ Configuration Tools และ Application Metrics สามารถทำงานได้เลย โดยไม่ต้องตั้งค่าเพิ่มเติม
.
💥 ทดลองโหลดใช้งานได้ที่นี่ >> https://www.dropwizard.io/en/latest/
⭐ 3) Restlet
มีรูปแบบสถาปัตยกรรม RST ซึ่งจะช่วยให้นักพัฒนา Java สามารถสร้าง Microservice ได้อย่างง่ายดาย ซึ่งดูแลโดย Apache Software License
.
💥 ทดลองโหลดใช้งานได้ที่นี่ >> https://restlet.talend.com/
⭐ 4) Helidon
Library สำหรับเขียน Microservice ใช้งานง่าย และหยืดหยุ่น รองรับ Microprofile และการทำ Web Server
.
💥 ทดลองโหลดใช้งานได้ที่นี่ >> https://helidon.io/#/
⭐ 5) AxonIQ
เป็น Framework สำหรับพัฒนา Microservice แบบ Open-Source มีประสิทธิภาพ สามารถปรับขนาดได้ มีความปลอดภัย รองรับ Command Query Responsibility Segregation (CQRS) และ Domain-Driven Design (DDD)
.
💥 ทดลองโหลดใช้งานได้ที่นี่ >> https://axoniq.io/
⭐ 6) Micronaut
เป็น JVM-based Framework สามารถสร้าง Microservice ที่มีฟีเจอร์ครบถ้วน ทำขึ้นมาเพื่อลบจุดด้อยของ Spring Boot รองรับ Serverless Applications
.
💥 ทดลองโหลดใช้งานได้ที่นี่ >> https://micronaut.io/
⭐ 7) Lagom
เป็น Framework สำหรับพัฒนา Microservice แบบ Open-Source สำหรับ Java หรือ Scala ปรับขนาดได้อย่างยืดหยุ่น ลดความซับซ้อน และปัญหาของระบบได้อย่างดี
.
💥 ทดลองโหลดใช้งานได้ที่นี่ >> https://www.lagomframework.com/documentation/1.6.x/java/Home.html
เพื่อน ๆ เคยใช้ Framework ตัวไหนกันบ้าง ? มีดียังไงมาแชร์ให้ฟังกันบ้างนะ 😍
.
💻 หากใครอยากอ่านเรื่อง Microservice แบบเต็ม ๆ กดลิงค์นี้ได้เลย >> https://www.borntodev.com/2020/05/22/microservices-%E0%B8%84%E0%B8%B7%E0%B8%AD%E0%B8%AD%E0%B8%B0%E0%B9%84%E0%B8%A3/
.
borntoDev - 🦖 สร้างการเรียนรู้ที่ดีสำหรับสายไอทีในทุกวัน
software architecture design 在 ADBIG Youtube 的精選貼文
แจกการ์ดจอฟรี! กดแชร์ให้ด้วย
รีวิวการ์ดจอแพงกว่าทอง ออกแบบมาเพื่อการเล่นเกม 4K โดยเฉพาะ
SAPPHIRE NITRO+ AMD Radeon™ RX 6800
ลิงค์ร่วมกิจกรรม https://www.facebook.com/ADBIGGY/posts/3734403126646279
สเปค
GPU: Boost Clock: Up to 2190MHz
Memory: 16GB/256 bit DDR6. 16 Gbps Effective
Stream Processors: 3840
RDNA™ 2 Architecture
Ray Accelerator: 60
16GB GDDR6
ตัวการ์ดกินไฟ 290W
Tri-X Cooling
V-Shape Fin Design
Hybrid Fan
Metal Backplate)
Bios Switch 1 Performacne / Silent / Software
ราคากลาง 23,900 บาท
https://www.ascenti.co.th/product/sapphire-nitrorx-6800/
https://www.sapphiretech.com/en/consumer/nitro-radeon-rx-6800-16g-gddr6
เครื่องทดสอบ
Intel Core i9-10900K
ASrock Z490i PHANTOM GAMING ITX/TB3
SAPPHIRE NITRO+ AMD Radeon™ RX 6800
Corsair Vengeance RGB PRO SL 16GB 3200
WD BLACK SN750 1TB
CORSAIR SF750
CORSAIR H100i RGB PRO XT
Noctua 12x15 x 2
FormD T1 Case
software architecture design 在 ehsan mokhtary Youtube 的最佳貼文
I just saw this bridge while I was driving in Kuala Lumpur Malaysia.
design this kind of bridge is very fast and simple in Parametric design software such as Grasshopper.
also, I use Revit Rhino Plug-in to have my Final 3D model in BIM Revit File format.
done by: Ehsan
software architecture design 在 ehsan mokhtary Youtube 的最讚貼文
Cype software is BIM software for Architecture, structure engineers, M&E Engineers and all people related to the buildings industry.
Cype also has a BIM server that allows you to transfer your files through Autodesk Revit, Rhinoceros 3D, Grasshopper, and other 3D BIM software.
you can access your 3D model from Cype Software, browser and even your Cellphone application.
software architecture design 在 GitHub - mehdihadeli/awesome-software-architecture 的推薦與評價
Software architecture refers to the fundamental structures of a software system and the discipline of creating such structures and systems. Actor Model ... ... <看更多>
software architecture design 在 What is a software architecture and how to represent it? 的推薦與評價
Object-Process Methodology can be used during the system design phase to capture the objects and actions that make up the system. If you have a ... ... <看更多>
software architecture design 在 Getting the Basics - Software Architecture Introduction (part 1) 的推薦與評價
The first video of Software Architecture Introduction Course covering basics and ... 461K views 2 years ago Software Architecture and Design. ... <看更多>