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

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

6
การเลือกประเภทของตัวแปรดัชนี
เราใช้ประเภทจำนวนเต็มแทนตัวแปรดัชนีส่วนใหญ่ แต่ในบางสถานการณ์เราถูกบังคับให้เลือก std::vector<int> vec; .... for(int i = 0; i < vec.size(); ++i) .... สิ่งนี้จะทำให้คอมไพเลอร์เพิ่มการเตือนว่าการใช้ตัวแปรที่ลงนาม / ไม่ได้ลงนามร่วมกัน ถ้าฉันสร้างตัวแปรดัชนีเป็นfor( size_t i = 0; i < vec.size(); i++ )(หรือunsigned int) มันจะสังคายนาปัญหา เมื่อเฉพาะเจาะจงมากขึ้นในการใช้ประเภท windows ส่วนใหญ่ Windows APIs จะเกี่ยวข้องกับ DWORD (ซึ่งพิมพ์ -ed เป็นยาวไม่ได้ลงนาม) ดังนั้นเมื่อฉันใช้การทำซ้ำที่คล้ายกันอีกครั้งจะทำให้คำเตือนเดียวกัน ตอนนี้ถ้าฉันเขียนมันใหม่เป็น DWORD dwCount; .... for(DWORD i = 0; i < …
11 c++ 

10
ประโยคเดียวและแนวปฏิบัติที่ดี
ฉันเพิ่งได้รับนิสัยซึ่งฉันรู้ว่าพวกคุณหลายคนอาจขมวดคิ้ว แต่ในท้ายที่สุดช่วยให้ฉันจับตามองโครงสร้างรหัสทั่วโลกมากกว่าในโครงสร้างของวิธีการซ้ำ ๆ กัน (บางครั้ง): การจัดกลุ่มจำนวน ของคำสั่งในบรรทัดเดียวเช่นนี้ textBox1.Text = "Something!"; textBox2.Text = "Another thing!"; textBox3.Text = "Yet another thing!"; ตรงข้ามกับ textBox1.Text = "Something!"; textBox2.Text = "Another thing!"; textBox3.Text = "Yet another thing!"; ฉันใช้ในการทำเช่นนั้นสำหรับงานซ้ำ ๆ เพื่อรักษารหัสโดยรวมว่า "ความงาม" และเพื่อช่วยฉันในการติดตามโครงสร้างของโปรแกรมได้อย่างง่ายดาย แต่ฉันยอมรับว่าอาจไม่ใช่วิธีปฏิบัติที่ดี ฉันใช้มันบ่อยมากฉันจึงอยากรู้ว่าคุณคิดอย่างไรกับเรื่องนี้ นอกจากนี้คุณคิดว่าทุกคนที่จะต้องรักษารหัสของฉันมีปัญหากับวิธีนี้หรือไม่?

9
แนวคิดเกี่ยวกับการเขียนเรซูเม่ที่มีความหมายซึ่งไม่ได้รวบรวมคำพูดปากต่อปากใช่หรือไม่ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา ฉันกำลังจะเริ่มออกแบบประวัติการทำงานของฉันใหม่อีกครั้ง สิ่งที่ฉันติดอยู่คือฉันควรจะขีดเส้นแบ่งระหว่างการเขียนทุกอย่างลงและเขียนน้อยเกินไป ฉันไม่ต้องการให้เรซูเม่ของฉันเป็นชุด buzzwords และฉันไม่ต้องการให้รู้สิ่งที่ฉันรู้ เก็บความคิดเหล่านี้ไว้ในใจและต้องการเขียนเรซูเม่ที่มีความหมายฉันจะทำอย่างไรกับมัน ใครบางคนที่อ่านประวัติย่อของฉันควรจะสามารถบอกได้ว่าฉันเป็นวัฒนธรรมแฮ็กเกอร์หรือคนที่ไปโรงเรียนคอมพิวเตอร์เพียงเพื่อความหายนะ แก้ไข:ในมุมมองของคำตอบที่เน้นไปที่ buzzwords ฉันอยากจะชี้ให้เห็นว่าฉันกำลังมองหาสิ่งที่ทำให้ประวัติการทำงานของฉันมีความหมายมากขึ้น - ฉันต้องการให้ผู้อ่านสามารถบอกความแตกต่างระหว่างคนแฮ็กเกอร์กับผู้ชายอีกคน ไปโรงเรียนคอมพิวเตอร์

7
การย่อมาตรฐานสำหรับ "นิพจน์ทั่วไป", "regex" หรือ "regexp" คืออะไร [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังว่าคำตอบจะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้อาจเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา ฉันต้องการที่จะรู้ว่าอะไรคือวิธีที่เป็นมาตรฐานมากขึ้นในการเรียกการแสดงออกปกติในทางสั้น ๆ ฉันได้เห็นทั้ง regex และ regexp Google กล่าวว่า regex มีความนิยมมากถึงเกือบ 2 เท่าที่ regexp แต่ขึ้นอยู่กับวิธีที่ฉันค้นหา (เมื่อฉันเพิ่ม "การแสดงออกปกติ" หลังจากคำว่า "regex" กลายเป็น "การแสดงออกปกติ regex" ผลลัพธ์จะแตกต่างกัน) และบน stackexchange จะมีแท็ก regex :) อะไรคือวิธีที่เหมาะสมกว่าในการย่อให้สั้นลง บางทีมันไม่สำคัญ :) แต่ขอบคุณสำหรับคำตอบ

