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

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

6
ประเภทข้อมูลที่ดีที่สุดในการจัดเก็บตัวแปรที่ประกอบไปด้วยหรือตัวแปรสามสถานะ
ข้อจำกัดความรับผิดชอบ: ฉันรู้ว่าประเภทข้อมูลนั้นเป็นอัตนัยเล็กน้อยที่ภาษาสคริปต์ / การเขียนโปรแกรมที่คุณใช้ฉันชอบที่จะเขียนใน Python เป็นเรื่องของการตั้งค่า; แม้ว่าฉันยินดีที่จะได้ยินเกี่ยวกับ lanugage / การใช้งาน ประเภทข้อมูลที่ดีที่สุดในการจัดเก็บตัวแปรสามสถานะคืออะไร? บางสิ่งบางอย่างที่มีความสามารถหรือเป็นตัวแทนของเชิงบวกที่เป็นกลางและเชิงลบ ตัวอย่าง: นัมเบอร์-1, ,01 Pro: รัดกุมมาก Pro: อาจมีประสิทธิภาพ, สามารถเก็บเป็นจำนวนเต็ม 2 บิตที่เซ็นชื่อได้ Pro: สามารถใช้เป็นเครื่องชั่งได้เช่นตัวคูณจุดลอยตัว ตัวอย่างที่ 2: 0, null, 1(หรือการเปลี่ยนแปลงใด ๆ ) Pro: กรณีการใช้ที่ไม่เป็นกลางสามารถเป็นแบบไบนารี คอนดิชั่น: ต้องใช้ประเภทข้อมูลแบบไดนามิก คอนดิชั่น: อาจไม่รัดกุม ตัวอย่างที่ 3: +, (สตริงว่าง)- Pro: รัดกุมมาก คอนดิชั่น: อาจใช้ตรรกะสตริงเพื่อกำหนดสถานะ Pro: การแสดงกราฟิกที่ใช้งานง่าย อาจมีตรรกะเลขฐานสองที่ฉลาดที่สามารถทำสิ่งที่ฉลาดที่ฉันไม่สามารถจินตนาการได้บางทีอาจจะต้องอาศัยการพิจารณากรณีการใช้มากเกินไป นอกจากนี้ยังมีข้อควรพิจารณาในการปรับเปลี่ยนสถานะส่วนที่สามเพื่อจัดเก็บในเอ็นจินฐานข้อมูล เช่นเดียวกับ …

8
ความแตกต่างระหว่างสตรีมและคิวคืออะไร
ความแตกต่างระหว่างสตรีมและคิวคืออะไร พวกเขาทั้งสองมีแนวคิดของชุดองค์ประกอบที่เรียงลำดับ แต่มีแนวโน้มที่จะมีการใช้งานที่แตกต่างกันและคำศัพท์ที่แตกต่างกันของ 'แทรก' / 'แยก' (กระแส) กับ 'enqueue' / 'dequeue' (คิว) สามารถเปลี่ยนได้เหล่านี้หรือไม่ พวกเขาแนะนำแนวคิดหรือรูปแบบที่แตกต่างกันหรือไม่? ถ้าเป็นเช่นนั้นอะไรคือความแตกต่าง?

