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

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

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

20
ทำงานได้ฟรีหรือไม่ [ปิด]
ฉันเจอบทความนี้ฟรีที่ทำให้ฉันคิด เป้าหมายของนายจ้างทุกคนคือการได้รับคุณค่าจากแรงงานมากกว่าที่ บริษัท จ่ายด้วยค่าแรง มิฉะนั้นจะไม่มีการเติบโตไม่มีล่วงหน้าและไม่มีประโยชน์ใด ๆ สำหรับนายจ้าง ในทางกลับกันเป้าหมายของพนักงานทุกคนควรที่จะมีส่วนร่วมกับ บริษัท มากกว่าที่เขาหรือเธอจะได้รับค่าจ้างและดังนั้นจึงมีเหตุผลที่มั่นคงสำหรับการรับเพิ่มและความก้าวหน้าใน บริษัท ฉันไม่จำเป็นต้องบอกว่า refusenik ใช้เวลาไม่นานในงานนี้ ในทางตรงกันข้ามนี่คือเรื่องราวจากสัปดาห์ที่แล้ว โทรศัพท์ของฉันดังขึ้น มันเป็นแผนกการจ้างงานของมหาวิทยาลัยที่สำคัญ ชายคนหนึ่งในโทรศัพท์กำลังสอบถามเกี่ยวกับประสิทธิภาพของบุคคลที่ทำงานในไซต์ Mises.org เมื่อปีที่แล้ว ฉันสามารถบอกเขาเกี่ยวกับชายหนุ่มผู้โดดเด่นที่เปลี่ยนไปสู่การปฏิบัติในช่วงวิกฤตและวิธีการที่เขาทำงานสามวัน 19 ชั่วโมงสามวันติดต่อกันสามวันเขาได้เรียนรู้ซอฟต์แวร์ใหม่ด้วยความขยัน เขาสำรวจเส้นทางของเขาด้วยความสง่างามและความเชี่ยวชาญท่ามกลาง 80 ปลั๊กอินและฐานข้อมูลของบุคคลที่สามที่แตกต่างกันวิธีที่เขาเห็นวิธีการแก้ไขปัญหาที่หลีกเลี่ยงไม่ได้วิธีที่เขารับผิดชอบต่อผลลัพธ์และอื่น ๆ อีกมากมาย สิ่งที่ฉันไม่ได้บอกผู้สัมภาษณ์คือคนนี้ทำทั้งหมดโดยไม่ขอเงิน ความจริงนั้นมีอิทธิพลต่อรายงานของฉันเกี่ยวกับการแสดงของเขาหรือไม่? ฉันไม่แน่ใจนัก แต่ผู้สัมภาษณ์อาจรู้สึกด้วยความรู้สึกหวาดกลัวต่อสิ่งที่บุคคลนี้ได้ทำเพื่อสถาบัน Mises ผู้สัมภาษณ์บอกฉันว่าเขาได้เขียนคำถามต่าง ๆ ถึง 15 คำถามเพื่อถามฉัน แต่ฉันได้ตอบคำถามเหล่านั้นทั้งหมดในบทพูดคนเดียวของฉันแล้ว บุคคลนั้นได้รับการเสนองาน เขาทำสิ่งที่ฉลาดมาก เขาได้รับสาวกเพื่อชีวิต ยิ่งเศรษฐกิจตกต่ำนายจ้างยิ่งต้องรู้ว่าพวกเขาได้รับอะไรบ้างเมื่อจ้างใครสักคน แอปพลิเคชันงานจะหลั่งไหลเข้ามาในที่เก็บข้อมูลบุด้วยองศาและทำให้ดูน่าประทับใจที่สุดเท่าที่จะทำได้ มันเป็นแค่กระดาษ สิ่งที่สำคัญในวันนี้คือสิ่งที่บุคคลสามารถทำเพื่อ บริษัท ได้ ประวัติย่อกลายเป็นมืออาชีพ แต่ไม่เด็ดขาดภายใต้เงื่อนไขเหล่านี้ …
33 experience 

