แบบแผนการตั้งชื่อ:“ รัฐ” กับ“ สถานะ” [ปิด]


175

คำถามด่วน: ฉันต้องการฟังความคิดเห็นของคุณเมื่อใช้ "สถานะ" กับ "สถานะ" เมื่อตั้งชื่อทั้งสองฟิลด์เช่น "Foo.currentState" vs "Foo.status" และประเภทเช่น "enum FooState" vs "enum FooStatus" มีการประชุมหารือกันหรือไม่? เราควรใช้เพียงอย่างเดียวหรือไม่ ถ้าเป็นอย่างนั้นเราควรเลือกอย่างไร?


14
หึ เมื่อวันก่อนในที่ทำงานฉันเจอโครงสร้างบางอย่างที่มีสมาชิกชื่อ "รัฐ" และสมาชิกอีกคนหนึ่งชื่อ "สถานะ" และพวกเขาต่างกัน ฉันเริ่มคิดเกี่ยวกับความหมายของคำศัพท์และจะเปลี่ยนมันอย่างไร แต่รหัสนั้นเก่าและสกปรกและทำงานได้ดังนั้นฉันจึงปล่อยให้สุนัขนอนหลับนอนอยู่ โอ้ .. นี้น่าจะเป็น "ความคิดเห็น" แทนที่จะเป็น "คำตอบใช่มั้ยแสดงความคิดเห็นคำตอบสถานะสถานะ ... อะไรก็ตาม
smcameron

9
และแน่นอนนี่ถูกปิด ดีเฒ่า
jn1kk

2
@jsn ไม่เพียง แต่มันจะปิด (สิ่งที่ไม่วันนี้?) แต่ก็ยังคงโดยยิงยาวสิ่งที่เป็นที่นิยมที่สุดที่ผมเคยมีส่วนที่นี่ :)
Sophistifunk

8
นี่คือคำถามการเขียนโปรแกรมที่ถูกต้อง martinfowler.com/bliki/TwoHardThings.html

2
สถานะเป็นป้ายกำกับง่าย ๆ เช่น "สุขภาพดี", "เสื่อมโทรม", "ไม่พร้อมใช้งาน" ฯลฯ รัฐมีรายละเอียดเต็มไปด้วยเลือดทั้งหมด เช่น CPU util และโหลดเฉลี่ย, การใช้หน่วยความจำ, JVM metrics, การใช้ดิสก์เป็นต้น

คำตอบ:


107

มันขึ้นอยู่กับบริบท

รัฐโดยทั่วไปหมายถึงรัฐทั้งหมดของกิจการ - ค่านิยมและความสัมพันธ์ทั้งหมด ณ เวลาใดเวลาหนึ่ง (ปกติปัจจุบัน)

สถานะเป็นมากกว่าเวลาบอกว่าสิ่งที่อยู่ในกระบวนการหรือเวิร์กโฟลว์ - มันสกปรก (ดังนั้นต้องมีการบันทึก) มันเสร็จสมบูรณ์มันคือการป้อนข้อมูลที่ค้างอยู่ ฯลฯ

ฉันหวังว่าจะช่วยคุณในการตัดสินใจของคุณ


211

IMO:

สถานะ == คุณเป็นอย่างไร [ดี / ไม่ดี]

state == คุณกำลังทำอะไร [พักผ่อน / ทำงาน]


17
คุณอยู่ที่ไหนในปี 2552 คำตอบนี้เหมาะสมที่สุดในศัพท์แสงทางเทคนิค (สถานะ cpu, สถานะเธรด, สถานะของเครื่องจักร, สถานะส่งคืน, สถานะโวลุ่มการโจมตี ฯลฯ ) และอื่น ๆ อีกมาก (สถานะแอปพลิเคชันสถานะบัญชี ฯลฯ ) สิ่งเดียวที่ฉันคิดได้ว่าไม่สอดคล้องกันคือสิ่งต่าง ๆ เช่น "สถานะของกิจการ" หรือ "สถานะของสิ่งต่าง ๆ " ซึ่งเป็นเหมือน "สถานะ" ของคุณ (ความคิดที่ดี / ไม่ดีของสิ่งต่าง ๆ ที่เกิดขึ้นมากกว่าสิ่งที่เกิดขึ้น ไปสู่ตัวเอง)
ปีเตอร์