2
แคชหมดอายุแบบสุ่ม
ฉันกำลังทดลองกับเวลาแคชแบบสุ่มเพื่อหลีกเลี่ยงสถานการณ์ที่คำขอแต่ละรายการบังคับให้หลายสิ่งหลายอย่างอัปเดตพร้อมกัน ตัวอย่างเช่นหน้าเว็บอาจมีห้าองค์ประกอบที่แตกต่างกัน หากตั้งค่าการหมดเวลาเป็น 30 นาทีผู้ใช้จะมีเวลารอนานทุก 30 นาที ดังนั้นคุณจึงตั้งค่าทั้งหมดให้เป็นเวลาสุ่มระหว่าง 15 ถึง 45 นาทีเพื่อให้เป็นไปได้มากที่สุดเพียงองค์ประกอบเดียวที่จะโหลดซ้ำสำหรับการโหลดหน้าเว็บที่กำหนด ฉันพยายามค้นหางานวิจัยหรือคำแนะนำในหัวข้อนี้เช่นพารามิเตอร์ความแปรปรวนที่ดีที่สุด ฉันจำได้ว่าเคยเห็นบทความหนึ่งเกี่ยวกับวิธีที่ Google (?) ใช้เทคนิคนี้ แต่ไม่สามารถค้นหาได้และดูเหมือนจะไม่ได้เขียนเกี่ยวกับหัวข้อมากนัก

2
การแยกแบบจำลองโดเมน / การติดตานี้มักจะไม่สะดวกหรือไม่
ฉันเข้าสู่แนวคิดเกี่ยวกับการออกแบบที่ขับเคลื่อนด้วยโดเมน (DDD) และพบหลักการบางอย่างที่แปลกประหลาดโดยเฉพาะอย่างยิ่งเกี่ยวกับการแยกโดเมนและรูปแบบการคงอยู่ นี่คือความเข้าใจพื้นฐานของฉัน: บริการบนชั้นแอปพลิเคชัน (จัดเตรียมชุดคุณสมบัติ) ร้องขอวัตถุโดเมนจากที่เก็บที่จำเป็นต้องใช้เพื่อทำหน้าที่ของมัน การนำไปใช้อย่างเป็นรูปธรรมของที่เก็บนี้ดึงข้อมูลจากที่เก็บข้อมูลที่ถูกนำไปใช้ บริการบอกวัตถุโดเมนซึ่งสรุปทางตรรกะทางธุรกิจเพื่อดำเนินงานบางอย่างที่แก้ไขสถานะของมัน บริการบอกที่เก็บเพื่อคงออบเจ็กต์โดเมนที่ถูกแก้ไข ที่เก็บข้อมูลจำเป็นต้องแมปวัตถุโดเมนกลับไปเป็นตัวแทนที่สอดคล้องกันในการจัดเก็บ ตอนนี้จากข้อสมมติข้างต้น โฆษณา 2: ดูเหมือนว่าแบบจำลองโดเมนจะโหลดวัตถุโดเมนทั้งหมด (รวมถึงเขตข้อมูลและการอ้างอิงทั้งหมด) แม้ว่าจะไม่จำเป็นสำหรับฟังก์ชันที่ร้องขอก็ตาม การโหลดอาจไม่สามารถทำได้หากมีการอ้างอิงวัตถุโดเมนอื่นเว้นแต่คุณจะโหลดวัตถุโดเมนเหล่านั้นด้วยและวัตถุทั้งหมดที่อ้างอิงในทางกลับกันเป็นต้น การโหลด Lazy คำนึงถึงซึ่งหมายความว่าคุณเริ่มทำการค้นหาวัตถุโดเมนของคุณซึ่งควรจะเป็นความรับผิดชอบของที่เก็บในตอนแรก เมื่อพิจารณาถึงปัญหานี้ดูเหมือนว่าวิธีการโหลดวัตถุโดเมนที่ถูกต้องจะมีฟังก์ชันการโหลดเฉพาะสำหรับแต่ละกรณีการใช้งาน ฟังก์ชั่นเฉพาะเหล่านี้จะโหลดข้อมูลที่จำเป็นโดยกรณีการใช้งานที่ถูกออกแบบมาเท่านั้น นี่คือสิ่งที่น่าอึดอัดใจที่เข้ามาเล่น: อย่างแรกฉันจะต้องรักษาจำนวนมากของการโหลดฟังก์ชั่นสำหรับแต่ละการใช้งานของพื้นที่เก็บข้อมูลและวัตถุโดเมนจะจบลงในรัฐที่ไม่สมบูรณ์ที่ดำเนินการnullในสาขาของพวกเขา ในทางเทคนิคหลังควรจะไม่มีปัญหาเพราะถ้าไม่ได้โหลดค่ามันไม่ควรจะจำเป็นต้องใช้ฟังก์ชั่นที่ร้องขอมันต่อไป ถึงกระนั้นมันก็น่าอึดอัดใจและอาจเป็นอันตรายได้ โฆษณา 3: วัตถุโดเมนจะตรวจสอบข้อ จำกัด ที่ไม่ซ้ำกันอย่างไรเมื่อการก่อสร้างถ้ามันไม่มีความคิดใด ๆ ของพื้นที่เก็บข้อมูล? ตัวอย่างเช่นถ้าฉันต้องการสร้างใหม่Userด้วยหมายเลขประกันสังคมที่ไม่ซ้ำกัน (ซึ่งได้รับ) ความขัดแย้งที่เร็วที่สุดจะเกิดขึ้นเมื่อขอให้พื้นที่เก็บข้อมูลบันทึกวัตถุเฉพาะในกรณีที่มีข้อ จำกัด ที่ไม่ซ้ำกันที่กำหนดไว้ในฐานข้อมูล มิฉะนั้นฉันสามารถหา a ที่Userมีประกันสังคมที่กำหนดและรายงานข้อผิดพลาดในกรณีที่มันมีอยู่ก่อนที่จะสร้างใหม่ แต่จากนั้นการตรวจสอบข้อ จำกัด จะอาศัยอยู่ในบริการไม่ใช่ในวัตถุโดเมนที่เป็นของพวกเขา ฉันเพิ่งรู้ว่าวัตถุโดเมนได้รับอนุญาตเป็นอย่างดีในการใช้ที่เก็บ (ฉีด) สำหรับการตรวจสอบ โฆษณา 5: …