4
เป็นที่ยอมรับหรือไม่ที่จะปรับใช้เว็บแอปกับการผลิตโดยตรงจาก SVN
คำถาม มีเหตุผลที่ถูกต้องหรือไม่ที่จะไม่ใช้ SVN ในการปรับใช้การผลิตหรือนี่เป็นเพียงกรณีของการตั้งค่าส่วนตัวและไม่มีกรณีจริงต่อ SVN หรือไม่? พื้นหลัง สถานที่ทำงานของฉันมีวัฒนธรรมของการติดแท็กใน SVN และจากนั้นปรับใช้การวางจำหน่ายเหล่านั้นโดยตรงกับเว็บเซิร์ฟเวอร์ต่างๆที่ใช้svn coหรือsvn switchรวมถึงการผลิตโดยตรง ฉันเองมีปัญหากับสิ่งนี้เนื่องจากฉันเชื่อว่าหากไม่ได้ใช้สคริปต์บิลด์หรือปรับใช้หรือบางรูปแบบหรือการปรับใช้อัตโนมัติคุณจะสูญเสียการตั้งค่าสภาพแวดล้อมการรวมเนื่องจากไม่มีเอกสาร อย่างไรก็ตามยิ่งไปกว่านั้นฉันมีความรู้สึกว่าอาจมีอันตรายซ่อนเร้นในการทำสิ่งที่ถูกมองข้ามบางสิ่งที่ยังไม่ได้ไปด้านหลังหัวน่าเกลียดของมัน ฉันได้นำข้อกังวลของฉันไปใช้กับเจ้าหน้าที่ปฏิบัติงานที่รับผิดชอบในการปรับใช้โค้ดให้เข้ากับสภาพแวดล้อมต่างๆของเรา (การจัดเตรียมการเตรียมการการผลิต) ฯลฯ ข้อโต้แย้งของพวกเขาค่อนข้างมากว่ามันใช้งานได้ค่อนข้างดี แก้ไข: สิ่งที่ฉันหมายถึงเกี่ยวกับการสร้างและปรับใช้: ตัวอย่างเช่นหากผู้พัฒนาต้องการเพิ่มการตั้งค่า web.config สำหรับสภาพแวดล้อมเฉพาะ โดยทั่วไปแล้ว Web.config จะไม่ถูกเก็บไว้ใน svn ดังนั้นไฟล์เหล่านี้จะถูกอัปเดตด้วยตนเองโดยไม่มีสคริปต์การสร้างอัตโนมัติในรูปแบบใด ๆ ดังนั้นหากพวกเขาหายไปหรือ OPS ลืมเพิ่มเขตข้อมูลลงใน web.config สำหรับรุ่นแล้วคุณมีปัญหา บิลด์สคริปต์ที่บอกว่าใช้ XMLPoke เพื่อสร้าง web.config ที่เหมาะสมสำหรับสภาพแวดล้อมเฉพาะนั้นเหมาะสมที่สุดเมื่อคุณมีสคริปต์เวอร์ชันที่สามารถบันทึกการเปลี่ยนแปลงทั้งหมดที่จำเป็นสำหรับแต่ละสภาพแวดล้อมของคุณ วิธีสร้างและปรับใช้ปัจจุบัน สำหรับโครงการที่สงสัยว่าผู้พัฒนาสร้างการเผยแพร่ด้วยตนเองโครงการอื่น ๆ จะมีขั้นตอนการสร้างอัตโนมัติด้วย NANT หรือ MSBuild ซึ่งก็โอเค การย้ายฐานข้อมูลสำหรับโครงการส่วนใหญ่ผ่านสคริปต์ DB หรือสคริปต์การย้ายข้อมูล …

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

