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

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

6
ล่ามสร้างรหัสเครื่องหรือไม่
ฉันศึกษาหัวข้อคอมไพเลอร์และล่ามอย่างเข้มข้น ฉันต้องการตรวจสอบว่าความเข้าใจพื้นฐานของฉันถูกต้องหรือไม่ดังนั้นให้ลองทำดังนี้: ฉันมีภาษาที่เรียกว่า "Foobish" และคำหลักคือ <OUTPUT> 'TEXT', <Number_of_Repeats>; ดังนั้นถ้าฉันต้องการพิมพ์ไปยังคอนโซล 10 ครั้งฉันจะเขียน OUTPUT 'Hello World', 10; สวัสดี World.foobish- ไฟล์ ตอนนี้ฉันเขียนล่ามในภาษาที่ฉันเลือก - C # ในกรณีนี้: using System; namespace FoobishInterpreter { internal class Program { private static void Main(string[] args) { analyseAndTokenize(Hello World.foobish-file)//Pseudocode int repeats = Token[1]; string outputString = Token[0]; for (var …

2
ประสิทธิภาพเป็นเหตุผลเดียวที่ไม่ใช้ SignalR (websockets) ทั้งหมดแทน REST API แบบดั้งเดิมหรือไม่
ฉันเคยใช้SignalRฟังก์ชั่นส่งข้อความตามเวลาจริงในหลายโครงการของฉัน ดูเหมือนว่าจะทำงานได้อย่างน่าเชื่อถือและง่ายต่อการเรียนรู้ที่จะใช้ อย่างน้อยที่สุดสิ่งล่อใจสำหรับฉันคือการละทิ้งการพัฒนาบริการ Web API และใช้SignalRสำหรับทุกสิ่ง ฉันรู้สึกว่าสิ่งนี้สามารถทำได้โดยการออกแบบอย่างรอบคอบและถ้าเป็นเช่นนั้นก็จะหมายความว่ารหัสลูกค้าน้อยกว่าจะจำเป็น ที่สำคัญกว่านั้นก็หมายความว่าจะมีอินเทอร์เฟซเดียวกับบริการมากกว่าแยกส่วนและในกรณีที่เลวร้ายที่สุดที่หนึ่งสามารถเชื่อมต่อนี้โดยไม่ต้องคิดเกี่ยวกับเมื่อสิ่งที่ได้รับการแสดง ฯลฯ ดังนั้นฉันอยากรู้ว่า: มีเหตุผลอื่นใดอีกหรือไม่ที่จะไม่ใช้ SignalR แทนบริการเว็บทั้งหมดนอกเหนือจากประสิทธิภาพ ประสิทธิภาพของ SignalR นั้นเพียงพอหรือไม่เกี่ยวกับเรื่องนี้ มันเป็นความฝันของฉันมานานแล้วที่จะสามารถแปลวัตถุฝั่งเซิร์ฟเวอร์และคำจำกัดความการบริการเป็นรหัสการเข้าถึงบริการฝั่งไคลเอ็นต์โดยไม่มีอะไรโง่node.jsๆ ตัวอย่างเช่นถ้าฉันกำหนดวัตถุที่น่าสนใจInterestingObjectและบริการไปCRUDยังวัตถุInterestingObjectServiceฉันสามารถกำหนดเส้นทาง URL มาตรฐานไปยังบริการ - พูดว่า "/ {serviceName} / {methodName}" - แต่ฉันยังคงต้องเขียนรหัสลูกค้าเพื่อเข้าถึง บริการ. เนื่องจากวัตถุจะถูกส่งผ่านจากไคลเอนต์ไปยังเซิร์ฟเวอร์และย้อนกลับจึงไม่มีเหตุผลเชิงปฏิบัติที่จะมีเพื่อกำหนดวัตถุอย่างชัดเจนในรหัสฝั่งไคลเอ็นต์และไม่จำเป็นต้องกำหนดเส้นทางเพื่อดำเนินการ CRUD อย่างชัดเจน ฉันรู้สึกว่าควรมีวิธีที่จะทำให้มาตรฐานทั้งหมดนี้เป็นไปได้ในการเขียนไคลเอนต์ภายใต้สมมติฐานที่ว่าการเข้าถึงบริการทำงานจากไคลเอนต์ไปยังเซิร์ฟเวอร์และกลับมาอย่างโปร่งใสเหมือนที่ฉันเขียน WinForms หรือ Java Applet หรือ Native App หรือสิ่งที่มีคุณ หาก SignalR นั้นดีพอที่จะใช้แทนเว็บเซอร์วิสแบบดั้งเดิมมันอาจเป็นวิธีที่ปฏิบัติได้เพื่อให้บรรลุเป้าหมายนี้ SignalR มีฟังก์ชั่นเพื่อทำให้ฮับทำงานเหมือนบริการที่ฉันอธิบายดังนั้นฉันสามารถกำหนดบริการทั่วไป (CRUD) ที่จะให้ฟังก์ชั่นทั้งหมดนี้นอกกรอบพร้อมภาพสะท้อนบางอย่าง จากนั้นฉันเกือบจะสามารถรับสิทธิ์ในการเข้าถึงบริการได้ช่วยให้ฉันรำคาญกับการเขียนรหัสใหม่เพื่อเข้าถึงสิ่งที่สามารถเข้าถึงได้โดยการประชุม - …