1
ความแตกต่างระหว่าง 'aud' และ 'iss' ใน jwt
ฉันต้องการใช้บริการการพิสูจน์ตัวตนที่มีประสิทธิภาพมากขึ้นและjwtเป็นส่วนใหญ่ของสิ่งที่ฉันต้องการทำและฉันเข้าใจวิธีการเขียนรหัส แต่ฉันมีปัญหาเล็กน้อยในการทำความเข้าใจความแตกต่างระหว่างการสงวนissและการaudเรียกร้อง ฉันเข้าใจว่าเซิร์ฟเวอร์หนึ่งกำหนดเซิร์ฟเวอร์ที่ใช้งานโทเค็นและเซิร์ฟเวอร์หนึ่งอ้างถึงแอปพลิเคชันที่มีไว้สำหรับการใช้งาน แต่วิธีที่ฉันเข้าใจว่าผู้ชมและผู้ออกของฉันเป็นสิ่งเดียวกันmyserver.comคือการออกโทเค็นเพื่อให้ผู้ที่มาmyserver.comสามารถได้รับอนุญาตและรับรองความถูกต้อง ฉันเดาว่าฉันไม่เห็นความแตกต่างระหว่างการอ้างสิทธิ์ทั้งสองแม้ว่าฉันจะรู้ว่ามีอยู่ก็ตาม มีบทความที่ดีเขียนอยู่ที่msdn ในการอ้างสิทธิ์ที่สงวนไว้ทั้งหมดและนั่นคือสิ่งที่ฉันสับสนมากที่สุดเพราะพวกเขามี บริษัท ผู้ออกหลักทรัพย์และผู้ชมต่างกันโดยสิ้นเชิง

