ปัจจุบันในทีมมี 3 คน มี skill php css html5 jquery ครับ กำลังทำโปรเจคเกี่ยวกับ ecommerce ที่มีทั้ง web app และ mobile app พวกเรากำลังจะเลือก framework เป็นเครื่องมือในการทำน่ะครับ ตอนนี้เลยได้แต่ coding php กันเพียวเพื่อเทสฟังค์ชั่นกันไปก่อนvที่เลือกๆกันไว้ก็คือ
client จะใช้ bootstrap + AngularJS
server จะใช้ Node / express
db ใช้ mysql หรือ posgres
คือใน team ยังไม่มีคนเคยใช้ framework จริงๆจังๆเลยครับ เลยอยากจะถามข้อดีข้อเสีย หรือ แนะนำให้หน่อยครับ จะได้เริ่มศึกษาและทำโปรเจคไปพร้อมๆกันครับ
(กำลังงงๆอยู่ถ้า laravel จะใช้เขียนในส่วน server หรือ client ครับ และ db ตอนแรกว่าจะลอง mongoDB แต่อ่านๆดูไม่เหมาะกับงานพวกค้องเก็บ transaction ใช่มั้ยครับ)
มีสกิล PHP แต่เลือกใช้ Node ฝั่งเซิร์ฟเวอร์??? อันนี้จะเรียนรู้ใหม่เหรอคับ
Laravel เป็นฝั่งเซิร์ฟเวอร์คับ
ถ้าเลือกได้แล้วก็จะเรียนรู้กันใหม่เลยครับ จะได้เพิ่ม skill กันด้วยครับ
ขอถามเพิ่มเติมครับ
laravel กับ node นี่นอกจากภาษามีข้อดีข้อเสียต่างกันยังไงบ้างครับ
client นอกจาก angular มีตัวไหนแนะนำมั่ยครับ
Lavarel นี่เป็น framework บน PHP ครับ ส่วน Node JS นี่ภาษาใหม่เลยครับ (ที่เขียนเหมือน JS)
นอกจาก AngularJS แล้วก็มี jQuery ที่ใช้ได้ครับ
ถ้าจะเรียนรู้ภาษาใหม่ไปด้วยนี่ผมแนะนำ framework ฝั่ง python ที่ชื่อว่า Django เลยครับ
db แนะนำ mongodb ครับ ถ้าจะใช้ server node.js
ผมก็พึ่งมาหัดใช้ mongodb บางทีเราต้องลีมวิธีออกแบบ ตาราง มาเป็นการออกแบบในการใช้ เอกสาร (document)
ผมใช้
Material Angular + Angular <-> Express, Node.js <-> Mongodb
ไม่คิดอะไรมาก server ก็ Ruby on Rails จบในตัวเอง
ฝั่ง mobile client ก็ใช้ cordova (phonegap) นี่แหละ ง่ายดี
ส่วน database นี่ก็ postgresql เลย
Rails ถ้าไม่มีคนในทีมช่วยนำ เสียเวลาเปล่าคับ Learning Curve สูงเกิน
เห็นด้วยครับที่ว่า Learning Curve สูง ผมว่าส่วนนึงก็มาจากตัวภาษา Ruby นี่แหละครับ สมัยที่เริ่มเล่นใหม่ๆ เรียกได้ว่ามึนเลย แต่พอเข้าถึงธรรมชาติของมันได้ ทีนี้ล่ะ หยุดไม่อยู่เลยทีเดียว ยิ่งเขียนยิ่งมัน (ฮา)
ถ้ามีระบบการเงินเข้ามาด้วย ผมแนะนำให้คุณเลิกใช้ PHP เถอะ ด้วยความหวังดี เพราะบริษัทที่ผมทำเงินรั่วไปเยอะพอสมควรเลย เว้นแต่ว่าคุณมีทีมอุดเหมือน Facebook ก็ไม่ว่าอะไร
ถ้าผมเลือกได้คงเอา .NET ดีกว่า เวลาเปลี่ยน Framework Version ทีก็ไม่ต้องมาไล่แก้ยิกๆเหมือนหมาไล่งับหางตัวเอง
อ้าว ตกลงว่าภาษามันไม่ดีหรือโค้ตเขียนไม่ดีกันแน่ ผมว่าเขียนกันไม่ดีเองมากกว่านะ ส่วน .net นี้เปลียน entity-framework เวอร์ชั่นใหม่ทีก็เสียวๆกันทุกที
เขียนไม่ดี? คือไล่ตาม PHP แล้วเวอร์ชันถัดไปพี่แกล้มกระดานใหม่เลย อันนี้เรียกว่าเขียนไม่ดีหรือครับ? คือแค่ minor change นี่ผมไฝว้กับ Programmer หลายทีแล้วว่าให้รีบอัพ ไม่งั้นโดนเจาะ (ป้องกัน XSS, Injection เท่าที่ทำได้) แต่สุดท้ายโค้ดรันไม่ได้ ก็ต้องอยู่ที่เดิม
ผมอยากรู้จังว่ามีธนาคารไทยเจ้าไหนใช้ PHP เป็นตัวเชื่อมกับ Internet Banking ของตัวเองครับ?
ยอมรับเรื่อง backward compatible ของ PHP เข้าขั้นเอาแต่ใจจริงๆ แต่มันต้องมีคนมาค่อย maintain code กันอยู่แล้ว ไม่งั้นมันก็ต้องมีปัญหาสักวันอยู่ดี
ถ้าเป็น Enterprise ขนาดใหญ่พูดง่ายครับ คนเพียบ คนแก้ก็รับงานแก้ไป คนเขียนงานใหม่ก็ทำไป
แต่พอมาเป็น Startup ยืนยันว่างานไม่เดินครับ แก้กันทั้งบริษัทเลย เสียโอกาสทางธุรกิจก็ไม่น้อยด้วย
เดี๋ยวนะครับ ล้มกระดานใหม่นี่หมายถึงตัว PHP เองหรือ framework ที่คุณใช้ฮะ?
ช่วง 5.4 มา 5.6 นี่ผม upgrade มาเป็นสิบๆ เว็บแล้ว ไม่มีปัญหาเลยนะครับ ขนาด up ข้ามเลยด้วยนะ
แล้วก็ ตั้งแต่ php 5.2 นี่ผมไม่เคยเจอ exploit ที่เกิดจากตัว php core เลยนะครับ (เจอแต่บั๊กที่ทำให้ php crash บ้างนิดๆ หน่อยๆ) ที่โดนเจาะกันก็มีแต่เขียน code ไม่ดีจนมีช่องโหว่เองทั้งนั้น
ได้ทำ unit-testing แต่แรกหรือเปล่าครับ?
นอกนั้นเป็นเรื่อง design pattern ด้วยนะครับ ออกแบบโค้ดไว้ดีแต่แรกหรือเปล่า เคสพวกนี้ถ้าออกแบบไม่ดีแก้โค้ดแหลกรานเพราะเขียนแบบ WET จนเป็นขยะเปียกไปเลย
ปล. โปรเจ็คใหญ่ๆ ใช้ PHP กับการเงินมีนะครับ แต่ไม่มีใครออกมาพูด เพราะเป็นเรื่อง Security ต่อให้ภาษาดี framework ดี แต่คนเขียนไม่เป๊ะ (ไม่มีใครเป๊ะ ผมก็ไม่เป๊ะ) ถ้ารู้ภาษา รู้ framework ก็เดาแนวการเขียนได้ ทำให้คนไม่ออกมาพูดเลยครับ แต่มีใช้แน่นอน
ปล2. php มีข้อเสียจริงๆ เรื่องทำ force return type ไม่ได้ กับ type hinting มีจำกัดมาก แต่ PHP7 จะแก้ตรงนี้ล่ะ
มันไม่ง่ายเลยที่จะทำ GIF ให้มีขนาดน้อยกว่า 20kB
.NET พอเปลี่ยน version ไม่ต้องไล่แก้จริงหรอครับ เท่าที่เห็นมานี่ผมไม่รู้สึกอย่างนั้นนะ
ยกเว้นจะนับว่าของที่ใช้งานมันยังไม่มี Update เพิ่ม
จริงๆ ระบบการเงินตามปกติต้องมีทีม Maintenance นี่ครับ ไม่งั้นลูกค้าจะไว้ใจได้ยังไงเวลามีปัญหา?
ประวัติศาสตร์ .NET ที่ไม่ Backward compatible คือจาก 1.0 มา 2.0 คับ หลังจากนั้นเป็นต้นไปไม่มี Breaking changes
ตัว Phalcon น่าสนใจนะครับ มีแต่คนแนะนำว่า ถ้าเน้น performance ตัวนี้เลย ส่วน laravel จบไว หาคนต่อง่ายกว่า แต่บวมและ performance ไม่ค่อยโอเคเท่าไร
กรณีถ้าทีมผมเมือใหม่เรื่อง framework ถ้าจะเริ่มจาก Phalcon นี่จะหนักไปมั้ยครับ เพราะจะต้อง learning by doing กันเลยน่ะครับ
ถ้า Hang ระวัง Apache มันจะดาวน์ แต่เรื่อง Performance ก็ระวังมันจะเร็ว อิอิ