8
เริ่มต้นประโยคด้วยชื่อฟังก์ชั่นหรือไม่? [ปิด]
บางครั้งในขณะที่พิมพ์บางสิ่งบางอย่างที่เกี่ยวข้องกับภาษาการเขียนโปรแกรมเล็ก ๆ น้อย ๆ ฉันจะเริ่มต้นประโยคด้วยชื่อฟังก์ชั่น ตอนนี้กฎของรัฐอังกฤษว่าคำแรกในประโยคจะต้องเป็นตัวพิมพ์ใหญ่; แม้ว่าชื่อฟังก์ชันจะเป็นตัวพิมพ์เล็ก หากคุณสงสัยว่าสิ่งใดที่ฉันสามารถบอกได้ว่าจะส่งผลให้คำแรกเป็นชื่อฟังก์ชั่นใช้ตัวอย่างนี้: การใช้ Fread ของคุณใช้งานไม่ได้ fread ต้องการคืนจำนวนไบต์ที่อ่าน ฉันเข้าใจว่าฉันสามารถเปลี่ยนอินสแตนซ์ที่สองของfreadให้เป็นมันได้แต่ฉันต้องการทราบวิธีที่ดีที่สุดในการจัดการกับสิ่งอื่นนอกเหนือจากการเขียนประโยคใหม่ ฉันควรใช้ชื่อฟังก์ชันเป็นตัวพิมพ์ใหญ่หรือไม่ วิธีเดียวที่ฉันอยากจะได้ยิน "เขียนประโยคใหม่" เป็นคำตอบก็คือถ้าเริ่มต้นประโยคด้วยชื่อฟังก์ชั่นละเมิดกฎภาษาอังกฤษบางอย่างที่ฉันไม่ทราบ แก้ไข: ฉันขอบคุณทุกคนสำหรับคำตอบเหล่านี้ พวกเขามีการเปลี่ยนแปลงและปรับปรุงความเข้าใจของฉันเป็นปัญหา ฉันได้เรียนรู้จากนี้เล็กน้อย ฉันประหลาดใจมากที่ฉันไม่ได้คิดถึงวิธีแก้ปัญหาที่ง่าย แต่ดีเหล่านี้ ฉันคิดว่าท่าทางของฉันในการสลับประโยคนั้นยากเกินไปและตอนนี้ฉันรู้แล้วว่าเนื่องจากคำตอบที่ดีเหล่านี้ว่าการแก้ไขประโยคโดยรวมดูเหมือนจะเป็นตัวเลือกที่ดีที่สุดสำหรับการจัดการกับกรณีเหล่านี้ไม่ว่าจะเป็นการเพิ่มวงเล็บหลังฟังก์ชั่น ชื่อฟังก์ชั่นและหากมีโดยใช้การจัดรูปแบบสำหรับชื่อฟังก์ชั่น
42 functions 

