โปรเจ็กต์นี้สร้างขึ้นเพื่อแสดงการใช้มาโครที่พัฒนาโดยใช้ VBA สำหรับ Excel ซึ่งสามารถใช้เพื่อรวบรวมและแสดงข้อมูลจากกลุ่มหุ้นพลังงานสีเขียวที่เลือกได้โดยอัตโนมัติ ข้อมูลนี้ใช้เพื่อแสดงความสามารถในการใช้มาโครและวิธีทำให้มาโครทำงานอัตโนมัติโดยใช้อินเทอร์เฟซกราฟิก เช่น ปุ่มเพื่อให้ใช้งานซ้ำได้ สำหรับโครงการนี้มีการใช้ข้อมูลหุ้น 12 หุ้นที่รวบรวมในปี 2560 และ 2561 ข้อมูลที่ใช้ ได้แก่ รหัสหุ้น มูลค่าหุ้นเปิดและปิด และปริมาณการซื้อขายรายวันในแต่ละวัน จากนี้เราสามารถกำหนดราคาหุ้นตัวแรกและตัวสุดท้ายและปริมาณการซื้อขายโดยรวมของหุ้นแต่ละตัวที่กำลังวิเคราะห์ได้
เป้าหมายอีกประการหนึ่งของโปรเจ็กต์นี้คือการดูวิธีปรับปรุงประสิทธิภาพของโค้ดโดยใช้การปรับโครงสร้างใหม่เพื่อเพิ่มประสิทธิภาพพลังการประมวลผลที่จำเป็นในการทำให้มาโครสมบูรณ์ สำหรับสิ่งนี้ เราใช้โค้ดเวอร์ชันเริ่มต้นซึ่งใช้งานได้ แต่จำเป็นต้องให้โปรแกรมทำการเปลี่ยนแปลงชุดข้อมูลทั้งหมดสำหรับตัวแสดงหุ้นแต่ละตัวที่เราต้องการวิเคราะห์ เป้าหมายคือการพัฒนาเวอร์ชันที่ได้รับการปรับโครงสร้างใหม่ของโค้ดต้นฉบับ ซึ่งต้องการให้โปรแกรมดำเนินการเฉพาะเมื่อมีการเปลี่ยนชุดข้อมูล และได้รับข้อมูลเดียวกันกับเวอร์ชันแรก
ในการเริ่มต้น เราได้พัฒนาโค้ดการทำงานที่อนุญาตให้รวบรวมปริมาณสต็อกรวมต่อปีและผลการดำเนินงานปีต่อปีของแต่ละหุ้นที่เราต้องการวิเคราะห์ ดังที่เห็นในโค้ดที่เราให้ไว้ด้านล่าง ข้อมูลถูกรวบรวมสำหรับแต่ละหุ้นโดยดำเนินการแก้ไขชุดข้อมูลให้เสร็จสิ้น และแทรกข้อมูลลงในแผ่นงาน Excel ก่อนที่จะย้ายไปยังหุ้นถัดไป
สิ่งที่ฝังอยู่ในโค้ดคือตัวจับเวลาที่จะแสดงเวลาที่โปรแกรมทำงานและแสดงผลลัพธ์ การใช้สิ่งนี้ทำให้เราสามารถเปรียบเทียบเวลาที่ต้องใช้ในการกรอกโค้ดเริ่มต้นเพื่อรวบรวมข้อมูลสำหรับชุดข้อมูลในแต่ละปี นี่ทำให้เรามีเวลาดำเนินการสำหรับโค้ดในแต่ละปีดังที่เห็นในภาพด้านล่าง แสดงให้เห็นว่าโค้ดเริ่มต้นใช้เวลา 0.6289062 วินาทีในการทำให้ชุดข้อมูลปี 2017 เสร็จสมบูรณ์ และ 0.6171875 ในการทำชุดข้อมูลปี 2018 ให้เสร็จสิ้น
ด้วยการปรับโครงสร้างโค้ดการทำงานเดิมใหม่ การใช้คอมพิวเตอร์อย่างมีประสิทธิภาพมากขึ้นสามารถทำได้โดยการลดจำนวนการเปลี่ยนแปลงรวมของชุดข้อมูล ซึ่งส่งผลให้การดำเนินการของงานเร็วขึ้น หากต้องการปรับโครงสร้างโค้ดนี้ใหม่ จำเป็นต้องเพิ่มสององค์ประกอบลงในมาโครที่กำลังพัฒนา อย่างแรกคือดัชนีสำหรับแต่ละสัญลักษณ์ที่จะทำซ้ำสำหรับแต่ละบรรทัดของข้อมูลในชุดข้อมูลที่กำลังวิเคราะห์ การกล่าวถึงข้อมูลแต่ละบรรทัดภายในชุดข้อมูลนี้ โปรแกรมจะระบุว่ามีสัญลักษณ์ใดอยู่ และจัดเก็บข้อมูลที่เกี่ยวข้องที่เกี่ยวข้องกับค่าดัชนี ประการที่สองคือชุดของอาร์เรย์ข้อมูลเพื่อจัดเก็บจุดข้อมูลหลายจุดสำหรับหุ้นแต่ละตัว เนื่องจากแต่ละค่าที่บันทึกไว้ในอาร์เรย์สามารถดึงข้อมูลได้ตามลำดับที่รวบรวมไว้ จึงเป็นไปได้ที่จะเชื่อมโยงข้อมูลนี้กลับไปยังดัชนีสัญลักษณ์ที่ใช้ การใช้เครื่องมือทั้งสองนี้ทำให้สามารถปรับเปลี่ยนโครงสร้างโค้ดได้ดังที่เห็นในตัวอย่างด้านล่าง
การใช้โค้ดเดียวกันกับที่ใช้ในการกำหนดเวลาดำเนินการของโค้ดเริ่มต้น ทำให้สามารถดูได้ว่ามีการปรับปรุงใด ๆ ในเวลาดำเนินการที่สังเกตได้ในโค้ดที่ปรับโครงสร้างใหม่สำหรับการวิเคราะห์หรือไม่ ดังที่เห็นในภาพด้านล่างเวลาที่ใช้ในการวิเคราะห์ข้อมูลตั้งแต่ปี 2017 และ 2018 มีการแข่งขันโดยใช้โค้ดใหม่และใช้เพื่อเปรียบเทียบกับโค้ดเริ่มต้นที่ใช้ จากนี้เราจะเห็นว่าใช้เวลา 0.5273438 วินาทีในการทำชุดข้อมูลปี 2017 ให้เสร็จสิ้น และ 0.516825 วินาทีในการทำชุดข้อมูลปี 2018 ให้เสร็จสิ้น
จากข้อมูลที่รวบรวมตามเวลาในการดำเนินการโค้ดเริ่มต้นและโค้ดที่ปรับโครงสร้างใหม่ให้เสร็จสิ้น มีการลดลง 0.1015624 วินาทีสำหรับชุดข้อมูลปี 2017 และ 0.1103625 วินาทีสำหรับชุดข้อมูลปี 2018
กระบวนการรีแฟคเตอร์โค้ดมีข้อดีและข้อเสียบางประการสำหรับการใช้งาน ก่อนอื่นเรามาดูข้อดีบางประการกันก่อน
ข้อเสียบางประการของการใช้การปรับโครงสร้างโค้ดใหม่
ในตัวอย่างที่เราแสดงไว้ที่นี่ มีข้อดีและข้อเสียบางประการในการปรับโครงสร้างใหม่ซึ่งเสร็จสมบูรณ์เพื่อปรับปรุงประสิทธิภาพของโค้ด
แง่บวกบางประการที่เป็นผลมาจากการเปลี่ยนแปลงโค้ดมีดังนี้:
ลดเวลาที่ใช้ในการวิเคราะห์ให้เสร็จสิ้นโดยการลดจำนวนการทำซ้ำที่เสร็จสิ้นเพื่อรวบรวมข้อมูล
ส่งผลให้เกิดโค้ดที่แข็งแกร่งยิ่งขึ้นซึ่งสามารถขยายไปยังชุดข้อมูลขนาดใหญ่และเกณฑ์การค้นหาได้มากขึ้น
ใช้อาร์เรย์เพื่อจัดเก็บข้อมูลซึ่งสามารถใช้สำหรับการคำนวณหรือการวิเคราะห์อื่นๆ ได้ หากต้องการการวิเคราะห์ข้อมูลเชิงลึกมากขึ้น
ปัจจัยลบบางประการสำหรับการใช้การปรับโครงสร้างใหม่ในโค้ดนี้มีดังต่อไปนี้
https://www.c-sharpcorner.com/article/pros-and-cons-of-code-refactoring/" ↩ ↩ 2