4
รัฐยังบอกด้วยว่ามันเก็บข้อมูลมากกว่าแค่ "พักผ่อน / ทำงาน" - แต่รายละเอียดทั้งหมดเกี่ยวกับงาน (หรือพักผ่อน) ว่ามันกำลังทำอะไรอยู่
BrainSlugs83

3
"ฉันกำลังสร้างบ้านต้นไม้ในสวนหลังบ้านพี่ชายของฉัน" จะเป็นรายละเอียดเพิ่มเติมเกี่ยวกับรัฐตามที่คุณแนะนำ @ BrainSlugs83 ในตัวอย่างนี้สถานะของฉันอาจจะเหนื่อยล้า / มีพลัง / มีพลังงาน / มีความสุข
sphere

4
ฉันรักตัวอย่างนี้ สะอาดและรัดกุม สำหรับการใช้งานจริงของฉันฉันอาจพูดคุยกับสัจพจน์โดยบอกว่าStateควรสะท้อนถึง "โหนดที่ระบุ" ภายในกราฟของสถานะสถานะเครื่อง (หรือเวิร์กโฟลว์) ซึ่งคำอธิบายอาจเป็นคำคุณศัพท์ทางวาจา (มักลงท้ายด้วย " -ing ") ในขณะที่Statusเป็นคุณสมบัติที่เรียบง่ายของวัตถุคำคุณศัพท์ธรรมดาที่อาจถูกใช้โดยทริกเกอร์หรือตามค่าที่สังเกตได้สำหรับการตัดสินใจที่จะเปลี่ยน (หรือรักษา) รัฐ ฉันอาจจะคิดถึงมัน ฉันทำอย่างนั้น ..
Alan McBee - MSFT

6
ฉันยอมรับ: สถานะเป็นผลลัพธ์หรือความคืบหน้าของการเปลี่ยนแปลงในสถานะ
Neil

16

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


8

อีกเหตุผล (ในทางปฏิบัติทั้งหมด) ชอบสถานะมากกว่าสถานะคือพหูพจน์ตรงไปตรงมา:

  • สถานะ -> รัฐ
  • สถานะ -> สถานะ

และเชื่อฉันเถอะว่าคุณจะมีลิสต์หรืออาเรย์หรืออะไรก็ตามในรหัสของคุณไม่ช้าก็เร็วและจะต้องตั้งชื่อตัวแปร


3
เพียงแค่สงสัยว่าสถานะพหูพจน์ไม่ควรเป็นหรือไม่
BiAiB

วิกิพีเดียกล่าวว่าสถานะ: en.wiktionary.org/wiki/status#Noun ภาษาอื่นมีพหูพจน์ที่แตกต่างกัน
robinst

9
พหูพจน์ละตินคือ "statūs" โดยมีความยาวของคุณไม่ใช่ stati
Paŭlo Ebermann

6

ฉันคิดว่าหลายคนใช้ "สถานะ" เพื่อเป็นตัวแทนของวัตถุหากไม่มีเหตุผลอื่นนอกจาก "รัฐ" หมายถึงการแบ่งทางการเมืองของสหรัฐอเมริกา


11
ที่ไม่ได้เป็นเหตุผลที่ผมได้เคยใช้หรือทุกคนที่ผมได้ทำงานร่วมกับทุกคนหรือข้อความที่อ่านจาก ...
ลุค Schafer

4
แล้วอะไรล่ะ มันเป็นเหตุผลที่ถูกต้อง มันเป็นแบบแผนการตั้งชื่อ
Dave Markle

4
อ๋อ ในออสเตรเลียเราก็ใช้คำว่า State เพื่ออธิบายถึงอดีตอาณานิคมแต่ละอันที่รวมเป็นหนึ่งเดียวในเครือจักรภพในปี 1901 ดังนั้นฉันมักจะใช้. สถานะเนื่องจากมี. state มักใช้ในโครงสร้างข้อมูลที่มีที่อยู่
Matthew Schinckel