30
ความผิดพลาดครั้งใหญ่ที่สุดที่คุณเคยทำ [ปิด]
เช่นเดียวกับคำถามที่ฉันอ่านใน Server Fault ความผิดพลาดที่ใหญ่ที่สุดที่คุณเคยทำในตำแหน่งที่เกี่ยวข้องกับไอทีคืออะไร ตัวอย่างจากเพื่อน: ฉันต้องทำงานบนไซต์ที่ใช้งานจริงดังนั้นฉันจึงตัดสินใจคัดลอกฐานข้อมูลสดไปยังไซต์เบต้า ค่อนข้างมาตรฐาน แต่เมื่อฉันไปที่ไซต์เบต้ามันยังคงดึงข้อมูลที่ล้าสมัยอยู่ OOPS! ฉันคัดลอกฐานข้อมูลเบต้าไปยังเว็บไซต์จริงแล้ว! ขอบคุณพระเจ้าสำหรับการสำรองข้อมูล และสำหรับฉันฉันสร้างแบบฟอร์มสำหรับกิจกรรมที่จะจัดขึ้นในช่วงเวลาที่กำหนด ผู้เข้าร่วมจะกรอกแบบฟอร์มเพื่อให้โอกาสชนะและเราจะส่ง CSV จากผู้จัดงานอีเวนต์ ฉันเข้าไปในฐานข้อมูลและพบเพียง 1 รายการเหมือง เมื่อตรวจสอบดูเหมือนว่าฉันลืมรหัสเพิ่มอัตโนมัติและเนื่องจากการตั้งค่าเซิร์ฟเวอร์ไม่มีวิธีการกู้คืนข้อมูลที่สูญหาย ฉันรู้ว่าคำถามนี้คล้ายกับคำถามใน Stack Overflow แต่คำถามที่ฉันพบดูเหมือนจะได้รับคำตอบทั่วไปแทนที่จะเป็นเรื่องจริง :) อะไรคือข้อผิดพลาด / ความผิดพลาดในการเขียนโค้ดที่ยิ่งใหญ่ที่สุด ...
33 experience 

3
วิธีการแก้ปัญหาการพึ่งพาแบบวงกลม?
ฉันมีสามคลาสที่เป็นแบบวงกลมขึ้นอยู่กับซึ่งกันและกัน: TestExecuter ดำเนินการตามคำขอของ TestScenario และบันทึกไฟล์รายงานโดยใช้คลาส ReportGenerator ดังนั้น: TestExecuter ขึ้นอยู่กับ ReportGenerator เพื่อสร้างรายงาน ReportGenerator ขึ้นอยู่กับ TestScenario และพารามิเตอร์ที่กำหนดจาก TestExecuter TestScenario ขึ้นอยู่กับ TestExecuter ไม่สามารถหาวิธีที่จะลบการอ้างอิงเหล่านั้นได้ public class TestExecuter { ReportGenerator reportGenerator; public void getReportGenerator() { reportGenerator = ReportGenerator.getInstance(); reportGenerator.setParams(this.params); /* this.params several parameters from TestExecuter class example this.owner */ } public void setTestScenario (TestScenario ts) …

3
เราควรเรียก Web API จากแอปพลิเคชัน MVC ในโซลูชันเดียวกันหรือไม่
ฉันกำลังทำงานในโครงการใน MVC ที่มีแอปพลิเคชันมือถือสิ่งหนึ่งที่ชัดเจนว่าเราต้องใช้ Web API เพื่อให้สามารถใช้ในแอปพลิเคชันมือถือได้ หลังจากสร้าง API เมื่อเราเริ่มพัฒนาเว็บไซต์เราสับสนและมีการอภิปรายว่าจะใช้ API หรือเข้าถึงวัตถุธุรกิจโดยตรง และเราก็จบลงหลังจากมีความคิดเห็นจากนักพัฒนาที่มีประสบการณ์มากขึ้นในการใช้ Web API แทนการใช้วัตถุธุรกิจโดยตรง ฉันมีความสับสนเกี่ยวกับโครงสร้างโซลูชันนี้ 1) เหตุใดเราจึงควรใช้ Web API และทำการร้องขอ HTTP (ซึ่งใช้เวลานาน) ในการรับหรือวางข้อมูลแทนที่จะเป็นออบเจ็กต์ธุรกิจโดยตรงซึ่งอยู่ในโซลูชันเดียวกัน 2) หลังจากมีข้อโต้แย้งพวกเขาบอกว่าถ้าลูกค้าต้องการโฮสต์ API และเว็บบนคลาวด์เซิร์ฟเวอร์ที่แตกต่างกันและใช้การปรับขนาดเฉพาะบน API หรืออาจต้องการให้มี URL ที่แตกต่างกันสำหรับการเข้าถึง API และเว็บ (ซึ่งเป็นตรรกะ) ดังนั้นในกรณีนั้นเราควรเรียก Web API จากแอปพลิเคชั่น MVC ในโซลูชันเดียวกันหรือไม่ 3) ถ้าเรากำลังโฮสต์ API และเว็บในการโฮสต์ที่แตกต่างกันนั่นหมายความว่าเว็บของเราจะใช้ WebClient และมีการโทร HTTP ในแต่ละการนำทาง ถูกต้องหรือไม่ …