4
การตรวจสอบความถูกต้องของสถาปัตยกรรมสะอาดในเลเยอร์โดเมนกับข้อมูลคงอยู่หรือไม่
ฉันเรียนรู้เรื่องการทำความสะอาดและด้วยเหตุนี้ฉันจึงคิดใหม่อย่างมากเกี่ยวกับวิธีการออกแบบและเขียนซอฟต์แวร์ สิ่งที่ฉันยังคงต่อสู้ด้วยมีไว้สำหรับกฎเกณฑ์ทางธุรกิจเช่น "ในการอัปเดตการบันทึกบางรายการก่อนอื่นโหลดรายการทั้งหมดที่ฉันได้รับอนุญาตให้ดู / แก้ไข ฯลฯ ยืนยันว่ารายการนี้อยู่ในรายการ และหมวดหมู่รายการไม่ได้ถูกล็อกจากการใช้งาน (และกฎอื่น ๆ ฯลฯ ) ".. เนื่องจากเป็นกฎธุรกิจ (ซับซ้อน แต่ไม่ผิดปรกติ) ดังนั้นจึงควรจัดการในโดเมนแอปพลิเคชันแทนที่จะผลักดันตรรกะทางธุรกิจลงใน ชั้น db / การคงอยู่ อย่างไรก็ตามดูเหมือนว่าสำหรับฉันที่จะตรวจสอบเงื่อนไขเหล่านี้ได้อย่างมีประสิทธิภาพมันมักจะได้รับการจัดการที่ดีที่สุดกับแบบสอบถาม DB ที่สร้างขึ้นมาอย่างดีแทนที่จะโหลดข้อมูลทั้งหมดลงในโดเมนแอปพลิเคชัน ... หากไม่มีการปรับให้เหมาะสมก่อนเวลาอันควรแนวทางที่แนะนำหรือบทความบ็อบลุงจัดการกับคำถามนี้คืออะไร หรือเขาจะพูดว่า "ตรวจสอบในโดเมนจนกว่ามันจะกลายเป็นปัญหา" ?? ฉันกำลังดิ้นรนเพื่อค้นหาตัวอย่าง / ตัวอย่างที่ดีสำหรับสิ่งอื่นใดนอกเหนือจากกรณีพื้นฐานที่สุดของการใช้งาน ปรับปรุง: สวัสดีทุกคนขอบคุณสำหรับการตอบกลับ ฉันควรจะชัดเจนกว่าฉันเขียนซอฟต์แวร์ (ส่วนใหญ่เป็นแอปพลิเคชันเว็บ) เป็นเวลานานและมีประสบการณ์แล้วและเห็นด้วยกับทุกหัวข้อที่คุณอธิบายร่วมกัน (ตรวจสอบโดยแบ็กเอนด์ไม่เชื่อถือข้อมูลลูกค้าโดยทั่วไป ไล่ล่าประสิทธิภาพดิบเมื่อจำเป็นเท่านั้น แต่รับทราบจุดแข็งของเครื่องมือ db เมื่อมีให้ใช้ ฯลฯ ) และได้ผ่านวงจรการเรียนรู้ของนักพัฒนาของ "โยนทั้งหมดเข้าด้วยกัน" เพื่อ "สร้างตัวควบคุมไขมันยักษ์ด้วยแอปพลิเคชัน N-tiers" และตอนนี้ชอบและตรวจสอบสไตล์ความรับผิดชอบที่สะอาด …

