สิ่งนี้มีอยู่หรือไม่: วิธีมาตรฐานในการทำเอกสารโครงสร้างระบบไฟล์


11

ที่ทำงานฉันรับผิดชอบในการรักษาองค์กรของข้อมูลที่หลากหลายในระบบไฟล์มาตรฐาน ส่วนหนึ่งเกิดขึ้นจากการจำแนกที่เหมาะสม (โดยความคล้ายคลึงกันความต้องการการเข้าถึงการอ่าน / เขียน ฯลฯ ) แต่ส่วนที่ใหญ่กว่านั้นคือการจัดทำเอกสารจริง: เอกสาร / ไฟล์ / สื่อใดควรไปที่ใดควรไม่อยู่ในไดเรกทอรีนี้ "สำหรับสิ่งที่แตกต่างออกไปเล็กน้อยให้ดู .. /../other-dir" ฯลฯ

ในขณะนี้ฉันได้ทำเอกสารนี้โดยใช้ไฟล์ธรรมดาreadmeในทุก ๆ ไดเรกทอรีที่ฉันต้องการเอกสาร หากมีคนไม่แน่ใจในสิ่งที่ต้องการในไดเรกทอรีใด ๆ พวกเขาจะอ่านไฟล์นั้น

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

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

ฉันคิดว่าความพยายามในการนำมาตรฐานดังกล่าวมาใช้จะได้ผลตอบแทนกลับคืนหลายเท่าตัวจากการใช้งาน เราจะได้พูดปลั๊กอินสำหรับ Nautilus, Konqueror ฯลฯ มันสามารถใช้ในการแสดงข้อมูลไดเรกทอรีในรายการไฟล์มาตรฐานที่ให้บริการโดยเว็บเซิร์ฟเวอร์ และอื่น ๆ

ดังนั้นคำถาม: สิ่งนั้นมีอยู่จริงหรือไม่? ถ้าไม่ทำไมล่ะ คนคิดว่าเป็นความคิดที่คุ้มค่าหรือไม่


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

ดังนั้นในการเพิ่มมาตรฐานให้กับระบบไฟล์ที่ทันสมัยคุณสมบัติทั้งสามนี้ควรมาเป็นค่าเริ่มต้น: 1) คำอธิบายไฟล์, 2) ไฟล์ที่กำหนดเองที่สั่งซื้อภายในโฟลเดอร์และ 3) การติดแท็ก / ฉลากไฟล์ ไม่ควรใช้ CMS เพื่อประโยชน์ของฟีเจอร์ "พื้นฐาน" 3 ประการเหล่านี้
โซริน Postelnicu

คำตอบ:


5

เท่าที่ฉันรู้ว่าไม่มีมาตรฐาน นี่คือแนวคิดบางส่วนจากประสบการณ์ของฉัน

ตั้งค่าไม่เคยเปลี่ยน

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

ใช้ชื่อไดเรกทอรีที่สื่อความหมายและสอดคล้องกัน

ไม่มีใครมีเวลาอ่าน.filingไฟล์หรือสิ่งอื่นใด หากชื่อไดเรกทอรีของคุณไม่ได้อธิบายตัวเองคุณอาจจะสูญเสีย

เขียนเอกสารสำหรับโครงสร้างไดเรกทอรีของคุณ

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


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

สิ่งนั้นมีอยู่จริงหรือไม่?

ไม่ฉันไม่คิดอย่างนั้น

ถ้าไม่ทำไมล่ะ

ในความคิดของฉัน: สำหรับลำดับชั้นแบบคงที่ขนาดเล็กที่มีผู้ใช้ไม่กี่คนมันเกินความจริง สำหรับลำดับชั้นการเปลี่ยนแปลงขนาดใหญ่ที่มีผู้ใช้หลายคนมันจะไม่ทำงานเพราะความคิดของหมวดหมู่ (= ไดเรกทอรี, โฟลเดอร์) ไม่ได้ปรับขนาด

คนคิดว่าเป็นความคิดที่คุ้มค่าหรือไม่

หืมมันเป็นความคิดที่น่าสนใจ เพื่อดูว่าผู้คนจะใช้มันหรือไม่ แทนที่จะเป็น.filingไฟล์คุณสามารถเก็บข้อมูลนั้นไว้ในสตรีมข้อมูลสำรอง (ใช่โฟลเดอร์ก็มีโฆษณาด้วย) คุณสามารถใช้คุณสมบัติเพิ่มเติมบน Linux และ OSX ปัญหาที่ใหญ่ที่สุดอาจจะแก้ไขไฟล์เบราว์เซอร์


