วิธีการเป็นผู้พัฒนาฟูลสแตก: ตอนที่ 2

เผยแพร่แล้ว: 2017-12-02

นี่เป็นครั้งที่สองในชุดโพสต์เกี่ยวกับการสอนการเขียนโปรแกรมและการพัฒนาแบบฟูลสแตก หากคุณยังไม่ได้ตรวจสอบส่วนแรก ในการเรียนรู้ CS Fundamentals, Algorithms, Design Principles และ Front-end Development คุณสามารถทำได้ที่นี่

แรงจูงใจ

ตอนนี้คุณรู้วิธีสร้างเว็บไซต์แบบสแตติกโดยใช้ HTML, CSS และ Javascript แล้ว แม้ว่าอินเทอร์เน็ตจะได้รับการออกแบบมาเพื่อแชร์หน้าเว็บแบบคงที่ แต่ความสามารถ (และความคาดหวัง) ของเว็บแอปสมัยใหม่ก็เพิ่มขึ้นอย่างมาก เกือบทุกแอปต้องการให้คุณตรวจสอบสิทธิ์ผู้ใช้ ตอบสนองต่อพวกเขา และจำลองสถานการณ์ในโลกแห่งความเป็นจริงให้ใกล้เคียงที่สุด
ในการดำเนินการดังกล่าว คุณต้องรับข้อมูลจากผู้ใช้ (หรือ API) ประมวลผลและสร้างผลลัพธ์ คุณต้องบันทึกข้อมูลนี้และมีกลไกในการระบุผู้ใช้ในครั้งต่อไปที่ผู้ใช้กลับมาใช้แอปของคุณ ในการใช้งานฟังก์ชันเหล่านี้ สแต็กปัจจุบันของเรายังไม่เพียงพอ
สัมภาษณ์กับ Ankit Tomar ผู้ร่วมก่อตั้งและ CTO Bizongo

เซิร์ฟเวอร์จำเป็นต้องประมวลผลข้อมูลผู้ใช้ จัดเก็บไฟล์ แปลงเป็น HTML/CSS/JS จากนั้นเซิร์ฟเวอร์เหล่านี้จะให้บริการแก่เบราว์เซอร์ในรูปแบบที่สามารถนำเสนอต่อผู้ใช้ได้ จำเป็นต้องมีฐานข้อมูลเพื่อจัดเก็บข้อมูลที่สำคัญสำหรับแอปของคุณ ในการตั้งโปรแกรมเซิร์ฟเวอร์ เราต้องการภาษาสคริปต์ฝั่งเซิร์ฟเวอร์ และสำหรับฐานข้อมูล เราจำเป็นต้องมีฐานข้อมูล (duh) และภาษาเพื่อสื่อสารกับเซิร์ฟเวอร์ นี่คือสิ่งที่เรากำลังจะทำในขั้นตอนต่อไป สำหรับ 7 คนแรก อ้างถึงโพสต์ก่อนหน้า!

สารบัญ

ขั้นตอนที่ 8: ภาษาสคริปต์ฝั่งเซิร์ฟเวอร์