10
ทำไมรหัสของคุณไม่ควรใช้ CPU 100% [ปิด]
ฉันกำลังพูดโดยเฉพาะเกี่ยวกับโปรแกรม C # .NET 4 ที่ทำงานบน Windows XP หรือสูงกว่า แต่คำตอบทั่วไปก็ยอมรับได้เช่นกัน สมมติว่าโปรแกรมที่ได้รับการปรับให้เหมาะสมและมีประสิทธิภาพนั้น ปัญหานี่คือผลกระทบของการใช้งาน CPU สูงกับฮาร์ดแวร์ทั้งหมดและควรใช้โปรแกรมที่มีการใช้งานสูงเพื่อลดการสึกหรอหรือไม่ไม่ว่าการใช้งานของฉันจะมีประสิทธิภาพหรือไม่ เพื่อนร่วมงานวันนี้แนะนำว่าฉันไม่ควรตั้งเป้าการใช้งาน CPU 100% ในกระบวนการโหลดข้อมูลเพราะ "ซีพียูสมัยใหม่ราคาถูกและจะลดลงอย่างรวดเร็วที่ 100% ซีพียู" มันเป็นเรื่องจริงเหรอ? และถ้าเป็นเช่นนั้นทำไม ก่อนหน้านี้ฉันรู้สึกว่าการใช้ CPU 100% นั้นดีกว่าสำหรับการใช้งานที่หนักหน่วงหรือยาวนานและฉันก็ไม่สามารถหาแหล่งที่มาที่น่านับถือในเรื่องนี้ได้
42 c#  multithreading  cpu  usage 

3
มีตัวเลขที่ไม่สามารถแทนได้ในฐาน 10 แต่สามารถแสดงในฐาน 2 ได้หรือไม่
C#มีdecimalประเภทที่ใช้สำหรับตัวเลขที่ต้องการการแทนค่าที่แน่นอนในฐาน 10 ตัวอย่างเช่น0.1ไม่สามารถแสดงในฐาน 2 (เช่นfloatและdouble) และจะเป็นการประมาณเสมอเมื่อเก็บไว้ในตัวแปรที่เป็นประเภทเหล่านี้ ฉันสงสัยว่าข้อเท็จจริงที่ตรงกันข้ามนั้นเป็นไปได้หรือไม่ มีตัวเลขที่ไม่สามารถแทนได้ในฐาน 10 แต่สามารถแสดงในฐาน 2 (ในกรณีนี้ฉันต้องการใช้ a floatแทน a decimalเพื่อจัดการกับมัน) หรือไม่?

9
การเขียนโปรแกรมสำหรับการใช้อินเตอร์เฟสในอนาคต
ฉันมีเพื่อนร่วมงานนั่งถัดจากฉันที่ออกแบบอินเทอร์เฟซเช่นนี้: public interface IEventGetter { public List<FooType> getFooList(String fooName, Date start, Date end) throws Exception; .... } ปัญหาคือตอนนี้เราไม่ได้ใช้พารามิเตอร์ "สิ้นสุด" ที่ใดก็ได้ในรหัสของเรามันอยู่ที่นั่นเพราะเราอาจจะต้องใช้มันในอนาคต เรากำลังพยายามโน้มน้าวเขาว่าเป็นความคิดที่ดีที่จะใส่พารามิเตอร์ไว้ในส่วนต่อประสานที่ไม่ได้ใช้งานในตอนนี้ แต่เขายืนยันอย่างต่อเนื่องว่างานจำนวนมากจะต้องทำถ้าเราใช้วันที่ "สิ้นสุด" ในบางครั้ง ในภายหลังและต้องปรับรหัสทั้งหมดแล้ว ตอนนี้คำถามของฉันคือมีแหล่งที่จัดการหัวข้อเช่นนี้ของปรมาจารย์การเข้ารหัส "เคารพ" ที่เราสามารถเชื่อมโยงเขาไป?

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

2
การซิงโครไนซ์ข้อมูลในแอปมือถือ - อุปกรณ์หลายเครื่องผู้ใช้หลายคน
ฉันกำลังมองหาการสร้างแอพมือถือเครื่องแรกของฉัน หนึ่งในคุณสมบัติหลักของแอปพลิเคชั่นคืออุปกรณ์ / ผู้ใช้หลายคนจะสามารถเข้าถึงข้อมูลเดียวกันได้และทั้งหมดนี้จะมีสิทธิ์ CRUD ฉันเชื่อว่าสถาปัตยกรรมควรเกี่ยวข้องกับเซิร์ฟเวอร์กลางที่จัดเก็บข้อมูลทั้งหมด อุปกรณ์จะใช้ API เพื่อโต้ตอบกับเซิร์ฟเวอร์เพื่อดำเนินการข้อมูล (เช่นการเพิ่มบันทึกการแก้ไขบันทึกการลบบันทึก) ฉันจินตนาการถึงสถานการณ์ที่การซิงโครไนซ์ข้อมูลจะกลายเป็นปัญหา สมมติว่าแอปพลิเคชันควรทำงานเมื่อไม่ได้เชื่อมต่อกับอินเทอร์เน็ตดังนั้นจึงไม่สามารถสื่อสารกับเซิร์ฟเวอร์กลางนี้ได้ ดังนั้น: ผู้ใช้กอยู่ในสถานะออฟไลน์และแก้ไขบันทึก # 100 ผู้ใช้ B ออฟไลน์และแก้ไขบันทึก # 100 ผู้ใช้ C ออฟไลน์และลบบันทึก # 100 ผู้ใช้ C เข้าสู่สถานะออนไลน์ (สมมุติว่า # 100 ควรลบข้อมูลบนเซิร์ฟเวอร์) ผู้ใช้ A และ B ออนไลน์ แต่บันทึกที่พวกเขาแก้ไขไม่มีอยู่อีกต่อไป สถานการณ์ทุกประเภทที่คล้ายกับด้านบนสามารถเกิดขึ้นได้ สิ่งนี้จัดการโดยทั่วไปอย่างไร? ฉันวางแผนที่จะใช้ MySQL แต่ฉันสงสัยว่ามันไม่เหมาะสมสำหรับปัญหาดังกล่าว
42 database  mysql  data  mobile 