1
"ไม่มีอะไรเลวร้ายยิ่งไปกว่าโครงสร้างระบบไฟล์ที่เปลี่ยนแปลง" ยกเว้นสิ่งที่เด็ดเดี่ยวปฏิเสธที่จะเปลี่ยนแปลงแม้ว่าโครงสร้างจะไม่เหมาะสมอีกต่อไป
jameshfisher

1
"ใช้ชื่อไดเรกทอรีที่สื่อความหมายและสอดคล้องกัน" - จำเป็นอย่างยิ่งใช่ น่าเสียดายที่มีความขัดแย้งระหว่างคำอธิบายและความกะทัดรัด - ไม่มีใครต้องการพิมพ์เส้นทางไปยังไฟล์ใน / srv / all-hierarchical-data / access-access-only-by-office-and-admin / ตัวอักษร แต่ไม่สาธารณะ -notices / Academic-year-of-2009 / ... และอื่น ๆ
jameshfisher

"เขียนเอกสารสำหรับโครงสร้างไดเรกทอรีของคุณ" - เป็นแนวคิดที่ยอดเยี่ยม มันเป็นสิ่งที่ฉันแนะนำ แค่ว่าเอกสารนั้นจะถูกแจกจ่ายมากกว่าเสาหิน
jameshfisher

"ความคิดของหมวดหมู่ (= ไดเรกทอรี, โฟลเดอร์) ไม่ได้ปรับขนาด" - true-ish ยกเว้นบางครั้งก็ต้อง สมมติว่าต้นไม้ต้นกำเนิดซอฟต์แวร์ขนาดใหญ่ ( git.kernel.org/?p=linux/kernel/git/next/linux-next.git;a=tree )
jameshfisher

"แทนที่จะเป็น.filingไฟล์คุณสามารถเก็บข้อมูลนั้นในสตรีมข้อมูลสำรอง (ใช่โฟลเดอร์ก็มีโฆษณาด้วย) คุณสามารถใช้แอททริบิวต์เพิ่มเติมบน Linux และ OSX" เป็นไปได้ฉันจินตนาการ แต่ลดการพกพาและความโปร่งใสที่ฉันคิดว่าสำคัญมาก ถ้าฉันต้องการที่จะวางทุกอย่างใน repo คอมไพล์? ไฟล์ Plaintext ใช้สำหรับการกำหนดค่าไดเรกทอรีเฉพาะ (เช่น htaccess) ดังนั้นทำไมไม่จัดทำเอกสารด้วย?
jameshfisher

2

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

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


1

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

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

คุณไม่ได้ระบุระบบปฏิบัติการของคุณ แต่มีผลิตภัณฑ์ที่ยอดเยี่ยม (และฟรี) เช่นalfrescoที่อาจให้บริการคุณได้ดีกว่าการตั้งค่าปัจจุบันของคุณ


ฉันเคยขลุกกับ CMSes ต่าง ๆ แต่พบว่าการพกพาความเรียบง่ายและความโปร่งใสเป็นค่าใช้จ่ายจำนวนมากเมื่อเปรียบเทียบกับ CMS ที่น่าเชื่อถือที่สุดในนั้น: โครงสร้างไดเรกทอรี ข้อมูลส่วนใหญ่ที่ฉันต้องจัดการสามารถจัดลำดับชั้นได้ ในฐานะที่เป็นทางเลือกสุดท้ายมีการเชื่อมโยง และโครงสร้างไดเรกทอรีเป็นเพียงวิธีแก้ปัญหาเท่านั้น: เช่นในการพัฒนาซอฟต์แวร์ซอร์สโค้ดคือที่ฐานทรีไดเรกทอรี (การจัดทำเอกสารไดเรกทอรีเช่นนั้นโดยทั่วไปหมายถึงการยึดติดกับ schema ที่เข้มงวดและลึกลับซึ่งในที่สุดก็พังลงมาฉันคิดว่าโซลูชันของฉันสามารถช่วยได้ที่นี่เช่นกัน)
jameshfisher

