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

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

8
มีกลอุบายใด ๆ ในการจดจำความแตกต่างระหว่างคนหนุ่มใหญ่กับคนเล็กหรือไม่?
ฉันไม่ได้ทำงานทุกวันกับปัญหาที่ยิ่งใหญ่และปัญหาเล็ก ๆ น้อย ๆ และดังนั้นฉันจึงพบว่ายากที่จะจำได้ว่าอันไหนคืออะไร เมื่อเร็ว ๆ นี้ฉันได้รับการสัมภาษณ์ถามถึงความแตกต่างระหว่างสองคนนี้ เนื่องจากฉันจำไม่ได้ว่าฉันตัดสินใจ "เดา" (โอกาส 50% หลังจากทั้งหมด) แต่ฉันล้มเหลว ดังนั้นมีกลวิธี pratical ที่รู้จักกันดีในการจดจำความแตกต่างระหว่าง endian ใหญ่และ endian น้อยหรือไม่
13 endianness 

9
อาร์เรย์หรือ Malloc?
ฉันใช้รหัสต่อไปนี้ในแอปพลิเคชันของฉันและมันใช้ได้ดี แต่ฉันสงสัยว่ามันจะดีกว่าที่จะทำมันด้วย malloc หรือปล่อยให้มันเป็นอย่างนั้นหรือ function (int len) { char result [len] = some chars; send result over network }
13 c 

