เลือก Technology Stack ก่อนเริ่มพัฒนา

การพัฒนาผลิตภัณฑ์ประกอบด้วยองค์ประกอบด้านกลยุทธ์ design, development, marketing, และ distribution elements กระดูกสันหลังคือเทคโนโลยีที่เหมาะสมในการสนับสนุนและพัฒนาแนวคิดของคุณ บทความนี้จะกล่าวถึง Tech stack ต่างๆ ตัวอย่าง และวิธีเลือก Tech stack ที่ดีที่สุดเพื่อรองรับ วิธี การพัฒนา Agile

Technology Stack คืออะไร

Technology Stack หรือที่เรียกว่า Solutions Stack คือการรวมกันของบริการเทคโนโลยี frameworks และภาษาที่ประกอบเป็น ecosystem ของเว็บแอป แอพมือถือ หรือเว็บไซต์ เรียกว่า "stack" เพราะชั้นเทคโนโลยีหนึ่งสามารถถูกพิจารณาเป็นชั้นอีกชั้นหนึ่งได้ มีสองส่วน คือ the back end (how it works) และ the front end (how it looks) ในแต่ละองค์ประกอบของสแต็กเทคโนโลยี คุณอาจเห็นการจัดรูปแบบต่างๆ frontend/backend, front-end/back-end, หรือ front-end/back-end

ทำไมจึงให้ความสำคัญกับ Technology Stack

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

ส่วนประกอบของ Technology Stack

ตอนนี้เรารู้แล้วว่า Technology Stack มีสองส่วน แบ่งแต่ละส่วนออกเป็นส่วนประกอบดังรูป

Front-end tech stack (Client-side)

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

1. สำหรับ web applications:

  • JavaScript, HTML, CSS,
  • React.js, Angular, Vue.js, jQuery, or similar JavaScript libraries and web frameworks


2. สำหรับ mobile applications:

  • Objective C or Swift for iOS and Java or Kotlin for Android
  • React Native, Xamarin, and Cordova

เฟรมเวิร์ก Frontend มีเทมเพลตและส่วนประกอบพื้นฐานของ HTML, CSS และ JavaScript สำหรับการสร้างเว็บแอปและเว็บไซต์ มีเฟรมเวิร์กมากมายสำหรับนักพัฒนา โดยเฟรมเวิร์กยอดนิยมสองเฟรมสำหรับเนื้อหาเว็บที่ตอบสนองต่ออุปกรณ์พกพาคือ Bootstrap และ Foundation

JavaScript ใช้งานได้หลากหลายเพื่อลดความซับซ้อนในการผสานรวมที่ซับซ้อนเพื่อผลลัพธ์ที่เป็นมิตรต่อผู้ใช้และมอบประสบการณ์ดิจิทัลที่ยอดเยี่ยม เนื่องจากความซับซ้อนของมัน frameworks/libraries จำนวนมากจึงมีความเฉพาะเจาะจงสำหรับ JavaScript รวมถึง React, Angular, Vue และ Backbone

Back-end tech stack (Server-side)

back-end tech stack หมายถึงการทำงานภายในหรือแกนหลักของเว็บไซต์หรือแอพ องค์ประกอบของ backend tech stack ประกอบด้วย

Server-side programming languages

นี่คือภาษาที่ใช้ในการสร้างแอปพลิเคชัน พร้อมตัวเลือกการพัฒนาแบบเนทีฟและข้ามแพลตฟอร์มมากมาย ภาษาฝั่งเซิร์ฟเวอร์อาจรวมถึง Python, PHP, Swift, Objective-C, JavaScript, Ruby, Kotlin, C#, C++, GO และ Dart

Server-side frameworks

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