อย่างที่ฉันพูดความคิดของคุณมีข้อดี แต่ฉันคิดว่าเช่นเดียวกับผู้เขียนโปสเตอร์อื่น ๆ ว่าสิ่งนี้ไม่สามารถขยายเกินระดับที่กำหนด คุณพูดถึงซอร์สโค้ด แต่นี่เป็นกรณีพิเศษมาก - และเมื่อคุณเพิ่มโค้ดคุณไม่ได้มองเข้าไปในไดเรกทอรีที่มีอยู่เพื่อค้นหาตำแหน่งที่ควร "พอดี" CMS มักจะให้ความสามารถในการแท็กสิ่งต่าง ๆ เพื่อให้คุณมี "ไดเรกทอรี" (โฟลเดอร์ช่องว่างหน้า) ที่ทำงานเหมือนกับโซลูชันของคุณพร้อมกับระบบติดแท็กช่วยให้ผู้คนสามารถค้นหาสิ่งต่าง ๆ ได้โดยไม่ต้องค้นหาไดเรกทอรี "ขวา" นี่คือความยืดหยุ่นมากกว่า symlink และมีแนวโน้มที่จะเกิดข้อผิดพลาดน้อยกว่า IMHO
p.marino

1

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

สคริปต์ทำหน้าที่เป็นระบบการจัดการไฟล์ระบบสนับสนุนการตัดสินใจและเอกสารประกอบการใช้งานของลำดับชั้นของระบบไฟล์ ลำดับขั้นของมาตรฐานระบบไฟล์ลินุกซ์นั้นเป็นตำนานถ้าคุณคิดเกี่ยวกับมันเพราะมีความแตกต่างระหว่าง distros มาก อย่างไรก็ตามผู้ใช้ Linux / Unix ส่วนใหญ่ไม่จำเป็นต้องเรียนรู้เกี่ยวกับลำดับชั้นของระบบไฟล์ด้วยตัวเองเพราะซอฟต์แวร์ต่าง ๆ ที่ติดตั้งในระบบนั้นมีอยู่ที่จัดการลำดับชั้นด้วยวิธีมาตรฐาน (ผู้จัดการแพ็คเกจเครื่องมือกำหนดค่า ฯลฯ ) เฟรมเวิร์กแอปพลิเคชันต่างๆยังสร้างสคริปต์เพื่อจัดการไดเรกทอรีเช่น django มีคำสั่งการจัดการเพื่อสร้างโครงการใหม่หรือโมดูลแอปใหม่หรือไฟล์การย้ายสควอช ฯลฯ

สิ่งนี้มีข้อได้เปรียบเพิ่มเติมที่สคริปต์สามารถสร้าง symlink ต่าง ๆ ได้หากต้องการค้นหาไฟล์มากกว่าหนึ่งวิธีเช่นดัชนีโดยยึดตามผู้สร้างไฟล์หรือวันที่สร้างหรือกฎทางธุรกิจที่คุณมี คุณสามารถจำลองการติดแท็กด้วย symlink แท็กคือเรียบง่าย symlink จากtagsไดเรกทอรีดังนั้นtags/mytag/myfileอาจจะ symlink actual/myfileไป

นอกจากนี้ยังเป็นไปได้ที่จะเปลี่ยนโครงสร้างลำดับชั้นของระบบไฟล์โดยไม่ต้องเปลี่ยนส่วนต่อประสานผู้ใช้

ระบบไฟล์เป็นฐานข้อมูล ไม่ใช่ฐานข้อมูลเชิงสัมพันธ์ แต่เป็นฐานข้อมูลแบบลำดับชั้น คิดเกี่ยวกับมันเช่นการจัดการฐานข้อมูลคุณไม่ต้องการให้คนต้องเรียนรู้โครงสร้างเชิงสัมพันธ์ แต่คุณต้องการให้แอปพลิเคชันแสดงต่อผู้ใช้เป็นงานต่าง ๆ ที่พวกเขาต้องทำ (เช่นคุณกำลังทำรายเดือน รายงาน XYZ ยอดเยี่ยมจากนั้นใส่ไว้ในโฟลเดอร์นี้และสร้าง symlink นี้จากนั้นคุณจะต้องแก้ไขไฟล์อื่นเพื่อบันทึกว่าคุณได้ทำรายงานสำหรับเดือนนี้ ฯลฯ )

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