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

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

3
คำนวณค่าใช้จ่ายของรหัสที่ไม่ดี
ฉันกำลังมองหาข้อโต้แย้งเพื่อโน้มน้าวให้ฝ่ายบริหารลงทุนในความพยายามในการปรับโครงสร้างใหม่ เราบันทึกการทำงานโดยใช้ Jira และเชื่อมโยงทุก svn-commit กับการเรียก jira ความคิดของฉันคือการทำต่อไปนี้: ตรวจดูพื้นที่ของรหัสด้วยตนเองซึ่งมีการใช้งานที่แย่มาก แต่มักจะใช้: ทั้งจาก User-POV และ Developer-POV (แก้ไขข้อผิดพลาด) รับ svn-commits ซึ่งมี JIRA-Issues กรองปัญหาตามเกณฑ์บางอย่าง (ประเภทปัญหารุ่น prio ฯลฯ ... ) คำนวณเวลา / ความพยายามที่ใช้กับข้อบกพร่องเหล่านี้ ประเมินความพยายามและความเสี่ยงของการปรับโครงสร้างใหม่ แสดงตัวเลขและขอความพยายามแก้ไข คุณคิดยังไงกับสิ่งนี้? การวัดเช่นนี้จะมีประโยชน์และ / หรือน่าเชื่อถือไหม ข้อดีข้อเสียคืออะไร

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

8
การเลือกระหว่าง CL และ Python สำหรับการพัฒนาเว็บ
ฉันมาจากพื้นหลังของจาวาและหลังจากที่ฉันได้อ่านบทความนี้โดยพอลเกรแฮมฉันเริ่มสงสัยว่าการเลือกภาษาใหม่คือ Common LISP เพื่อเร่งงานของฉัน (ฉันเป็นนักพัฒนาเว็บ) ตอนนี้ฉันกำลังเขียนโครงการสัตว์เลี้ยง แต่ฉันมีแผนธุรกิจสำหรับอนาคต Paul พูดถึง LISP ในเรียงความของเขาว่าเป็น "อาวุธลับ" ฉันไม่ทราบว่าคำสั่งนี้เป็นจริงหลังจาก 10 ปี แต่ฉันจุ่มนิ้วเท้าของฉันลงในการสอน CL ที่ดีและดูเหมือนว่า LISP อาจเหนือกว่าสำหรับการพัฒนาเว็บ พอลกล่าวถึง Python ว่าเป็นตัวเลือกที่ดีที่ฉันคุ้นเคย คำถามของฉันคือฉันควรเลือกโครงการใดในอนาคตของเว็บ สิ่งที่ฉันคิดเกี่ยวกับ: ฉันจะไม่พัฒนาแอพพลิเคชั่นเดสก์ท็อปดังนั้นฉันสามารถเลือกภาษาที่ต้องการได้ หลามดูเหมือนว่าจะมีชุมชนขนาดใหญ่มากซึ่งทำให้ห้องสมุด / กรอบงานมากกว่าเมื่อเปรียบเทียบกับเสียงกระเพื่อม ฉันพบว่า lisp มีฟังก์ชั่นบางอย่าง (เช่นมาโคร) ซึ่งหาไม่ได้ที่อื่น ฉันส่วนใหญ่ทำงานคนเดียวหรือกับโปรแกรมเมอร์ 1-2 คน แต่การหาคนที่มีความรู้ไม่เพียงพออาจเป็นเรื่องยาก ดังนั้นสิ่งที่คุณคิดว่า?

