JavaRush /จาวาบล็อก /Random-TH /คอฟฟี่เบรค #131. บทบาทของ Java ในการพัฒนาเว็บและแอปพลิเคช...

คอฟฟี่เบรค #131. บทบาทของ Java ในการพัฒนาเว็บและแอปพลิเคชันมือถือ การเขียนโปรแกรมเชิงฟังก์ชัน - ข้อดีและข้อเสีย

เผยแพร่ในกลุ่ม

บทบาทของ Java ในการพัฒนาเว็บและแอปพลิเคชันมือถือ

ที่มา: DZone Java เป็นหนึ่งในภาษาการเขียนโปรแกรมที่ใช้มากที่สุด มีการใช้อย่างแข็งขันในการพัฒนาแอปพลิเคชันขององค์กร เว็บ และมือถือ Java มีแอปพลิเคชันในอุตสาหกรรมเทคโนโลยีชั้นนำ ตั้งแต่ Data Science ไปจนถึง AR/VR แม้ว่าการพัฒนาองค์กรใน Java จะเป็นกรณีการใช้งานที่ได้รับความนิยมมากที่สุดสำหรับภาษานี้ แต่แอปพลิเคชันบนเว็บและมือถือก็ถือว่าเป็นหนึ่งในพื้นที่ที่ใช้ Java เช่นกัน คอฟฟี่เบรค #131.  บทบาทของ Java ในการพัฒนาเว็บและแอปพลิเคชันมือถือ  การเขียนโปรแกรมเชิงฟังก์ชัน - ข้อดีและข้อเสีย - 1มาดูกันว่าเหตุใดการพัฒนา Java จึงได้รับความนิยมบนเว็บและอุปกรณ์มือถือในช่วงสองทศวรรษที่ผ่านมา สาเหตุหลักประการหนึ่งในการใช้ Java สำหรับเว็บและอุปกรณ์พกพาคือเป็นภาษาโปรแกรมที่มีประสิทธิภาพสูง ช่วยให้มั่นใจได้ว่าแอปพลิเคชันของคุณสามารถทำงานได้อย่างรวดเร็วและไม่มีข้อผิดพลาดในการประมวลผล ยังมีสาเหตุอื่นอีก:

1. โอเพ่นซอร์ส

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

2. ข้ามแพลตฟอร์ม

ข้อดีอีกประการหนึ่งของการเขียนโปรแกรมใน Java ก็คือเป็นภาษาข้ามแพลตฟอร์ม นักพัฒนาสามารถเขียนโค้ดบน Windows และรันบน macOS และ Linux หลักการ “เขียนครั้งเดียวทำงานทุกที่” นำมาใช้ได้ที่นี่ ซึ่งช่วยให้นักพัฒนาทำงานบนระบบที่แตกต่างกันได้ง่ายขึ้น และทำให้กระบวนการทดสอบบนเครื่องต่างๆ ง่ายขึ้น ตัวอย่างเช่น นักพัฒนาสามารถทดสอบว่าโปรแกรมจะทำงานอย่างถูกต้องบนหน้าจอขนาดหน้าจอและระบบปฏิบัติการที่แตกต่างกันหรือไม่

3. เป็นมิตรกับมือถือ

Java เป็นเทคโนโลยียอดนิยมสำหรับแอปพลิเคชันบนมือถือ นักพัฒนาแอป Android ส่วนใหญ่ใช้ภาษา Java เนื่องจากใช้งานง่าย มีคุณสมบัติด้านความปลอดภัย และความสามารถข้ามแพลตฟอร์ม Android ต้องการภาษาที่มีประสิทธิภาพในการปรับขนาดแอปพลิเคชัน แต่ Java มีความสามารถในการปรับขนาดที่น่าทึ่ง นอกจากนี้ยังทำให้กระบวนการทดสอบแอปพลิเคชัน Android ง่ายขึ้นอีกด้วย ทั้งหมดนี้แสดงให้เห็นว่าเป็นภาษาโปรแกรมที่เชื่อถือได้และมีไดนามิกสำหรับการสร้างแอปพลิเคชันบนมือถือ

