Isso existe: uma maneira padronizada de documentar uma estrutura de sistema de arquivos

9

No trabalho, sou responsável por manter a organização de vários dados variados em um sistema de arquivos padrão. Parte disso está chegando com uma classificação sensata (por similaridade, necessidade, acesso de leitura / gravação, etc), mas a maior parte é documentá-lo: que documentos / arquivos / mídia devem ir aonde, o que não deveria estar nesse diretório, "para algo um pouco diferente, veja ../../other-dir", etc.

No momento, eu documentei isso usando um arquivo de texto simples readme em todos os diretórios que eu quero documentar. Se alguém não tiver certeza do que deve estar em qualquer diretório, ele lê esse arquivo.

Isso funciona bem, mas parece estranho que eu tenha essa solução personalizada primitiva para um problema que qualquer mantenedor de uma estrutura de diretório não-trivial deve experimentar. Toda empresa que eu conheço, por exemplo, tem algum tipo de sistema de arquivos compartilhado onde a terminologia acordada para categorização é importante. Na minha experiência, as pessoas só precisam aprender o que é por tentativa e erro e experimentação.

Então, permita-me propor uma solução melhor, e esperamos que você possa me dizer se ela existe. Qualquer diretório em qualquer sistema de arquivos pode ter um arquivo de texto simples oculto chamado .readme . Seu conteúdo é linguagem humana descritiva. Ele usa alguma marcação como Markdown, com pouco mais que negrito, itálico e hiperlinks (relativos) para outros diretórios. Agora, um navegador de arquivos habilitado adequadamente procurará um arquivo chamado .readme sempre que exibir um diretório. Se existir, seu conteúdo será analisado e exibido em um painel não obstrutivo próximo ao widget do caminho do diretório. Todos os links podem ser clicados e o usuário será levado para o diretório de destino desse link.

Eu acho que o esforço de implementar tal padrão iria retribuir muitas vezes em ganhos de usabilidade. Teríamos, digamos, plugins para Nautilus, Konqueror, etc. Poderia ser usado para exibir informações de diretório nas listas de arquivos padrão servidas por servidores da web. E assim por diante.

Então, pergunta: existe tal coisa? Se não, por que não? As pessoas acham que é uma ideia que vale a pena?

    
por jameshfisher 14.05.2010 / 13:06

4 respostas

4

Tanto quanto sei, não há padrão. Aqui estão algumas idéias da minha experiência.

Configurar, nunca alterá-lo

Isso é onde a maioria das empresas falha. Nada é pior do que um sistema de arquivos em constante mudança estrutura. Se não for possível mantê-lo constante, um sistema de arquivos puro é o contêiner errado para organizar suas informações. Use um banco de dados ou um sistema de gerenciamento de conteúdo.

Use nomes de diretórios descritivos e consistentes

Ninguém tem tempo para ler um arquivo .filing ou qualquer outra coisa. Se os seus nomes de diretório não são auto-explicativos, você provavelmente está perdido de qualquer maneira.

Escreva uma documentação para sua estrutura de diretórios

Escreva um documento onde você explica o papel de cada diretório. Dê muitos exemplos. Disponibilize para qualquer pessoa que tenha que trabalhar com sua estrutura, mas não acredite que alguém a leia. Deveria ser mais como uma Bíblia para você. Não é fácil encontrar um exemplo para esse documento, porque obviamente as empresas não as publicam. Um exemplo de software de código aberto é o Padrão de Hierarquia do Sistema de Arquivos .

Se isso soa um pouco negativo, é. Eu nunca vi um repositório não trivial baseado em um sistema de arquivos com mais de cinco usuários trabalhando a longo prazo na prática. O problema é que quaisquer que sejam as categorias que você irá configurar, as pessoas terão idéias completamente diferentes sobre eles. Então, para finalmente responder suas perguntas:

Existe tal coisa?

Não, acho que não.

Se não, por que não?

