ฉันควรตั้งชื่อคลาสธุรกิจของฉันในภาษาใด


29

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

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


11
อังกฤษ Lingua franca สำหรับการเขียนโปรแกรม
Rig

6
อีกคนหนึ่งที่ 'ความท้าทาย' ข้อความผิดพลาด PHP unexpected T_PAAMAYIM_NEKUDOTAYIMมีภาษาฮิบรูบิดที่น่าสนใจ: เมื่อเห็นสิ่งนี้มาสองสามครั้งในชีวิตของฉันฉันก็ไม่สงสัยเลยว่าควรใช้ภาษาอังกฤษ
K.Steff

3
นิพจน์เฉพาะโดเมนภาษาเยอรมันมีอักขระที่ไม่เป็นมาตรฐานหรือไม่ (เช่น umulauts (sp?)) หากคุณจ้างโปรแกรมเมอร์นอกภูมิภาคของคุณพวกเขาอาจไม่สามารถค้นหาแป้นพิมพ์ที่มีอักขระที่จำเป็น (ฉันไม่ได้) ใช่มีวิธีการเปลี่ยนภาษา 'พิมพ์' แต่ฉันไม่ต้องการให้ยุ่งยาก
Clockwork-Muse

2
กรีก - การใช้ตัวอักษรที่ไม่ใช่ละตินนั้นมีความปลอดภัยในการทำงานดีกว่าคลิงออน
ไวแอตต์บาร์เน็ตต์

3
@ X-Zero ที่อยู่นอก ASCII ธรรมดาจะเปิด "เวิร์มการเข้ารหัสอักขระที่เราใช้" ของเวิร์ม โดยปกติแล้วคุณจะถูกกัดและไม่ไปที่นั่นอีก

คำตอบ:


16

ฉันทำงานในเยอรมนีและฉันชอบที่จะเลือกภาษาอังกฤษ

บางครั้งเช่นสิ่งเฉพาะโดเมนเช่นการสร้างโมดูลเป็น "DATEV" (ซอฟต์แวร์ใบแจ้งหนี้ / การเรียกเก็บเงินเยอรมัน) ฉันใช้ชื่อภาษาเยอรมัน คำภาษาเยอรมันบางคำไม่สามารถแปลได้อย่างถูกต้องเช่น "Referenzbuchungsnummer" (ReferenceBookingNum?) หรือ "Sachkontenlaenge" (.. ?) นอกจากนี้ฉันคิดว่าสิ่งเฉพาะโดเมนจะสิ้นสุดในการบำรุงรักษาสยองขวัญ บางทีคุณอาจจะจำได้ว่า ReferenceBooking หมายเลขจะเกี่ยวข้องกับ "Referenzbuchungsnummer" แต่สิ่งที่เกี่ยวกับเพื่อนร่วมงานของคุณ? พวกเขาต้องศึกษาเอกสารภายในเกี่ยวกับการตั้งชื่อหากมีเอกสารอยู่ พวกเขาจะไม่คุ้นเคยกับโมดูลโดยไม่มีชื่อที่เหมาะสม มันเป็นความซับซ้อนที่ไม่จำเป็นหากนักพัฒนาคนอื่นเป็นชาวเยอรมันเช่นกัน แต่ "CakeFactory" ฟังดูดีกว่า "KeksFabrik";)

ดังนั้นทุกอย่างขึ้นอยู่กับ


2
คำตอบนี้สะท้อนถึงความขัดแย้งส่วนตัวของฉันมากที่สุดหลังจากอ่านคำตอบอื่น ๆ โดยเฉพาะอย่างยิ่งประเด็นนี้: "มันเป็นความซับซ้อนที่ไม่จำเป็นหากนักพัฒนาคนอื่นเป็นชาวเยอรมันด้วย" เมื่อแปลทุกอย่าง
Zeemee

1
@Mulmoth: "มันเป็นความซับซ้อนที่ไม่จำเป็นถ้านักพัฒนาคนอื่นเป็นชาวเยอรมันด้วย" --- คุณจะมั่นใจได้อย่างไรว่าในบางช่วงเวลาในบางปีโครงการจะไม่ได้รับการว่าจ้างจากประเทศอื่น คุณจะมั่นใจได้อย่างไรว่านักพัฒนาที่ไม่ได้พูดภาษาเยอรมันจะไม่ได้รับการแนะนำในโครงการ ณ เวลาใดเวลาหนึ่ง?
Coral Doe

5
@Coral Doe - ฉันคิดว่านักพัฒนาใหม่ / อื่น ๆ / outsource ต้องขุดลึกเข้าไปในโดเมนธุรกิจและการแสดงออกที่เฉพาะเจาะจง ดังนั้นฉันจึงง่ายกว่าที่จะแมปสิ่งที่ลูกค้า (ซึ่งจะยังคงเป็นภาษาเยอรมันในตอนนั้น) sais กับคลาสที่มีชื่อภาษาเยอรมันนั้นเป็นชื่อที่แปลไม่ถูกต้อง / ผิด
Zeemee