ดังที่ได้กล่าวไว้ก่อนหน้านี้ ในการเขียนโปรแกรมและสื่อสารกับเซิร์ฟเวอร์ของคุณ คุณจะต้องรู้ภาษาที่เข้าใจ ต่างจาก front-end ที่ Javascript เป็นตัวเลือกเดียว มีตัวเลือกมากมายให้คุณตั้งโปรแกรมในแบ็กเอนด์ สิ่งที่ได้รับความนิยมมากที่สุดคือ Java, PHP, Python, JavaScript และ Ruby
PHP มีข้อบกพร่อง แต่มีเส้นโค้งการเรียนรู้ที่อ่อนโยนที่สุดจากภาษาและเฟรมเวิร์กทั้งหมดที่ฉันเคยใช้มา และ PHP เป็นเรื่องเกี่ยวกับการเข้ารหัสโซลูชันที่รวดเร็ว (และสกปรก) ดังนั้น ภายในระยะเวลาอันสั้น คุณสามารถสร้างเว็บแอปที่น่าภาคภูมิใจอย่างยิ่ง
วิธีที่จะเป็นนักพัฒนาซอฟต์แวร์เว็บแบบเต็มสแต็ก UpGrad Blog front end backend
Java เป็นภาษาโปรแกรมทั่วไปและอาจเป็นภาษาที่ได้รับความนิยมมากที่สุดตลอดกาล เป็นที่นิยมอย่างมากสำหรับการสร้างแอพมือถือ (บนแพลตฟอร์ม Android) และใช้กันอย่างแพร่หลายในบริษัทเทคโนโลยีรายใหญ่ส่วนใหญ่ Head First Java เป็นสถานที่ที่ยอดเยี่ยมในการเรียนรู้ภาษาที่แพร่หลายนี้
หากต้องการเรียนรู้ Python ฉันขอแนะนำ Learn Python the Hard Way ของ Zed Shaw และ Albert Sweigart ทำให้สิ่งที่น่าเบื่อเป็นอัตโนมัติด้วย Python หากคุณตัดสินใจที่จะใช้ PHP คุณสามารถเรียนรู้พื้นฐานของภาษาบน Codecademy
คุณรู้อยู่แล้วว่าไวยากรณ์ JavaScript มากพอที่จะทำให้มือของคุณสกปรกด้วยเฟรมเวิร์ก JS ของโหนดและแบ็กเอนด์ (เช่น Express) ฉันจะพูดถึง Ruby ในภายหลังร่วมกับ Rails เนื่องจากไม่ค่อยได้ใช้เป็นภาษาสแตนด์อโลน

ขั้นตอนที่ 9: เรียนรู้SQL

สำหรับขั้นตอนต่อไป คุณควรเลือกใช้ SQL (Structured Query Language) เล็กน้อย เป็นฐานข้อมูลภาษาที่สื่อสารด้วย และถึงแม้ว่าคุณอาจไม่ได้ใช้โดยตรงเมื่อเปลี่ยนไปใช้เฟรมเวิร์ก แต่ก็ยังช่วยให้ทราบวิธีสื่อสารกับฐานข้อมูลของคุณโดยตรง ข่าวดีก็คือว่า SQL นั้นง่ายต่อการเรียนรู้อย่างเหลือเชื่อ คุณควรจะสามารถเข้าใจมันได้ดีภายในเวลาไม่กี่ชั่วโมง Head First SQL เป็นแหล่งข้อมูลที่ยอดเยี่ยมสำหรับจุดประสงค์นี้
จะเป็นนักพัฒนา Full Stack ได้อย่างไร: ตอนที่ 1

ขั้นตอนที่ 10: เรียนรู้กรอบงานเว็บฟูลสแตก 'แบบธรรมดา'

ตอนนี้เป็นเวลาที่ดีในการทดสอบกับเฟรมเวิร์กของเว็บที่สามารถทำงานระดับล่างได้เกือบทั้งหมดให้กับคุณ
ไม่มีการขาดแคลนกรอบงานที่ยอดเยี่ยมที่สามารถตอบสนองทุกวัตถุประสงค์เท่าที่จะจินตนาการได้ Rails (เขียนด้วย Ruby), Spring (เขียนด้วย Java) และ Django (เขียนด้วย Python) เป็นเฟรมเวิร์กที่นิยมใช้กันในปัจจุบัน คุณสามารถดู The Rails Tutorial ของ Michael Hartl ได้ฟรี
เท่าที่เกี่ยวข้องกับ Django กวดวิชาบนเว็บไซต์อย่างเป็นทางการเป็นจุดเริ่มต้นที่ดี เมื่อคุณรู้สึกว่าคุณพอใจกับพื้นฐานของเฟรมเวิร์กแล้ว โปรด อ่าน Two Scoops of Django เป็นหนังสือเทคโนโลยีที่ดีที่สุดเล่มหนึ่งเลยทีเดียว
หากคุณตัดสินใจที่จะใช้เส้นทาง Spring ฉันขอแนะนำอย่างยิ่งให้ลงชื่อสมัครใช้ โปรแกรมการพัฒนาซอฟต์แวร์ของ UpGrad & IIIT-B โปรแกรมให้ ภาพรวมแบบองค์รวมของกรอบงานและช่วยให้คุณสร้างแบ็กเอนด์ที่แข็งแกร่งและปรับขนาดได้

