ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Понедельник
20 мая
95706
Evgeny_CD (28.07.2007 16:59, просмотров: 11179)
Глобальное хранилице фирмы - наконец-то мне стало понятно, как оно должно быть устроено. Нет, все-таки файловую систему в унихе не лохи делали. Это точно. Есть проект. И есть люди, которые с ним работают. Им надо: * код проекта * код стандартных вещей (либы, ОСи) * доку на чипы * все, что касается печаток, конструкции и пр. Основная проблема упорядочивавия любой информации - как совместить многомерное упорядочивание в интуитивно понятной иерархической древовидной системе и отсутствие дублирования информации. Например, есть код. Но это могут быть универсальные либы, могут быть какие-то специфичные для проекта куски кода. И что, в каждый проект копировать дир с либой? А если в либе баг нашелся? Будет 10 вариантов по разному пропатченной либы? Есть куча информации по компонентам. Что, доку на MCF5213 копировать в каждый проект? В руте :) есть ветка кода. Основной элемент - директория, в которой содержатся файлы, связанные какой - либо логикой. Диры выстроены в иерархическую систему. В ней живет все. Все оси, которые использутся | могут быть использованы, все либы, когда-либо кому-либо встретившиеся и пр. Куски кода из конф и пр. Эдакая глобальная куча. Есть система поиска. Которая базируется на описаниях (их, как водится будет мало - ибо лень) и индексере. Есть аналогичная структура по компонетам. А есть структура по проектам. Куда подцеплены через линки нужные цепочки из кода, доки на чипы и пр. Ну и есть свои собстенные уникальные диры - типа user guide и пр. Есть режим работы этой информацией. Т.е. программер видит одно, разводчик платы - другое и пр. Разумеется, каждый пользователь может добавить / отсечь лишнее. Где-то могут быть ограничения на доступ, где-то нет. Есть SVN, который присматривает за всем этим хозяйством. Есть независимая тулза на основе MD5, которая отслеживает все изменения в структуре. Есть визуализатор всей этой охрененной системы. Т.е. хреновина, которая ходит по структуре диров, отслеживает "реальные" и "виртуальные" диры, и рисует граф. Есть учебник, как этим пользоваться. Ибо такая система, мягко говоря, сильно отличается от привычной пЫсюковой файловой системы. Ну и админ ко всему этому, по хорошему нужен. Хотя бы удаленный. Есть система бекапа, за которою можно отдать любые деньги. Ибо если такое информационное богатство накроется, то фирма может расходиться по домам - она явно не переживет такой дизастер. Если вирь доберется до такой многосвязной системы - все, кранты, потом ручками упаришься восстанавливать. Понятно, что такая информационная система должна жить на отдельной машине. И почти наверняка такая система должна быть юниховой. А юзера живут под чем угодно - винды, линуха - это пофиг. На одной машине - пусть две системы живут отдельно, viva la VmWare (и 4-х ядерному процу с 4Г памяти будет чем заняться)! Ибо даже самый злобный вирь, зашедший через юзер интерфейс, ничего против SVN поделать не сможет :) Получили обычный уних :)) Зато, после настройки моска, можно кардинально повысить свою эффективность. Например, набрел на нечто в интере. Смотришь поиском - а оно уже у нас есть или как? Втаскиваешь, если его нет (или ты нашел нечто новое по этой же теме). Пишешь описание на пару строк. Есть некий скрипт, который ходит по дирам и ищет те, которые не отклассифицированы. Т.е. нет описания, что это такое. Фильтруем такие диры и описываем их. Дрочим юзеров, создавших такие диры - ибо они знаю, что это за хрень. Вот это уже настоящая групповая работа получится - а не просто файлики на сервак копировать :) Вау, как все просто получается то! Я долго думал, как бы создать такую систему, даже какие-то прототипы на perl написал (мой персональный информационный массив - 300G - книги, софты, код. Я устал держать индекс от него в голове.) От серьезных работ в этом направлении меня удерживало только отсутстве понимания, как оно должно быть устроено. Книги по униху читал - но не мог понять, как оно работает. А тут бах - прозрение наступило :) "Все украдено до нас". И нету нахрен никакого спора Win|Lin. Похрену! Информация должна жить отдельно. Юзеровское представление - да под чем хочешь, под тем и работай. Тема закрыта. Также понятно, что такая информационная система может жить только на открытой платформе и только в "консольном" режиме. А винды, маки, кстати, ГУИ в юнихе тоже - это так, "оболочка дешевая, мышами от нее попахивает". Также становятся понятны требования к внутреннему стандарту кодинга. Количество пробелов в tab - это круто, но важнее другое. Каждый програмный модуль должен быть самодостаточен. В нем должно быть все для сборки любым С компилером под любую платформу. Все инвариантные и все зависимые от внешних параметров сущности должны быть четко выделены!