2
การเรียกเก็บเงิน / "ภาษี" ที่เกี่ยวข้องกับภาษีเยอรมันจะไม่ถูกนำไปใช้กับประเทศที่ไม่ใช้ภาษาเยอรมัน ที่มหาวิทยาลัยมีคนบอกฉันว่าร้อยละ 85 ของหนังสือเรียกเก็บเงิน / ภาษีทั้งหมดอ้างถึงกฎหมายเยอรมันและเขียนเป็นภาษาเยอรมัน ทั่วโลก
lurkerbelow

3
ฉันเห็นด้วย แต่ปัญหาหนึ่งที่เกิดขึ้นเกือบตลอดเวลาคือภาษาที่นักพัฒนาใช้รั่วไหลออกไปยังผู้ใช้และผู้มีส่วนได้เสียอื่น ๆ ไม่ได้เป็นส่วนหนึ่งของ UI แต่เป็นวิธีที่คุณพูดเกี่ยวกับโดเมนปัญหา สิ่งนี้จะนำไปสู่ความสับสนอย่างหลีกเลี่ยงไม่ได้ทุกคนพูดภาษาอังกฤษได้ดีเหมือนนักพัฒนาส่วนใหญ่
Mille Bessö

14

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

พนักงานของเราบางคนไม่ได้เป็นชาวนอร์เวย์ดังนั้นการเขียนเป็นภาษาอังกฤษจึงเป็นประโยชน์ต่อพวกเขา ความสามารถในการจ้างโปรแกรมเมอร์จากยุโรปส่วนใหญ่นั้นดีต่อเศรษฐกิจดังนั้น บริษัท ของฉันก็มีประโยชน์เช่นกัน

BTW: ฉันจำได้ว่าฉันอ่านที่มาของ Hermes หนึ่งครั้ง (การติดตั้ง ebXML b2b) และฉันจะมีช่วงเวลาที่ยากลำบากหากพวกเขาจะเขียนและแสดงความคิดเห็นเป็นภาษาจีนกลาง


5
เกือบจะ "วิทยาลัย" แก้ไขสิ่งที่ฉันคิดว่าควรจะเป็น "เพื่อนร่วมงาน" แต่ฉันไม่แน่ใจว่ามันเป็นความตั้งใจหรือไม่
Jacob Schoen

แน่นอนว่าฉันหมายถึงเพื่อนร่วมงาน :)
Sylwester

Of course some words or concepts might not have a English counterpart- ฉันมักจะสงสัยอยู่เสมอว่าเมื่อมีการเขียนโปรแกรมขึ้นมาเกือบเหมือนที่คุณอาจจะรู้ว่ารูปแบบการออกแบบที่ผู้พูดภาษาอังกฤษเท่านั้นไม่สามารถทำได้ คุณมีตัวอย่างรวดเร็วหรือไม่?
Izkata

5
@Izkata: คำถามเกี่ยวกับชั้นเรียนธุรกิจ พวกเขามักเชื่อมโยงกับกฎและระเบียบเฉพาะของแต่ละประเทศ เช่นถ้ากฎหมายบังคับให้คุณติดตามตำแหน่งของรถบรรทุกทุกคันที่มีสารเคมีอันตรายคุณอาจตั้งชื่อชั้นนั้นได้ตามกฎหมายนั้น
MSalters

9

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

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

สามารถสันนิษฐานได้ว่ามันใช้ได้สำหรับโครงสร้างเฉพาะบางโดเมนที่ไม่ได้แมปกับภาษาอื่น ๆ ได้ง่ายหรือหากมีการบำรุงรักษาฐานรหัสที่มีอยู่


9

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


4
นั่นเป็นประเด็นที่ดี: หากความรู้เกี่ยวกับโดเมนทั้งหมดเป็นภาษาท้องถิ่นและไม่มีชื่อภาษาอังกฤษที่ตกลงกันไว้สำหรับแนวคิดเรื่องโดเมนการใช้ภาษาท้องถิ่นอาจเป็นความคิดที่ดี
โจอาคิมซาวเออร์

7

โดยทั่วไปแล้วจะง่ายต่อการอ่านซอร์สโค้ดที่เขียนด้วยภาษาเดียว สิ่งนี้สำหรับภาษาโปรแกรมส่วนใหญ่บอกเป็นนัยว่าคุณควรเขียนเป็นภาษาอังกฤษ

ที่กล่าวว่ามีปัญหาสำคัญกับแนวคิดโดเมนซึ่งแปลได้อย่างง่ายดายเป็นภาษาอังกฤษ ตัวอย่างทั่วไปคือตัวระบุที่ไม่ซ้ำกันซึ่งสังคมให้กับบุคคล - ในสหรัฐอเมริกาแนวคิดที่ใกล้ที่สุดคือหมายเลขประกันสังคม แต่มันไม่ใช่แผนที่ที่ถูกต้อง ชื่อและหมายเลขโทรศัพท์มักทำแผนที่ได้ค่อนข้างดี

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


