เวิร์กโฟลว์ที่เป็นกันเองสำหรับการออกแบบเว็บแอพคืออะไร?


9

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

นี่คือสิ่งที่ฉันต้องการใช้:

  • กรอบ CakePHP
  • jsmin (ลดขนาด JavaScript)
  • SASS (สไตล์ที่น่ากลัวโดยรวม)
  • Git

CakePHP:

อธิบายตนเองได้สวยทำการแก้ไขและอัพเดทแหล่งข้อมูล

JSMin:

เมื่อคุณแก้ไขสคริปต์ให้คุณรัน jsmin ด้วยตนเองเพื่อเอาท์พุทโค้ด minified ใหม่หรือจะเป็นการดีกว่าถ้าคุณใช้ฮุคที่มีการยอมรับล่วงหน้าที่สร้าง jsmin outputs ของไฟล์จาวาสคริปต์ที่มีการเปลี่ยนแปลงโดยอัตโนมัติ สมมติว่าฉันไม่มีความรู้ในการติดตั้ง commit hooks

SASS:

ฉันชอบสิ่งที่ SASS นำเสนอ แต่ฉันก็ทราบด้วยว่า SASS code ไม่ได้รับการสนับสนุนโดยเบราว์เซอร์โดยค่าเริ่มต้นดังนั้นในบางครั้งรหัส SASS จะต้องเปลี่ยนเป็น CSS ปกติ เสร็จสิ้นในจุดใดในเวิร์กโฟลว์

Git

ฉันกลัวที่จะยอมรับ แต่ครั้งสุดท้ายที่ฉันได้ทำการพัฒนาเว็บไซต์ที่สำคัญฉันไม่ได้ใช้การควบคุมแหล่ง SCM (IE ฉันใช้การควบคุมแหล่งที่มา แต่ประกอบด้วยบันทึกการเปลี่ยนแปลงที่มีรายละเอียดมากพร้อมการสำรองข้อมูล)

ฉันมีประสบการณ์มากมายในการใช้ Git (เช่นเดียวกับ Mercurial และ SVN) สำหรับการพัฒนาเดสก์ท็อป แต่ฉันสงสัยว่าจะนำมันไปใช้ในการพัฒนาเว็บไซต์ได้ดีที่สุดอย่างไร

เป็นเรื่องปกติหรือไม่ที่จะใช้พื้นที่เก็บข้อมูลระยะไกลบนโฮสต์เว็บเพื่อให้ฉันสามารถผลักดันการเปลี่ยนแปลงโดยตรงไปยังเซิร์ฟเวอร์ที่ใช้งานจริงหรือมีเครื่องมือข้ามแพลตฟอร์ม (windows / linux) ที่ทำให้ง่ายต่อการอัปโหลดเฉพาะไฟล์ที่เปลี่ยนแปลงไปยังเซิร์ฟเวอร์ที่ใช้งานจริง . มี บริษัท ให้บริการเว็บโฮสติ้งที่ทำให้การใช้พื้นที่เก็บข้อมูลระยะไกลเป็นเรื่องง่ายฉันต้องใช้ SSH หรือไม่

ฉันรู้วิธีการทำสิ่งนี้บนเซิร์ฟเวอร์ทดสอบของฉันเองด้วยที่เก็บระยะไกลที่มีสาขาการติดตามระยะไกลแยกต่างหากอยู่แล้ว แต่ฉันไม่เคยทำมันบนเว็บโฮสติ้งเซิร์ฟเวอร์การผลิตระยะไกลมาก่อน

เสริม:

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

สิ่งนี้มีอยู่แล้วใช่ไหม มีโครงการโอเพนซอร์สในป่าอยู่แล้วซึ่งใช้สิ่งที่คล้ายกันซึ่งฉันสามารถใช้และมีส่วนร่วมได้หรือไม่?

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

คำตอบ:


2