Na minha opinião: para uma pequena hierarquia estática com alguns usuários, é um exagero.   Para uma grande hierarquia de mudanças com muitos usuários, não funcionará   porque a ideia de categorias (= diretórios, pasta) não   escala.

As pessoas acham que vale a pena?

Hm, é uma ideia interessante. Para ver se as pessoas vão usá-lo, alguém tem que implementá-lo. Em vez de um arquivo .filing , você poderia armazenar essa informação em um fluxo de dados alternativo (sim, as pastas podem ter ADS também). Você pode usar atributos estendidos no Linux e no OSX. O maior problema provavelmente seria corrigir os navegadores de arquivos.

    
por 14.05.2010 / 14:02
1

Sua ideia tem algum mérito, mas temo que, quando você precisa de algo assim, isso realmente signifique que você precisa de algo mais estruturado. Ou seja um CMS, talvez apenas um leve, mas definitivamente algo mais do que apenas um arquivo textual.

Especialmente se você quiser restringir a escrita (ou até mesmo acessar) documentos específicos (e, portanto, suas pastas contendo) a algum subconjunto de sua base de usuários.

Você não especifica o seu SO, mas existem excelentes (e gratuitos) produtos como ao ar livre que talvez possa lhe servir melhor do que sua configuração atual.

    
por 14.05.2010 / 13:37
1

Aqui está uma ideia. Escreva um script que faça várias perguntas ao usuário sobre o arquivo e / ou faça alguma correspondência no próprio conteúdo do arquivo e, em seguida, recomende o local para colocar o arquivo ou colocá-lo nele. O script pode ser tão simples ou complexo quanto você quiser.

O script atua como um sistema de gerenciamento de arquivos, sistema de suporte à decisão e uma documentação viva da hierarquia do sistema de arquivos. O Padrão de Hierarquia do Sistema de Arquivos do Linux é um mito se você pensar sobre isso, porque há uma variação muito grande entre distros. No entanto, a maioria dos usuários Linux / Unix não precisa aprender sobre a hierarquia do sistema de arquivos porque existem vários softwares instalados no sistema que gerenciam a hierarquia de forma padronizada (gerenciador de pacotes, ferramenta de configuração, etc). Várias estruturas de aplicativos também criam scripts para gerenciar seus diretórios, por exemplo, O django tem comandos de gerenciamento para criar novo projeto, ou novo módulo de aplicativo, ou arquivos de migração de squash, etc.

Isso tem a vantagem adicional de que o script pode criar vários links simbólicos se o arquivo precisar ser pesquisado de mais de uma maneira, por exemplo, um índice baseado no autor do arquivo ou na data de criação ou qualquer regra comercial que você tenha. Você pode simular a marcação com links simbólicos. Uma tag é um link simbólico simples de um diretório tags , portanto, tags/mytag/myfile pode ser um link simbólico para actual/myfile .

Além disso, também será possível alterar a estrutura da hierarquia do sistema de arquivos sem alterar a interface do usuário.

Um sistema de arquivos é um banco de dados. Não é um banco de dados relacional, mas um banco de dados hierárquico. Pense nisso como gerenciar um banco de dados, você não quer realmente exigir que as pessoas tenham que aprender a estrutura relacional, mas sim que você queira que o aplicativo apresente ao usuário várias tarefas que ele precisa fazer (ex. XYZ relatório, ótimo, em seguida, colocá-lo nesta pasta, e criar este link simbólico e, em seguida, você precisará modificar outro arquivo para registrar que você fez o relatório para este mês, etc).

    
por 06.12.2014 / 02:01
1

wasabi vale a pena. Na raiz do seu projeto, a fonte de texto simples servirá como uma visão geral sólida do projeto e você poderá jogue o mesmo documento em um navegador para obter resultados mais extravagantes.

Com certeza, não é uma solução baseada em sistema de arquivos, mas até que todos os sistemas de arquivos suportem algo comum, wasabi (ou sua própria implementação) pode ser a melhor opção.

    
por 05.08.2015 / 07:49