1
ฉันจะแสดงแผนภาพสคีมาของฐานข้อมูล MongoDB ของฉันได้อย่างไร
ฉันมีฐานข้อมูล MongoDB ที่ฉันต้องการเอกสารการออกแบบสคีมาอย่างถูกต้อง ฉันรู้ว่า MongoDB เป็นฐานข้อมูล NoSQL และเป็น schemaless ตามธรรมชาติ แต่ฉันบังคับใช้ schema ผ่านแอปพลิเคชันของฉันและฉันต้องการที่จะเป็นตัวแทนในวิธีที่ดีกว่าการพิมพ์findOne()ผลลัพธ์ ฉันเห็นคนจำนวนมากที่ใช้ ER หรือ UML แต่ฉันไม่รู้สึกว่าเป็นแนวคิดที่ถูกต้องในการแสดงฐานข้อมูล NoSQL ของฉันเป็นฐานข้อมูลเชิงสัมพันธ์หรืออย่างน้อยก็ดูแปลก ตัวอย่างการใช้ UML: MongoDB: จะแสดงไดอะแกรมสคีมาในวิทยานิพนธ์ได้อย่างไร ฉันคิดว่าผู้คนจะใช้โมเดลที่แตกต่างกัน ฉันค้นหาแล้วและไกลที่สุดเท่าที่ฉันเคยเห็นคือMongoVUEที่เสนอมุมมองแบบต้นไม้ที่ดีเพื่อทำความเข้าใจกับสคีมา แต่มันไม่เป็นมิตรกับเครื่องพิมพ์ มีอย่างอื่นที่ฉันขาดหายไปสำหรับโลก NoSQL หรือไม่? หรือฉันควรพักผ่อนและติดกับ UML แบบดั้งเดิม?

4
แนวปฏิบัติที่ดีที่สุดสำหรับการบันทึกเขตเวลาในฐานข้อมูลคืออะไร
เราต้องการเริ่มต้นรวบรวมเขตเวลาสำหรับที่อยู่แต่ละแห่งในฐานข้อมูล วิธีที่ดีที่สุดในการจัดเก็บเขตเวลาคืออะไร? คุณจะไปเกี่ยวกับการหาเขตเวลาสำหรับบันทึกที่อยู่ที่มีอยู่ได้อย่างไร ฉันใช้เซิร์ฟเวอร์ Microsoft SQL, .net mvc, C # ข้อเสนอแนะใด ๆ ที่จะได้รับการชื่นชมอย่างมาก.

4
การเลือกชื่อสำหรับการทดสอบการรวม
ด้วยการทดสอบหน่วยโดเมนมีขนาดค่อนข้างเล็กดังนั้นจึงง่าย ฉันใช้methodName_conditions_result()รูปแบบของ Osherove และพบว่าชัดเจนมาก แต่ด้วยการทดสอบการรวมตัวฉันรู้สึกว่ามันจะทำให้ชื่อยาวมากและฉันจะแทนที่methodNameอะไร? ฉันจะตั้งชื่อคลาสทดสอบรวมได้อย่างไร ยินดีต้อนรับสู่ตัวอย่างการใช้งานจริงของชื่อการทดสอบการรวมระบบ ฉันหวังว่าคำตอบจะช่วยให้ฉันเข้าใจการทดสอบเหล่านี้ได้ดีขึ้น


4
สร้าง Null Objects ด้วย Null-Coalescing Operator
พิจารณาสถานการณ์ทั่วไปดังต่อไปนี้: if(myObject == null) { myObject = new myClass(); } ฉันสงสัยว่าความคิดของการแทนที่ต่อไปนี้โดยใช้ตัวดำเนินการ null รวมกัน: myObject = myObject ?? new myClass(); ฉันไม่แน่ใจว่าควรใช้แบบฟอร์มที่สองหรือไม่ ดูเหมือนว่าจะเป็นชวเลขที่ดี แต่การmyObject = myObjectสร้างที่จุดเริ่มต้นดูเหมือนจะเป็นกลิ่นโค้ดเล็กน้อย นี่เป็นสิ่งที่สมเหตุสมผลที่ต้องทำหรือมีชวเลขที่ดีกว่าที่ฉันทำหายไปหรือไม่? หรืออาจจะ "มันเป็นสามบรรทัดเอาเลย!"? แก้ไข: ดังที่ได้กล่าวไว้บางทีการเรียกสิ่งนี้ว่าสถานการณ์โดยทั่วไปนั้นเป็นเรื่องที่เกินความจริง ฉันมักจะพบว่าฉันพบสถานการณ์นี้เมื่อฉันดึงข้อมูลเอนทิตี้จากฐานข้อมูลที่มีคุณสมบัติประเภทการอ้างอิงลูกที่อาจหรืออาจจะไม่ได้บรรจุ: myClass myObject = myClassService.getById(id); myObject.myChildObject = myObject.myChildObject ?? new myChildClass();
12 c#  operators 