6
รูปแบบไฟล์กำหนดค่าที่มนุษย์อ่านง่ายที่สุดคืออะไร [ปิด]
ปิด คำถามนี้เป็นคำถามความคิดเห็นตาม ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้สามารถตอบข้อเท็จจริงและการอ้างอิงได้โดยแก้ไขโพสต์นี้ ปิดให้บริการใน5 ปีที่ผ่านมา ไฟล์การกำหนดค่าปัจจุบันเป็นดังนี้: mainwindow.title = 'test' mainwindow.position.x = 100 mainwindow.position.y = 200 mainwindow.button.label = 'apply' mainwindow.button.size.x = 100 mainwindow.button.size.y = 30 logger.datarate = 100 logger.enable = True logger.filename = './test.log' นี่คือการอ่านด้วยหลามในพจนานุกรมที่ซ้อนกัน: { 'mainwindow':{ 'button':{ 'label': {'value':'apply'}, ... }, 'logger':{ datarate: {'value': 100}, enable: {'value': True}, …

8
ฟังก์ชันที่เรียกใช้ฟังก์ชันอื่นเท่านั้น นี่เป็นวิธีปฏิบัติที่ดีหรือไม่?
ขณะนี้ฉันกำลังทำงานกับชุดรายงานที่มีหลายส่วน (ทั้งหมดต้องมีการจัดรูปแบบที่แตกต่างกัน) และฉันกำลังพยายามหาวิธีที่ดีที่สุดในการจัดโครงสร้างโค้ดของฉัน รายงานที่คล้ายกันที่เราได้ทำในตอนท้ายที่ผ่านมามีฟังก์ชั่นที่มีขนาดใหญ่มาก (200+ บรรทัด) ที่ทำการจัดการข้อมูลและการจัดรูปแบบสำหรับรายงานทั้งหมดดังนั้นเวิร์กโฟลว์จะมีลักษณะดังนี้: DataTable reportTable = new DataTable(); void RunReport() { reportTable = DataClass.getReportData(); largeReportProcessingFunction(); outputReportToUser(); } ฉันต้องการที่จะสามารถแบ่งฟังก์ชั่นขนาดใหญ่เหล่านี้ออกเป็นชิ้นเล็ก ๆ แต่ฉันกลัวว่าฉันจะจบลงด้วยฟังก์ชั่นที่ไม่สามารถนำมาใช้ซ้ำได้หลายสิบและฟังก์ชั่น "ทำทุกอย่างที่นี่" ที่คล้ายกัน เรียกใช้ฟังก์ชั่นเล็ก ๆ เหล่านี้ได้เช่น: void largeReportProcessingFunction() { processSection1HeaderData(); calculateSection1HeaderAverages(); formatSection1HeaderDisplay(); processSection1SummaryTableData(); calculateSection1SummaryTableTotalRow(); formatSection1SummaryTableDisplay(); processSection1FooterData(); getSection1FooterSummaryTotals(); formatSection1FooterDisplay(); processSection2HeaderData(); calculateSection1HeaderAverages(); formatSection1HeaderDisplay(); calculateSection1HeaderAverages(); ... } หรือถ้าเราไปอีกขั้นหนึ่ง: void largeReportProcessingFunction() …

5
เมื่อใดที่จะไม่ใช้ ORM และชอบวิธีการจัดเก็บ?
ฉันใช้ PetaPoco micro-ORM เป็นเรื่องง่ายและปลอดภัยในการทำงานกับฐานข้อมูลโดยใช้เครื่องมือ ORM แต่สิ่งเดียวที่ฉันเกลียดคือรหัสพิเศษ ฉันเคยใส่รหัสส่วนใหญ่ในฐานข้อมูลของตัวเองและใช้คุณสมบัติ RDBMS ทั้งหมดเช่น Stored Procedure, Triggers เป็นต้นซึ่งมันถูกสร้างขึ้นเพื่อจัดการที่ดีขึ้น ฉันต้องการที่จะรู้ว่าเมื่อใดที่จะไม่ใช้ ORM มากกว่าขั้นตอนการจัดเก็บ / ทริกเกอร์และในทางกลับกัน

11
มีภาษาการเขียนโปรแกรมที่ปรับเปลี่ยนได้ส่วนบุคคลที่คุณสามารถใช้ในการแปลงให้เป็นผู้อื่นได้หรือไม่?
มีภาษาการเขียนโปรแกรมที่คุณสามารถตั้งค่าการกำหนดค่าไวยากรณ์ของคุณเองและมันจะแปลงรหัสเป็นภาษาที่คุณเลือกหรือไม่? ตัวอย่างเช่นคุณจะเลือกการกำหนดค่าเฉพาะเช่น "บล็อกที่จัดทำดัชนีของ Python" [a,b,c]เริ่มต้นอาร์เรย์^สำหรับการยกกำลังและอื่น ๆ สคริปต์จะแปลงเป็นภาษาที่คุณเลือก

5
ฉันต้องรับผิดชอบรหัสมากน้อยเพียงใด
จากการสัมภาษณ์เพื่อนร่วมงานและออกจากงานฉันได้ยินว่าที่ บริษัท เล็ก ๆ ของฉันฉัน "รับผิดชอบ" ที่ใดก็ได้จากรหัสมากกว่า 3-10 เท่ากว่าที่ฉันจะได้งานอื่น ฉันพยายามมองหาตัวชี้วัดแบบคลุมเครือบางอย่างที่ฉันสามารถใช้เพื่อเปรียบเทียบปริมาณงานของฉันกับคนอื่น ๆ ในสาขาของฉัน โดย "ความรับผิดชอบต่อโค้ด" ฉันไม่ได้หมายความว่า "ฉันเป็นคนเดียวที่รู้พื้นที่ X ของฐานรหัส" (แม้ว่าเศร้ามันมักจะเป็นจริงในสภาพแวดล้อมการเริ่มต้น) แต่ค่อนข้างหมายถึงจำนวนเช่น "code_base_size / number_of_developers" มีทรัพยากรใดที่ฉันสามารถใช้เพื่อช่วยฉันในการวัดภาระงานของฉันอย่างแม่นยำมากกว่าการนับจำนวนบรรทัดโค้ด
13 metrics 

2
ทำไมตัวแปร PHP จำเป็นต้องนำหน้าด้วยเครื่องหมายดอลลาร์
ฉันเข้าใจว่าตัวแปร PHP ทั้งหมดจะต้องนำหน้าด้วยเครื่องหมายดอลลาร์ (เช่น$someValue = 1) แต่ทำไมถึงเป็นเช่นนั้น ทำไมตัวเลือกการออกแบบนี้ถูกสร้างขึ้นมา? เหตุผลที่ฉันถามคือแฟนของฉันถามว่าทำไมเมื่อฉันพูดถึงว่าตัวแปร PHP ต้องเริ่มต้นด้วยเครื่องหมายดอลลาร์และฉันรู้ว่าฉันไม่รู้ว่าทำไมตัวเลือกประโยคนี้จึงถูกสร้างขึ้น ความคิดใด ๆ
13 php  syntax 

3
ฉันต้องทำความสะอาด / สร้างโครงการใหม่ก่อนทำการดีบั๊ก / เผยแพร่ใน Visual Studio หรือไม่
นี่อาจเป็นคำถามที่โง่ แต่ฉันต้องทำความสะอาด / สร้างใหม่ก่อนที่จะทำการดีบักหรือเผยแพร่โครงการ Visual Studio หรือไม่ ฉันเห็นนักพัฒนาคนอื่นทำอยู่ตลอดเวลาและในบางครั้งฉันก็เริ่มทำมันโดยไม่ได้คิด ดูเหมือนว่านิสัยจะต้องสะอาดอยู่เสมอรอสร้างใหม่รอเผยแพร่ ฉันรู้ว่าฉันไม่ได้ทำ ... ฉันคิดว่าฉันเริ่มทำหลังจากใช้เวลาในการดีบักข้อผิดพลาดเพื่อค้นพบมันหายไปเมื่อฉันทำความสะอาดและสร้างโซลูชันขึ้นมาใหม่ ฉันมีปัญหานี้มากกว่าหนึ่งครั้งด้วยดังนั้นฉันจึงรู้ว่ามันไม่ใช่สิ่งที่เกิดขึ้นครั้งเดียว แต่ดูเหมือนว่าเป็นการเสียเวลามากที่จะทำความสะอาด / สร้างโครงการของคุณใหม่

4
แบ็กสแลช“ \” ตัวละครยกเว้นหลบหนีอะไรจริง ๆ ?
แบ็กสแลชอะไรที่หลบหนีจริงๆ? มันใช้เป็นตัวละครที่หลบหนี แต่ฉันมักจะสงสัยว่ามีอะไรหลบหนีหรือสิ่งที่ถูกหลบหนีจาก ฉันรู้ว่า "\ n" กำหนดบรรทัดใหม่ แต่การหลบหนีมาจากไหน ทำไมถึงเรียกว่า

3
วิธีรวมเงื่อนไขในแผนภาพลำดับ UML
ฉันชอบที่จะวาดแผนภาพลำดับ UML เพื่อแสดงลำดับของการกระทำและการโต้ตอบในส่วนต่าง ๆ ของระบบของฉัน (ฉันคิดว่าพวกเขาเรียกว่านักแสดง) อย่างไรก็ตามฉันต้องรวมif then elseข้อความที่นี่ ฉันทำอะไรผิดหรือเปล่า? ฉันสามารถใช้เงื่อนไขได้หรือไม่หากข้อความในแผนภาพลำดับ UML ของฉัน อย่างไร?

4
อินเทอร์เฟซและลายเซ็นวิธีการลิขสิทธิ์คุ้มครอง
ตัวอย่างเช่นมันเป็นการละเมิดลิขสิทธิ์หรือไม่ถ้าฉันเขียนคลาสที่ชื่อว่า Random โดยมีจุดประสงค์และลายเซ็นของวิธีการเดียวกันกับ. Net System.Random class ของ Microsoft หรือไม่ มันสร้างความแตกต่างในภาษาที่ใช้เขียนหรือไม่? ในกรณีนี้ฉันต้องการเขียนคลาส Random สำหรับใช้ใน ActionScript ซึ่งไม่มีคลาส PRNG ในตัว หากใครมีลิงค์หรือคำแนะนำอ้างอิงที่ดีเพื่อทำความเข้าใจว่าซอฟต์แวร์ได้รับการปกป้องในด้านใดบ้าง และใช่ฉันรู้ว่านี่ไม่ใช่ที่สำหรับคำแนะนำทางกฎหมาย "ของจริง" หากมีใครไปศาลชี้ไปที่กระดานข้อความสาธารณะว่าเป็นเรื่องน่าละอาย

9
ข้อกำหนด "โปรโตคอล" และ "มาตรฐาน" แตกต่างกันอย่างไร
ฉันพบคำว่า "โปรโตคอล" ทำให้เกิดความสับสน (ในแง่ของวิทยาศาสตร์คอมพิวเตอร์นั่นคือ) หากโปรโตคอลเป็นเพียงชุดของกฎมันจะง่ายกว่าไหมถ้าเราใช้คำว่า "มาตรฐาน" แทน (เช่นใน "มาตรฐาน HTTP")

4
คุณจะกำหนดรหัสข้อผิดพลาดได้อย่างไร
เมื่อพัฒนาโครงการขนาดกลางคุณจะระบุสร้างและรักษารหัสข้อผิดพลาดได้อย่างไร ฉันสำหรับชีวิตของฉันไม่สามารถคิดวิธีที่ง่ายและสะอาดในการทำเช่นนั้น ความคิดของฉันบางส่วนเปลี่ยนชื่อคลาสและชื่อเมธอดเป็นสตริงจำนวนเต็ม แต่นั่นเป็นวิธีที่จะแสดงต่อผู้ใช้นานกว่าข้อเท็จจริงที่ว่าชื่อเมธอดและชื่อคลาสอาจเปลี่ยนไป (หวังว่าจะไม่!) คนอื่น ๆ กำลังใช้ระบบบันทึกที่เพิ่มขึ้น (เช่นเมื่อฉันสร้างข้อความแสดงข้อผิดพลาดขึ้นมาใหม่ให้เพิ่ม 1 ลงใน id ข้อความแสดงข้อผิดพลาดล่าสุด) แต่นั่นก็ไม่มีการรวบรวมกันอย่างสมบูรณ์ จะเจาะจงมากขึ้นฉันกำลังพูดถึงรหัสข้อผิดพลาดเช่น: Error 401 Unauthorized.

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

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