4. เครื่องมือและห้องสมุด

ข้อดีที่สำคัญที่สุดประการหนึ่งของ Java ก็คือความเข้ากันได้กับเครื่องมือต่างๆ เฟรมเวิร์กเช่น Spring, Hibernate, Struts, Spark และอื่นๆ ช่วยให้กระบวนการพัฒนาง่ายขึ้นอย่างมาก เครื่องมือทั้งหมดเหล่านี้มีคุณสมบัติที่หลากหลายสำหรับการสร้างแอปพลิเคชันเชิงโต้ตอบและไดนามิก ไลบรารีเช่น Apache Commons, Java Standard Libraries, Maven, Jackson ฯลฯ ช่วยให้นักพัฒนาสามารถเพิ่มฟังก์ชันการทำงานได้โดยไม่ต้องเขียนโค้ดตั้งแต่ต้น

5. ชุมชนที่กระตือรือร้น

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

การเพิ่มขึ้นของ Java ในการพัฒนาแอปพลิเคชันเว็บ

นับตั้งแต่ก่อตั้งในปี 1995 โดย Sun Microsystems ภาษา Java ได้กลายเป็นหนึ่งในลำดับความสำคัญในอุตสาหกรรมการเขียนโปรแกรม ปัจจุบัน บริษัทจากทั่วโลกใช้ภาษาการเขียนโปรแกรมนี้เพื่อสร้างเว็บแอปพลิเคชัน Google, Netflix, Spotify และ Pinterest เป็นเพียงบริษัทไม่กี่แห่งที่ใช้ Java ในกลุ่มเทคโนโลยีของตน ผู้เชี่ยวชาญประเมินว่ามากกว่า 60% ของบริษัทที่ทำงานด้านไอทีใช้ Java ในรูปแบบใดรูปแบบหนึ่ง ยิ่งไปกว่านั้น มันยังคงเป็นภาษาโปรแกรมยอดนิยมเนื่องจากการนำไปใช้ในด้านอื่น ๆ ของการพัฒนาเว็บ เช่น การประมวลผลแบบคลาวด์ โซเชียลมีเดีย การพัฒนาองค์กร AR, VR และอื่น ๆ เป็นภาษาการเขียนโปรแกรมที่ยอดเยี่ยมและทรงพลังสำหรับใช้ในองค์กรที่ขณะนี้ต้องการสถาปัตยกรรมบนคลาวด์ เมื่อรวมกับ JavaScript แล้ว Java จะช่วยให้คุณสร้างเว็บแอปพลิเคชันประสิทธิภาพสูงที่สามารถทำงานบนแพลตฟอร์มใดก็ได้

การเพิ่มขึ้นของ Java ในกรณีการใช้งานสมัยใหม่

