คำหรือวลีการเขียนโปรแกรมขนาดใหญ่

ตัวป้องกันกระเป๋าการทำงานร่วมกับโปรแกรมเมอร์ที่ยอดเยี่ยมบางคนฉันมักจะพบว่าตัวเองกำลังพบปะกับสถาปนิกลีดและนักพัฒนาที่ (ฉันคิดว่า) ชอบที่จะโยนคำหรือวลีใหญ่ ๆ ออกไปเพื่อพยายามทำให้ผู้จัดการผลิตภัณฑ์หรือลูกค้าของพวกเขากลัว

เป็นหนึ่งในสิ่งที่โปรแกรมเมอร์ชอบทำ นี่คือสิบข้อที่มีคำอธิบายง่ายๆ (ที่จะดึงความเดือดดาลของนักพัฒนาทุกที่อย่างไม่ต้องสงสัยขณะที่ฉันแฮ็คคำศัพท์ของพวกเขาจนตายด้วย คำเปรียบเปรยรถง่ายๆของฉัน):

  1. สิ่งที่เป็นนามธรรม - นี่เป็นการใช้กระบวนการหรือฟังก์ชั่นที่ยากและโดยพื้นฐานแล้วการทำลายมันลงอย่างมีเหตุผล ... ไม่ว่าจะตามลำดับชั้น (A เป็นของ B, B เป็นของ C ฯลฯ ) หรือตามคุณสมบัติหรือฟังก์ชัน (สีขนาดน้ำหนัก ฯลฯ ) Abstraction ทำให้การเขียนโปรแกรมเชิงวัตถุง่ายขึ้นโดยจัดระเบียบการทำงานอย่างมีเหตุผล ในการสร้างรถของฉันฉันสร้างเฟรมเครื่องยนต์และตัวถังแยกจากกัน
  2. การคัดค้าน – หมายความว่ามีโค้ดเก่าบางส่วนในระบบที่อาจยังคงอยู่ แต่ต้องมีการเลิกใช้ เมื่อเลิกใช้โค้ดแล้ว โปรแกรมเมอร์จะไม่อ้างอิงโค้ดหรือใช้โค้ดที่ใหม่กว่าจนกว่าการอ้างอิงทั้งหมดจะถูกส่งไปยังโค้ดเก่า ซึ่งในขณะนั้นควรนำโค้ดนั้นออก บางครั้ง หากเป็นคุณลักษณะที่กำลังจะหยุดให้บริการ คุณสามารถเก็บไว้ชั่วขณะหนึ่งโดยมีคำเตือนแก่ผู้ใช้ว่าคุณลักษณะนี้จะหายไป ฉันได้ระบบสเตอริโอใหม่พร้อมสายไฟใหม่ แต่ฉันทิ้งสายไฟเก่าไว้และไม่ได้ใช้งาน
  3. encapsulation – นี่คือกระบวนการจัดระเบียบฟังก์ชันการเขียนโปรแกรมของคุณภายในพาเรนต์ เมื่อฟังก์ชันไม่สามารถเข้าถึงส่วนอื่นๆ ของระบบได้ หากคุณมีฟังก์ชันนับล้าน คุณต้องการให้พวกเขาจัดระเบียบและทำงานอย่างมีประสิทธิภาพภายในพื้นที่ที่พวกเขาดำเนินการ แทนที่จะให้ใช้งานได้ทั่วโลก ฉันใส่กลไกรองรับเครื่องยนต์ไว้ในห้องเครื่อง… ฉันไม่ได้ใส่ไส้กรองน้ำมันเครื่องไว้ที่เบาะหลัง
  4. มรดก - นี่คือความสามารถในการรับคุณสมบัติของโค้ดทั่วไปอื่น (คลาส) เพื่อนำมาใช้ซ้ำสำหรับฟังก์ชันใหม่โดยไม่ต้องเขียนซ้ำ การสืบทอดเป็นแนวทางการพัฒนาเชิงวัตถุที่ดีอีกวิธีหนึ่ง คาร์ซีทของฉันสามารถใช้อุ้มเด็กหรือผู้ใหญ่ได้ - ไม่ว่าใครก็ตามที่นั่งอยู่ในนั้น
  5. normalization - นี่คือวิธีการจัดระเบียบข้อมูลให้มีประสิทธิภาพมากขึ้นในฐานข้อมูลโดยการสร้างข้อมูลอ้างอิง ตัวอย่างเช่นถ้าฉันต้องบันทึกสัญญาณไฟจราจรทั้งวัน…แดงเหลืองและเขียว แทนที่จะเขียนแต่ละระเบียนด้วยสีแดงสีเหลืองและสีเขียว - ฉันเขียน 1, 2 และ 3 แล้วสร้างตารางอื่นโดยที่ 1 = สีแดง 2 = สีเหลืองและ 3 = สีเขียว วิธีนี้ฉันบันทึกสีแดงเหลืองและเขียวเพียงครั้งเดียว ประตูรถแต่ละบานของฉันมีมือจับประตูเหมือนกัน ด้ามจับหนึ่งด้ามใช้ในสถานที่ต่างๆ 4 แห่งแทนที่จะเป็นด้ามจับที่แตกต่างกัน 4 ด้าม
  6. เชิงวัตถุ - ในภาษาโปรแกรมสมัยใหม่นี่เป็นวิธีการออกแบบที่ช่วยให้คุณสามารถเขียนโค้ดเฉพาะเป็นชิ้น ๆ ตามฟังก์ชันการทำงานแล้วนำมาใช้ใหม่ ตัวอย่างเช่นหากฉันต้องการตรวจสอบที่อยู่อีเมลที่สร้างขึ้นอย่างถูกต้อง ฉันสามารถสร้างฟังก์ชั่นครั้งเดียวจากนั้นใช้งานได้ทุกที่ที่ฉันต้องการในแอปพลิเคชันของฉัน รถของฉันมีขอบล้อ 18 วงที่สามารถใช้กับรถคันอื่นโดยผู้ผลิตรายเดียวกันหรือรายอื่นได้
  7. ความหลากหลาย – อันนี้อธิบายยาก แต่โดยพื้นฐานแล้วมันคือความสามารถในการพัฒนาโค้ดที่สามารถใช้แบบไดนามิกสำหรับสถานการณ์อื่นๆ กล่าวอีกนัยหนึ่ง มันสามารถสืบทอดฟังก์ชันการทำงานที่ไม่เหมือนใครและเป็นไดนามิกได้อย่างง่ายดายโดยวิธีการอ้างอิง นี่เป็นวิธีการพัฒนาที่มีประสิทธิภาพมาก ฉันสามารถใช้เต้ารับไฟฟ้าของรถยนต์เพื่อชาร์จโทรศัพท์หรือจ่ายน้ำผลไม้ไปที่ปั๊มยางรถยนต์
  8. Recursion – นี่เป็นวิธีการที่โค้ดอ้างอิงถึงตัวมันเอง บางครั้งก็มีประสิทธิภาพและตั้งใจ แต่บางครั้งอาจทำให้แอปพลิเคชันของคุณไม่สามารถควบคุมได้ ฉันคลิกค้นหาเครื่องเสียงในรถของฉันและมันวนผ่านสถานีวิทยุ มันไม่จบเพียงแค่ดำเนินต่อไป
  9. refactoring - นี่คือกระบวนการเขียนโค้ดใหม่เพื่อให้ง่ายต่อการติดตามหรือจัดระเบียบให้ดีขึ้น แต่ไม่จำเป็นต้องเพิ่มฟังก์ชันเพิ่มเติมใด ๆ ฉันสร้างเครื่องยนต์ใหม่
  10. สถาปัตยกรรมเชิงเซิร์ฟเวอร์ (SOA) - ใช้การเขียนโปรแกรมเชิงวัตถุและนำไปใช้กับระบบขนาดใหญ่ซึ่งคุณสามารถมีระบบทั้งหมดที่ทำหน้าที่บางอย่างได้ คุณอาจมีระบบการจัดการลูกค้าสัมพันธ์ที่พูดถึงระบบอีคอมเมิร์ซที่พูดถึงระบบการจัดส่งเป็นต้น ฉันดึงรถพ่วงไปกับรถเพื่อจัดส่งสินค้าจากที่หนึ่งไปยังอีกที่หนึ่ง ฉันใช้เทรลเลอร์ผูกปม (XML) เพื่อเชื่อมต่อ

