Архив: Разработка открытого ПО простое консольное приложение для обработки исходников (четкие требования)
Бюджет
17$
/ 1000
руб
в месяц
Создан: 4 года назад
Закрыт
- Описание
- Разработка открытого ПО простое консольное приложение для обработки исходников (четкие требования)
Необходимо разработать обработчик исходников программу, которая запускается из командной строки и обрабатывает текстовые файлы исходники на языке Typescript, выполняя на них ряд описанных ниже функций.
Чтобы в ЛС, письмах или где-то еще сослаться на это ТЗ рабочее название модуля "CodeBuddy".
Программе на вход передается папка с файлами и маской (пример: d:/my_project/src/**/*.ts),
а также передается json файл с настройками вида:
{
cpl: "none" | "replace" | "error"; // Заменять ли CPL (--cpl=replace)
uuid: "none" | "replace" | "error"; // Заменять ли UUID (--uuid=error)
shared_blocks: {
enabled: boolean; // Обрабатывать ли checked_blocks (--checked_blocks=true)
}
checked_blocks: {
enabled: boolean; // Обрабатывать ли checked_blocks (--checked_blocks=true)
}
boolean;
shared_block_comment: string;
}
Нужно поддержать задание аналогичных опций через ключи командной строки.
Примеры:
--cpl=true
--uuid=true
--shared_blocks=true
--shared_blocks.start="// @SHARED_BLOCK"
и т.д
Функции программы:
- B001 cpl (сокрашение от code-place) замена уникальных кодов местоположения в программе.
- cpl код это код вида CODExxxxxxxx, где "x" цифра от 0 до 9.
- Он может быть в строке или комментарии не важно. Если встретилась такая комбинация считаем ее кодом.
- Нужно обойти все файлы исходников и найти все cpl
- Среди них отобрать не уникальные и cpl=CODE00000000, такие cpl нужно заменить на новые, уникальные CPL
- Для дублированный cpl (не равных CODE00000000) нужно постараться сохранить тот cpl, который был изначально и заменить те cpl которые новые.
B001.01 Как это достигается:
- После замены всех cpl сохраняем все cpl в json файл и/или базу (см. доп требования ниже)
- Для каждого cpl сохраняем:
- Значение cpl
- Позицию cpl в файле
- Путь к файлу
- Имя файла
- Три строки текущую, одну до, одну после, исключая из них все cpl и uuid
- Когда находится несколько одинаковых cpl, пытаемся выбрать из них один, который сохраняется (остальные будут заменены новыми значениями).
Сохраняется первый для которого выполнено одно из условий:
- Совпадает путь к файлу и позиция cpl в файле
- Совпадает имя файла и позиция cpl в файле
- Совпадает имя файла и три строки
- Совпадает три строки
- Любой
- Должны поодерживаться поддерживаться дополнительные режимы
- clear все cpl сбрасываются на CODE00000000
- reset cpl перенумеровываются начиная с 1. CPL в одном файле в этом случае должны идти последовательно. В различных файлах быть различны, но последовательность файлов значения не имеет.
> Зачем cpl нужны:
их удобно использовать в кодах ошибки и в логах. Если ошибка вылезает, по этому коду легко и быстро найти место в исходниках.
Да, можно найти и по stack-trace, НО stack-trace нельзя (да и не стоит даже если было бы можно) изменять, его проблематично сохранить в базу, он большой,
снимать его долго (ощутимо снижает производительность)
А cpl можно передавать из функции в функцию и вернуть именно тот cpl который важен для данной конкретной ошибки, можно сохранить в базу. А еще можно вернуть несколько cpl на одну ошибку.
- B002 uuid (universal unique identifier) код вида hhhhhh-hhhhhhhhhhhh-hhhhhh-hhhhhh. Мoжет быть в любом регистре, важна длина, наличие "-" и то что каждый "h" это 0-9 или от a-f
- Подход аналогичен cpl находим, не уникальные заменяем новыми, уникальными
- Но в отличае cpl, нулевой uuid не заменяется, оставляем его как есть.
- Последовательность вида new000-hhhhhhhhhhhh-hhhhhh-hhhhhh заменяется на новый, уникальный uuid
- Алгоритм сохранения старых uuid аналогичен сохранению cpl.
- B003 shared_blocks найти блоки кода, начинающиеся на shared_blocks.start, заканчивающиеся на shared_blocks.end
- Пример начала блока: // @SHARED_BLOCK {master:true, group:"block424", server:true, a:7} START
- shared_blocks.start и shared_blocks.end могут быть только в начале строки.
- Между префиксом и словом "START" распологается валидный JSON его нужно распарсить, назовем этот JSON Context'ом, он используется ниже.
- Если он не валидный, сообщаем об ошибке и этот файл вообще не обрабатываем
Это начало требований. Полное ТЗ в приложенном файле.
- Категория
Похожие проекты
$500
0
2
Мы ищем fullstack разработчика, который может сделать сайт под ключ. Есть детальное ТЗ, обязатедбное к ознакомлению и наработки по дизайну в виде макета Figma....
1 месяц назад
$120
0
2
Должно быть у исполнителя готовое и грамотно сделанное портфолио....
2 месяца назад
11
1
Нужен сайт по открытию кейсов для игры Standoff 2. Нужен самый обычный дизайн. Личный кабинет, инвентарь, авторизация через ВК. В Админке должна быть возможность создавать/удалять кейсы, редактировать шансы на выпадение какого-либо дропа, количество кейсов, устанавливать цену. В Админке должна быть возможность......
2 месяца назад
0
5
Требуется веб дизайнер для 2х проектов:. Оптимизации существующего сайта (лендинг) по танцевальному фитнесу на wix. com. Создание онлайн магазина био добавок и его оптимизация. Ищем профессионального дизайнера, который готов на долгосрочное сотрудничество....
2 месяца назад
0
2
Нужно сделать сайт просчет оффера. Верстка страницы с Figma....
3 месяца назад
$33
10
1
Мне нужен бот перехватчик для программы ( taxsee driver ) чтобы брать предварительные и текущие заказы. Требования: . 1 бот перехватчик нужен для android. 2 можно писать bоt под моим аккаунтом или другие варианты. 3 функция отключения и включения бота когда он нужен или не нужен. За хорошую работу готов......
2 месяца назад
$22
27
2
76
1
Ищу фрилансера для создания лендингов на Битрикс24. Занятость постоянная, 1 раз в 3 месяца....
3 месяца назад
138
2
Обменник криптовалют ( ТЗ во вложении)....
3 месяца назад
498
6
Необходимо написать небольшую серверную часть учебного сайта для запуска под виртуальной машиной Oracle VM VirtualBox Debian 6. 1 используя php7. 33 и базу MongoDB....
3 месяца назад
134
6
ИЩУ СПЕЦОВ – ВЫСОКОГО УРОВНЯ! 1). Уточните, какое у вас образование. 2). Обязательно предоставьте портфолио - лучшие работы. 3). Условия сотрудничества – по договоренности (сообщите ваши предварительные условия). П. все предложения, которые меня заинтересуют – либо отвечу, либо сохраню контакты в......
3 месяца назад
89
1
Нужно будет делать видео по примеру уже готового видео. Вы подойдете если : имеете базовые-легкие знания в трейдинге,если у вас хороший микрофон, нормальная дикция, и есть программа для снятия экрана на видео. (Себя снимать не нужно,только видео экрана) Чем выше качество тем выше оплата . Оплата за среднее......
3 месяца назад
$111
122
2
Добрый день заинтересовавшимся! У нас сайт на стадии разработки на ОС 3. Создано ТЗ. Необходимо выполнить все пункты в ТЗ. Предварительно 10 000 руб. Поднятие цены можно и обсудить....
3 месяца назад
$1000
286
5
TALP GROUP Мы занимаемся разработкой и продвижением IT- продуктов. В нашем арсенале множество интересных кейсов, большинство из которых реализованы на нашей собственной low/no code платформе Аltrp. Мы работаем как над внутренними проектами, так и с внешними заказчиками. Среди них: разработка швейцарской......
3 месяца назад
174
17
Добрый день. Мне необходимо скопировать действующий сайт с полным функционалом https://gk-grupp....
3 месяца назад
198
12
Ищем специалиста для работы над дизайном агенства недвижимости для англоязычной аудитории....
3 месяца назад
109
2
Меняли хостинг сайта поэтому имена сервера слетели, надо поменять на новые и все....
3 месяца назад
$250
315
16
Разработка продающего лендинга, ТЗ во вложенных файлах....
3 месяца назад
164
6
$7
144
2
Фотографии улыбок до стоматологического лечения и после. Нужно из сопоставит а схожих ракурсах и выровнить цвет , скореекситровать детали....
3 месяца назад
140
1
есть форма приема заявки на тильде, необходимо проверять номер телефона заказчика перед отправкой в работу....
3 месяца назад