ดังนั้น address.state = รัฐแทสเมเนีย เหมาะสม แต่อุปกรณ์ไม่คาดว่าจะมีส่วนเกี่ยวข้องกับภูมิศาสตร์
วง

3

ฉันคิดว่าคุณสามารถเพิ่มมุมมองอื่นในสมการได้นั่นคือ 'ผู้ร้องขอ - ผู้ส่ง'

จากมุมมองของผู้ส่งฉันจะสื่อสารสถานะของฉันกับใครก็ตามที่เต็มใจฟัง ในขณะที่จากมุมมองของผู้ร้องขอฉันจะขอสถานะของใครบางคน

ด้านบนอาจถูกตีความจากมุมมองที่ไม่แน่นอน:

  • กำหนด = สถานะ
  • ไม่ได้กำหนด = สถานะ

สถานะของคุณคืออะไร ฉันอยู่ในสภาพที่ผ่อนคลาย

ฉันค่อนข้างแน่ใจว่านี่เป็นเพียงหนึ่งการตีความซึ่งอาจไม่เหมาะกับสถานการณ์ของคุณโดยเฉพาะ


1

ตรวจสอบพจนานุกรมอย่างรวดเร็วพบสถานะที่เป็นไวพจน์ของรัฐ แต่มีการตีความเพิ่มเติมของตำแหน่งเมื่อเทียบกับที่อื่น

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


1

นิติบุคคลจำนวนมากที่ฉันจัดการกับ (บัญชีลูกค้า) อาจมีสถานะ (TX, VA, ฯลฯ ) และสถานะ (ใช้งาน, ปิด, ฯลฯ )

ดังนั้นจุดเกี่ยวกับคำที่ทำให้เข้าใจผิดเป็นไปได้ เรามีมาตรฐานการประชุมตั้งชื่อฐานข้อมูล (ไม่เลือกส่วนบุคคลของฉัน) ที่รัฐเป็นชื่อและสถานะจะเป็นST_CDACCT_STAT_CD

ด้วย enum ใน milieux OO ปัญหานี้ไม่สำคัญเนื่องจากถ้าคุณมีความปลอดภัยชนิดเข้มงวดคอมไพเลอร์จะให้แน่ใจว่าไม่มีใครพยายามทำเช่นนี้:

theCustomer.State = Customer.Status.Active;

หากคุณอยู่ในสภาพแวดล้อมแบบไดนามิกฉันจะเป็นห่วงมากขึ้น!

หากคุณกำลังจัดการกับโดเมนที่เครื่องจักรของรัฐหรือข้อมูลสถานะอื่น ๆ และคำศัพท์นั้นเด่นกว่าฉันจะคิดว่ารัฐนั้นดีมาก


ที่อยู่เป็นของที่อยู่ของลูกค้าไม่ใช่ลูกค้าต่อ se เช่น theCustomer.MailingAddress.State = Iowa
รวมกัน

@sphere เป็นไปได้และอาจไม่ นอกจากนี้ยังสามารถเป็นสถานะของการเกิดหรือสถานะของการอยู่อาศัยเมื่อแนบกับบุคคลที่ไม่มีที่อยู่และแน่นอนสามารถแนบกับหน่วยงานอื่น ๆ เช่นที่อยู่, ใบอนุญาต, ใบอนุญาต ฯลฯ ในกรณีใด ๆ ฉันไม่แน่ใจ มันเกี่ยวข้องกับคำถามที่ว่ามีความคลุมเครือในการใช้คำศัพท์ปัญหาโดเมนทั่วไปเช่น State สำหรับการใช้งานเฉพาะของเครื่องสถานะ / ธง / สถานะ แล้วไม่ว่ารัฐหรือสถานะจะมีหรือไม่มีความหมายต่างกัน
เคดรูส์

0

เรามีการอภิปรายที่แน่นอนเกี่ยวกับโครงการปัจจุบันของฉันในขณะที่กลับ ฉันไม่มีความชอบ แต่ความสม่ำเสมอคือการพิจารณาที่สำคัญ