7
ฉันจะหยุดการออกแบบและเริ่มสร้างโครงการนี้ตามที่แนะนำโดยลูกค้าเป้าหมายของฉันได้อย่างไร [ปิด]
ฉันเป็นนักพัฒนารุ่นน้อง (ประมาณ 3 ปี) และที่งานของฉันเรากำลังอยู่ระหว่างการออกแบบระบบใหม่ ผู้พัฒนาหลักของฉันจะเป็นสถาปนิกหลัก แต่เขาท้าทายให้ฉันลองสร้างระบบด้วยตัวเอง (ในแบบคู่ขนาน) ในช่วงไม่กี่ครั้งของการระดมความคิดและเสนอสิ่งที่ฉันเห็นว่าเป็นคำแนะนำด้านสถาปัตยกรรมผู้นำของฉันได้ให้ข้อเสนอแนะแก่ฉันว่าสิ่งที่ฉันทำส่วนใหญ่คือ "การออกแบบ" และไม่ใช่ "การออกแบบสถาปัตยกรรม" เขาอธิบายถึงความแตกต่างในขณะที่การใช้งานสถาปัตยกรรมไม่เชื่อเรื่องพระเจ้าในขณะที่การออกแบบเป็นคำอธิบายของการดำเนินการ เขาบอกว่าฉันต้องถอดหมวกออกแบบและสวมหมวกสถาปนิกของฉัน เขาให้คำแนะนำเล็กน้อยกับฉันเกี่ยวกับการทำเช่นนั้น แต่ฉันอยากจะถามคุณเช่นกัน: ฉันจะออกจากโหมดผู้ออกแบบซอฟต์แวร์และเริ่มคิดเหมือนสถาปนิกได้อย่างไร ต่อไปนี้เป็นตัวอย่างของ "การออกแบบ" ที่ฉันเห็นว่าไม่เกี่ยวข้องกับสถาปัตยกรรมโดยผู้นำของฉัน: ฉันคิดอัลกอริทึมสำหรับการโหลดและการยกเลิกการโหลดทรัพยากรจากระบบของเราและลูกค้าของฉันบอกว่าอัลกอริทึมไม่ใช่สถาปัตยกรรม ฉันเกิดเหตุการณ์ต่าง ๆ ขึ้นมาระบบควรจะเพิ่มและสิ่งที่มันควรจะยกระดับ แต่สิ่งนี้ก็ดูเหมือนจะไม่ตัดเป็นสถาปัตยกรรม ฉันดูเหมือนจะจมอยู่กับรายละเอียดและก้าวถอยหลังไม่ไกลพอ ฉันพบว่าแม้เมื่อฉันคิดอะไรบางอย่างที่อยู่ในระดับสถาปัตยกรรมฉันก็มักจะไปถึงที่นั่นด้วยการลองใช้งานที่หลากหลายและการล้อเล่นรายละเอียดจากนั้นทำการสรุปและสรุป เมื่อฉันอธิบายสิ่งนี้กับผู้นำของฉันเขาบอกว่าฉันใช้วิธีการที่ผิด: ฉันต้องคิดว่า "จากบนลงล่าง" และไม่ใช่ "ลงล่าง" นี่คือรายละเอียดเฉพาะเพิ่มเติมเกี่ยวกับโครงการ : โครงการที่เราออกแบบคือเว็บแอปพลิเคชั่น ฉันประมาณรหัสประมาณ 10,000 บรรทัด เราเริ่มแล้ว ทีมวิศวกรของเราประมาณ 3-5 คน สิ่งที่ใกล้เคียงที่สุดที่ฉันสามารถเปรียบเทียบใบสมัครของเราคือ CMS ที่มีน้ำหนักเบา มันมีความซับซ้อนและข้อตกลงคล้ายกันส่วนใหญ่กับการโหลดและการขนถ่ายส่วนประกอบการจัดการเลย์เอาต์และโมดูลสไตล์ปลั๊กอิน แอปพลิเคชันคือ Ajax-y ผู้ใช้ดาวน์โหลดไคลเอ็นต์หนึ่งครั้งจากนั้นร้องขอข้อมูลตามที่ต้องการจากเซิร์ฟเวอร์ เราจะใช้รูปแบบ …

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