นอกเหนือจากการพัฒนาเว็บไซต์และการพัฒนามือถือแล้ว Java ยังได้สร้างชื่อเสียงในโลกเทคโนโลยีสมัยใหม่อีกด้วย ปัจจุบัน Java เป็นภาษาโปรแกรมที่มีประโยชน์อย่างยิ่งสำหรับการใช้งานทางวิทยาศาสตร์ มีสภาพแวดล้อมที่ปลอดภัย รวดเร็ว และพกพาได้สำหรับการประมวลผลทางวิทยาศาสตร์ MATLAB เป็นหนึ่งในไลบรารีที่ได้รับความนิยมมากที่สุดสำหรับแอปพลิเคชันทางวิทยาศาสตร์บน Java
  • Java ยังมีประโยชน์ในการพัฒนาส่วนหน้าและส่วนหลังของแอปพลิเคชันทางวิทยาศาสตร์ คุณสามารถใช้ Struts และ Java Server Pages สำหรับการพัฒนาส่วนหน้าและ Java Core สำหรับการพัฒนาแอปพลิเคชันทางวิทยาศาสตร์ส่วนหลัง

  • Java ยังมีประโยชน์สำหรับการวิเคราะห์ข้อมูลอีกด้วย ช่วยให้นักพัฒนาสามารถสร้างโซลูชันการวิเคราะห์ข้อมูลโดยใช้ไลบรารีและเครื่องมือต่างๆ ปัจจุบัน Java ได้พบแอปพลิเคชันในส่วน Internet of Things เป็นเทคโนโลยีสำคัญในระบบฝังตัว เช่น สมาร์ทการ์ดและเซ็นเซอร์ ดังนั้นบริษัทต่างๆ จึงใช้ภาษาการเขียนโปรแกรมนี้ในอุตสาหกรรมระบบอัตโนมัติภายในบ้าน นอกจากนี้ยังใช้อย่างแข็งขันในการพัฒนาเทคโนโลยีอุปกรณ์สตรีมมิ่งและสมาร์ททีวี

  • แพลตฟอร์มข้อมูลขนาดใหญ่ Hadoop เขียนด้วยภาษา Java เนื่องจากเป็นโอเพ่นซอร์สและภาษาเชิงวัตถุ จึงเป็นรากฐานที่สำคัญสำหรับแอปพลิเคชัน Big Data ภาษาโปรแกรมอย่าง Scala สามารถรันบน Java Virtual Machine ได้อย่างง่ายดายและทำให้การวิเคราะห์ Big Data ง่ายขึ้น

  • การเล่นเกมเป็นอุตสาหกรรมเกิดใหม่และเติบโตอย่างรวดเร็ว ซึ่ง Java ถูกนำมาใช้อย่างแพร่หลายสำหรับแอพพลิเคชั่นเกมต่างๆ ตัวอย่างเช่น มีการรองรับ jMonkeyEngine ซึ่งเป็นเอ็นจิ้นการพัฒนาเกมโอเพ่นซอร์ส 3 มิติที่ใหญ่ที่สุด นอกจากนี้ Dalvik Virtual Machine (DVM) ยังรองรับ Java เป็นหลัก และใช้เพื่อสร้างเกมแบบโต้ตอบสำหรับ Android

การเขียนโปรแกรมเชิงฟังก์ชัน - ข้อดีและข้อเสีย

ที่มา: Dev.to แม้ว่าฉันจะมีความกังขาต่อเทคโนโลยีที่ไม่คุ้นเคย แต่ฉันก็ตระหนักถึงประโยชน์ของการเขียนโปรแกรมเชิงฟังก์ชัน ด้านล่างนี้เป็นรายการข้อดีโดยประมาณที่อธิบายกระบวนทัศน์การเขียนโปรแกรมนี้ คอฟฟี่เบรค #131.  บทบาทของ Java ในการพัฒนาเว็บและแอปพลิเคชันมือถือ  การเขียนโปรแกรมเชิงฟังก์ชัน - ข้อดีและข้อเสีย - 2

การทำงานพร้อมกันอย่างปลอดภัย

วิธีการทำงานส่งเสริมการทำงานพร้อมกันอย่างปลอดภัย นั่นคือ ความสามารถในการรันงานในเธรดที่แยกจากกัน โดยไม่ทำให้เกิดข้อขัดแย้งของเธรดหรือการแก้ไขการชนกัน เหตุผลก็คือ คุณจะไม่ได้แชร์ออบเจ็กต์ซึ่งสถานะสามารถเปลี่ยนแปลงได้ในระหว่างการประมวลผล ซึ่งต่างจากวิธีการแบบออบเจ็กต์ มีทางเข้าออกและทางเข้าไม่เปลี่ยนเพราะคุณ ใน Java แม้ว่าคุณจะใช้วัตถุ "thread-safe" คุณไม่สามารถรับประกันได้ว่าวัตถุเหล่านั้นจะมีค่าเหมือนกันเมื่อมีการเรียกใช้เมธอดของคุณ ในตัวอย่างด้านล่าง เราจะเห็นว่าลูปที่ประมวลผลองค์ประกอบทีละรายการสามารถประมวลผลแบบขนานได้อย่างง่ายดายโดยใช้ฟังก์ชัน lambda ภายในเธรด
for( String item : items ) {
   process(item);
}
และตอนนี้มันกลายเป็น:
items.parallelStream().forEach( item -> process(item) );

I/O ที่รวดเร็ว