4
เหตุใดจึงไม่มี WSDL type ที่รองรับ Web Api
ดังนั้นฉันเพิ่งเริ่มต้นกับ. Net WebApi และสิ่งหนึ่งที่ฉันสังเกตเห็นได้ทันทีคือไม่มีสัญญาที่กำหนดว่า API มีลักษณะอย่างไรและควรใช้งานอย่างไร (คำขอ / ตอบจากแต่ละการกระทำ) ซึ่งมักจะอยู่ในรูปแบบของ WSDL สำหรับ WCF / Soap ดูเหมือนว่าฉันจะเป็นสิ่งที่มีค่ามากและทำให้ชีวิตง่ายขึ้นสำหรับผู้บริโภค API ของคุณ มีเหตุผลที่ไม่มีหรือไม่ มีกระบวนทัศน์การเขียนโปรแกรมหรือหลักการที่ฉันไม่ทราบหรือไม่? มีวิธีที่ฉันสามารถสร้างหรือไม่

6
การเพิ่มประสิทธิภาพแบบก้าวหน้ากับแอปหน้าเดียว
ผมเพิ่งกลับมาจากการประชุมในบอสตันที่เรียกว่าเหตุการณ์นอกเหนือ ชุดรูปแบบที่นิยมมากในหมู่ผู้พูดคือแนวคิดของการปรับปรุงแบบก้าวหน้า - เนื้อหาของเว็บไซต์ควรเป็น HTML และ JavaScript ควรใช้เพื่อปรับปรุงพฤติกรรมเท่านั้น ข้อโต้แย้งที่ผู้บรรยายได้ให้ไว้เพื่อการปรับปรุงอย่างต่อเนื่องนั้นน่าสนใจมาก ไม่เพียง แต่เป็นรูปแบบที่มั่นคงสำหรับการสนับสนุนเบราว์เซอร์รุ่นเก่าและอุปกรณ์บนเครือข่ายที่มีแบนด์วิดท์ต่ำ แต่ HTML ล้มเหลวอย่างงดงามมากกว่า JavaScript (เช่นมาร์กอัปที่ไม่รองรับจะถูกละเว้นเพียงแค่ในขณะที่เบราว์เซอร์ สคริปต์ - คุณถูก hosed) Jeremy Keithพูดคุยอย่างลึกซึ้งโดยเฉพาะเกี่ยวกับเรื่องนี้ แต่เว็บแอปพลิเคชันหน้าเดียวเช่น Backbone และ Angular ล่ะ การออกแบบทั้งหมดที่อยู่เบื้องหลังเฟรมเวิร์กเหล่านี้ดูเหมือนจะผลักดันให้ผู้พัฒนาเคลื่อนย้ายเนื้อหาออกจาก HTML และกลายเป็นสิ่งที่คล้ายกับ JSON API ฉันไม่สามารถพูดถึงรูปแบบการออกแบบทั้งสองนี้ได้: การเพิ่มประสิทธิภาพแบบก้าวหน้ากับแอปพลิเคชันเว็บหน้าเดียว มีกรณีที่หนึ่งดีกว่าอีกหรือไม่ หรือว่าพวกเขาไม่ได้เป็นเทคโนโลยีที่เป็นปรปักษ์กันและฉันขาดอะไรบางอย่างที่นี่ด้วยแบบจำลองทางจิตของฉัน?