framework เว็บแอปพลิเคชันฝั่งเซิร์ฟเวอร์ทั่วไป ได้แก่

  • Ruby on Rails (Ruby)
  • Flask (Python)
  • Django (Python)
  • Laravel (PHP)
  • Symfony (PHP)
  • CakePHP (PHP)
  • Swift (Apple, both a language and a framework)
  • GNUstep (Objective-C)
  • Xamarin (C#)
  • Node.js (JavaScript)
  • React Native (JavaScript)
  • Flutter (Dart)

Web server

เว็บเซิร์ฟเวอร์มีหน้าที่จัดเก็บ ประมวลผล และแจกจ่ายเนื้อหาและหน้าเว็บแบบสแตติกและไดนามิกให้กับผู้ใช้ในรูปแบบเว็บไซต์หรือแอป เว็บเซิร์ฟเวอร์ back-end web servers รวมถึง ApacheNginx, และ IIS.

Databases

ฐานข้อมูล (เช่น เซิร์ฟเวอร์) คือที่เก็บโค้ดสำหรับเว็บหรือแอปบนอุปกรณ์เคลื่อนที่ของคุณ ฐานข้อมูลยังรับผิดชอบในการรวบรวม จัดเก็บ ประมวลผล และจัดการข้อมูลที่รวบรวม ฐานข้อมูลทั่วไป ได้แก่ MongoDB และ MySQL.

Operating system

ระบบปฏิบัติการ (OS) ใน tech stack คืออินเทอร์เฟซซอฟต์แวร์ที่เซิร์ฟเวอร์ frameworks และองค์ประกอบซอฟต์แวร์อื่นๆ ของ stack access เข้าถึงทรัพยากรการคำนวณ ตัวเลือกระบบปฏิบัติการที่พบบ่อยที่สุดคือ Windows, Mac OS, iOS, Linux และ Android

Tech Stack มือถือและเว็บแอพต่างกันอย่างไร

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

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

Multi-platform / Multi-channel functionality

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

API integration

API (Application Programming Interface) เป็นโปรโตคอลในการเข้าถึงแอปพลิเคชันหรือแพลตฟอร์มอื่น ตัวอย่างเช่น แอพมือถือและเว็บจำนวนมากใช้ประโยชน์จากข้อมูลประจำตัวทางสังคม (Facebook, Apple ID) ผ่าน API เพื่อรองรับการเข้าสู่ระบบ

Core smartphone services

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

นักพัฒนาสามารถสร้างแบ็กเอนด์ที่ขับเคลื่อนเว็บและแอพมือถือได้ ส่วนใหญ่มักใช้ RESTful API สิ่งนี้มีประโยชน์สำหรับองค์กรที่ดูแลแอพและเว็บแอปดั้งเดิมหลายตัวที่เข้าถึงฐานข้อมูลเดียวกันทั้งหมด (เช่น Netflix)

วิธีการเลือก Tech Stack ให้เว็บแอพ

กองเทคโนโลยีเหล่านี้นำเสนอการผสมผสานเทคโนโลยีที่ทำงานร่วมกันได้ดีสำหรับการพัฒนาเว็บแอป ชุดค่าผสมนี้ได้รับการทดสอบและเสนอแนวทางปฏิบัติที่ดีที่สุดสำหรับองค์กรที่กำลังมองหาคำแนะนำเกี่ยวกับเทคโนโลยีเพื่อเลือกโซลูชันแอปบนอุปกรณ์เคลื่อนที่ แม้ว่า Tech stack เหล่านี้จะแสดงรายการเทคโนโลยีจำนวนจำกัด แต่ Tech stack จะเพิ่มขึ้นเมื่อเวลาผ่านไป ตัวอย่างเช่น แม้ว่า Airbnb จะเป็นตัวอย่างของ Ruby on Rails tech stack แต่ stack มีเครื่องมือ front และ back-end ที่แตกต่างกันมากมาย

LAMP tech stack

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

  • Linux (OS)
  • Apache (server)
  • MySQL (database)
  • PHP / Perl / Python (programming language)

รุ่น LAMP ได้รับการดัดแปลงและใช้งานอย่างกว้างขวาง LAMP เป็นแกนหลักของเว็บแอปโอเพนซอร์ซจำนวนมาก รวมถึง WordPress

MEAN tech stack

MEAN ประกอบด้วยชุดโซลูชันต่างๆ ที่ออกแบบมาเพื่อรองรับเว็บไซต์แบบไดนามิกและเว็บแอป

  • MongoDB (database)
  • Express.js (backend framework)
  • Angular (frontend framework)
  • Node.js (JavaScript runtime environment)

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

MERN tech stack

MERN stack คือรูปแบบหนึ่งของ MEAN โดยจะสลับใน React สำหรับเฟรมเวิร์กที่เชื่อมต่อกับไคลเอ็นต์ ซึ่งรวมถึง

  • MongoDB (database)
  • Express.js (back-end web application framework)
  • React (front-end framework)
  • Node.js (JavaScript runtime environment)

Stack เว็บแอป MERN เหมาะอย่างยิ่งสำหรับเว็บแอประดับไฮเอนด์ส่วนใหญ่ โดยอาศัยองค์ประกอบ UI ขั้นสูงของ React เช่นเดียวกับ MEAN การใช้ JavaScript สำหรับการพัฒนาส่วนหน้าและส่วนหลังจะช่วยปรับปรุงกระบวนการ

MEVN tech stack

อีกรูปแบบหนึ่งของ MEAN, MEVN สลับใน Vue.js สำหรับเฟรมเวิร์กสำหรับไคลเอ็นต์

  • MongoDB (database)
  • Express.js (back-end web application framework)
  • Vue.js (front-end framework)
  • Node.js (JavaScript runtime environment)

Vue.js เป็นเฟรมเวิร์ก JavaScript แบบ front-end ที่ใหม่กว่า แต่เป็นที่รู้จักในด้านความเร็ว ความเรียบง่าย และความง่ายในการปรับแต่ง สแต็กนี้มักถูกเลือกเพื่อประโยชน์ในการพัฒนา

Ruby on Rails

Ruby on Rails เป็นที่รู้จักในฐานะภาษา "full-stack" ซึ่งครอบคลุมทั้งส่วนหน้าและส่วนหลังของการพัฒนาเว็บแอปด้วยภาษาเดียวที่ใช้ไลบรารีและชุดซอฟต์แวร์ที่รู้จักกันในชื่อ "อัญมณี" อย่างกว้างขวาง Ruby on Rails ไม่มีสแต็คแบบตายตัว ไม่เหมือนกับสแต็คเทคโนโลยีก่อนหน้านี้ หมายความว่าคุณยังคงมีความยืดหยุ่นสำหรับตัวเลือกภายในสแต็กของคุณ Ruby on Rails เหมาะอย่างยิ่งสำหรับโครงการที่ต้องการความเร็วและความยืดหยุ่น Airbnb เป็นตัวอย่างของเว็บไซต์ Ruby on Rails

Microsoft tech stack

The Microsoft technology stack provides เป็นแกนหลักของเว็บไซต์ประสิทธิภาพสูงหลายแห่ง โดยอาศัย .NET framework ที่แข็งแกร่งและสามารถรองรับเนื้อหาแบบโต้ตอบได้ กองเทคโนโลยีของ Microsoft ใช้เทคโนโลยีของ Microsoft สำหรับการพัฒนาเว็บแอป ได้แก่

  • .NET (framework)
  • Microsoft SQL (server)
  • ASP.NET and Web Forms (framework)
  • Azure (cloud platform)
  • Visual Studio

Python-Django

Tech stack นี้มีพื้นฐานมาจากสองเสาหลัก: Python (ภาษา) และ Django (เฟรมเวิร์กแบ็คเอนด์) เช่นเดียวกับ Ruby on Rails Python-Django เหมาะอย่างยิ่งสำหรับการพัฒนาอย่างรวดเร็วสู่ผลิตภัณฑ์ขั้นต่ำ (MVP) กองเต็มประกอบด้วย

  • Python (language)
  • Django (back-end framework)
  • Apache (server)
  • MySQL (database)



วิธีการเลือก Tech Stack ให้แอพมือถือ

Native vs Cross-platform apps

การพัฒนาเนทีฟแอพหลีกเลี่ยงความซับซ้อนของการสร้างผลิตภัณฑ์ที่ยั่งยืนซึ่งครอบคลุมการพัฒนาแอพหลายแพลตฟอร์ม และมุ่งเน้นไปที่การสร้างการออกแบบที่มีความสามารถซึ่งใกล้เคียงกับแพลตฟอร์มเป้าหมาย เช่น Android, iOS เป็นต้น


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

ตัวอย่างสแต็กเทคโนโลยี iOS


การย้ายไปสู่การพัฒนาแอพแบบเนทีฟสำหรับ Apple (iOS, macOS, iPadOS, tvOS หรือ watchOS) ตัวเลือกสำหรับกองเทคโนโลยีจะแคบลงเนื่องจากรองรับภาษาการเขียนโปรแกรมเพียงสองภาษาเท่านั้น: Objective-C และ Swift Objective-C เป็น superset ของภาษาโปรแกรม C ในขณะเดียวกัน Swift เป็นภาษาการเขียนโปรแกรม iOS ที่ใหม่กว่าซึ่งลดความซับซ้อนและขยายอย่างมากโดยไลบรารีไดนามิกเพื่อสร้างแอปที่มีประสิทธิภาพสูงขึ้น กลุ่มเทคโนโลยี iOS สำหรับการพัฒนาแอพมือถือจะประกอบด้วย:


Objective-C หรือ Swift (ภาษา)

Apple XCode หรือ AppCode (ชุดเครื่องมือ/สภาพแวดล้อมการพัฒนา)

iOS SDK (API เพื่อรองรับการทำงานของ iOS)

ตัวอย่างกองเทคโนโลยี Android


โทรศัพท์และแท็บเล็ตที่ใช้ประโยชน์จากระบบปฏิบัติการ Android ผลิตโดยผู้ผลิตอุปกรณ์หลายราย เช่น Google, Samsung, Sony, Nokia และอื่นๆ อีกมากมาย การพัฒนา Android ยังจำกัดอยู่เพียงสองภาษาโปรแกรม: Kotlin และ Java Google ประกาศเปลี่ยนมาใช้ Kotlin เป็นภาษาทางการในปี 2560 ซึ่งสะท้อนถึงความชอบของ Apple ที่มีต่อ Swift ซึ่งทั้งสองภาษาเป็นภาษาที่เรียบง่ายกว่าและมีไลบรารีมากมาย

กองเทคโนโลยี Android ทั่วไปประกอบด้วย:


Kotlin หรือ Java (ภาษา)

Android Studio (สภาพแวดล้อมการพัฒนา)

ตัวอย่างสแต็กเทคโนโลยีการพัฒนาแอปข้ามแพลตฟอร์ม


เมื่อพูดถึงการพัฒนาแอพมือถือข้ามแพลตฟอร์ม เรากำลังพูดถึง React Native vs Xamarin vs Flutter

React Native เป็นเฟรมเวิร์กสำหรับการพัฒนาแอปพลิเคชั่นมือถือข้ามแพลตฟอร์ม พัฒนาและเปิดตัวเป็นโอเพ่นซอร์สโดย Facebook สแต็กเทคโนโลยี React Native ใช้ประโยชน์จากเฟรมเวิร์ก React JavaScript ที่มีอยู่, สถาปัตยกรรมแอปพลิเคชัน 'Flux' และความสามารถของแพลตฟอร์มดั้งเดิมเพื่อมอบองค์ประกอบ UI และปรับปรุงประสิทธิภาพ

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

Flutter เป็นเฟรมเวิร์กข้ามแพลตฟอร์มแบบโอเพ่นซอร์สและฟรีที่ดูแลโดย Google ในขณะที่ผู้เข้าร่วมรายใหม่ ล่าสุด Flutter เสนอเวลาสู่ตลาดที่เร็วที่สุดของเฟรมเวิร์กใด ๆ และความสามารถในการ "โหลดซ้ำอย่างรวดเร็ว" เพื่อดูการเปลี่ยนแปลงที่ทำบนอีมูเลเตอร์ ฮาร์ดแวร์ และตัวจำลองได้อย่างรวดเร็ว กลุ่มเทคโนโลยีที่ใช้ Flutter อิงตามภาษาการเขียนโปรแกรม Dart และใช้ประโยชน์จากวิดเจ็ตในการออกแบบวัสดุของ Google และสไตล์ของ Apple ด้วยชุด Cupertino


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

แอปที่สร้างบนแพลตฟอร์ม Xamarin มักจะทำงานได้ดีตามมาตรฐานการพัฒนาแอปแบบเนทีฟ ตราบใดที่ UI นั้นเรียบง่ายมาก Xamarin tech stack รองรับดีที่สุดโดย Xamarin Studio / Xcode (Mac) หรือ Visual Studio (Windows)

Popular tech stack examples

Airbnb tech stack

  • Programming Languages: Ruby, JavaScript
  • Framework: Ruby on Rails
  • Databases: MySQL, Amazon RDS, Hadoop
  • Server: NGINX

Facebook tech stack (Mobile & Web App)

  • Programming Languages: PHP, GraphQL, Hack, JavaScript, Linux, C++
  • Framework: Tornado, React (front-end), Xamarin, Swift, React Native
  • Databases: Cassandra, HBase, MariaDB, Hadoop, MySQL
  • Server: Apache

Uber tech stack

  • Programming Languages: Python, Java, Go, Node.js, C, C++
  • Framework: Node.js, Apache Thrift
  • Databases: Schemaless (MySQL), PostgreSQL, Riak, Cassandra, Hadoop, Redis, Twemproxy, M3 (proprietary)
  • Server: NGINX, Apache Mesos

Dropbox tech stack

  • Programming Languages: Python, C, Go, Swift, Objective-C, Kotlin, Java
  • Framework: React
  • Databases: MySQL, MemCached
  • Server: Apache, NGINX, HA Proxy

Netflix tech stack

  • Programming Languages: Java, JavaScript, Python, Kotlin, Swift
  • Framework: React, NodeJS, WinJS
  • Databases: DynamoDB
  • Server: Amazon EC2 and RDS

Spotify tech stack

  • Programming Languages: Python, JavaScript, PHP, C++, HTML5
  • Framework: Hub
  • Databases: Hadoop, Cassandra
  • Server: NGINX, Apache Storm

How to choose the right tech stack for your product?

มีข้อควรพิจารณาที่สำคัญหลายประการในการเลือกกลุ่มเทคโนโลยีที่เหมาะสมสำหรับแอปมือถือหรือเว็บแอปของคุณในปี 2566 ได้แก่

1. ขอบเขตผลิตภัณฑ์

การวิจัยตลาดและผู้ใช้ที่ชัดเจนสามารถช่วยกำหนดความต้องการและข้อกำหนดของผลิตภัณฑ์ได้ ขอบเขตผลิตภัณฑ์จะช่วยกำหนดสมมติฐานของผู้ใช้ ธุรกิจ และทางเทคนิค ผู้จัดการโครงการและนักวิเคราะห์ธุรกิจทำงานร่วมกันเพื่อกำหนด:


อะไรคือ "ปัญหา" ที่ผลิตภัณฑ์พยายามแก้ไข ชัดเจนเมื่อปัญหาได้รับการแก้ไขหรือไม่? จะเกิดอะไรขึ้นหากปัญหาไม่ได้รับการแก้ไข

ใครคือผู้ใช้เป้าหมายของคุณ? พวกเขาตระหนักถึงปัญหาหรือไม่? พวกเขาพยายามหาทางออกอย่างจริงจังหรือไม่? ถ้าเป็นเช่นนั้นมีกี่คน?

อะไรคือแนวทางการแข่งขันสำหรับการแก้ปัญหานี้? พวกเขาทำอะไรได้ดีหรือไม่ดี?

ผลิตภัณฑ์ (เว็บหรือแอพมือถือ) จะปรับปรุงอย่างไรเหนือโซลูชันปัจจุบัน / หรือแก้ปัญหาใหม่

ผู้ใช้ท่องเว็บหรือใช้อุปกรณ์อย่างไร

หากผลิตภัณฑ์ครอบคลุมอีคอมเมิร์ซ ผลิตภัณฑ์จะรวมเข้ากับช่องทางอื่นๆ (omnichannel หรือ single channel) หรือไม่

เมื่อกรอกสมมติฐานของผู้ใช้และธุรกิจเหล่านี้แล้ว สมมติฐานทางเทคนิคจะปรากฏขึ้นเกี่ยวกับอุปกรณ์/แพลตฟอร์มที่ผลิตภัณฑ์ควรทำงาน ฟังก์ชันพื้นฐาน และระดับของการโต้ตอบ


2. โครงสร้างพื้นฐานที่มีอยู่

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


3. การกำหนดแพลตฟอร์ม

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


4. ประสิทธิภาพ

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


5. เวลาออกสู่ตลาด

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


6. งบประมาณ

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


7. ความสามารถในการปรับขนาด

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


8. ความปลอดภัย

ไม่ใช่ทุกเทคโนโลยีที่มีความปลอดภัยเท่ากัน เทคโนโลยีที่ผ่านการทดสอบมาอย่างดีให้ความเสถียร แต่กลุ่มเทคโนโลยีทั้งหมดต้องการการทดสอบ


9. เทรนด์ใหม่

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


10. ความพร้อมของทักษะ

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

0
846