ฉันตระหนักดีว่าคำอุปมาของฉันไม่ได้ตรงเป้าหมายเสมอไป ฉันหวังว่าพวกเขาจะช่วยได้เล็กน้อย!

คำแนะนำบางประการเมื่อคุณได้ยินคำเหล่านี้ในการประชุมครั้งต่อไปกับนักพัฒนา... อย่าวิ่งกลับไปที่ที่นั่งของคุณและมองหามัน วิกิพีเดียพวกเขาจะคอยดู อย่าสะดุ้ง พวกมันจะโจมตี นี่คือสิ่งที่ต้องทำ… ไตร่ตรองออกไปนอกหน้าต่างราวกับว่าคุณกำลังครุ่นคิดอยู่ลึกๆ แล้วมองย้อนกลับไปด้วยรูปลักษณ์ที่อยากรู้อยากเห็นหรือเกาคางของคุณ รอพวกเขาติดตามการประกาศพร้อมข้อมูลเพิ่มเติม

… พวกเขากำลังดูอยู่

8 คอมเมนต์

  1. 1

    ฮ่า ๆ คุณตอกมันจริงๆ Doug 🙂คุณพยายามที่จะให้เราออกจากธุรกิจหรือไม่? คุณรู้ดีว่าเราคิดว่าแนวคิดเหล่านั้นไม่เข้าใจดังนั้นจึงมีทางร่วมกับลูกค้า ตอนนี้เราต้องหาวิธีที่จะทำให้พวกเขาหายไป การรวมกัน คำศัพท์เหล่านั้นเพื่อสร้างวลียักษ์หนึ่งคำที่อาจเป็นเช่นนี้:

    คุณทราบหรือไม่ว่าคุณลักษณะที่คุณพยายามใส่เข้าไปนั้นสามารถนำไปใช้กับออบเจ็กต์หลายชิ้นที่ห่อหุ้มฟังก์ชันการทำงานและสื่อสารผ่าน architecutre ที่เน้นบริการ

  2. 5

    ในฐานะนักพัฒนาซอฟต์แวร์ฉันขอขอบคุณโพสต์นี้ พวกเราไม่ได้แย่ขนาดนั้นหรอกนะ😉ฉันจะไม่พูดพล่อยๆกับคนเทคโนแบบนี้🙂

    ให้ฉันลองคิดคำศัพท์เพิ่มเติมสำหรับคุณ….

คุณคิดอย่างไร?

ไซต์นี้ใช้ Akismet เพื่อลดสแปม เรียนรู้วิธีการประมวลผลข้อมูลความคิดเห็นของคุณ.