Сообщения

Сообщения за май, 2021

Контракт Теория

  Контракт   - это формальная, точная и верифицируемая спецификация интерфейсов компонентов системы. При этом, кроме обычного определения абстрактных типов данных, также используются предусловия, постусловия и инварианты. Свойства контракта Контракт появляется на этапе проектирования системы и может рассматриваться как договоренность между разработчиками Контракт должен быть однозначным (не допускающим неоднозначного толкования) Назначение С помощью контрактов мы можем проводить границы между логически обособленными компонентами приложения Обязывают разработчиков придерживаться договоренностей, что повышает стабильность системы при рефакторинге. Упрощают масштабирование приложения Позволяют распараллелить процесс разработки и затем бесконфликтно соединить независимые компоненты Этапы проектирования Определение онтологии (описание сущностей) Описание бизнес-логики, выделение компонентов (сервисов) системы на основе требований бизнеса Описание контрактов компонентов Реализация л...

Обновить файлы в релизной папке

Задача: обновить файлы в релизной папке. Допустим, у меня есть рабочая папка с репозиторием   c:\PKM74 dev 76   Надо взять файлы изменённые в конкретном коммите и перенести в папку   c:\PKM74 Если надо получить список измененных файлов: git diff-tree --no-commit-id --name-only -r <commit-ish> Что бы получить список всех файлов в коммите: git ls-tree --name-only -r <commit-ish> Или что бы получить список файлов между коммитами git diff --name-only <start-commit-ish>..<end-commit-ish> Я использую в качестве консоли ConEmu. В последнем варианте что бы выйти из просмотра логов   git log : Ввести   Q   и нажать   Enter Копируем из консоли список путей и сохраняем в файл. Создаём батник @echo off set sourcedir=c:\PKM74_dev_76 set destdir=c:\PKM74 for /F "tokens=1*" %%i in (c:\PKM74_dev_76\Tools\c2d025b.txt) do ( echo F | xcopy "%sourcedir%\%%i" "%destdir%\%%i" /y /q /f ) Дальше запускаем и файлы копируются. Возможно, что правильнее ...

ASCIIDOCTOR и Windows 7 установка

Для установки Asciidoctor под Windows нужно использовать Chocolatey или Rubyinstaller .  Если бы я уже использовал шоколад в своей машине, то можно было просто набрть:   C:\> choco install ruby  Вообщем ставим Chocolatey, а что бы установить нужен PowerShell 5.1+ Допустим установили, перегрузили комп теперь: Вырубаем антивирус Запускаем PowerShell под админом Вводим строку PS C:\> Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePoin tManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1')) В процессе установки будет много букв ... Forcing web requests to allow TLS v1.2 (Required for requests to Chocolatey.org)                                                         ...