คุณสามารถตรวจสอบส่วนขยาย PageSpeed ​​ของ Google สำหรับ Apache : ในขณะนี้มีตัวเลือกในการรวมและย่อขนาด Javascript และ CSS โดยอัตโนมัติและรวมกับการแคชซึ่งจะเหมาะกับสิ่งที่คุณพูดถึงในตอนท้ายของโพสต์


1
เยี่ยมฉันไม่ได้ตระหนักว่าทั้งหมดนี้สามารถทำได้ด้วยโมดูล Apache เดียว การทำให้เป็น Javascript / css minification, javascript / css concatenation รวมถึงการปรับปรุงประสิทธิภาพทางเลือกอื่น ๆ หลังจาก Googling ฉันพบว่า Dreamhost ให้บริการโฮสติ้งที่ใช้ร่วมกัน / VPN ของพวกเขา ฉันประหลาดใจที่ไม่มีข้อมูลเพิ่มเติมเกี่ยวกับมันใน webmasters.stackexchange.com หรือ stackoverflow.com
Evan Plaice

5

JSMin

หากคุณไม่มี JS คุณสามารถตั้งค่าบางอย่างเพื่อลดขนาดทุกครั้งที่คุณบันทึก หากคุณมี JS จำนวนมากให้เป็นส่วนหนึ่งของกระบวนการปรับใช้ของคุณ (ดู Git ด้านล่าง)

SASS

ใช้เข็มทิศกรอบ มันมี SASS รวมถึงสคริปต์เล็กน้อยที่ "เฝ้าดู" ไดเรกทอรี SASS ของคุณและรวบรวมไฟล์เป็น CSS (รวมถึง CSS แบบย่อหากคุณต้องการ) ทุกครั้งที่คุณบันทึก มันสร้างขึ้นด้วย RoR ในใจ แต่คุณสามารถใช้กับกรอบเว็บใด ๆ ได้อย่างง่ายดายโดยการสร้างไฟล์ Compass config และเรียกใช้คำสั่ง "Compass Watch" เข็มทิศยังมีเครื่องมือที่มีประโยชน์อื่น ๆ อีกมากมายเช่นพิมพ์เขียว , มิกซ์อินที่มีประโยชน์และการสร้างสไปรต์อัตโนมัติผ่านปลั๊กอิน Lemonade (ซึ่งควรสร้างไว้ใน Compass ในรุ่นถัดไป )

Git

ขึ้นอยู่กับขนาด / ความซับซ้อนของเว็บไซต์พิจารณาCapistranoรูปแบบการปรับใช้ ไม่แน่ใจว่าคุณสามารถใช้ Capistrano โดยตรงกับ CakePHP แต่สิ่งสำคัญคือ: เซิร์ฟเวอร์การผลิตแต่ละเครื่องมีโฟลเดอร์ "ปัจจุบัน" ซึ่งมีรหัสทั้งหมดที่กำลังทำงานอยู่ในขณะนั้น ทุกครั้งที่คุณต้องการปรับใช้รหัสใหม่คุณเรียกใช้สคริปต์ที่ ssh ไปยังเซิร์ฟเวอร์การผลิตแต่ละเครื่องและมี (ก) คัดลอกเนื้อหาของโฟลเดอร์ "ปัจจุบัน" ลงในโฟลเดอร์สำรอง (ด้วยชื่อรุ่น / เวลาประทับ) b) ตรวจสอบรหัสล่าสุดจาก Git ลงในโฟลเดอร์ "current" และ (c) เริ่มให้บริการรหัสใหม่นี้จากโฟลเดอร์ "current" ด้วยวิธีนี้คุณสามารถย้อนกลับไปยังรุ่นก่อนหน้าใดก็ได้หากจำเป็นและคุณสามารถบอกได้อย่างชัดเจนว่าการแก้ไขใดที่ใช้งานจริง Capistrano ยังให้คุณเพิ่มงานที่กำหนดเองทุกประเภทเป็นส่วนหนึ่งของกระบวนการปรับใช้รวมถึง JS / CSS minifaction

พิเศษ

