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

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

22
โปรแกรมอัตโนมัติ: เขียนโค้ดที่เขียนรหัส [ปิด]
หลังจากอ่านหนังสือThe Pragmatic Programmerหนึ่งในข้อโต้แย้งที่ฉันพบว่าน่าสนใจที่สุดคือ "เขียนโค้ดที่เขียนโค้ด" ฉันพยายามค้นหาคำอธิบายหรือบทความเกี่ยวกับเรื่องนี้ทางอินเทอร์เน็ตและในขณะที่ฉันพบบทความที่ดีเกี่ยวกับเรื่องนี้ฉันยังไม่พบการติดตั้งโค้ดเฉพาะหรือตัวอย่างที่ดี ฉันรู้สึกว่ามันยังไม่เป็นที่ถกเถียงกันทั่วไปอะไรบางอย่างที่ขาดเอกสารหรือมันไม่ได้เป็นที่ยอมรับของคนจำนวนมากและฉันต้องการทราบเพิ่มเติมเกี่ยวกับเรื่องนี้ คุณคิดยังไงกับเรื่องนี้? เป็นสิ่งที่จะเพิ่มประสิทธิภาพการทำงานของคุณหรือไม่ มีแหล่งข้อมูลที่ดีในเรื่องอะไรบ้างในหนังสือบล็อกบล๊อคสไลด์ ฯลฯ ตัวอย่างโค้ดบางส่วนจะช่วยให้ฉันเข้าใจการใช้งานได้ดีขึ้น นี่คือหน้า wikiของหัวเรื่องด้วยเทคนิคการเขียนโปรแกรมที่เกี่ยวข้องเช่น Meta Programming, Generative Programming และ Code Generation


6
โดเมนคืออะไร
ฉันเห็นคำนี้มากในบริบทของสถาปัตยกรรมซอฟต์แวร์ ("แบบจำลองโดเมน", "การออกแบบโดยใช้โดเมน" เป็นต้น) ฉันทำไปแล้ว แต่ได้คำจำกัดความที่แตกต่างกันมากมาย แล้วมันคืออะไร

5
การเปลี่ยนเป็นไมโครไซต์ช่วยสร้างปัญหารันไทม์อย่างไร
ผู้วิจารณ์ต่อไปนี้เขียน : Microservices เปลี่ยนความผิดปกติขององค์กรของคุณจากปัญหาเวลารวบรวมเป็นปัญหาเวลาทำงาน นักวิจารณ์คนนี้ขยายปัญหาที่กล่าวว่า: คุณสมบัติไม่ได้เป็นข้อบกพร่อง ปัญหารันไทม์ => prod problems => แข็งแกร่งและรวดเร็วยิ่งขึ้นเกี่ยวกับความผิดปกติของผู้ที่รับผิดชอบ ตอนนี้ฉันเข้าใจแล้วด้วยmicroservices you: อาจเพิ่มเวลาในการตอบสนองของคุณซึ่งเป็นข้อกังวลเกี่ยวกับการผลิตและเวลาทำงาน เพิ่มจำนวนของ“ เครือข่ายอินเทอร์เฟซ” ในรหัสของคุณซึ่งอาจมีข้อผิดพลาดรันไทม์ของการแยกวิเคราะห์ อาจทำให้การปรับใช้สีฟ้าสีเขียว สิ่งเหล่านั้นอาจถูกระงับโดยอินเตอร์เฟสไม่ตรงกัน (ดูอินเตอร์เฟสเครือข่าย) แต่ถ้าการปรับใช้สีน้ำเงินเป็นสีเขียวนั้นเป็นเรื่องของเวลาทำงานมากกว่า คำถามของฉันคืออะไรการเปลี่ยนเป็นไมโครไซต์ทำให้เกิดปัญหาในเวลาทำงาน