6
รูปแบบการใช้งานที่ไม่บริสุทธิ์ถือว่าถูกปิดหรือไม่?
การปิดนั้นถือว่าไม่บริสุทธิ์ในฟังก์ชั่นการเขียนโปรแกรมหรือไม่? ดูเหมือนว่าเราสามารถหลีกเลี่ยงการปิดโดยการส่งค่าโดยตรงไปยังฟังก์ชั่น ดังนั้นควรหลีกเลี่ยงการปิดที่เป็นไปได้? หากพวกเขาไม่บริสุทธิ์และฉันถูกต้องในการระบุว่าพวกเขาสามารถหลีกเลี่ยงได้ทำไมภาษาการเขียนโปรแกรมการทำงานจำนวนมากจึงสนับสนุนการปิด? หนึ่งในเกณฑ์ของฟังก์ชั่น pureคือ "ฟังก์ชั่นจะประเมินค่าผลลัพธ์เดียวกันเสมอซึ่งให้ค่าอาร์กิวเมนต์ที่เหมือนกัน" สมมติ f: x -> x + y f(3)จะไม่ให้ผลลัพธ์เดียวกันเสมอ f(3)ขึ้นอยู่กับค่าของที่ไม่ได้เป็นข้อโต้แย้งของy fดังนั้นจึงfไม่ใช่ฟังก์ชั่นที่บริสุทธิ์ เนื่องจากการปิดทั้งหมดขึ้นอยู่กับค่าที่ไม่ใช่ข้อโต้แย้งมันเป็นไปได้อย่างไรที่การปิดใด ๆ จะบริสุทธิ์ ใช่ในทางทฤษฎีแล้วค่าปิดอาจคงที่ แต่ไม่มีทางรู้ได้ว่าเพียงแค่มองว่าซอร์สโค้ดของฟังก์ชันนั้น ที่ซึ่งสิ่งนี้ทำให้ฉันเป็นว่าฟังก์ชั่นเดียวกันอาจบริสุทธิ์ในสถานการณ์หนึ่ง แต่ไม่บริสุทธิ์ในอีกสถานการณ์หนึ่ง หนึ่งไม่สามารถเสมอตรวจสอบว่าฟังก์ชั่นบริสุทธิ์หรือไม่โดยการศึกษารหัสแหล่งที่มาของ แต่อาจต้องพิจารณาในบริบทของสภาพแวดล้อม ณ จุดที่มันถูกเรียกก่อนที่ความแตกต่างดังกล่าวจะสามารถทำได้ ฉันกำลังคิดเกี่ยวกับสิ่งนี้ถูกต้องหรือไม่

5
คุณควรเขียนโค้ดของคุณในทุกการทดสอบทุกหน่วยหรือไม่
บทเรียน / ตัวอย่างการทดสอบหน่วยการเรียนรู้ส่วนใหญ่มักจะเกี่ยวข้องกับการกำหนดข้อมูลที่จะทดสอบสำหรับการทดสอบแต่ละครั้ง ฉันเดาว่านี่เป็นส่วนหนึ่งของทฤษฎี "ทุกสิ่งที่ควรทดสอบในการแยก" อย่างไรก็ตามฉันพบว่าเมื่อต้องรับมือกับแอพพลิเคชั่นมัลติเทียร์ที่มีDIจำนวนมากรหัสที่จำเป็นสำหรับการตั้งค่าการทดสอบแต่ละครั้งจะยืดออกมาก แต่ฉันได้สร้างคลาส testbase จำนวนหนึ่งซึ่งตอนนี้ฉันสามารถสืบทอดซึ่งมีนั่งร้านทดสอบจำนวนมากที่สร้างไว้ล่วงหน้า เป็นส่วนหนึ่งของเรื่องนี้ฉันยังสร้างชุดข้อมูลปลอมซึ่งเป็นตัวแทนของฐานข้อมูลของแอปพลิเคชันที่กำลังทำงานแม้ว่าจะมีเพียงหนึ่งหรือสองแถวในแต่ละ "ตาราง" เป็นวิธีปฏิบัติที่ยอมรับได้หรือไม่หากไม่ใช่ทั้งหมดดังนั้นข้อมูลทดสอบส่วนใหญ่ในการทดสอบหน่วยทั้งหมดหรือไม่ ปรับปรุง จากความคิดเห็นด้านล่างจะรู้สึกว่าฉันทำการรวมมากกว่าการทดสอบหน่วย โครงการปัจจุบันของฉันคือ ASP.NET MVC โดยใช้หน่วยงานเหนือรหัส Framework ของ Entity ก่อนและ Moq สำหรับการทดสอบ ฉันเยาะเย้ย UoW และที่เก็บ แต่ฉันใช้คลาสตรรกะทางธุรกิจจริงและทดสอบการกระทำของคอนโทรลเลอร์ การทดสอบมักจะตรวจสอบว่า UoW ได้รับการมุ่งมั่นเช่น: [TestClass] public class SetupControllerTests : SetupControllerTestBase { [TestMethod] public void UserInvite_ExistingUser_DoesntInsertNewUser() { // Arrange var model = new Mandy.App.Models.Setup.UserInvite() …

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

4
การพูดว่าอัลกอริทึมคือ Sound and Complete หมายความว่าอย่างไร
ผมได้ยินการตีความที่แตกต่างกันของเสียงและสมบูรณ์ ฉันเข้าใจว่าความสมบูรณ์หมายถึงการหาทางออกถ้ามี มันหมายความว่าอะไรที่จะบอกว่าอัลกอริทึมเป็นเสียง การพูดว่าอัลกอริทึมคือ Sound and Complete หมายความว่าอย่างไร

3
ใครควรควบคุมการนำทางในแอปพลิเคชัน MVVM
ตัวอย่าง # 1: ฉันมีมุมมองที่แสดงในแอปพลิเคชัน MVVM ของฉัน (ลองใช้ Silverlight เพื่อจุดประสงค์ในการอภิปราย) และฉันคลิกที่ปุ่มที่ควรพาฉันไปที่หน้าใหม่ ตัวอย่าง # 2: มุมมองเดียวกันนั้นมีปุ่มอื่นที่เมื่อคลิกแล้วควรเปิดมุมมองรายละเอียดในหน้าต่างลูก (กล่องโต้ตอบ) เรารู้ว่าจะมีวัตถุคำสั่งที่เปิดเผยโดย ViewModel ของเราที่เชื่อมโยงกับปุ่มด้วยวิธีการที่ตอบสนองต่อการคลิกของผู้ใช้ แต่ถ้าเช่นนั้นจะเป็นอย่างไร เราจะดำเนินการให้เสร็จสมบูรณ์ได้อย่างไร? แม้ว่าเราใช้ NavigationService ที่เรียกว่าอะไรเราจะบอกอะไร เพื่อให้เฉพาะเจาะจงมากขึ้นในโมเดล View-first แบบดั้งเดิม (เช่นโครงร่างการนำทางตาม URL เช่นบนเว็บหรือเฟรมเวิร์กการนำทางในตัว SL) วัตถุคำสั่งจะต้องรู้ว่ามุมมองใดที่จะแสดงถัดไป ที่ดูเหมือนว่าจะข้ามเส้นเมื่อมันมาถึงการแยกความกังวลที่ส่งเสริมโดยรูปแบบ ในทางกลับกันถ้าปุ่มไม่ได้เชื่อมต่อกับวัตถุคำสั่งและทำตัวเหมือนไฮเปอร์ลิงก์กฎการนาวิเกตอาจถูกกำหนดในมาร์กอัป แต่เราต้องการให้ Views ควบคุมการไหลของแอปพลิเคชันและไม่ใช่การนำทางเป็นเพียงตรรกะทางธุรกิจประเภทอื่นหรือไม่ (ฉันสามารถพูดได้ว่าใช่ในบางกรณีและไม่ใช่ในคนอื่น ๆ ) สำหรับฉันการใช้ยูโทเปียของรูปแบบ MVVM (และฉันเคยได้ยินคนอื่นยอมรับสิ่งนี้) จะต้องมี ViewModel แบบมีสายในลักษณะที่แอปพลิเคชันสามารถเรียกใช้หัว (เช่นไม่มีมุมมอง) นี่เป็นพื้นที่ผิวสำหรับการทดสอบที่ใช้รหัสมากที่สุดและทำให้ Views เป็นสกินที่แท้จริงในแอปพลิเคชัน และ …


1
ขนาดจริงสูงสุดสำหรับฐานข้อมูล SQLite ที่สมจริงและเป็นจริงคืออะไร?
ตามบทความนี้เกี่ยวกับการใช้งานที่เหมาะสมสำหรับ SQLiteมันบอกว่าในขณะที่ SQLite จำกัด ไว้ที่140 terabytesไคลเอ็นต์ / เซิร์ฟเวอร์ RDBMS อาจทำงานได้ดีขึ้น: ฐานข้อมูล SQLite มีขนาด จำกัด ที่ 140 เทราไบต์ (2 47ไบต์, 128 ไบต์) และแม้ว่ามันจะสามารถจัดการกับฐานข้อมูลขนาดใหญ่ได้ แต่ SQLite จะเก็บฐานข้อมูลทั้งหมดไว้ในดิสก์ไฟล์เดียวและระบบไฟล์จำนวนมากจะ จำกัด ขนาดสูงสุดของไฟล์ไว้ที่บางอย่างที่น้อยกว่านี้ ดังนั้นหากคุณใคร่ครวญฐานข้อมูลของขนาดนี้คุณควรพิจารณาใช้เอ็นจิ้นฐานข้อมูลลูกค้า / เซิร์ฟเวอร์ที่กระจายเนื้อหาในไฟล์ดิสก์หลาย ๆ ไฟล์และอาจข้ามหลายวอลุ่ม โดยทั่วไปแล้วฉันเห็นด้วยกับสิ่งนี้ แต่ฉันรู้สึกประหลาดใจเมื่อเรียนรู้ว่าขีด จำกัด สูงสุดของ SQLite นั้นสูงมาก! จากประสบการณ์ของฉันฉันได้ใช้ฐานข้อมูล SQL Server จำนวนน้อยขนาด ~ 30-100GB ฉันยังทำงานทางอ้อมกับฐานข้อมูลขนาดใหญ่กว่าโดยใช้ Oracle, Postgres หรือ Cassandra อย่างน้อยสำหรับความรู้ของฉันไม่มีใครเข้าใกล้ …

3
Readme.txt vs. README.txt
ฉันเพิ่งแยกโครงการใน Github ทำการเปลี่ยนแปลง ฯลฯ ฉันสงสัยว่า: ฉันเห็น README.txt ส่วนใหญ่ในโครงการโอเพนซอร์สและไฟล์ที่ฉันแก้ไขคือ Readme.txt นี่เป็นรูปแบบของการจัดเรียงบางส่วนหรือฉันควรจะทิ้งมันไว้อย่างนั้นหรือ

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