ใช่มีพวง Google สำหรับบางอย่างเช่น "CSS / JS concat" นี่คือหนึ่งอย่างรวดเร็วผมพบว่าสำหรับ CakePHP: สินทรัพย์เกย์


ขอบคุณมากสำหรับการป้อนข้อมูล ฉันชอบสิ่งที่ฉันเห็นด้วย Compass Framework ฉันหวังว่าฉันจะรู้วิธีการปรับใช้ใน PHP เท่านั้น ฉันไปเที่ยวรอบ ๆ แต่หาทางเลือกไม่ได้ Capistrano นั้นดูน่าสนใจมาก แต่แทนที่จะเป็นรุ่นคัดลอกไฟล์ที่มีราคาแพงและเปราะบางฉันแค่ใช้ ssh เพื่อบอกไคลเอ็นต์ git บนเซิร์ฟเวอร์ระยะไกลทั้งหมดให้ทำการ 'git pull --rebase' อย่างรวดเร็วหลังจากตรวจสอบว่ามันทำงานกับการทดสอบหรือไม่ เซิร์ฟเวอร์ก่อน
Evan Plaice

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

คุณไม่ได้ "ปรับใช้" กรอบงานเข็มทิศด้วย PHP คุณเพียงแค่รันมันในขณะที่คุณโค้ดมันจะรวบรวมไฟล์ CSS ของคุณทุกครั้งที่คุณกดปุ่มบันทึกและไฟล์ CSS นั้นเป็นสิ่งที่ถูกนำไปใช้จริง ที่ "รัน" เข็มทิศแรกคุณต้องสร้างไฟล์ config ของคุณ (compass.rb) - ใช้นี้เพื่อสร้างตัวเลือกบรรทัดคำสั่ง: jsfiddle.net/chriseppstein/PG46q/3 เมื่อคุณตั้งค่าไฟล์กำหนดค่าด้วยพา ธ ทั้งหมดของคุณแล้วให้เรียกใช้ "เข็มทิศดู" ในโฟลเดอร์เดียวกับไฟล์กำหนดค่าและเข็มทิศจะเริ่มคอมไพล์ SASS ของคุณใหม่ทุกครั้งที่คุณบันทึก ลองใช้กับโปรเจ็กต์ด้านข้าง: มันง่ายและเร็วมาก
Yevgeniy Brikman

นอกจากนี้เท่าที่ฉันรู้ Capistrano ไม่ได้คัดลอกมาก ทุกครั้งที่คุณปรับใช้มันจะตรวจสอบรหัสล่าสุดและเพียงแค่สลับชื่อโฟลเดอร์ ข้อดีคือคุณสามารถย้อนกลับเป็นเวอร์ชันก่อนหน้าได้ตลอดเวลาเพียงแค่สลับชื่อโฟลเดอร์อีกครั้ง
Yevgeniy Brikman

ฉันพบบทความเกี่ยวกับวิธีติดตั้งและใช้งานภายใน PHP มันง่ายกว่าที่จะใช้นอกโครงการ Ruby มากกว่าที่ฉันคาดไว้ ขีดข่วนความคิดเห็นล่าสุดของฉันเกี่ยวกับ Capistrano ฉันคิดว่ามันถูกใช้เพื่อส่งคำสั่งแบบกระจายไปยังเซิร์ฟเวอร์หลายเครื่อง หากฉันมีสิทธิ์เข้าถึง ssh ไปยังเซิร์ฟเวอร์ระยะไกลฉันควรปล่อยไคลเอ็นต์ git แทนเพื่อดึงการเปลี่ยนแปลงล่าสุดจากสาขาการผลิต IMHO โฟลเดอร์การแลกเปลี่ยนโฟลเดอร์เป็นความคิดที่ไม่ดี ฉันอยากจะติดแท็กการแก้ไขด้วยในรอบการเปิดตัวและเพียงแค่เช็คเอาต์แท็กก่อนหน้าถ้าแท็กปัจจุบันมีปัญหา
Evan Plaice
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.