Functional Programming รองรับแนวทางที่แตกต่างจากมัลติเธรด ซึ่งหมายความว่าเราไม่มีเธรดแยกที่รอการตอบสนอง I/O เช่น การเรียกฐานข้อมูลอีกต่อไป นั่นคือเราเพิ่มการใช้งาน CPU และแบนด์วิธให้สูงสุด สำหรับการใช้งานที่มีประสิทธิภาพสูงนี่เป็นข้อได้เปรียบที่ชัดเจน สิ่งนี้ถูกนำไปใช้กับแนวคิดที่ว่าการเรียกใช้ฟังก์ชันสามารถส่งคืน Future ซึ่งไม่ใช่ผลลัพธ์ที่แท้จริงของการโทร แต่เป็นคำสัญญาว่าจะส่งคืนผลลัพธ์ ณ จุดใดจุดหนึ่งในอนาคต ณ จุดใดจุดหนึ่งในอนาคตจะได้รับค่าตอบแทนที่เรียกใช้ฟังก์ชัน ซึ่งหมายความว่าเธรดตัวประมวลผลไม่ต้องรอให้ฐานข้อมูลหรือการเรียก REST เสร็จสิ้นและสามารถทำอย่างอื่นได้

ความกระชับของการแสดงออก

นักพัฒนาซอฟต์แวร์ต้องการที่จะสามารถแสดงความคิดเห็นที่ซับซ้อนได้อย่างสวยงาม การเขียนโปรแกรมเชิงฟังก์ชันช่วยให้คุณทำสิ่งนี้ได้อย่างกระชับ ตัวอย่างเช่น โครงสร้างทั่วไป เช่น for loops สามารถถูกแทนที่ด้วย threads ซึ่งเป็นนามธรรมทั่วไปสำหรับการดำเนินการที่ใช้ loops ไม่ต้องสงสัยเลยว่าการเพิ่มฟังก์ชันและเธรดของ Lambda ให้กับ Java ได้ขยายความสามารถในการแสดงแนวคิดที่ก่อนหน้านี้เป็นไปไม่ได้

ทำไมไม่กลายเป็นฟังก์ชันล่ะ?

เพื่อย้ำย้ำข้างต้น: Functional Coding มีประโยชน์มากมาย ดังนั้นบทความนี้จึงไม่ได้พยายามสรุปทุกอย่างให้อยู่ในกรณีเดียวและบอกว่าคุณควรทำ Functional Programming หรือกลับกันอย่างแน่นอน การตัดสินใจครั้งนี้จะต้องกระทำด้วยความเข้าใจที่ชัดเจนถึงสาเหตุของการเปลี่ยนแปลงและปัญหาที่อาจเกิดขึ้น

เป็นเรื่องยากเสมอที่จะเข้าใจโดยสัญชาตญาณ