คำจำกัดความแรก (มีหลายอย่าง) ของ "สถานะ" ใน Sharp PW-E550 ของฉัน (พจนานุกรมที่ยอดเยี่ยมฉันอาจเพิ่ม) คือ "เงื่อนไขเฉพาะที่บางคนหรือบางสิ่งอยู่ในเวลาที่กำหนด" คำจำกัดความแรกของ "สถานะ" คือ "สถานะทางสังคมอาชีพหรือสถานะอื่นของใครบางคนหรือบางสิ่ง" แม้แต่คำจำกัดความที่สอง (และสุดท้าย) ของ "สถานะ" ก็ด้อยกว่า "รัฐ" ในบริบทนี้: "ตำแหน่งของกิจการในเวลาใดเวลาหนึ่งโดยเฉพาะในบริบททางการเมืองหรือเชิงพาณิชย์"

ดังนั้นหากเราต้องการให้มันง่ายที่สุดสำหรับใครบางคนที่ใช้พจนานุกรมของฉัน (ใช้พจนานุกรม New Oxford American, 2001) "สถานะ" จะเป็นตัวเลือกที่ดีที่สุด

นอกจากนี้ยังมีรูปแบบการออกแบบที่อธิบายไว้ในหนังสือของ Gang of Four ที่เรียกว่า State Pattern เพื่อสร้างคำศัพท์ในพจนานุกรมคอมพิวเตอร์อย่างแน่นหนา

ด้วยเหตุผลเหล่านี้ฉันขอแนะนำ "รัฐ"

ป.ล. นั่นคือคุณ DDM? คุณยังขมขื่นกับสถานะ "สถานะ" กับ "สถานะ" หรือไม่ !!!!!!! LMAO!


-1

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


พวกเขาไม่ได้หมายถึงสิ่งเดียวกัน
BrainSlugs83

บริบทสำหรับคำถามนี้คือซอฟต์แวร์ซึ่งเป็นสาเหตุของคำถามที่ถูกต้อง ระบบคอมพิวเตอร์มักจะต้องกำหนดและรายงานสถานะ / สถานะของส่วนต่าง ๆ ของระบบและการตั้งชื่อสิ่งต่าง ๆ อย่างมีความหมายกลายเป็นเรื่องสำคัญมากสำหรับผู้ที่กำลังดีบักหรือปรับปรุงซอฟต์แวร์
ประกอบ

-1

ฉันแน่ใจว่าคุณจะได้รับข้อโต้แย้งทั้งสถานะและสถานะ สิ่งที่สำคัญที่สุดที่คุณต้องทำคือเลือกและใช้เพียงอันเดียว ฉันขอแนะนำให้คุยเรื่องนี้กับทีมของคุณและดูว่าทุกคนเห็นด้วยกับอะไร

ที่กล่าวว่าข้อเสนอแนะของฉันมีดังนี้

สมมติว่าคุณกำลังใช้ภาษาการเขียนโปรแกรมเชิงวัตถุวัตถุ "สถานะ" จะถูกแทนด้วยตัววัตถุเอง SomeObject.state imo ทำให้เข้าใจผิด ฉันไม่แน่ใจว่า "สถานะ" หมายถึงอะไรในตัวอย่างของคุณ แต่สัญชาตญาณตามธรรมชาติของฉันคือชอบที่จะบอกสถานะนี้


1
เลือกอย่างใดอย่างหนึ่งและติดกับหนึ่งเดียวเป็นเรื่องไร้สาระ ทั้งสองมีความหมายและนัยที่ต่างกัน พิจารณาตัวอย่างเช่น "GameState" กับ "GameStatus" - ทั้งสองมีความหมายที่แตกต่างกันมากและไม่สามารถใช้แทนกันได้
BrainSlugs83

-2

ไม่เหมือนกันเลย หยุดและเริ่มเป็นรัฐ การหยุดและเริ่มต้นคือสถานะ

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


1
OP ถามเกี่ยวกับการใช้อย่างใดอย่างหนึ่ง ไม่ใช่ทั้งคู่ หนึ่งสามารถยืนยันว่าStartingเป็นจริงที่แตกต่างกันอย่างสมบูรณ์จากState มันขึ้นอยู่กับความหมายของระบบของคุณ ตรวจสอบตัวอย่างเช่นบริการ Windows Stopped
Andrew Barber
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.