4
เหตุใดขนาดของชื่อผู้ดำเนินการรวบรวมเวลา
แต่เดิมนี่เป็นส่วนหนึ่งของคำถามอื่น เหตุใดจึงsizeofเรียกว่าตัวดำเนินการเวลาคอมไพล์ จริง ๆ แล้วมันไม่ใช่ผู้ดำเนินการ และถ้ามันเป็นตัวดำเนินการแบบคอมไพล์เวลามันช่วยในการสร้างโค้ดพกพาที่ทำงานเหมือนกันในคอมพิวเตอร์เครื่องอื่นได้อย่างไร โปรดอธิบายโดยละเอียด
12 c++ 

2
ใช้โปรแกรมจัดการกระแสข้อมูล (endl) หรืออักขระขึ้นบรรทัดใหม่ (\ n) หรือไม่
ฉันไม่มีบริบทที่เฉพาะเจาะจงที่ฉันถามคำถาม แต่ในขณะที่ฉันกำลังอ่านหนังสือเริ่มต้นบน C ++ ฉันสังเกตเห็นการใช้ทั้งตัวจัดการกระแสข้อมูล endl และตัวอักขระขึ้นบรรทัดใหม่เมื่อจัดการกับวัตถุกระแส exmaple เป็นดังนี้: cout << "Hello World" << endl; cout << "Hello World\n"; คำถามของฉันคือ: มันเหมาะสมกว่าหรือไม่ที่จะใช้ stream manipulator (endl) ในบางสถานการณ์และตัวหนีในอีกอันหนึ่ง? มีข้อเสียประสิทธิภาพในการใช้หนึ่งในสองหรือไม่? พวกเขาใช้แทนกันได้อย่างสมบูรณ์หรือไม่ ฉันอ่านว่า escape sequence ถูกเก็บไว้ในหน่วยความจำเป็นตัวอักษรเดียว หมายความว่าเหมาะสมกว่าที่จะใช้ endl ถ้าคุณใช้หน่วยความจำน้อยหรือไม่ stream manipulator endl ใช้หน่วยความจำในทางใดทางหนึ่งหรือไม่ถ้าเป็นเช่นนั้นมากกว่าลำดับ escape หรือไม่? ขอบคุณ StackExchange ขอโทษถ้าฉันโพสต์สิ่งนี้ในส่วนที่ไม่ถูกต้องฉันคิดว่ามันนับเป็นโครงสร้างข้อมูล