เมื่อเขียนโค้ดคุณกำลังพยายามสื่อสารกับคอมพิวเตอร์หรือไม่? หากการสื่อสารกับคอมพิวเตอร์มีความสำคัญต่อคุณมาก ทำไมไม่เขียนรหัสเครื่องล่ะ แน่นอนว่านี่เป็นเรื่องยากมากภาษาคอมพิวเตอร์จึงถูกคิดค้นขึ้นเพื่อให้ง่ายขึ้น นอกจากนี้ยังอนุญาตให้โปรแกรมเมอร์สร้างสำนวนที่โปรแกรมเมอร์คนอื่นสามารถเข้าใจได้ เมื่อซอฟต์แวร์มีขนาดใหญ่ขึ้นและซับซ้อนมากขึ้น เราจำเป็นต้องมีกลยุทธ์ในการจัดการความซับซ้อน เราบรรลุเป้าหมายนี้ผ่านการสรุปและการซ่อนข้อมูล คลาสที่คุณใช้ใน Java เพื่อส่งอีเมลค่อนข้างซับซ้อน แต่อินเทอร์เฟซของคลาสนี้เรียบง่าย มันซ่อนการใช้งานโดยละเอียด โดยแสดงให้เราทราบเฉพาะด้านนอกของการควบคุมเท่านั้น คุณลักษณะของภาษา เช่น วงเล็บปีกกาและวงเล็บเหลี่ยมบอกเราเกี่ยวกับโครงสร้าง เช่น คำสั่งแบบมีเงื่อนไขและลูป ตอนนี้เราย้ายลูปหรือการเรียกซ้ำและเงื่อนไขเป็นฟังก์ชัน:
for( String item : items ) {
    System.out.println(item);
}
ปรากฎว่า:
items.foreach( item -> System.out.println(item) );
วิธีการสตรีมมิ่งและแลมบ์ดานั้นสั้นกว่าอย่างแน่นอน คุณสามารถแสดงฟังก์ชันการทำงานเดียวกันโดยใช้โค้ดน้อยลง ปัญหาคือตอนนี้เรากำลังซ่อนพฤติกรรมที่แท้จริงไว้ในวิธีการที่เราต้องรู้ ลูปใน Java ใช้คีย์เวิร์ด ในทางกลับกัน ฟังก์ชัน lambda สามารถใช้การเรียกซ้ำในรูปแบบต่างๆ ได้ และมีเพียงชื่อที่นี่เท่านั้นที่บ่งชี้ว่าฟังก์ชันนี้ทำหน้าที่อะไร ตัวอย่างเช่น:
boo.fooble( item -> System.out.println(item) );
คุณไม่สามารถอ่านโค้ดเพื่อทำความเข้าใจโครงสร้างได้อีกต่อไป ทำให้ยากต่อการติดตามขั้นตอนการดำเนินการ คุณสมบัติอีกอย่างหนึ่งคือการผูกมัดฟังก์ชัน โดยที่ผลลัพธ์ของฟังก์ชันหนึ่งคือการป้อนข้อมูลของฟังก์ชันถัดไปโดยไม่ต้องกำหนดตัวแปรระดับกลาง
boolean result = boo
    .fooble( /*some code*/ )
    .bobble( /*some code*/)
    .goober( /*some code*/);
นี่อาจดูสมเหตุสมผลสำหรับผู้เขียนโค้ดนี้ เพราะดูเหมือนว่าเขาจะเขียนทุกฟังก์ชันแล้วและรู้ว่ามันทำอะไร อย่างไรก็ตาม สำหรับผู้ที่เพิ่งเริ่มใช้โค้ด นี่ไม่ได้บอกคุณมากนักเกี่ยวกับพารามิเตอร์ กระบวนการ หรือค่าที่ส่งคืนของแต่ละฟังก์ชัน แต่ถ้าคุณเขียนสิ่งเดียวกันในสิ่งที่กำหนดประเภท คุณจะได้:
Car car = boo.fooble( /*some parameters*/);
Tyre tyre = car.bobble( /*some parameters*/);
int pressure = tyre.goober( /*some parameters*/);
นี่อาจไม่ใช่การเปรียบเทียบที่สมบูรณ์แบบ เนื่องจากพารามิเตอร์และฟังก์ชันที่ไม่ระบุชื่อไม่ใช่สิ่งเดียวกัน แต่ประเด็นก็คือ ประโยคยาวๆ ที่ไม่ทราบผลลัพธ์และพารามิเตอร์นั้นอ่านได้ยากหากไม่มีความเข้าใจอย่างลึกซึ้งว่าฟังก์ชันที่อธิบายไว้ด้านล่างทำหน้าที่อะไร ดังนั้นจึงเป็นไปได้ว่าการเขียนโปรแกรมเชิงฟังก์ชั่นนั้นแสดงออกได้ชัดเจนในส่วนโค้ดสั้น ๆ อย่างน่าประหลาดใจ แต่สำหรับผู้ที่เพิ่งเริ่มใช้ซอฟต์แวร์นี้ไม่สามารถเข้าใจได้ จุดประสงค์ของคลาสและอินเทอร์เฟซคือการซ่อนข้อมูล เพื่อสร้างโค้ดที่นำมาใช้ซ้ำได้ซึ่งไม่จำเป็นต้องให้นักพัฒนาเข้าใจหรืออาจดูที่การใช้งานด้วยซ้ำ สิ่งเหล่านี้มีอยู่เพื่อให้นักพัฒนาสามารถทำงานบนระบบขนาดใหญ่และซับซ้อนได้โดยไม่ต้องปวดหัว นี่เป็นวิธีที่สะดวกในการจัดระเบียบโค้ดที่เกี่ยวข้องกับเอนทิตีเฉพาะ อย่างไรก็ตาม ฉันมีความเข้าใจเพียงเล็กน้อยว่า Functional Programming ช่วยจัดโครงสร้างโครงการขนาดใหญ่ที่ซับซ้อนได้อย่างไร อาจมีเหตุผลส่วนตัวสำหรับเรื่องนี้