ขั้นตอนที่ 11: Javascript Full-Stack Framework และ MEAN Stack

ไม่นานมานี้ Backend Development เคยใช้แนวคิดของวงจรการตอบกลับคำขอ ตัวอย่างเช่น เบราว์เซอร์ส่งคำขอและเซิร์ฟเวอร์ตอบกลับโดยแยกหน้าเว็บออกเป็น HTML อย่างไรก็ตาม ตั้งแต่ต้นปี 2010 แอปพลิเคชันกลายเป็นเรียลไทม์มากขึ้นเรื่อยๆ
โครงสร้างของหน้าเว็บทั้งหมดเปลี่ยนแปลงโดยไม่ต้องรีเฟรชและทำงานแบบไดนามิกตามการป้อนข้อมูลและการโต้ตอบของผู้ใช้ (การแชทด้วยความคิด การชอบ การแสดงความคิดเห็น วิดีโอสดและปฏิกิริยาตอบสนอง ฯลฯ)
วิธีการเป็นนักพัฒนาซอฟต์แวร์เว็บแบบฟูลสแตก Back-end UpGrad Blog
ในสถานการณ์เช่นนี้ รอบการตอบรับคำของ่ายๆ ยังไม่เพียงพอ ดังนั้นจึงมีความสนใจในการเขียนโปรแกรมแบบอะซิงโครนัสเพิ่มขึ้นและทำให้ AJAX ร้องขอเป็นบรรทัดฐาน Javascript Frameworks มักจะเก่งในเรื่องนี้ ดังนั้นจึงเหมาะสมที่จะทำความคุ้นเคยกับกรอบงาน JS ที่สำคัญตัวใดตัวหนึ่งที่มีอยู่ในตลาด สองรายการที่ได้รับความนิยมมากที่สุดคือ MEAN Stack และ MeteorJS
สัมภาษณ์กับ Farooq Adam ผู้ร่วมก่อตั้ง Fynd

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

บทสรุป

นี่คือจุดสิ้นสุดของส่วนที่ 2 ในโพสต์นี้ เราได้กล่าวถึงแหล่งข้อมูลเกี่ยวกับการพัฒนาแบ็กเอนด์และเทคโนโลยีฟูลสแตกต่างๆ ที่มีอยู่ ตอนนี้คุณสามารถเรียกตัวเองว่านักพัฒนาเต็มรูปแบบได้อย่างภาคภูมิใจ ยินดีด้วย!
แต่เรื่องราวของการพัฒนาเว็บแบบฟูลสแตกยังไม่จบเพียงแค่นี้ ด้วยการเปิดตัว iPhone มีการปฏิวัติสมาร์ทโฟนไปทั่วโลก ผู้คนหันมาใช้สมาร์ทโฟนแทนเดสก์ท็อปมากขึ้นเรื่อยๆ ในสถานการณ์เช่นนี้ คุณจำเป็นต้องเรียนรู้ที่จะสร้างแอพสำหรับสองแพลตฟอร์มที่ได้รับความนิยมสูงสุด: Android และ iOS เราจะกล่าวถึงเรื่องนี้ในตอนต่อไปและตอนสุดท้ายของซีรีส์นี้ นอกจากนี้ เราจะพิจารณาเฟรมเวิร์กที่ช่วยให้เราสร้างแอปพื้นฐานโดยใช้ Javascript (Ionic, React Native เป็นต้น)
ถึงตอนนั้นก็ลา
ความคิดเห็นและข้อเสนอแนะของคุณยินดีต้อนรับ!

มาเป็นนักพัฒนาเต็มรูปแบบ

ประกาศนียบัตร PG ของ UpGrad และ IIIT-Bangalore ด้านการพัฒนาซอฟต์แวร์
เรียนรู้เพิ่มเติม