2
ใช้ผลลัพธ์การสร้างอย่างต่อเนื่องเป็นส่วนหนึ่งของการตรวจสอบประสิทธิภาพหรือไม่ [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน5 ปีที่ผ่านมา เจ้านายของฉันวางแผนที่จะใช้การวัดจากการสร้างอย่างต่อเนื่องของเรา (สร้างและดำเนินการทดสอบในทุกการกระทำ) เป็นส่วนหนึ่งของการตรวจสอบประสิทธิภาพของเรา (ในการวัดคุณภาพของเรา) ดูเหมือนว่าเป็นความคิดที่ไม่ดีจริงๆสำหรับฉัน แต่ฉันอยากจะรู้ว่ามีใครเคยศึกษาหรือเคยเห็นสิ่งนี้มาก่อน ความคิดของฉันคือการที่นักพัฒนาของเราจะไม่ทำการทดสอบมากเท่าที่ควรเพราะกลัวว่าการทดสอบจะล้มเหลว ฉันรู้สึกว่าเขาเปลี่ยนเครื่องมือนักพัฒนาที่มีคุณค่าให้กลายเป็นไม้ตีเพื่อเอาชนะนักพัฒนาซอฟต์แวร์ด้วย ข้อโต้แย้งที่เห็นได้ชัดคือการส่งเสริมให้คนระมัดระวังมากขึ้นก่อนที่พวกเขาจะยอมรับและนำไปสู่คุณภาพที่สูงขึ้น ฉันอยู่ที่นี่หรือไม่ โปรดทิ้งคำถามไว้ว่าเราควรจะทำการตรวจสอบประสิทธิภาพหรือไม่ - ได้รับคำตอบจากที่อื่นแล้ว

2
อะไรคือความสัมพันธ์ระหว่าง Dynamic Language Runtime และ C # 4.0?
สมมติว่าฉันต้องการสร้างตัวแปลภาษา / ตัวแปลภาษาแบบไดนามิกซึ่งอาจเป็นล่าม Scheme บนแพลตฟอร์ม. NET ที่มีอยู่ในปัจจุบัน ฉันจะดีกว่าถ้าใช้Dynamic Language Runtime (DLR) หรือใช้ C # 4.0 เพื่อใช้คุณสมบัติแบบไดนามิกของภาษาของฉันหรือไม่ หรือฉันต้องการทั้งสองอย่าง? ฉันรู้ว่ามีได้รับงานอื่น ๆ ที่ทำในพื้นที่นี้โดยเฉพาะอย่างยิ่งกับIronSchemeและIronPython ทั้งสองภาษาใช้ DLR ฉันเชื่อว่า IronPython ใช้เวอร์ชั่นล่าสุดของ DLR (ซึ่งเป็นอายุประมาณหนึ่งปี) ในขณะที่ IronScheme ใช้ต้น fork ที่มีการดัดแปลงแก้ไขอย่างรวดเร็วของเวอร์ชันแรก ๆ ของ DLR แต่ C # 4.0 ไม่สามารถใช้ได้เมื่อคอมไพเลอร์เหล่านี้ถูกสร้างขึ้น ฉันเคยเห็น Rob Conery ทำงานกับMassiveโดยใช้คุณสมบัติแบบไดนามิกของ C # 4.0 มันค่อนข้างน่าประทับใจ แต่ C …

4
ความหมายที่ไม่ได้นิยามใน JavaScript คืออะไร? ทำไมถึงอยู่ที่นั่น? ประเพณีมีอะไรบ้าง? มันจะมีประโยชน์อย่างไร
ใน JavaScript เรามีสิ่งที่เรียกว่าไม่ได้กำหนด ฉันพูดอะไรบางอย่างเพราะฉันไม่รู้ว่ามันเป็นคลาสพื้นฐานหรือตัวแปรบิวด์อินหรือคำหลักหรืออย่างอื่น ฉันเพิ่งรู้ว่ามันมี หากต้องการดูการทำงานคุณสามารถเขียน: undefined; typeof undefined; ใครช่วยอธิบายหน่อยได้ไหมว่าทำไมสิ่งนี้ถึงถูกแทรกลงใน JavaScript? เรามีnullคุณค่าในภาษานี้ดังนั้นจึงไม่ควรเป็นแบบnullนี้ ในภาษาอื่นเมื่อเราไม่รู้ค่าของคุณสมบัติหรือตัวแปรเราก็ตั้งค่าเป็นโมฆะ ที่นี่เราสามารถทำสิ่งเดียวกัน เราจะใช้สิ่งนี้ใน JavaScript ได้อย่างไร?

1
Git และ Mercurial พัฒนาอย่างไรในเวลาเดียวกัน
Git และ Mercurial ปฏิบัติตามโมเดลที่คล้ายกันและมีคำศัพท์ที่คล้ายคลึงกัน การเปิดตัวครั้งแรกของ Mercurial เป็นเพียง 12 วันหลังจาก Git's โครงการทั้งสองนี้ในการพัฒนาเริ่มแรกในเวลาเดียวกันจบลงอย่างไรที่คล้ายกันมาก? ไม่มีใครรู้ประวัติหรือไม่
11 git  mercurial  dvcs 

3
ฉันจะอ่านเอกสารแนะนำตัว C # ต้นฉบับโดย Microsoft ได้ที่ไหน [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน6 ปีที่ผ่านมา เมื่อ Microsoft แสดง. NET Framework และภาษา C # ในปี 2002 บทความแรกที่แนะนำ C # คืออะไร ฉันกำลังมองหาบทความที่ตีพิมพ์บนเว็บไซต์ MSDN หรือ Microsoft ที่จะอธิบายความต้องการภาษาอื่นพูดคุยบางพื้นหลังและอาจมีตัวอย่างโค้ด นอกจากนี้ฉันสนใจในการแนะนำ C # ดั้งเดิมไม่ได้อยู่ในเอกสาร. NET Framework ทั่วไป ฉันจำได้ว่าเอกสาร. NET ยุคแรกนั้นค่อนข้างที่จะมีหมอกและในขณะที่มันมีส่วนร่วมที่ค่อนข้างสนุกที่จะอ่านมันอีกครั้ง
11 c#  microsoft  history  msdn 

1
คำหลัก“ เพื่อน” ใช้ทำอะไร
คุณช่วยอธิบายให้ฉันฟังได้ไหมว่าเพราะเหตุใดfriendคำหลักจึงเหมาะสำหรับการให้สิทธิ์การเข้าถึงข้อมูลส่วนตัวของชั้นเรียน
11 c++  definition 

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

10
ฟังก์ชัน 'ทางคณิตศาสตร์' ควรเป็นไปตามสัญลักษณ์ทางคณิตศาสตร์หรือไม่
ฉันคิดว่าคำถามนี้จะถูกตั้งค่าสถานะเป็นอัตนัยทันที แต่สิ่งใดที่คุณคิดว่าดีกว่า: double volume(double pressure, double n_moles, double temperature) { return n_moles * BOLTZMANN_CONSTANT * temperature / pressure; } หรือ double volume(double P, double n, double T) { return n*R*T/P; } กล่าวอีกนัยหนึ่งฟังก์ชั่นที่ใช้สมการจะต้องปฏิบัติตามสัญกรณ์ของสมการนั้นหรือควรใช้ชื่อที่ละเอียดยิ่งขึ้น?

2
วิธีการเลือกตัวเลือกที่น่าจะเป็นไปได้มากที่สุดจากรายการตามการป้อนข้อความของผู้ใช้
ฉันกำลังทำงานกับแอปพลิเคชัน OCR ที่ฉันต้องเลือกตัวเลือกตามการป้อนข้อความของผู้ใช้ Ex: Available Options: ["python", "ruby", "java", "clojure", "haskell"] Input: kava Output: java Input: ruby Output: ruby Input: clujuro Output: clojure etc.. แอปพลิเคชันของฉันใช้ภาษาไพ ธ อนมีขั้นตอนวิธีแก้ไขปัญหานี้อยู่แล้ว

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