6
ค่าเริ่มต้น - พวกเขาดีหรือไม่ดี?
คำถามเกี่ยวกับค่าเริ่มต้นโดยทั่วไป - ค่าฟังก์ชันส่งคืนค่าเริ่มต้น, ค่าพารามิเตอร์เริ่มต้น, ตรรกะเริ่มต้นสำหรับสิ่งที่หายไป, ตรรกะเริ่มต้นสำหรับการจัดการข้อยกเว้น, ตรรกะเริ่มต้นสำหรับการจัดการเงื่อนไขขอบ ฯลฯ เป็นเวลานานที่ฉันถือว่าค่าเริ่มต้นเป็นสิ่งที่ "ชั่วร้ายบริสุทธิ์" สิ่งที่ "ปิดบังความหายนะ" และผลลัพธ์ในการค้นหาข้อบกพร่องที่ยากมาก แต่เมื่อเร็ว ๆ นี้ฉันเริ่มคิดเกี่ยวกับค่าเริ่มต้นเนื่องจากหนี้ทางเทคนิคบางประเภท ... ซึ่งไม่ได้เป็นสิ่งที่ไม่ดี แต่สิ่งที่สามารถให้ "การจัดหาเงินทุนระยะสั้น" เพื่อให้เราอยู่รอดได้ในโครงการ จะซื้อบ้านโดยไม่ต้องจดจำนองไหม? เมื่อฉันพูดว่า "ระยะสั้น" - ฉันไม่ได้หมายความว่า - "ทำอะไรบางอย่างได้อย่างรวดเร็วก่อนและทำการปรับโครงสร้างใหม่ในภายหลังก่อนที่จะถึงการผลิต" ไม่ - ฉันกำลังพูดถึงการพึ่งพาค่าเริ่มต้นที่ฮาร์ดโค้ดในซอฟต์แวร์ที่ใช้งานจริง ได้รับ - มันอาจทำให้เกิดปัญหาบางอย่าง แต่ถ้ามันจะทำให้เกิดปัญหาเดียวตลอดทั้งปี อีกครั้ง - ฉันกำลังพูดถึงซอฟต์แวร์กระแสหลัก "โดยเฉลี่ย" ที่นี่ (ไม่ใช่ซอฟต์แวร์สำหรับสถานีพลังงานนิวเคลียร์) - เว็บไซต์เฉลี่ยหรือแอปพลิเคชัน UI สำหรับซอฟต์แวร์การบัญชีซึ่งหมายความว่าชีวิตของผู้คนไม่ได้อยู่ในความเสี่ยงหรือนับล้านดอลลาร์ . อีกครั้งจากประสบการณ์ของฉันผู้ใช้ทางธุรกิจค่อนข้างจะอาศัยอยู่กับซอฟต์แวร์ที่ "ทำงานอย่างใด" แทนที่จะรอให้มันสมบูรณ์แบบ และการใช้ค่าเริ่มต้นจะช่วยได้มากหากคุณพัฒนาซอฟต์แวร์ในสไตล์ …

11
“ มนุษย์อ่านได้” หมายความว่าอะไร? มันเป็นการเรียกชื่อผิดหรือไม่?
ตัวอย่างของฤดูใบไม้ผลิที่ใจสอง: เหตุผลหนึ่งที่โปรแกรมเมอร์. Net ได้รับการสนับสนุนให้ใช้ไฟล์. config แทน Windows Registry ก็คือไฟล์. config เป็น XML และสามารถอ่านได้โดยมนุษย์ ในทำนองเดียวกัน JSON บางครั้งก็ถือว่ามนุษย์สามารถอ่านได้เมื่อเทียบกับรูปแบบที่เป็นกรรมสิทธิ์ มนุษย์สามารถอ่านได้จริงหรือไม่? ในตัวอย่างของข้อมูลการกำหนดค่า: รูปแบบไม่เปลี่ยนแปลงความหมายพื้นฐานของข้อมูล - ในทั้งสองกรณีข้อมูลแสดงถึงสิ่งเดียวกัน ทั้งไฟล์รีจิสทรีและไฟล์. config ถูกจัดเก็บไว้ภายในเป็นซีรีย์ 0s และ 1s ในระดับนั้นตัวแทนที่เป็นรากฐานไม่สามารถอ่านได้อย่างเท่าเทียมกันโดยมนุษย์ ทั้งไฟล์ registry และ. config ต้องการเครื่องมือในการอ่านจัดรูปแบบและแสดง 0s และ 1s เหล่านั้นและแปลงเป็นรูปแบบที่มนุษย์สามารถอ่านได้ ในกรณีของการกำหนดค่าที่เก็บไว้ใน Windows Registry นี่คือตัวแก้ไขรีจิสทรี ในกรณีของ XML มันอาจเป็น text editor หรือ XML reader ไม่ว่าจะด้วยวิธีใดเครื่องมือจะทำให้สามารถอ่านข้อมูลไม่ใช่รูปแบบข้อมูล …

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