เพื่อสร้างความประทับใจให้ผู้อื่นด้วยทักษะของคุณ

นักพัฒนาซอฟต์แวร์บางรายขาดความมั่นใจในทักษะของตนมากจนพยายามสร้างความประทับใจด้วยการเขียนโค้ดที่ซับซ้อนโดยไม่จำเป็น ในฐานะนักพัฒนาอาวุโส ฉันไม่ชื่นชมนักพัฒนาซอฟต์แวร์รายอื่นที่พยายามเขียนโค้ดอัจฉริยะเป็นพิเศษ แน่นอนว่านี่ไม่เพียงแค่นำไปใช้กับการเขียนโปรแกรมเชิงฟังก์ชันเท่านั้น สิ่งเดียวกันนี้สามารถเกิดขึ้นได้ในทุกรูปแบบการเขียนโค้ด แต่ฉันสังเกตเห็นความไร้สาระทางปัญญาบางอย่างในหมู่ผู้เสนอการเขียนโปรแกรมเชิงฟังก์ชัน ประเด็นก็คือนักพัฒนาซอฟต์แวร์ไม่ได้ทำงานในสุญญากาศ โค้ดที่ "ชาญฉลาด" นี้จะต้องได้รับการบำรุงรักษา และหากเข้าใจยาก ก็จะอ่านและเปลี่ยนแปลงได้ยาก และแก้ไขจุดบกพร่องได้ยาก เมื่อจัดการทีม เรามีบุคลากรทุกระดับ ดังนั้นสิ่งที่ฉลาดที่สุดที่ต้องทำคือเขียนโค้ดในลักษณะที่ทุกคนที่เกี่ยวข้องสามารถเข้าใจได้ นี่คือเหตุผลว่าทำไมเราถึงมีชื่อตัวแปรที่ยาวชัดเจน ดังนั้นเราจึงจำกัดความยาวของวิธีการ โค้ด "อัจฉริยะ" จะใช้เวลาเพิ่ม ดังนั้นการเขียนโค้ดจึงไม่ฉลาดนัก ฉันเชื่อว่าการเขียนโปรแกรมเชิงฟังก์ชันใช้ข้อโต้แย้งเดียวกันกับนิพจน์ที่กระชับและทรงพลังซึ่ง Perl ทำไว้เมื่อหลายปีก่อน ผู้สนับสนุน Perl มีความภาคภูมิใจในความแสดงออกของ Perl วิธีที่พวกเขาสามารถเขียนโปรแกรมที่มีประสิทธิภาพมากโดยใช้โค้ดเพียงไม่กี่บรรทัด มันเป็นเรื่องจริง ปัญหาคือพวกเขาเข้าใจยาก บางทีการเขียนโปรแกรมเชิงฟังก์ชันอาจติดกับดักเดียวกัน

เพราะมันเป็นแฟชั่นใหม่