4
มีข้อยกเว้นในการจัดการกับปัญหาการตัดขวางหรือไม่?
ฉันไม่เห็นความแตกต่างระหว่างข้อกังวลของการจัดการข้อยกเว้นและการเข้าสู่ระบบที่ทั้งคู่เป็นข้อกังวลตัดขวาง คุณคิดอย่างไร? ไม่ควรจัดการแยกต่างหากด้วยตัวเองแทนที่จะสอดแทรกด้วยตรรกะหลักที่วิธีการใช้งานอยู่? แก้ไข : สิ่งที่ฉันพยายามจะพูดก็คือในความคิดของฉันการใช้วิธีการควรมีตรรกะสำหรับเส้นทางที่ประสบความสำเร็จของการดำเนินการและข้อยกเว้นควรได้รับการจัดการที่อื่น นี่ไม่ใช่ข้อยกเว้นเกี่ยวกับการตรวจสอบ / ไม่ได้ตรวจสอบ ตัวอย่างเช่นภาษาอาจจัดการกับข้อยกเว้นในวิธีการตรวจสอบอย่างสมบูรณ์โดยใช้โครงสร้างดังนี้: class FileReader { public String readFile(String path) { // implement the reading logic, avoid exception handling } } handler FileReader { handle String readFile(String path) { when (IOException joe) { // somehow access the FileInputStram and close it } } …

3
คุณใช้ ROT13 ที่ไหน
ฉันอ่านเอกสารเพื่อเป็นกลุ่มและสังเกตว่ามีทางลัดตัวอย่างเช่นg?wจะแปลงคำถัดไปโดยใช้ ROT13 ฉันรู้ว่าคุณสามารถเปลี่ยนการเข้ารหัสไฟล์ Python เป็น ROT13 นี่คือคำถามของฉัน: ทำไม ดูเหมือนว่ามันจะไม่เป็นที่เป็นประโยชน์นอกเหนือจากโปรแกรมเล่นตลกเหมือนDjango FUNserver
13 encryption 

7
Delphi XE2 จะทำงานข้ามแพลตฟอร์มได้อย่างไร [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นหัวข้อสำหรับ Software Engineering Stack Exchange ปิดให้บริการใน4 ปีที่แล้ว ดังนั้นฉันจึงได้อ่านเกี่ยวกับ Delphi XE2 เล็กน้อยและฉันอาจจะไปเที่ยวรอบโลกในชิคาโกที่จะมีขึ้นในเดือนนี้และถามคำถามนี้หากไม่มีใครตอบได้ที่นี่ สิ่งที่ฉันสงสัยคือรหัส Delphi ของฉันจะถูกเรียกใช้บน Mac อย่างไร มีอะไรอีกที่จะต้องเรียกใช้ (เช่นเครื่องเสมือน) เพื่อให้โปรแกรมทำงานหรือไม่

9
เขียนใหม่แอสเซมบลี IBM + COBOL ใน C ++
ฉันทำงานเป็นตัวแทน / ผู้จัดการการเช่าสำหรับ บริษัท รถเช่าที่ใช้ระบบเช่าซึ่งเขียนขึ้นในปี 1972 ฉันตัดสินใจว่าอาจถึงเวลาสำหรับการอัพเดท สำหรับพื้นหลังเล็กน้อยนี่คือตัวอย่างสั้น ๆ ของความบ้าคลั่งที่เราต้องจัดการกับโปรแกรมนี้ทุกวัน: ตัวแทนการเช่าต้องจำไว้ว่าการพิมพ์บนหน้าจอหนึ่งใช้ "MXC" ในฟิลด์ ACT (ทุกอย่างอิงตามรหัสย่อ) ซึ่งย่อมาจาก "MaXimum display on a contract" ในขณะที่อีกหน้านั้นต้องใช้ PR (for PRint) ใน ฟิลด์ ACTION แต่หน้าจอหลายจอใช้ Y ในฟิลด์ PT (สำหรับ PrinT) แต่หน้าจออื่นใช้ Y ในฟิลด์ PRT (สำหรับ PRinT) แต่หน้าจออื่นต้องการให้ผู้ใช้กด Enter (แต่ไม่ใช่การป้อนถัดจาก ตัวอักษรเนื่องจากเป็นอักขระบรรทัดใหม่นั้นจะต้องป้อนบนแป้นตัวเลข) และจากนั้น F8 หน้าจออื่นที่เกี่ยวข้อง แต่ต้องใช้เพียง F8 หน้าจอบางหน้ามีเขตข้อมูล …

7
เงินทุนโครงการเปรียว
บริษัท ที่ฉันทำงานอยู่นั้นกำลังก้าวไปสู่กลยุทธ์การจัดการโครงการแบบเปรียวซึ่งต้องเผชิญกับ "ความสุข" ของน้ำตกหลายครั้ง กุญแจสำคัญในการนี ในขณะที่กระบวนการพัฒนาและความสัมพันธ์กับลูกค้าได้รับการปรับปรุงอย่างแน่นอนโดยการเผยแพร่ซ้ำซ้ำแล้วซ้ำอีกซึ่งได้รับการสนับสนุนผ่าน Agile แต่ก็พิสูจน์ได้ยากกว่าที่จะใช้เหตุผลเดียวกันกับกลยุทธ์การระดมทุนสำหรับโครงการ ลูกค้ามักไม่คุ้นเคยกับแนวคิดเช่น Agile และแสดงความกังวลอย่างมากกับสิ่งที่พวกเขาเข้าใจว่าเป็น "มันจะพร้อมเมื่อพร้อมแล้ว" ฉันต้องการฟังความคิดและประสบการณ์ของผู้คนในการให้ทุนโครงการ Agile แก้ไข: ฉันต้องการเน้นว่าฉันไม่ได้ขอให้คนอธิบายข้อดีข้อเสียของวิธี Agileให้ฉันและฉันเชื่อว่า Agile เท่ากับ "จะพร้อมเมื่อพร้อม" นี่เป็นความกลัวที่แสดงออกโดย ลูกค้า / ธุรกิจที่ฉันทำงานด้วยเมื่อสนับสนุนการพัฒนาแบบ Agile สิ่งที่ฉันสนใจคือประสบการณ์ที่ผู้คนได้แก้ไขความขัดแย้งระหว่างวิธีการจัดทำงบประมาณแบบ "ดั้งเดิม" ที่ยึดไว้กับลูกค้าธุรกิจ / ความสัมพันธ์และวิธีการพัฒนาที่ก้าวหน้ายิ่งขึ้น - และกลยุทธ์การจัดสรรงบประมาณที่พวกเขานำมาใช้เพื่อสนับสนุนการวิวัฒนาการนั้น
13 agile 

10
เมื่อหางานคุณจะสนใจอะไรเกี่ยวกับการโพสต์งาน [ปิด]
ตามที่เป็นอยู่ในปัจจุบันคำถามนี้ไม่เหมาะสำหรับรูปแบบคำถาม & คำตอบของเรา เราคาดหวังคำตอบที่จะได้รับการสนับสนุนจากข้อเท็จจริงการอ้างอิงหรือความเชี่ยวชาญ แต่คำถามนี้มีแนวโน้มที่จะเรียกร้องให้มีการอภิปรายโต้แย้งโต้แย้งหรือการอภิปรายเพิ่มเติม หากคุณรู้สึกว่าคำถามนี้สามารถปรับปรุงและเปิดใหม่ได้โปรดไปที่ศูนย์ช่วยเหลือเพื่อขอคำแนะนำ ปิดให้บริการใน8 ปีที่ผ่านมา บริษัท เล็ก ๆ ที่ฉันทำงานด้วยกำลังมองหาโปรแกรมเมอร์ที่ดีอยู่ไม่กี่คน เราได้โพสต์รายชื่องานในไม่กี่แห่งและเข้าสู่บอร์ดกลุ่มผู้ใช้ในพื้นที่ แต่ไม่ได้รับอะไรเลย ในฐานะนักพัฒนาองค์ประกอบของการโพสต์งานที่จะทำให้คุณตอบสนอง: ชื่อ บริษัท (เช่น Microsoft, Oracle หรือในสายงานของเรา BAE, Boeing, Lockheed Martin) ประเภทของงาน (ดูเหมือนจะชัดเจน แต่จะเป็น ROR หรือ Java เป็นต้น) สภาพแวดล้อมการทำงาน คอมพิวเตอร์ที่ใช้ (MacBook PRO สำหรับทุกคน) ช่วงเงินเดือน อื่น ๆ มันค่อนข้างยากที่จะเชื่อว่าเนื่องจากตลาดงานโดยรวมที่เราไม่ได้ดำเนินการต่อ เราอยู่ในตลาดที่ร้อนแรง (พื้นที่ DC) แต่ก็ดูเหมือนว่าจะค่อนข้างยาก
13 recruiting 

9
ไลบรารีไลเซนส์ GPLv2 ใด ๆ สามารถใช้ในแอปพลิเคชันอินทราเน็ตภายในของ บริษัท ได้หรือไม่
ฉันกำลังสร้างแอปพลิเคชันภายในสำหรับ บริษัท ที่ฉันทำสัญญากับ เราต้องการใช้ไลเซนส์ไลบรารี GPLv2ในแอปพลิเคชันนี้ บางจุด แอปพลิเคชั่นนี้จะใช้ภายในขอบเขตของ บริษัท และไม่สามารถใช้งานเพื่อสาธารณะได้ ใช้สำหรับ บริษัท ภายในเท่านั้น มันจะไม่ถูกขายตลอดไป !! . ดังนั้นไม่มีเงินจะทำโดยตรงจากการขายรหัส มันไม่ใช่ผลิตภัณฑ์ แอปพลิเคชั่นมีสองรูปแบบ รูปแบบดั้งเดิมของมันซึ่งเป็นคอนโซลที่ใช้ exe (ซึ่งใช้ไลบรารี GPL) และ การใช้งานผ่านเว็บอินเตอร์เฟสที่เรียกใช้ไฟล์ปฏิบัติการได้ ซอร์สโค้ดจะยังคงเป็นรหัสต้นฉบับ (ใช้โดย บริษัท เท่านั้น) และมีความเหมาะสม ฉันได้อ่านคำถามมากมายเกี่ยวกับเรื่องนี้ (เรื่องที่ปิดเป็นหัวข้อนอกเรื่องและอีกเรื่องที่ไม่ได้ทำเครื่องหมายจากโปรแกรมเมอร์ ) แต่ฉันมีเวลาเข้าใจยากว่าการตีความใบอนุญาตของฉันถูกต้องหรือไม่ จากความเข้าใจของฉันฉันได้รับอนุญาตให้ใช้ห้องสมุดนี้โดยไม่ต้องกังวลใด ๆ ฉันไม่ได้แก้ไขซอร์สโค้ดหรือฉันจะเผยแพร่แอพพลิเคชั่นหรือทำให้แอปพลิเคชันพร้อมใช้งานแบบสาธารณะ แอพลิเคชันจะไม่ถูกขายหรือมันจะแจกจ่ายให้กับทุกคนภายนอก บริษัท ( แต่มันจะมีสิ่งอำนวยความสะดวก DR ของ บริษัท ของเรานอกสถานที่) ฉันมีแนวโน้มที่จะใช้ไบนารีเวอร์ชันที่วางจำหน่ายและไม่ได้รวบรวมจากแหล่งที่มา คำถามต่อไปนี้จากคำถามพบบ่อย GNUดูเหมือนจะสนับสนุนความคิดของฉัน GPL ต้องการให้มีการโพสต์ซอร์สโค้ดของเวอร์ชันที่แก้ไขแล้วสู่สาธารณะหรือไม่? GPL …
13 licensing  gpl 

4
ฉันควรรวมมาร์กอัพ HTML ในการตอบสนอง JSON ของฉันหรือไม่
ในไซต์อีคอมเมิร์ซเมื่อเพิ่มรายการลงในรถเข็นฉันต้องการแสดงหน้าต่างป๊อปอัปพร้อมตัวเลือกที่คุณสามารถเลือกได้ ลองนึกภาพคุณกำลังสั่งซื้อ iPod Shuffle และตอนนี้คุณต้องเลือกสีและข้อความที่จะแกะสลัก ฉันต้องการให้หน้าต่างเป็นแบบโมดัลดังนั้นฉันจึงใช้Lightbox ที่มีการเรียก Ajax ตอนนี้ฉันมีสองตัวเลือก: ตัวเลือก 1: ส่งข้อมูลเท่านั้นและสร้างมาร์กอัพ HTML โดยใช้ JavaScript สิ่งที่ดีเกี่ยวกับเรื่องนี้คือมันทำให้คำขออาแจ็กซ์ลดน้อยลงและไม่ผสมข้อมูลกับมาร์กอัป สิ่งที่ไม่ดีนักเกี่ยวกับเรื่องนี้คือตอนนี้ฉันต้องใช้ JavaScript เพื่อแสดงผลของฉันแทนที่จะมีเทมเพลตเอ็นจิ้นบนฝั่งเซิร์ฟเวอร์ทำ ฉันอาจจะสามารถที่จะทำความสะอาดวิธีบิตโดยใช้วิธีการแก้ปัญหา templating ฝั่งไคลเอ็นต์ ตัวเลือก 2: ส่งมาร์กอัพ HTML สิ่งที่ดีเกี่ยวกับเรื่องนี้คือฉันสามารถมีเครื่องมือสร้างเทมเพลตฝั่งเซิร์ฟเวอร์เดียวกับที่ฉันใช้สำหรับงานการเรนเดอร์ที่เหลือ (Django) ทำการเรนเดอร์ของไลท์บ็อกซ์ JavaScript ใช้เพื่อแทรกแฟรกเมนต์ HTML ลงในหน้าเท่านั้น ดังนั้นจะทำให้การเรนเดอร์ไปยังเอ็นจินการเรนเดอร์อย่างชัดเจน ทำให้รู้สึกถึงฉัน แต่ฉันรู้สึกไม่สบายใจที่จะรวบรวมข้อมูลและมาร์กอัพในการโทร Ajax ด้วยเหตุผลบางอย่าง ฉันไม่แน่ใจว่าอะไรทำให้ฉันรู้สึกไม่สบายใจ ฉันหมายความว่ามันเป็นวิธีเดียวกับที่ทุกหน้าเว็บแสดงผล - ข้อมูลและมาร์กอัป - ใช่ไหม?
13 mvc  django  templates  json 

3
การกำหนดมาตรฐาน
คุณจะกำหนดมาตรฐานอย่างไร? ฉันกำลังกำหนดโปรโตคอลสำหรับสิ่งที่ยังไม่มีอยู่และฉันต้องการสร้าง RFC สำหรับมันและใช้หมายเลขพอร์ตที่เป็นที่รู้จักโดย IANA ฉันจะเริ่มได้อย่างไร

12
ความแตกต่างระหว่างแนวปฏิบัติที่ดีที่สุดและสามัญสำนึก?
มีการสนทนามากมายเกี่ยวกับแนวปฏิบัติที่ดีที่สุด1ในการพัฒนาซอฟต์แวร์ ฉันเคยเห็นจุดสำคัญอย่างน้อยสามข้อได้รับการอภิปรายมากมายทั้งใน SE และที่อื่น ๆ : สิ่งที่มีคุณสมบัติเป็นการปฏิบัติที่ดีที่สุดและทำไม? แนวปฏิบัติที่ดีที่สุดควรค่าแก่การพูดคุยกันตั้งแต่แรกเพราะมีเหตุผลที่จะยืนยันว่าการฝึกฝนนั้นไม่มีแนวปฏิบัติที่ดีที่สุด? เมื่อใดที่คุณควรสละแนวทางปฏิบัติที่ดีที่สุด - หรืออาจเป็นแนวทางปฏิบัติที่ดีที่สุด - เพราะมันดูไม่เหมาะสมหรือเนื่องจากข้อ จำกัด ภายนอก (เวลาเงิน ฯลฯ ) ที่ทำให้การแลกเปลี่ยนเป็นไปไม่ได้? สิ่งที่ดูเหมือนว่าจะเกิดขึ้นน้อยกว่ามาก แต่ไม่เคยมีมาก่อนเป็นแนวคิดที่ใช้กันทั่วไปในการพัฒนาซอฟต์แวร์ ประสบการณ์เมื่อเร็ว ๆ นี้ได้นำความคิดนี้ไปสู่ความคิดของฉันอีกครั้ง ความประทับใจครั้งแรกของฉันคือมันเป็นการสนทนาที่แตกต่างจากแนวปฏิบัติที่ดีที่สุด แต่อาจมีบางการผสมข้าม เมื่อฉันคิดถึงสามัญสำนึกฉันคิดถึงกฎที่คุณเลือกขึ้นมาหรือได้รับการสอนที่ให้พื้นฐานกับเหตุผลและการตัดสินใจ การใช้สามัญสำนึกเป็นวิธีที่ดีในการหลีกเลี่ยงการยิงขาทั้งคู่ แต่นอกเหนือจากพื้นฐานที่ค่อนข้างต่ำสามัญสำนึกเปิดทางให้มีความจำเป็นในการตัดสินใจการศึกษาและการตัดสินใจที่มีการศึกษาสามารถแทนที่สามัญสำนึกเมื่อหลักฐานดูเหมือนน่าสนใจเพียงพอ ฉันอาจจะเล่นเล็กน้อยกับคำจำกัดความที่นี่ แต่ฉันคิดว่ามันใกล้พอที่จะเป็นหัวหอกในตัวอย่างของฉัน เมื่อฉันนึกถึงสามัญสำนึกในการพัฒนาซอฟต์แวร์ฉันคิดถึงกฎพื้นฐานของสุขอนามัยขั้นพื้นฐานทั้งหมดเพื่อป้องกันไม่ให้ codebase เน่าเปื่อยอย่างรวดเร็วจนกลายเป็นระเบียบที่เข้าใจไม่ได้ ตัวอย่างเช่นสิ่งต่าง ๆ : ไม่ได้ใช้โครงสร้างส่วนกลางเดียวเพื่อบำรุงรักษาและสื่อสารสถานะภายในโปรแกรมที่ไม่สำคัญ ไม่ใช้ตัวแปร / เมธอด / คลาสที่เป็นเพียงการพูดพล่อยๆแบบสุ่ม; สิ่งที่อาจมีลักษณะคล้ายกับสิ่งที่เราได้เรียกต่อต้านรูปแบบที่ค่อนข้างใกล้ชิด ในกรณีที่ใช้แนวปฏิบัติที่ดีที่สุดแบบอะนาล็อกที่ใช้กับรูปแบบการเรียนรู้การใช้สามัญสำนึกอาจถูกมองว่าเป็นอะนาล็อกในทางปฏิบัติของการเรียนรู้รูปแบบการต่อต้าน ด้วยความคิดนี้ฉันต้องการตั้งคำถามสองสามข้อที่เห็นคำตอบของคนอื่นเพราะอาจช่วยฉันหาเหตุผลผ่านสิ่งนี้ คนอื่นเชื่อหรือไม่ว่ามีความคิดสามัญสำนึกในการพัฒนาซอฟต์แวร์? จะมีความสนใจในการรู้เหตุผลด้วยวิธีใด ถ้าเป็นเช่นนั้นเป็นความคิดที่คุ้มค่าพูดคุยหรือไม่ มันเป็นสิ่งที่เราควรผลักดันให้มากที่สุดเท่าที่บางครั้งเราทำกับแนวทางปฏิบัติที่ดีที่สุด? …

3
การพึ่งพาการสืบค้นแบบ Parametrized เป็นวิธีเดียวที่จะป้องกันการฉีด SQL หรือไม่
สิ่งที่ฉันได้เห็นจากการโจมตีด้วยการฉีด SQL ดูเหมือนว่าจะแนะนำว่าการสืบค้นแบบ parametrized โดยเฉพาะอย่างยิ่งในขั้นตอนการจัดเก็บเป็นวิธีเดียวที่จะป้องกันการโจมตีดังกล่าว ในขณะที่ฉันกำลังทำงาน (ย้อนกลับไปในยุคมืด) ขั้นตอนการจัดเก็บถูกมองว่าเป็นการปฏิบัติที่ไม่ดีส่วนใหญ่เป็นเพราะพวกเขาเห็นว่าบำรุงรักษาได้น้อยลง ทดสอบได้น้อยลง คู่อย่างมาก และล็อคระบบเป็นผู้ขายรายเดียว ( คำถามนี้ครอบคลุมเหตุผลอื่น ๆ ) แม้ว่าเมื่อฉันกำลังทำงานอยู่โครงการต่าง ๆ แทบไม่รู้ตัวถึงความเป็นไปได้ของการโจมตีดังกล่าว มีการนำกฎต่างๆมาใช้เพื่อรักษาความปลอดภัยของฐานข้อมูลต่อการทุจริตในหลาย ๆ ประเภท กฎเหล่านี้สามารถสรุปได้ดังนี้: ไม่มีไคลเอ็นต์ / แอปพลิเคชันเข้าถึงตารางฐานข้อมูลโดยตรง การเข้าถึงตารางทั้งหมดทั้งหมดผ่านมุมมอง (และการอัปเดตทั้งหมดไปยังตารางฐานถูกทำผ่านทริกเกอร์) รายการข้อมูลทั้งหมดมีโดเมนที่ระบุ ไม่มีรายการข้อมูลที่ได้รับอนุญาตให้เป็นโมฆะ - นี่เป็นนัยที่ DBAs บดฟันของพวกเขาในบางครั้ง; แต่ถูกบังคับใช้ บทบาทและการอนุญาตได้รับการตั้งค่าอย่างเหมาะสม - ตัวอย่างเช่นบทบาทที่ถูก จำกัด ให้สิทธิ์ในการดูข้อมูลเท่านั้น ดังนั้นชุดของกฎ (บังคับ) เช่นนี้ (แม้ว่าไม่จำเป็นต้องเป็นชุดนี้โดยเฉพาะ) เป็นทางเลือกที่เหมาะสมในการค้นหาแบบ parametrized ในการป้องกันการโจมตี SQL injection? ถ้าไม่ทำไมล่ะ สามารถรักษาความปลอดภัยฐานข้อมูลจากการโจมตีดังกล่าวด้วยฐานข้อมูล …

5
โปรแกรมเชิงวัตถุสามารถมองเห็นเป็นเครื่องสถานะ จำกัด ได้หรือไม่?
นี่อาจเป็นคำถามเชิงปรัชญา / พื้นฐาน แต่ฉันแค่ต้องการชี้แจง ในความเข้าใจของฉัน Finite State Machine เป็นวิธีการสร้างแบบจำลองระบบซึ่งผลลัพธ์ของระบบจะไม่เพียงขึ้นอยู่กับอินพุตปัจจุบัน แต่ยังรวมถึงสถานะปัจจุบันของระบบด้วย นอกจากนี้ตามชื่อที่แสดงให้เห็นมันเครื่องสถานะ จำกัด สามารถแบ่งออกเป็นจำนวน จำกัด ของรัฐที่มีสถานะและพฤติกรรมของตน ถ้าสิ่งนี้ถูกต้องวัตถุทุกชิ้นที่มีข้อมูลและฟังก์ชั่นควรเป็นสถานะในแบบจำลองเชิงวัตถุของเราหรือไม่ทำให้การออกแบบเชิงวัตถุใด ๆ เป็นเครื่องสถานะ จำกัด ? ถ้านั่นไม่ใช่การตีความของ FSM ในการออกแบบวัตถุสิ่งที่ผู้คนหมายถึงอย่างแน่นอนเมื่อพวกเขาใช้ FSM ในซอฟต์แวร์? ฉันพลาดอะไรไปรึเปล่า? ขอบคุณ

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