วิศวกรรมซอฟต์แวร์

ถาม - ตอบสำหรับมืออาชีพนักวิชาการและนักเรียนที่ทำงานในวงจรการพัฒนาระบบ

3
Node.js จริง ๆ แล้วเพิ่มความยืดหยุ่นหรือไม่?
ฉันได้อ่านเกี่ยวกับปัญหา C10K แล้วและโดยเฉพาะอย่างยิ่งบันทึกย่อนั้นเป็นส่วนที่อ้างอิงถึงเซิร์ฟเวอร์ I / O อะซิงโครนัส http://www.kegel.com/c10k.html#aio ฉันเชื่อว่าสิ่งนี้จะสรุปสิ่งที่ Node.js ทำบนเซิร์ฟเวอร์โดยอนุญาตให้เธรดประมวลผลคำขอของผู้ใช้ในขณะที่พึ่งพา I / O อินเตอร์รัปต์ (เหตุการณ์) เพื่อแจ้งเตือนเธรดงานที่เสร็จสมบูรณ์แทนที่จะให้เธรดรับผิดชอบ งาน CPU แบบเต็ม เธรดสามารถดำเนินการกับสิ่งอื่น ๆ (ไม่ปิดกั้น) และได้รับแจ้งเมื่องานเสร็จ (เช่นพบไฟล์หรือบีบอัดวิดีโอ) ซึ่งหมายความว่าเธรดจะมีซ็อคเก็ต 'พร้อมใช้งาน' มากขึ้นและสำหรับผู้ใช้บนเซิร์ฟเวอร์ จากนั้นฉันก็พบสิ่งนี้: http://teddziuba.com/2011/10/straight-talk-on-event-loops.html ผู้เขียนอ้างว่าถึงแม้ว่าเฟรมเวิร์กที่ขับเคลื่อนด้วยเหตุการณ์ (เธรดที่ขัดจังหวะ) อาจทำให้เธรดว่าง แต่จริงๆแล้วมันไม่ได้ลดปริมาณงานที่ CPU ต้องทำ! เหตุผลที่นี่คือถ้าหากผู้ใช้ร้องขอให้บีบอัดวิดีโอที่พวกเขาอัปโหลด CPU จะต้องทำงานจริงและจะบล็อกในขณะที่มันทำ (เพื่อประโยชน์ของความเรียบง่ายให้ลืมเรื่องขนานที่นี่ - เว้นแต่คุณ รู้ดีกว่า!) ฉันเป็น coder ที่ตรงไปตรงมาไม่ใช่ผู้ดูแลเซิร์ฟเวอร์หรืออะไรแบบนั้น ฉันแค่สนใจที่จะรู้ว่า: Node.js เป็นของขวัญจากเทพเจ้าแห่ง 'คลาวด์คอมพิวติ้ง' …

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

7
บททดสอบการเขียนโปรแกรมภาษา C # ที่น่ากลัว - คำแนะนำใด ๆ ? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ฉันมีงาน C # dev ที่เป็นไปได้ แต่ก่อนที่ฉันจะสัมภาษณ์ฉันต้องผ่านการทดสอบกับ บริษัท จัดหางาน แม้ว่าฉันจะเป็นนักพัฒนาอาวุโสที่มีประสบการณ์การเขียนโปรแกรมมากกว่า 10 ปีและมากกว่า 3 ปีกับ c # ฉันไม่ได้รอการทดสอบนี้และฉันคิดว่ามีโอกาสที่ดีที่ฉันจะล้มเหลว จากประสบการณ์ของฉันการทดสอบเหล่านี้ไม่สามารถคาดเดาได้ว่าจะถามคุณถึงสิ่งที่คุณไม่ค่อยได้ใช้ในสถานการณ์การทำงานประจำวัน ฉันต้องการคำแนะนำที่ดีที่สุดของคุณเกี่ยวกับสิ่งที่ฉันควรจะแก้ไขใน - ตัวอย่างเช่นหนังสือหรือเว็บไซต์ที่ดี ฉันมีเวลาน้อยกว่า 1 สัปดาห์ในการเตรียมตัวและมันเป็นสิ่งสำคัญที่ฉันต้องผ่านสิ่งนี้ ขอบคุณล่วงหน้า. แก้ไข: เพื่อพิสูจน์ความกังวลของฉันเพิ่มเติมจากการเขียนการทดสอบดังกล่าว - พิจารณาคำถามต่อไปนี้: 12) เหตุการณ์คือ: a) The result of a users action - correct …
21 c#  interview 

12
กระบวนทัศน์“ ทำสิ่งเดียว” เมื่อไรจะกลายเป็นอันตราย
ต้องการปรับปรุงโพสต์นี้หรือไม่? ให้คำตอบโดยละเอียดสำหรับคำถามนี้รวมถึงการอ้างอิงและคำอธิบายว่าทำไมคำตอบของคุณถึงถูกต้อง คำตอบที่ไม่มีรายละเอียดเพียงพออาจแก้ไขหรือลบออกได้ คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 8 ปีที่ผ่านมา เพื่อประโยชน์ของการโต้แย้งนี่คือตัวอย่างฟังก์ชั่นที่พิมพ์เนื้อหาของไฟล์ที่กำหนดทีละบรรทัด รุ่น 1: void printFile(const string & filePath) { fstream file(filePath, ios::in); string line; while (std::getline(file, line)) { cout << line << endl; } } ฉันรู้ว่าขอแนะนำให้ฟังก์ชั่นทำสิ่งหนึ่งที่ระดับหนึ่งของสิ่งที่เป็นนามธรรม สำหรับฉันแม้ว่าโค้ดด้านบนจะทำสิ่งหนึ่งและค่อนข้างปรมาณู หนังสือบางเล่ม (เช่น Clean Code ของ Robert C. Martin) ดูเหมือนจะแนะนำให้แบ่งรหัสด้านบนออกเป็นฟังก์ชันแยกต่างหาก …

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

5
คำอธิบายที่ดีของหลักการการโต้ตอบของ Tennent คืออะไร
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 8 ปีที่ผ่านมา ฉันพบว่าตัวเองกำลังดิ้นรนเพื่อดูว่าหลักการนี้เกี่ยวกับอะไรและทำไมจึงเป็นสิ่งสำคัญสำหรับการออกแบบภาษา โดยพื้นฐานแล้วกล่าวว่าสำหรับทุกการแสดงออกexprในภาษาควรตรงกับโครงสร้างนี้: (function () { return expr; })() นอกจากนี้ฉันเคยได้ยินว่าทับทิมปฏิบัติตามหลักการนี้ในขณะที่งูใหญ่ไม่ ฉันไม่เข้าใจว่าทำไมสิ่งนี้ถึงเป็นจริงหรือถ้ามันเป็นเรื่องจริง

5
การใช้คลาสสแตติกเป็นเนมสเปซ
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 8 ปีที่ผ่านมา ฉันเห็นผู้พัฒนารายอื่นใช้คลาสคงที่เป็นเนมสเปซ public static class CategoryA { public class Item1 { public void DoSomething() { } } public class Item2 { public void DoSomething() { } } } public static class CategoryB { public class Item3 { public void DoSomething() …

6
การเพิ่มการทดสอบหน่วยมีเหตุผลสำหรับรหัสดั้งเดิมที่รู้จักกันดีหรือไม่
ฉันกำลังพูดถึงการทดสอบหน่วยในความหมาย TDD (ไม่ใช่ "การรวม" โดยอัตโนมัติหรือสิ่งที่คุณต้องการเรียกว่าการทดสอบ) รหัสดั้งเดิมในรหัส (C ++) โดยไม่มีการทดสอบ (ดู: Michael Feathers ' ทำงานอย่างมีประสิทธิภาพด้วยรหัสดั้งเดิม ) แต่ยังเป็นรหัสดั้งเดิมใน: รหัสที่ทีมของเราทำงานด้วยกันมา 10-5 ปีที่ผ่านมาดังนั้นเราจึงมักจะมีความคิดที่ดีเกี่ยวกับสถานที่ที่จะนำสิ่งต่าง ๆ มาเปลี่ยนอะไรบางอย่าง เรามีการทดสอบหน่วยในสถานที่ (ผ่าน Boost.Test) สำหรับบางโมดูลที่มาในภายหลังหรือเป็นแบบ "ธรรมชาติ" สำหรับการทดสอบหน่วย (เช่นคอนเทนเนอร์เฉพาะแอปทั่วไปสตริงสิ่งผู้ช่วยเครือข่าย ฯลฯ ) เรายังไม่มีการทดสอบการยอมรับอัตโนมัติที่เหมาะสม ตอนนี้เมื่อเร็ว ๆ นี้ฉันมี "ความสุข" ที่จะใช้คุณสมบัติใหม่ 3 อย่างที่ผู้ใช้งานต้องเผชิญ แต่ละคนใช้เวลาประมาณ 1-2 ชั่วโมงในการเร่งความเร็วด้วยส่วนรหัสที่ฉันต้องการเปลี่ยน 1-2 ชั่วโมงชั่วโมงในการใช้รหัส (เล็กน้อย) ที่ฉันต้องเปลี่ยนและอีก 1-2 ชั่วโมงเพื่อให้แน่ใจว่าแอป วิ่งอย่างถูกต้องในภายหลังและมันก็ควรจะทำ ตอนนี้ฉันเพิ่มรหัสเล็กน้อย (ฉันคิดว่าวิธีหนึ่งและสองสามบรรทัดสำหรับแต่ละคุณสมบัติ) …
21 c++  tdd  legacy  unit-testing 

7
คุณจะจัดการช่องว่างในเรซูเม่ของคุณอย่างไรหลังจากการแต่งเพลงด้วยตัวเอง? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน8 ปีที่ผ่านมา มีคำถามมากมายเกี่ยวกับ Programmers.SE เกี่ยวกับการหยุดเวลาการทำงานนอกเวลาหรือไม่นั้นเป็นความคิดที่ดีและจะทำอย่างไรในช่วงเวลานั้นเพื่อรักษาระดับความสามารถของคุณ: /software/31536/will-taking-two-years-off-for-school-in-a-related-field-destroy-a-mid-level-devel /software/102009/can-i-take-a-year-off-without-hurting-my-career หากคุณใช้เวลาหนึ่งหรือสองปีในการเป็นนักพัฒนามันเป็นเรื่องยากที่จะกลับมาเป็นนักพัฒนาหรือไม่? /software/91176/is-taking-a-break-in-career-to-learn-stuff-a-bad-idea พวกเขามีประโยชน์จริง ๆ แต่ฉันยังคงมีคำถามเกี่ยวกับรายละเอียดด้านลอจิสติกของการแต่งเพลงด้วยตัวเอง ฉันมาถึงปลายปีจากการทำงานเป็นนักพัฒนาซอฟต์แวร์ (หลังจาก 7 ปีในสนาม) ฉันใช้เวลาปีนี้เพื่อให้ตัวเองสำรวจความสนใจที่ฉันไม่เคยมีเวลาพอ: อบขนม ถ่ายรูปและสร้างเพื่อนใหม่และน่าสนใจ ในช่วงเวลานี้ฉันยังทำงานเกี่ยวกับโครงการพัฒนาสัตว์เลี้ยงในเทคโนโลยีและสาขาวิชาที่ฉันจะไม่มีโอกาสได้สำรวจเป็นอย่างอื่น นอกจากนี้ฉันได้อ่านหนังสือพัฒนาซอฟต์แวร์ทั้งหมดที่ฉันไม่เคยมีเวลาอ่านและติดตามข่าวการเขียนโปรแกรมและบล็อก โครงการพัฒนาต่างมีตาต่อการเป็นส่วนหนึ่งของ Micro ISV แต่มีเพียงโครงการเดียวเท่านั้นที่ได้ทำในขั้นตอนการผลิตทุกประเภท โครงการนั้นน่าประทับใจ แต่ก็ไม่ประสบความสำเร็จ (เลย!) ฉันมีบล็อกการเขียนโปรแกรมที่ใช้งานอย่างสมเหตุสมผลซึ่งฉันเชื่อว่าสะท้อนถึงความทุ่มเทอย่างสูงในการพัฒนาซอฟต์แวร์และแสดงให้เห็นว่าฉันไม่ได้แค่วางทักษะการเขียนโปรแกรมของฉันไว้บนหิ้งเป็นเวลาหนึ่งปี คำถามของฉันคืออะไรวิธีที่ดีที่สุดในการส่งข้อมูลนี้ไปยังผู้ที่อาจเป็นนายจ้างในระดับ Resume / Cover Letter คืออะไร? ฉันมีความมั่นใจพอสมควรที่ฉันสามารถอธิบายบทพูดนี้ในการสัมภาษณ์ ฉันรู้ว่าในระดับประวัติย่อผู้จัดการการจ้างงานจะใช้ข้อแก้ตัวใด ๆ ที่พวกเขาสามารถทำได้เพื่อเลิกประวัติส่วนตัวของฉัน (ฉันได้จ้างงานเสร็จแล้วและฉันอาจจะทิ้งประวัติส่วนตัวของตัวเองถ้ามันไม่ได้จัดการเวลานี้ได้ดีจริงๆ อาจจะเป็นกรรม) …

7
การเป็นโปรแกรมเมอร์โดยไม่ตั้งใจ: จะทำอย่างไรให้ถูกต้อง? [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัพเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว พื้นหลังของฉันคือวิศวกรรมไฟฟ้า DSP ต้องแม่นยำมากขึ้น บริษัท ที่ฉันทำงานอยู่ในขณะนี้ทำโครงการที่หลากหลายหลากหลายซึ่งส่วนใหญ่เป็นการสร้างฮาร์ดแวร์อะนาล็อก การอยู่ใกล้กับคอมพิวเตอร์มากกว่าคนอื่น ๆ ที่นี่ฉันมักจะเขียนโค้ดสำหรับอุปกรณ์ฝังตัว (ซึ่งฉันใช้ได้ดี) และ Windows หรือ Linux OS มันเป็นดินแดนหลังที่เป็นดินแดนของฉัน ฉันสามารถเขียนโค้ดได้และฉันรู้ภาษาไม่กี่ภาษา (C / C ++, Java, VB.NET บางส่วน) แต่ฉันใช้มันสำหรับการจำลองอัลกอริทึมในการประมวลผลสัญญาณและภาพเครือข่ายประสาทเทียมและแอปพลิเคชันอื่นที่คล้ายคลึงกันเท่านั้น สำหรับฉันการเขียนโปรแกรมเป็นเครื่องมือในการคำนวณมากกว่าสิ่งอื่นใด อย่างไรก็ตามฉันได้รับโครงการเพิ่มมากขึ้นที่ฉันต้องเขียนซอฟต์แวร์ที่เหมาะสมและฉันไม่รู้วิธีการทำเพราะฉันไม่ต้องทำและฉันก็ไม่เคยสนใจมากพอ ฉันเห็นว่ามีวิศวกรเพียงไม่กี่คนที่ได้รับการแปลงเป็นโคเดกในระดับหนึ่งเนื่องจากความต้องการงานและส่วนใหญ่ไม่ได้ยอดเยี่ยมในสิ่งที่พวกเขาทำ ฉันแน่ใจว่าหลายคนได้พบกัน ถ้าฉันต้องเรียนรู้การเขียนซอฟต์แวร์ที่เหมาะสมด้วยส่วนต่อประสานผู้ใช้ที่ดีสถาปัตยกรรมภายในที่ดีเป็นต้นฉันจะทำอย่างไร เราไม่มีใครในที่ทำงานที่สามารถบอกฉันได้ว่าอะไรคือวิธีปฏิบัติที่ดีและอะไรที่ไม่ดี เนื่องจากฉันสามารถเขียนโค้ดตามความหมายที่แท้จริงของคำว่ามีอะไรอีกบ้างที่ต้องรู้เกี่ยวกับการเขียนซอฟต์แวร์ที่ดีและฉันจะไปที่นั่นด้วยตนเองได้อย่างไร

9
เทคนิคที่ดีในการรักษารหัสสถานที่ของคุณคืออะไร?
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 8 ปีที่ผ่านมา ฉันเข้าใจการใช้บุ๊กมาร์กเพื่อจดจำจุดเดียวในรหัสของคุณ อย่างไรก็ตามเราจะติดตามการไหลของรหัสที่พวกเขากำลังตรวจสอบได้อย่างไร เช่น: บุ๊กมาร์กจำนวนมากและลำดับที่ทำ ตัวอย่าง: รายงานข้อผิดพลาด: "การชนไม่ได้ทำงานที่มุมกำแพง" การแพร่พันธุ์ของบั๊กทำให้เกิดรูปหลายเหลี่ยมไม่ชนกัน รหัสการชนกันของข้อมูลนั้นเขียนขึ้นโดย dev ไม่พร้อมใช้งาน ดังนั้นการตรวจสอบจะเป็นดังนี้: ในระหว่างการสอบสวนโดยเฉพาะอย่างยิ่งเมื่อตรวจสอบรายการที่ไม่ใช่รหัสเช่น Google อาจมีเหตุผลหนึ่งที่คาดว่าจะทำให้รหัสของพวกเขาหลวม ( ฉันได้ดูเส้นทางรหัสนี้แล้วหรือฉันกำลังตรวจสอบเส้นทางรหัสใด ฟังก์ชั่นนี้ฯลฯ ) สิ่งเดียวกันก็เหมือนกันสำหรับการขัดจังหวะที่หลีกเลี่ยงไม่ได้ (บอส: ฉันต้องการ [รายงานแบบไม่มีจุดหมายที่มีความยาว] ตอนนี้ฯลฯ ) มันจะมีประโยชน์ที่จะมีทรัพยากรของเทคนิคหรือเครื่องมือสำหรับการให้วิธีการติดตามที่หนึ่งในรหัส แก้ไข : ตัวอย่างข้างต้นมีความหมายว่าเป็นภาพประกอบที่มีศักยภาพไม่ใช่เป็นปัญหาจริงที่ต้องตอบรับ อีกวิธีหนึ่งในการตอบคำถามนี้คือ: เมื่อเรียนรู้ระบบใหม่คุณจะติดตามการเรียนรู้ของรหัสได้อย่างไร มันไม่เกี่ยวกับความเข้าใจว่าทำไมรหัสไม่สิ่งที่มันไม่ (ซึ่งเป็นสิ่งที่แสดงความคิดเห็นควรจะให้) แต่วิธีการมันไม่ได้ (ซึ่งจะได้เรียนรู้เพียงผ่านการอ่านรหัสที่ไม่เห็น)

9
จะวางตรรกะทางธุรกิจไว้ใน Stored Procedure หรือไม่
คำถามนี้ถูกโยกย้ายจาก Stack Overflow เพราะสามารถตอบได้ใน Software Engineering Stack Exchange อพยพ 8 ปีที่ผ่านมา มีการถกเถียงกันในหัวข้อนี้เสมอ - "ไม่ว่าจะวางตรรกะทางธุรกิจในกระบวนงานที่เก็บไว้หรือไม่ หากเราตัดสินใจที่จะไม่ใช้เครื่องมือ ORM และไม่ใส่ Business Logic ใน Stored Procedure เราจะวาง Business Logic ไว้ที่ไหน? ในแอปพลิเคชันก่อนหน้าของฉันฉันมักจะต้องการวาง Business Logic ทั้งหมดในขั้นตอนการจัดเก็บเท่านั้น จากนั้นในรหัส. NET ฉันเรียกขั้นตอนการจัดเก็บเหล่านี้โดยใช้ Data Application Application Blocks SQLHelper เป็นต้น แต่นี่ไม่สามารถเป็นสถานการณ์ได้ตลอดเวลา ดังนั้นฉันจึงทำ googling แต่ก็สับสนในที่สุด ....... ข้อเสนอแนะใด ๆ ... ?
21 c#  .net  sql 

4
ใครบ้างมีตัวอย่างเฉพาะของการใช้รูปแบบ Flyweight? [ปิด]
ปิด คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้มุ่งเน้นที่ปัญหาเดียวโดยแก้ไขโพสต์นี้ ปิดให้บริการใน2 ปีที่ผ่านมา ฉันได้เรียนรู้รูปแบบการออกแบบและมาถึงรูปแบบน้ำหนักบิน ฉันพยายามเห็นโอกาสที่จะใช้รูปแบบในแอปพลิเคชันของฉัน แต่ฉันมีปัญหาในการดูวิธีการใช้ นอกจากนี้มีสัญญาณอะไรบ้างที่มีการใช้รูปแบบน้ำหนักบินเมื่อฉันอ่านรหัสประชาชนอื่น ๆ ? ตามคำจำกัดความมันบอกว่า: ใช้การแบ่งปันเพื่อรองรับวัตถุขนาดเล็กจำนวนมากได้อย่างมีประสิทธิภาพ ถ้าฉันอ่านถูกต้องพจนานุกรมและแฮชเทเบิลอาจเป็นกรณีของตุ้มน้ำหนักบินถูกต้องหรือไม่ ขอบคุณล่วงหน้า.

3
Node.js แตกต่างจากเฟรมเวิร์กฝั่งเซิร์ฟเวอร์อื่นอย่างไร
ฉันสังเกตเห็นว่า Node.js ได้รับความนิยมมากและฉันเห็นผู้คนหลายคนทำโครงการขนาดเล็กในนั้น ฉันได้ดูรายการข้อดีและข้อเสียเพื่อรับทราบว่า Node.js สามารถทำอะไรได้บ้าง แต่ฉันยังไม่ชัดเจนว่ามันแตกต่างจากเทคโนโลยีด้านเซิร์ฟเวอร์ที่เป็นผู้ใหญ่กว่าอย่างเช่น PHP, Perl หรือ Ruby บน ทางรถไฟ อะไรคือสิ่งที่ทำให้ Node.js แตกต่างจากทางเลือกปัจจุบันและทำไม?

6
การใช้ DI / IoC ควรลบคำหลัก“ ใหม่” ที่เกิดขึ้นทั้งหมดหรือไม่
การใช้การพึ่งพาการฉีดและผกผันของการควบคุมควรลบการเกิดขึ้นทั้งหมดของnewคำหลัก "" ออกจากรหัสของคุณหรือไม่? ในคำอื่น ๆ ทุกวัตถุ / การพึ่งพาไม่ว่าจะง่ายหรืออายุสั้นเป็น "ลงทะเบียน" ในภาชนะ IoC ของคุณและฉีดเข้าไปในวิธีการ / ชั้นเรียนที่ต้องใช้พวกเขา? ถ้าไม่คุณจะวาดเส้นไหนระหว่างการพึ่งพา / วัตถุที่ลงทะเบียนในคอนเทนเนอร์ IoC เทียบกับสิ่งที่ได้รับการสร้าง "ในบรรทัด" เป็นข้อมูลอ้างอิงที่เป็นรูปธรรมผ่านnewคำหลัก?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.