มีเทคโนโลยีหรือกระบวนทัศน์ใหม่ที่ "ร้อนแรง" อยู่เสมอ เทคโนโลยี ภาษา และแนวทางใหม่ๆ เกิดขึ้นอย่างต่อเนื่อง เราต้องท้าทายตัวเองอย่างต่อเนื่องและเรียนรู้สิ่งใหม่ๆ การเป็นนักพัฒนาซอฟต์แวร์หมายถึงความก้าวหน้าทางเทคโนโลยี แต่ในฐานะนักพัฒนาซอฟต์แวร์ เราต้องประเมินตัวเองว่าเราต้องการเทคโนโลยีใดเพื่อสร้างผลิตภัณฑ์ การเรียนรู้เทคโนโลยียอดนิยมใหม่ๆ เพียงเพราะว่ามันเป็นที่นิยมนั้นไม่ใช่การใช้เวลาอย่างฉลาด นี่ไม่ได้หมายความว่าคุณไม่ควรเรียนรู้การเขียนโปรแกรมเชิงฟังก์ชัน แต่ควรประเมินข้อดีข้อเสียของกระบวนทัศน์นี้สำหรับแอปพลิเคชันที่คุณกำลังเขียน

เพราะนี่เป็นวิธีเดียวที่แท้จริง

หลายครั้งก่อนหน้านี้ ฉันเคยเห็นนักพัฒนาส่งเสริมแนวทางนี้หรือแนวทางนั้นเป็นวิธีเดียวที่ถูกต้อง แต่อย่างที่เพื่อนบอกฉัน งานที่แตกต่างกันต้องใช้เครื่องมือที่แตกต่างกัน ตัวอย่างเช่น โดยส่วนตัวแล้วฉันใช้ Python และ PyTorch สำหรับปัญญาประดิษฐ์ แม้ว่าจะมีเครื่องมือและเทคโนโลยีอื่นๆ อีกมากมาย ซึ่งแต่ละอย่างก็มีข้อดีและข้อเสียต่างกันไป มีเหตุผลที่ดีในการพิจารณาการเขียนโปรแกรมเชิงฟังก์ชันให้เป็นทางเลือกสำหรับบริการที่ต้องการความสามารถในการขยายขนาดได้อย่างมาก นี่เป็นเพราะความปลอดภัยในการทำงานพร้อมกันที่นำเสนอโดยแนวทางนี้ แต่คุณควรคำนึงถึงต้นทุนและความเสี่ยงที่อาจเกิดขึ้นด้วย ไม่กี่ปีที่ผ่านมา ฉันมีประสบการณ์คล้ายกันกับ dependency insert และ Spring ก็ถือว่าดีที่สุดสำหรับงานนี้ เมื่อฉันถามผู้สนับสนุน Spring ว่ามีประโยชน์อะไรบ้าง พวกเขาไม่ได้ให้คำตอบที่ชัดเจนแก่ฉัน ตอนนี้ฉันเห็นสิ่งที่คล้ายกันกับผู้เชี่ยวชาญด้านการเขียนโปรแกรมเชิงฟังก์ชันบางคนที่ดูเหมือนจะมีส่วนร่วมในการรณรงค์ทางศาสนาบางประเภทมากกว่าการประเมินเทคโนโลยีอย่างเป็นกลาง อย่างไรก็ตาม การฉีดพึ่งพาเป็นแนวคิดที่ดี และตอนนี้ฉันสามารถระบุประโยชน์ของมันได้อย่างชัดเจน ในทำนองเดียวกัน ฉันคิดว่าความกังวลของฉันเกี่ยวกับ Functional Programming เกี่ยวข้องกับวิธีใช้งาน มากกว่าที่จะเป็นประโยชน์และถูกต้องหรือไม่

บทสรุป

ประเด็นของบทความนี้ไม่ได้ให้คำตอบที่ชัดเจนสำหรับคำถามที่ว่าคุณควรทำ Functional Programming หรือไม่ ประเด็นอยู่ที่ว่าคุณประเมินเทคโนโลยีหรือแนวทางใหม่อย่างไร สิ่งสำคัญ: อย่าปล่อยให้อัตตาของคุณปิดกั้นการประเมินตามวัตถุประสงค์จากคุณ การพัฒนาซอฟต์แวร์ไม่ได้พิสูจน์ความสามารถทางปัญญาหรือคุณสมบัติส่วนบุคคลของคุณ เป็นเรื่องเกี่ยวกับการสร้างมูลค่าในโลกแห่งความเป็นจริง หาก Functional Programming ช่วยคุณได้ ก็ใช้มัน
ความคิดเห็น
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION