Pull to refresh

Логирование и откат правок

Oracle *

В некотором царстве-государстве жил-был грозный царь. И было у царя множество бояр, что день-деньской отчеты готовили: сколько войск на службе, да велика ли казна царская, уродилась ли пшеница в году этом, да много ли коровы дают молока.

Захотелось царю, чтоб в отчетах супротив каждой циферки имя боярина отражалось, ее посчитавшего. Да приказал плотникам механизмус построить по чертежам заморским, чтоб если кто из бояр ошибется – того на дыбу, а циферки его лживые взад вернуть.

Повертели в руках плотники чертежи, что Oracle Flashback зовутся, да засомневались. Неужто рычажок UNDO_RETENTION, по-умолчанию в 3 минуты установленный, можно без последствий до года докрутить, ничего не потерять и не утонуть в гигабайтах лишних данных. Решили свой механизмус собрать.

Сказки кончились, дальше суровая реализация механизмуса.
Читать дальше →
Total votes 22: ↑13 and ↓9 +4
Views 6.7K
Comments 11

Неожиданная необходимость в версионности данных

Website development *
Sandbox
Когда на проекте ближе к концу разработки становится понятно, что без версионности данных не обойтись, ведь любой пользователь может зайти и удалить то, что создавалось на протяжении долгого времени десятками других людей, приходится искать решение, требующее минимальных трудозатрат. Не вникая в подробности конкретного проекта, на котором появилась такая необходимость, представим себе google docs spreadsheets документ доступный для редактирования любому посетителю сайта.

Читать дальше →
Total votes 19: ↑11 and ↓8 +3
Views 4.7K
Comments 27

Версионность API в .NET MVC 4

Website development *.NET *ASP *
Sandbox
Tutorial
Доброго времени суток.

С появлением ASP.NET Web API появился удобный и мощный инструмент для создания API для вашего сайта. Но, как известно, с течением времени, ваш API может меняться, дополняться или может быть вовсе переделан с нуля. Для совместимости со старыми клиентами необходимо реализовать версионность.

К сожалению, на данный момент Microsoft не предоставила удобного и простого способа для реализации версионности. В интернете можно найти некоторую информацию на эту тему, но, как правило, большинство найденных мной решений сводятся к добавлению параметра для версии в каждый запрос и его обработке. Мне же хотелось получить более гибкий метод для разделения на версии, который не будет засорять методы контроллера и избавит от множества блоков if else. И самым главным критерием для меня была возможность иметь контроллеры с одинаковыми именами для одних и тех же методов API, но разделенных на версии с помощью пространств имен.

В тоже время, в ASP.NET MVC Web API есть достаточно мощный механизм в виде интерфейса IHttpControllerSelector, с помощью которого можно реализовать версионность, оставив код чистым и понятным.

Давайте посмотрим, что из этого вышло.
Читать дальше →
Total votes 17: ↑15 and ↓2 +13
Views 9.6K
Comments 3

Версионность, уведомления, входящие сообщения и папки в Microsoft SharePoint 2013

EPAM corporate blog SharePoint *
Recovery mode
В данной статье я расскажу о полезных, на мой взгляд, функциях версионности, уведомлениях, входящих e-mail сообщениях и папках в Microsoft SharePoint 2013, которые не требуют дополнительной разработки, но могут эффективно помочь в вашей работе. Попутно я остановлюсь на принципах работы с Microsoft SharePoint 2013 и связанным функционалом. На идею для этой статьи меня натолкнуло общение с моими друзьями которые используют Microsoft SharePoint в своей работе, довольно, давно, но применяют лишь небольшую часть от его возможностей. Я попытаюсь это изменить.
Читать дальше
Total votes 15: ↑6 and ↓9 -3
Views 6K
Comments 2

Пора перестать сохранять

Interfaces *Usability *

Немного лирики


Как-то раз, примерно полгода назад, при переезде с одной квартиры на другую в одной из бесконечных коробок обнаружился архив аудиокассет — штук 30. Этот набор долёживал там свой век, хотя последний магнитофон, способный проигрывать кассеты, сломался года за три до этого.
Моя 9-летняя дочь, наткнувшись на эту коробку, взяла одну из этих кассет в руки, повертела и спросила: «Папа, а что это?».
Конечно, если задуматься, в этом нет ничего удивительного. Новое поколение, рожденное после 2000, уже не видело ни кассет, ни дискет.



И что-то мне подсказывает, что поколение, родившееся после 2020, не увидит уже и компакт дисков — все планомерно уходит на всевозможные флешки и карты памяти, а в перспективе и обмен, и хранение (благодаря «облакам»), и ритейл софта/фильмов/музыки (благодаря Стиву Джобсу) уйдут в «онлайн». Я и сам больше уже не записываю полюбившиеся фильмы на болванки.
И что с того?
Total votes 82: ↑63 and ↓19 +44
Views 44K
Comments 56

Микросервисы. Версионность в системах непрерывной интеграции и развертывания CI/CD на примере использования TFS

Microservices *

Проблематика


Для больших и технически сложных проектов, над которыми как правило одновременно работают много распределенных команд, существует известная проблема версионности разрабатываемого ПО, которую разные компании решают по-разному.
Читать дальше →
Total votes 12: ↑12 and ↓0 +12
Views 6.8K
Comments 4

Версионность веб-приложений

Website development *JavaScript *Git *
Tutorial

Общеизвестно, что каждый программный продукт в конечном итоге обретает номер поставляемой версии. Изначально это может быть цифра в README файле, на борде в JIRA либо просто в голове у тимлида или ПМа. Но в какой-то момент становится понятно, что нужно формализовать процесс назначения версии релизу, отобразить номер в приложении, интегрировать версионность в CI, аналитику и другие места. 

С появлением технологии PWA, версионность в вебе обрела еще больший смысл, ведь теперь самая последняя версия приложения доступна пользователю не в момент загрузки страницы, а только через определенное время после обновления файлов в фоновом режиме. Поэтому важно следить за номерами версий у пользователей, чтобы знать в какой из них возникла проблема и сколько обновилось до последней.

Ниже рассмотрим способы добавления версионности веб-проекту, используя готовые решения, и напишем свой универсальный скрипт, удовлетворяющий всем требованиям.

Читать далее
Total votes 9: ↑9 and ↓0 +9
Views 16K
Comments 13

Продвинутые функции гита, о которых вы, возможно, не знали

SkillFactory corporate blog Programming *Git *GitHub *Lifehacks for geeks
Translation
Tutorial

Git – очень мощный инструмент, который практически каждый разработчик должен использовать ежедневно, но для большинства из нас git сводится к нескольким командам: pull commit push. Однако, чтобы быть эффективным, продуктивным и обладать всей мощью git, необходимо знать ещё несколько команд и трюков. Итак, в этой статье мы исследуем функции git, которые просто запомнить, применять и настроить, но которые могут сделать ваше время с git гораздо более приятным.

Кладите этот пост в закладки, если хотите быстро научить новичка (или просто неосведомлённого человека) умело пользоваться git.

Приятного чтения!
Total votes 20: ↑15 and ↓5 +10
Views 16K
Comments 17

Дизайн-система IVI. Взгляд изнутри. Часть 1

Онлайн-кинотеатр IVI corporate blog IT Infrastructure *Mobile applications design *Design

Дизайн-система в нашей компании существует с 2018 года. По поводу неё уже была статья от дизайнеров и выступление от техдиректора. Самое время рассказать, как ситуация выглядит изнутри самой дизайн-системы.

По мере написания стало понятно: материала слишком много, чтобы уложить его в одну статью. Поэтому чуть позже мы опубликуем вторую часть.

В первой же части статьи речь пойдёт о том, как и почему у нас появилась дизайн-система; как она устроена и что в ней хранится; как клиентские приложения IVI получают и обрабатывают данные из дизайн-системы; как мы добавляем в ДС новые сущности и как избавляемся от устаревших.

Читать далее
Total votes 21: ↑21 and ↓0 +21
Views 4.8K
Comments 0

Автоматическое управление номером версии c помощью Azure DevOps

.NET *Git *Microsoft Azure *GitHub *DevOps *
Sandbox

В этой статье я расскажу, как мы организовали последовательное автоматическое увеличение номера версии приложения при выполнении коммита в ветку main с помощью Azure DevOps Pipeline.

Мы делаем этого для того, чтобы все пользователи и разработчики могли видеть, какая именно версия продукта развернута в той или иной среде.

Читать далее
Total votes 1: ↑1 and ↓0 +1
Views 2.2K
Comments 6

Как Windows 11 уменьшила размер кумулятивных обновлений на 40%

GlobalSign corporate blog Information Security *Algorithms *Data compression *Development for Windows *
Translation


Раз в месяц Microsoft выпускает кумулятивное обновление Windows, которое включают в себя все предыдущие. То есть для приведения системы в актуальное состояние требуется установка единственного апдейта.

Учитывая огромное количество исправлений в Windows, кумулятивное обновление без оптимизации может сильно вырасти в размере, что неприемлемо. Например, его не смогут скачать пользователи с медленным подключением к интернету, а только в США таких 20%. Поэтому уменьшение размера обновлений — приоритетная задача. Теперь для неё нашлось решение.

Если вкратце, то раньше каждое обновление включало в себя прямую дельту изменений системы, а также обратную дельту для приведения системы к базовой RTM, чтобы установить новую прямую дельту через месяц. Однако выяснилось, что обратную дельту можно вычислить в процессе установки обновления. Теперь Microsoft намерена запатентовать этот алгоритм.
Читать дальше →
Total votes 25: ↑24 and ↓1 +23
Views 15K
Comments 58