โฟลเดอร์ 'ความกังวล' แบบสุ่มและไฟล์ '.keep'


87

ฉันกำลังเรียนรู้เรื่องราง

ฉันสังเกตเห็นว่าโฟลเดอร์และไฟล์แบบสุ่มปรากฏอยู่ในไดเรกทอรีของแอปราง ในบางโฟลเดอร์จะมีconcernsโฟลเดอร์ที่มี.keepไฟล์อยู่ภายใน .keepไฟล์ที่ดูเหมือนจะเป็นที่ว่างเปล่า ในโฟลเดอร์อื่นไม่มีconcernsโฟลเดอร์ แต่มี.keepไฟล์ว่างอยู่

มีใครรู้บ้างว่าการจัดการไฟล์ / โฟลเดอร์เหล่านี้คืออะไร?

คำตอบ:


132

.keepไฟล์คือไฟล์ 0 ไบต์ที่มีไว้เพื่อหยุดโฟลเดอร์ว่างจากการถูกละเว้นโดยกระบวนการทุกประเภท ไม่มีอะไรต้องกังวล.


2
ดีมากขอบคุณ! ฉันควรจะทิ้งมันไปไหม ฉันจะลบมันถ้าไม่จำเป็น
Alex Vallejo

5
ใช่คุณควรให้พวกเขาอยู่ใกล้ ๆ เพื่อให้พวกเขาอยู่ที่นั่นเมื่อคุณต้องการ นอกจากนี้ยังตรวจสอบให้แน่ใจว่าระบบควบคุมเวอร์ชันของคุณสังเกตเห็นโฟลเดอร์ต่างๆ
Josh

ฉันควรใส่ไว้ในของฉัน.gitignoreหรือไม่? ฉันไม่ต้องการส่งไฟล์เปล่า ๆ
tbodt

7
@tbodt ฉันจะยอมรับพวกเขา ไม่แน่ใจว่าจะเกิดอะไรขึ้นถ้ามีคนอื่นมาโคลนโค้ดเบสของคุณ
DickieBoy

33

ไฟล์ .keep มีประโยชน์อย่างยิ่งเมื่อคุณต้องการคอมมิตไดเร็กทอรีว่างด้วยคอมไพล์

สนุกจริงชื่อ.keepหรือ.gitkeepไม่มีความหมาย คุณสามารถเรียกใช้ไฟล์.fooเพื่อให้ได้เอฟเฟกต์เดียวกันมันเป็นเพียงรูปแบบที่อ่านได้

.keepไฟล์นอกจากนี้ยังมีการให้ความช่วยเหลือการขนส่งจากที่หนึ่งไปยังอีก VCS ป้องกันการลบไดเรกทอรีที่สำคัญเมื่อคุณสิ่งที่ยกเลิกการผสานที่จะทำให้เกิดไดเรกทอรีที่จะว่างเปล่า

ตัวอย่างเช่นพิจารณาสคริปต์ที่พยายามcd dirเข้าไปในไดเร็กทอรีที่ git ไม่ได้ติดตาม

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


6

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

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

 class Services::GenerateCsv
     def self.get_users org
         #add logic the fetch users for the org and generate the CSV and return the CSV data
     end
 end

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

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

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