8
อะไรคือความรับผิดชอบที่แท้จริงของชั้นเรียน
ฉันสงสัยอยู่ตลอดว่าจะใช้กริยาที่ถูกต้องตามคำนามใน OOP หรือไม่ ฉันเจอบทความที่ยอดเยี่ยมนี้แต่ฉันก็ยังไม่เห็นด้วยกับประเด็นที่ทำ เพื่ออธิบายปัญหาที่เกิดขึ้นอีกเล็กน้อยรัฐบทความที่ว่ามีไม่ควรจะเป็นตัวอย่างเช่นFileWriterชั้น แต่เนื่องจากการเขียนคือการกระทำที่มันควรจะเป็นวิธีการFileของการเรียน คุณจะได้รับรู้ว่ามันมักจะขึ้นอยู่กับภาษาเนื่องจากโปรแกรมเมอร์ Ruby อาจต่อต้านการใช้FileWriterคลาส (Ruby ใช้วิธีFile.openการเข้าถึงไฟล์) ในขณะที่โปรแกรมเมอร์ Java ไม่ต้องการ มุมมองส่วนบุคคลของฉัน (และใช่ต่ำต้อยมาก) คือการทำเช่นนั้นจะทำลายหลักการความรับผิดชอบเดี่ยว เมื่อฉันตั้งโปรแกรมใน PHP (เพราะเห็นได้ชัดว่า PHP เป็นภาษาที่ดีที่สุดสำหรับ OOP ใช่มั้ย) ฉันมักจะใช้เฟรมเวิร์กประเภทนี้: <?php // This is just an example that I just made on the fly, may contain errors class User extends Record { protected $name; public …


10
เป็นความคิดที่ดีหรือไม่ที่จะกำหนดเวลาปกติในการล้างรหัส? [ปิด]
ฉันจัดการทีมนักพัฒนาเล็ก ๆ บ่อยครั้งที่เราตัดสินใจว่าเราจะใช้เวลาหนึ่งหรือสองวันในการทำความสะอาดรหัสของเรา เป็นความคิดที่ดีหรือไม่ที่จะกำหนดเวลาปกติพูด 1 สัปดาห์ทุก 2 เดือนเพื่อทำความสะอาดโค้ดโค๊ดของเรา

6
เหตุใด Facebook จึงแปลงรหัส PHP เป็น C ++ [ปิด]
ฉันอ่านว่า Facebook เริ่มต้นใน PHP และจากนั้นเพื่อเพิ่มความเร็วพวกเขาก็รวบรวม PHP เป็นรหัส C ++ หากเป็นกรณีนี้ทำไมพวกเขาไม่ทำ: เพียงแค่เขียนโปรแกรมใน c ++? แน่นอนว่าจะต้องมีข้อผิดพลาด / ข้อบกพร่องบางอย่างเมื่อกดปุ่มวิเศษแปลภาษาที่พอร์ต PHP ไปยังรหัส c ++ ใช่ไหม? ถ้าตัวแปลงที่น่าประทับใจนี้ใช้งานได้ดีทำไมถึงติดกับ PHP เลย? ทำไมไม่ใช้อะไรอย่าง Ruby หรือ Python ล่ะ? หมายเหตุ - ฉันเลือกทั้งสองอย่างนี้แบบสุ่ม แต่ส่วนใหญ่เป็นเพราะเกือบทุกคนบอกว่าการเข้ารหัสในภาษาเหล่านั้นเป็น "ความสุข" ดังนั้นทำไมไม่พัฒนาเป็นภาษาที่ยอดเยี่ยมแล้วกดปุ่มวิเศษ c ++ รวบรวม?
42 c++  php  compiler  facebook 

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

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