2

โครงการประเภทชุมชนโอเพนซอร์ซ / นานาชาติ

ภาษาทั่วไปของโครงการโอเพนซอร์ซและชุมชนระหว่างประเทศคือภาษาอังกฤษ ในกรณีนี้ภาษาของไซต์ Stack Exchange คือภาษาอังกฤษ เพื่อการเข้าถึงที่กว้างที่สุดควรใช้ภาษาอังกฤษกับรหัสและชื่อวัตถุทั้งหมด

โครงการเชิงพาณิชย์

บริษัท ซอฟต์แวร์ระหว่างประเทศส่วนใหญ่สั่งให้เขียนรหัสเป็นภาษาอังกฤษ มันเป็นตัวหารร่วมที่ยิ่งใหญ่ที่สุดดังนั้นจึงเหมาะสมที่จะใช้ภาษาอังกฤษเพื่อสร้างความมั่นคง

บริษัท ซอฟต์แวร์ระดับภูมิภาคหลายแห่งเขียนเป็นภาษาของตนเอง ไม่ใช่ทุกคนที่ทำตามวิธีนี้ แต่มันสมเหตุสมผลจากมุมมองของพวกเขา - พวกเขาใช้ภาษากลางสำหรับนักพัฒนาทั้งหมด

การตั้งชื่อวัตถุทางธุรกิจ

ภาษาการเขียนโค้ดของทีมควรใช้เพื่อตั้งชื่อวัตถุ
ลำดับความสำคัญมีไว้สำหรับนักพัฒนาเพื่อให้สามารถสื่อสารซึ่งกันและกันเกี่ยวกับวัตถุและข้อกำหนดของโครงการ หากทีมเขียนเป็นภาษาฝรั่งเศสวัตถุธุรกิจควรตั้งชื่อเป็นภาษาฝรั่งเศส หากพวกเขารหัสในภาษาอังกฤษแล้วชื่อวัตถุในภาษาอังกฤษ

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

ข้อยกเว้นเพียงอย่างเดียวของกฎการตั้งชื่อคือเมื่อวัตถุนั้นไม่มีคำศัพท์อื่นที่รัดกุมเพียงพอที่จะตรวจจับเจตนาของวัตถุ IMO นี่หายากจริงๆ แต่มันสามารถเกิดขึ้นได้ แม้ว่าในความเป็นจริงมันเป็นสิ่งเดียวกันที่ภาษาพูดทำเพื่อแสดงแนวคิดที่เฉพาะเจาะจง " Facade " เดิมเป็นคำภาษาฝรั่งเศส แต่ได้รับการดัดแปลงโดยอังกฤษเพื่อแสดงแนวคิดและเป็นรูปแบบการออกแบบทั่วไป " Schadenfreude " เป็นอีกตัวอย่างที่ดีของคำที่ยืมมาถึงแม้ว่าฉันจะไม่คิดว่ามันมีรูปแบบที่สอดคล้องกัน


1
ย่อหน้าสุดท้ายของคุณขัดแย้งกับฉบับแรกของคุณอย่างสิ้นเชิงดูเหมือนว่า
เจมส์

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

1
ไม่เห็นด้วยอย่างยิ่ง. เนื่องจากแนวคิดหลักของการใช้ภาษาทุกภาษาที่คุณพบนั้นเขียนด้วยภาษาอังกฤษการใช้คำศัพท์ที่ไม่ใช่ภาษาอังกฤษทำให้รหัสที่อ่านง่ายขึ้น จิตใจต้องข้ามไปมาระหว่างภาษาอังกฤษกับภาษาอื่นอย่างต่อเนื่อง รหัสควรมีความคล่องแคล่วและสามารถอ่านได้
Mike Adler

@ MikeAdler - มันไม่ชัดเจนถ้าคุณไม่เห็นด้วยกับสิ่งที่ฉันแนะนำเป็นกฎทั่วไป (ชื่อสิ่งในภาษาของทีม) หรือกรณียกเว้นซึ่งควรจะหายากมาก

ที่ได้รับ ฉันจะอธิบาย: ฉันไม่เห็นด้วยกับสิ่งที่ควรมีชื่อในภาษาอื่นที่ไม่ใช่ภาษาอังกฤษ หัวข้อแรกของคุณ 'โครงการโอเพ่นซอร์ส / ชุมชนประเภทต่างประเทศ' สะท้อนมุมมองของฉันได้เป็นอย่างดี ทุกอย่างหลังจากนั้นฉันไม่ได้ซื้อ เหตุผลตามที่ระบุไว้คือความสามารถในการบำรุงรักษาซึ่งควรเป็นข้อกังวลสำคัญสำหรับการตัดสินใจออกแบบทุกครั้ง (รวมถึงรูปแบบการตั้งชื่อ) ที่คุณทำในความคิดของฉัน
Mike Adler
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.