3
ทำไม Trampolines ถึงทำงาน
ฉันใช้จาวาสคริปต์ที่ใช้งานได้บางอย่าง ฉันคิดว่าTail-Call Optimisationได้รับการใช้งานแล้ว แต่พอกลับกลายเป็นว่าฉันผิด ดังนั้นฉันเคยสอนตัวเองtrampolining หลังจากอ่านหนังสือเล็กน้อยที่นี่และที่อื่น ๆ ฉันก็สามารถทำให้พื้นฐานและสร้างแทรมโพลีนตัวแรกได้: /*not the fanciest, it's just meant to reenforce that I know what I'm doing.*/ function loopy(x){ if (x<10000000){ return function(){ return loopy(x+1) } }else{ return x; } }; function trampoline(foo){ while(foo && typeof foo === 'function'){ foo = foo(); } return foo; …

3
การรักษาความปลอดภัย REST API โทเค็นที่เก็บไว้กับ JWT vs OAuth
ฉันยังคงพยายามค้นหาโซลูชันความปลอดภัยที่ดีที่สุดสำหรับปกป้อง REST API เนื่องจากจำนวนแอปพลิเคชันมือถือและ API เพิ่มขึ้นทุกวัน ฉันลองใช้วิธีการพิสูจน์ตัวตนแบบต่างๆ แต่ยังมีความเข้าใจผิดอยู่บ้างดังนั้นฉันต้องการคำแนะนำจากคนที่มีประสบการณ์มากกว่า ให้ฉันบอกว่าฉันเข้าใจทุกสิ่งนี้ได้อย่างไร หากฉันเข้าใจบางสิ่งผิดพลาดโปรดแจ้งให้เราทราบ เท่าที่ REST API นั้นไร้สัญชาติเช่นเดียวกับเว็บโดยทั่วไปเราจำเป็นต้องส่งข้อมูลรับรองความถูกต้องในแต่ละคำขอ (คุกกี้โทเค็น .... ) ฉันรู้สามกลไกที่ใช้กันอย่างแพร่หลายในการตรวจสอบผู้ใช้ โทเค็นด้วย HTTPS ฉันใช้วิธีนี้หลายครั้งดีพอกับ HTTPS หากผู้ใช้ระบุรหัสผ่านที่ถูกต้องและเข้าสู่ระบบเขาจะได้รับโทเค็นตอบสนองและจะใช้สำหรับการร้องขอเพิ่มเติม โทเค็นถูกสร้างขึ้นโดยเซิร์ฟเวอร์และเก็บไว้เช่นในตารางแยกกันหรือที่เก็บข้อมูลผู้ใช้ ดังนั้นสำหรับแต่ละเซิร์ฟเวอร์คำขอจะตรวจสอบว่าผู้ใช้มีโทเค็นหรือไม่และเหมือนกับในฐานข้อมูล ทุกอย่างตรงไปตรงมาสวย โทเค็น JWT โทเค็นนี้เป็นการอธิบายตนเองประกอบด้วยข้อมูลที่จำเป็นทั้งหมดเกี่ยวกับโทเค็นผู้ใช้ไม่สามารถเปลี่ยนแปลงได้เช่นวันหมดอายุหรือการอ้างสิทธิ์อื่น ๆ เนื่องจากโทเค็นนี้สร้างขึ้น (ลงชื่อ) โดยเซิร์ฟเวอร์ที่มีคีย์เวิร์ดลับ นี่ก็ชัดเจน แต่ปัญหาใหญ่อย่างหนึ่งส่วนตัวสำหรับฉันวิธีทำให้โทเค็นเป็นโมฆะ OAuth 2. ฉันไม่เข้าใจว่าทำไมควรใช้วิธีการนี้เมื่อมีการสื่อสารโดยตรงระหว่างเซิร์ฟเวอร์กับลูกค้า เท่าที่ฉันเข้าใจเซิร์ฟเวอร์ OAuth ใช้ในการออกโทเค็นที่มีขอบเขต จำกัด เพื่ออนุญาตให้แอปพลิเคชันอื่นเข้าถึงข้อมูลผู้ใช้โดยไม่ต้องเก็บรหัสผ่านและการเข้าสู่ระบบ นี่เป็นโซลูชันที่ยอดเยี่ยมสำหรับเครือข่ายสังคมเมื่อผู้ใช้ต้องการลงทะเบียนในบางหน้าเซิร์ฟเวอร์สามารถขอสิทธิ์ในการรับข้อมูลผู้ใช้เช่นจาก twitter หรือ facebook และกรอกข้อมูลลงทะเบียนด้วยข้อมูลผู้ใช้และอื่น ๆ พิจารณาลูกค้ามือถือสำหรับร้านค้าออนไลน์ …
104 security  rest  api  oauth  https 

10
วิธีการทำให้ codebase ขนาดใหญ่เข้าใจง่ายขึ้น
สมมติว่าฉันกำลังพัฒนาโครงการที่ค่อนข้างใหญ่ ฉันได้บันทึกคลาสและฟังก์ชั่นทั้งหมดของฉันกับ Doxygen แล้วอย่างไรก็ตามฉันมีความคิดที่จะใส่ "โน้ตของโปรแกรมเมอร์" ลงในไฟล์ซอร์สโค้ดแต่ละไฟล์ แนวคิดเบื้องหลังนี้คือการอธิบายในแง่ของคนธรรมดาว่าคลาสเฉพาะทำงานอย่างไร (และไม่เพียง แต่เหตุผลที่ความคิดเห็นส่วนใหญ่ทำ) กล่าวอีกนัยหนึ่งคือการให้มุมมองอื่น ๆ เกี่ยวกับการทำงานของโปรแกรมเมอร์ ตัวอย่างเช่น: /* * PROGRAMMER'S NOTES: * * As stated in the documentation, the GamepadManager class * reads joystick joystick input using SDL and 'parses' SDL events to * Qt signals. * * Most of the code here is …

4
ความแตกต่างระหว่างการเขียนโปรแกรมฝั่งเซิร์ฟเวอร์และฝั่งไคลเอ็นต์คืออะไร
ฉันเคยเห็นคำถาม (ส่วนใหญ่เกี่ยวกับ Stack Overflow) ซึ่งขาดความรู้พื้นฐานนี้ ประเด็นของคำถามนี้คือการให้ข้อมูลที่ดีสำหรับผู้ที่กำลังมองหาและผู้ที่อ้างอิงถึง ในบริบทของการเขียนโปรแกรมเว็บความแตกต่างระหว่างการเขียนโปรแกรมฝั่งเซิร์ฟเวอร์และการเขียนโปรแกรมฝั่งไคลเอ็นต์คืออะไร ภาษาใดที่คุณใช้และแต่ละภาษาใช้เมื่อใด

14
TDD ทำให้การเขียนโปรแกรมเชิงป้องกันซ้ำซ้อนหรือไม่?
วันนี้ฉันมีการสนทนาที่น่าสนใจกับเพื่อนร่วมงาน ฉันเป็นโปรแกรมเมอร์ป้องกัน ฉันเชื่อว่ากฎ " คลาสจะต้องตรวจสอบให้แน่ใจว่าวัตถุนั้นมีสถานะที่ถูกต้องเมื่อมีการโต้ตอบกับจากนอกห้องเรียน " จะต้องปฏิบัติตามเสมอ เหตุผลสำหรับกฎนี้คือชั้นเรียนไม่ทราบว่าผู้ใช้เป็นใครและควรคาดคะเนความล้มเหลวเมื่อมีการโต้ตอบในลักษณะที่ผิดกฎหมาย ในความเห็นของฉันกฎที่ใช้กับทุกชั้น ในสถานการณ์เฉพาะที่ฉันมีการสนทนาวันนี้ฉันเขียนโค้ดที่ตรวจสอบว่าอาร์กิวเมนต์ของตัวสร้างของฉันนั้นถูกต้อง (เช่นพารามิเตอร์จำนวนเต็มต้อง> 0) และหากไม่ตรงตามเงื่อนไขก่อนจะมีข้อผิดพลาดเกิดขึ้น ในทางกลับกันเพื่อนร่วมงานของฉันเชื่อว่าการตรวจสอบดังกล่าวซ้ำซ้อนเพราะการทดสอบหน่วยควรตรวจสอบการใช้งานในชั้นเรียนที่ไม่ถูกต้อง นอกจากนี้เขาเชื่อว่าการตรวจสอบความถูกต้องของโปรแกรมการเขียนโปรแกรมควรจะเป็นการทดสอบหน่วยดังนั้นการเขียนโปรแกรมเชิงป้องกันจะเพิ่มงานจำนวนมากและไม่เหมาะสำหรับ TDD เป็นความจริงหรือไม่ที่ TDD สามารถแทนที่โปรแกรมป้องกันได้ การตรวจสอบความถูกต้องของพารามิเตอร์ (และฉันไม่ได้หมายถึงการป้อนข้อมูลของผู้ใช้) ไม่จำเป็นตามมาหรือไม่? หรือว่าทั้งสองเทคนิคเติมเต็มซึ่งกันและกัน?

5
แนวทางของ async / ไม่ใช้งานการรอคอยใน C # ขัดแย้งกับแนวคิดของสถาปัตยกรรมที่ดีและการฝังรากลึกนามธรรม?
คำถามนี้เกี่ยวกับภาษา C # แต่ฉันคาดหวังให้ครอบคลุมภาษาอื่นเช่น Java หรือ TypeScript Microsoft แนะนำแนวทางปฏิบัติที่ดีที่สุดในการใช้การโทรแบบอะซิงโครนัสใน. NET ในบรรดาคำแนะนำเหล่านี้เรามาเลือกสองข้อ: เปลี่ยนลายเซ็นของเมธอด async เพื่อให้ส่งคืนงานหรืองาน <> (ใน TypeScript นั่นจะเป็นสัญญา <>) เปลี่ยนชื่อของวิธีการ async เป็นลงท้ายด้วย xxxAsync () ตอนนี้เมื่อแทนที่ส่วนประกอบที่มีระดับต่ำและซิงโครนัสด้วยอะซิงก์หนึ่งสิ่งนี้จะส่งผลกระทบต่อสแต็กเต็มของแอปพลิเคชัน เนื่องจาก async / await มีผลกระทบเชิงบวกต่อเมื่อใช้ "all-up up" เท่านั้นนั่นหมายถึงชื่อลายเซ็นและเมธอดของทุกเลเยอร์ในแอปพลิเคชันจะต้องเปลี่ยน สถาปัตยกรรมที่ดีมักจะเกี่ยวข้องกับการวาง abstractions ระหว่างแต่ละเลเยอร์เช่นการแทนที่ส่วนประกอบระดับต่ำโดยผู้อื่นจะมองไม่เห็นโดยส่วนประกอบระดับบน ใน C # abstractions จะอยู่ในรูปของอินเตอร์เฟส หากเราแนะนำส่วนประกอบ async ใหม่ระดับต่ำและต่ำแต่ละอินเตอร์เฟสใน call stack จำเป็นต้องได้รับการแก้ไขหรือแทนที่ด้วยอินเตอร์เฟสใหม่ วิธีการแก้ไขปัญหา (async หรือ …
103 c#  architecture  async 

4
อะไรคือความแตกต่างระหว่างโฟลเดอร์“ lib” และ“ ผู้ขาย”?
เกี่ยวกับลำดับชั้นของโฟลเดอร์แหล่งที่มีเสมอบางคุณสมบัติทั่วไปเช่นsrc, docหรือtestโฟลเดอร์ที่มีค่อนข้างง่ายต่อการเข้าใจเนื้อหา อย่างไรก็ตามฉันตระหนักว่าโครงการขนาดใหญ่มีทั้งlibและvendorโฟลเดอร์ในขณะที่ฉันคิดเสมอว่าพวกเขาเหมือนกันตามชื่อของพวกเขาบอกใบ้รวมถึง "บุคคลที่สามlibrariesจากภายนอกvendors" แม้ว่าจะเห็นทั้งในโครงการเดียวกันหมายความว่ามีคือความแตกต่าง ฉันไม่พบข้อมูลใด ๆ ไม่ว่าจะใน Google หรือจากแหล่งข้อมูลอื่น ๆ เช่นมาตรฐานระบบแฟ้มลำดับชั้นถึงแม้ว่านี่จะเป็นเรื่องธรรมดาทั่วไปก็ตาม นี่คือตัวอย่างที่มีรายละเอียดเพิ่มเติมกับSymfony : เมื่อคุณสร้างโครงการคุณจะได้รับlibโฟลเดอร์ที่รูทของโครงการของคุณ ในโฟลเดอร์นี้พบโครงสร้างต่อไปนี้: lib +--filter +--form +--… +--vendor +--simpletest +--symfony ที่นี่symfonyโฟลเดอร์ประกอบด้วยแกนทั้งหมดของ Symfony

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

12
รหัสทดสอบได้ดีขึ้นไหม
ฉันพยายามที่จะได้รับเป็นนิสัยของการเขียนการทดสอบหน่วยเป็นประจำกับรหัสของฉัน แต่ฉันได้อ่านว่าครั้งแรกมันเป็นสิ่งสำคัญที่จะเขียนรหัสทดสอบ คำถามนี้สัมผัสกับหลักการ SOLID ของการเขียนรหัสที่สามารถทดสอบได้ แต่ฉันต้องการทราบว่าหลักการออกแบบเหล่านั้นมีประโยชน์หรือไม่ (อย่างน้อยก็ไม่เป็นอันตราย) โดยไม่ต้องวางแผนในการเขียนการทดสอบเลย เพื่อชี้แจง - ฉันเข้าใจความสำคัญของการเขียนการทดสอบ; นี่ไม่ใช่คำถามเกี่ยวกับประโยชน์ของพวกเขา เพื่อแสดงความสับสนของฉันในส่วนที่เป็นแรงบันดาลใจคำถามนี้ผู้เขียนให้ตัวอย่างของฟังก์ชันที่ตรวจสอบเวลาปัจจุบันและส่งกลับค่าบางอย่างขึ้นอยู่กับเวลา ผู้เขียนชี้ให้เห็นว่านี่เป็นรหัสที่ไม่ดีเพราะมันสร้างข้อมูล (เวลา) ที่ใช้ภายในจึงยากที่จะทดสอบ ถึงฉันมันดูเหมือนว่า overkill จะผ่านเวลาในการโต้แย้ง ณ จุดหนึ่งค่าจะต้องเริ่มต้นและทำไมไม่ใกล้เคียงกับการบริโภค? นอกจากนี้จุดประสงค์ของวิธีการในใจของฉันคือการคืนค่าบางอย่างตามเวลาปัจจุบันโดยทำให้มันเป็นพารามิเตอร์ที่คุณหมายถึงว่าวัตถุประสงค์นี้สามารถ / ควรมีการเปลี่ยนแปลง คำถามนี้และคำถามอื่นทำให้ฉันสงสัยว่ารหัสที่ทดสอบได้ตรงกันกับรหัส "ดีกว่า" หรือไม่ การเขียนโค้ดที่สามารถทดสอบได้ยังคงเป็นแนวปฏิบัติที่ดีแม้ว่าจะไม่มีการทดสอบหรือไม่? รหัสทดสอบได้จริง ๆ แล้วมีเสถียรภาพมากขึ้น? ได้รับการแนะนำว่าซ้ำซ้อน อย่างไรก็ตามคำถามนั้นเกี่ยวกับ "ความมั่นคง" ของรหัส แต่ฉันถามอย่างกว้าง ๆ ว่ารหัสนั้นดีกว่าด้วยเหตุผลอื่นเช่นกันเช่นการอ่านการทำงานประสิทธิภาพการเชื่อมต่อและอื่น ๆ

17
Scrum เปลี่ยนนักพัฒนาที่ใช้งานเป็นนักพัฒนาที่แฝงอยู่หรือไม่?
ฉันเป็นนักพัฒนาเว็บที่ทำงานในทีมนักพัฒนาสามคนและนักออกแบบหนึ่งคน ขณะนี้ประมาณห้าเดือนที่เราได้ใช้วิธีการพัฒนาซอฟต์แวร์แบบว่องไว แต่ฉันมีความรู้สึกแปลก ๆ ที่ฉันต้องการแบ่งปันในเว็บไซต์นี้ ปัจจัยหนึ่งที่สำคัญในชีวิตมนุษย์คือกระบวนการตัดสินใจ อย่างไรก็ตามมีความแตกต่างอย่างมากในการตัดสินใจของคุณ การตัดสินใจบางอย่างเป็นเพียงผลลัพธ์ของแรงภายในหรือภายนอกในขณะที่การตัดสินใจอื่น ๆ จะขึ้นอยู่กับเจตจำนงเสรีของคุณและการตัดสินใจบางอย่างเป็นเรื่องง่าย ยิ่งคุณมีอิสระในการตัดสินใจมากเท่าไหร่งานของคุณก็ยิ่งขับเคลื่อนได้มากขึ้นเท่านั้น นี่ดูเหมือนจะเป็นกฎ เพราะเรามักจะกำหนดชีวิตของเราเอง มีความแตกต่างใหญ่ระหว่างคุณก็คือการตัดสินใจว่าจะทำหรือได้รับการบอกว่าจะทำอย่างไร ก่อนที่จะทะเลาะกันผมก็รู้สึกว่าเหมือนมีอิสระมากขึ้นในการตัดสินใจที่เกี่ยวข้องกับการพัฒนา, การวิเคราะห์การจัดลำดับความสำคัญการดำเนินการอื่น ๆ ผมมีความรู้สึกมากขึ้นเช่นฉันตัดสินใจสิ่งที่ฉันทำ อย่างไรก็ตามเนื่องจากวิธีการต่อสู้ตอนนี้การตัดสินใจจำนวนมากก็มาจากเจ้าของผลิตภัณฑ์ เขาจัดลำดับความสำคัญของPBIsเขาวิเคราะห์ว่าซอฟต์แวร์ควรทำงานอย่างไรบางครั้งถึงวิธีการใช้งาน UI และฟังก์ชั่นการใช้งาน ฉันรู้ว่านี่เป็นส่วนหนึ่งของวิธีการต่อสู้และฉันก็รู้ว่านี่อาจส่งผลให้ยอดขายของผลิตภัณฑ์ดีขึ้นในอนาคต แต่ตอนนี้ผมรู้สึกเหมือนผมมักจะได้รับการบอกว่าจะทำอะไรบางอย่างแทนการตัดสินใจที่จะทำอะไรบางอย่าง ตอนนี้กลุ่มอาการของโรคนี้ทำให้ฉันมีความอดทนต่องานมากขึ้น ฉันมักจะค้นหาน้อยลงเพื่อหาทางออกวิธีหรือเทคนิคที่ดีกว่า ฉันไม่ตื่นนอนตอนเช้าโดยหวังว่าจะได้งานที่สนุกสนาน แต่ฉันรู้สึกว่าถูกบังคับให้ทำงานเพื่อให้มีชีวิต ฉันมีความหิวมากขึ้นในการทำงานในโครงการงานอดิเรกของตัวเองหลังเลิกงาน ฉันจะไม่ผลักดันทีมอีกต่อไปเพื่อก้าวสู่ระดับเทคโนโลยีที่สูงขึ้น ตอนนี้ฉันใช้เวลากับอาหารเย็นหรือดื่มชามากขึ้นและมีความกระตือรือร้นน้อยลงเพื่อกลับไปทำงาน ตอนนี้ฉันยินดีมากขึ้นสำหรับการทำงานให้เสร็จเร็วขึ้นเพื่อที่ฉันจะได้กลับบ้าน ปัญหาใหญ่คือฉันเห็นและวิเคราะห์พฤติกรรมนี้ในเพื่อนร่วมงานของฉันด้วย มันเป็นผลของการต่อสู้หรือไม่ การทะเลาะวิวาททำให้ทีมพัฒนารู้สึกว่าพวกเขาไม่มีส่วนร่วมในการสร้างซอฟต์แวร์โดยรวมหรือไม่ ฉันจะเอาชนะความรู้สึกนี้ได้อย่างไร

11
คำสั่ง“ goto” ของแมลงชนิดใดที่นำไปสู่ มีตัวอย่างที่สำคัญทางประวัติศาสตร์หรือไม่?
ฉันเข้าใจว่าช่วยไม่ให้ลูปซ้อนกันในลูป gotoคำสั่งบ่ายเบี่ยงและประจานว่าเป็นข้อผิดพลาดสไตล์แนวโน้มของการเขียนโปรแกรมเพื่อไม่เคยถูกนำมาใช้ Alt Text: "Neal Stephenson คิดว่ามันน่ารักที่จะตั้งชื่อป้ายกำกับ 'dengo' ของเขา" ดูการ์ตูนต้นฉบับที่: http://xkcd.com/292/ เพราะฉันเรียนรู้สิ่งนี้ก่อน ฉันไม่ได้มีความเข้าใจอย่างถ่องแท้หรือประสบการณ์เกี่ยวกับข้อผิดพลาดประเภทใดที่gotoนำไปสู่ ดังนั้นสิ่งที่เรากำลังพูดถึงที่นี่: ความไม่แน่นอน? รหัสที่ไม่สามารถเข้าใจได้หรืออ่านไม่ได้? ช่องโหว่ด้านความปลอดภัย? มีอะไรอีกบ้าง? ข้อผิดพลาดประเภทใดที่ทำให้ข้อความ "goto" นำไปสู่ มีตัวอย่างที่สำคัญทางประวัติศาสตร์หรือไม่?

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