Здравствуйте, v6, Вы писали:
v6>А здесь — возможны непонятки (Not Null) Or Empty VS Not (Null Or Empty) v6>Мне кажется, более однозначно будет NotNullNotEmpty
Тогда уж NotNullNorEmpty или NeitherNullNorEmpty.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
Здравствуйте, AndrewVK, Вы писали:
AVK>Ну и, наверное, где то есть соответствующая настройка в AppVeyor. AVK>Вот, кстати, насколько он удобен? А то у нас http://tc.rsdn.ru есть, если что.
Я его в режиме закинул-забрал использовал. Не попрёт, можно и на тимсити перетащить.
S>>Вообще пора в gitter переползать, или issue в самом проекте завести. AVK>Здесь удобнее, ИМХО. По крайней мере пока у проекта не появятся нерусскоговорящие участники.
Ок, тогда может отдельный раздел форума завести?
Здравствуйте, Sinix, Вы писали:
S>>>Вообще пора в gitter переползать, или issue в самом проекте завести. AVK>>Здесь удобнее, ИМХО. По крайней мере пока у проекта не появятся нерусскоговорящие участники. S>Ок, тогда может отдельный раздел форума завести?
Здравствуйте, Sinix, Вы писали:
S>Можно и там. Как обсуждать отдельные фичи / issue? в самом репо, или на форуме, новым топиком с тегом в теме [CJ]?
По русски если — наверное лучше в форуме. Если по английски, тогда в issues.
S>Как минимум надо завести список планируемых фич, а то они сейчас по топику рассыпаны — потеряются.
Вики-страничку надо сделать
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
[Skip]
S>Если кому надо — Range<T>/CompositeRange<T> для операция над диапазонами/наборами диапазонов — объединение, пересечение, дополнение — полный набор.
Интересно посмотреть. Писал такое, хотелось бы сравнить
Здравствуйте, AndrewVK, Вы писали:
AVK>1) Кто что по этому думает?
Не взлетит. У всех разный набор решений одних и тех же проблем. Универсальной библиотекой просто не будут пользоваться.
AVK>4) Кому интересно библиотеку в своих проектах использовать?
Я лично использую мелкие библиотеки, решающие конкретные проблемы: Polly, CvsHelper, Impromptu, AutoMapper, Oxygenize и так далее. Эти библиотеки не нужны в каждом проекте, они подключаются по мере необходимости.
Здравствуйте, Danchik, Вы писали:
D>Интересно посмотреть. Писал такое, хотелось бы сравнить
Если сами структуры — там вроде все предельно тривиально. Если алгоритмы — они делятся на две части: примитивные, типа объединения, пересечения и т.п., там тоже все тривиально, и хитрые, но они, как правило, уже завязаны на задачу. Ннапример нормализация диапазонов — список диапазонов преобразуется таким образом, чтобы диапазоны внутри него нигде не накладывались друг на друга, при этом дополнительную атрибутику нужно в пересекающихся частях мержить в новый диапазон. В неуниверсальном виде выглядит примерно так:
internal static IEnumerable<RangeDescriptor> NormalizeRanges(IEnumerable<Transition> source)
{
var ranges =
source
.SelectMany(t => t.Ranges.Select(r => new {r.Start, r.End, t.Target}))
.ToArray();
var points =
ranges
.SelectMany(
r =>
new[]
{
new {Pos = (int)r.Start, Targets = new List<State>()},
new {Pos = r.End + 1, Targets = new List<State>()}
})
.OrderBy(p => p.Pos)
.ToArray();
foreach (var range in ranges)
foreach (var point in
points
.SkipWhile(p => p.Pos < range.Start)
.TakeWhile(p => p.Pos <= range.End))
point.Targets.Add(range.Target);
return
points
.Zip(points.Skip(1), (p1, p2) => new {Start = p1, End = p2})
.Where(r => r.Start.Targets.Any() && r.Start.Pos < r.End.Pos)
.Select(
r =>
new RangeDescriptor(
new CharRange(
(ushort) r.Start.Pos,
(ushort) (r.End.Pos - 1)),
r.Start.Targets.ToArray()));
}
Нужно ли такое в универсальной библиотеке? Гложут меня смутные сомнения в том.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
Здравствуйте, Doc, Вы писали:
Doc>А какой будет модель бранчей? Стандартная? master > dev > featues branches Doc>Просто увидел только master, поэтому уточняю.
Да фик его знает. Пока, до выпуска первого релиза, точно смысла в dev бранче нет. Так что, наверное, просто feature, да и то если фича объемная. А всякую мелочевку, имхо, можно сразу в master.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
Здравствуйте, Vladek, Вы писали:
AVK>>1) Кто что по этому думает? V>Не взлетит. У всех разный набор решений одних и тех же проблем.
Это не так.
V> Универсальной библиотекой просто не будут пользоваться.
Ну я вот предпочитаю при наличии готового и более менее качественного использовать его, а не свой велосипед. На тех же кто еще не вышел из стадити любви к велосипедам ориентироваться смысла все равно нет.
V>Авторы полезных решений могут поступать так же — оформлять свои наработки в библиотеки и выкладывать их в общий доступ, а RSDN может просто вести их каталог.
И помнить и подключать 100500 мелких пакетов в каждый проект? Да ну нафик.
V> Вроде оно уже есть: http://rsdn.ru/forum/prj/
Это не совсем то, это какая то выжимка из написания Вольфхаундом бинарного диффа. Ей, кстати, люди даже пользовались, не смотря на полное отсутствие поддержки и какой либо жизни внутри.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
, опоздали
Эх, не успел
S>Есть желание — присоединяйтесь, нет — добавьте в календарик напоминалку на через год, тогда и посмотрим.
Присоединяться пока не буду, но за обсуждением буду наблюдать. Вдруг полезную идею обнаружу, о которой не задумывался.
Могу пока что высказать мнение чего НЕ стоит включать в библиотеку:
— преобразование XML в строку и обратно
— синтаксический сахар, который не уменьшает сильно количество кода.
А вот "парсер командной строки", который AndrewVK включат не хочет, я бы как раз включил. При условии, что он гибко декларативно настраиваемый.
У меня в проекте есть что-то подобное, очень удобно (хоть и не доделано до конца).
Здравствуйте, AndrewVK, Вы писали:
V>>Моё мнение — не взлетит. Участники не договорятся о деталях. AVK>Тут ты преувеличиваешь проблему. V>>В процессе споров отвалятся все, кроме двух-четырёх человек, которые и произведут продукт. AVK>4 человека это существенно больше, чем я ожидаю. И их более чем достаточно.
Ну, если до 4 человек — то, конечно, договорятся.
V>>Я через такое проходил один раз сам и пару раз наблюдал со стороны. AVK>Ну мы тоже не совсем новички.
Да я в курсе, я тут уже несколько лет Правда, больше читаю, чем пишу.
Здравствуйте, vmpire, Вы писали:
V>Могу пока что высказать мнение чего НЕ стоит включать в библиотеку ... V>А вот "парсер командной строки", который AndrewVK включат не хочет, я бы как раз включил. При условии, что он гибко декларативно настраиваемый.
Ну, т.е. нужен issue tracker, но, как я понимаю, не гитхаб, т.к. обсуждения планируется на русском.
Здравствуйте, AndrewVK, Вы писали:
AVK>Здравствуйте, Danchik, Вы писали:
D>>Интересно посмотреть. Писал такое, хотелось бы сравнить
AVK>Если сами структуры — там вроде все предельно тривиально. Если алгоритмы — они делятся на две части: примитивные, типа объединения, пересечения и т.п., там тоже все тривиально, и хитрые, но они, как правило, уже завязаны на задачу. Ннапример нормализация диапазонов — список диапазонов преобразуется таким образом, чтобы диапазоны внутри него нигде не накладывались друг на друга, при этом дополнительную атрибутику нужно в пересекающихся частях мержить в новый диапазон. В неуниверсальном виде выглядит примерно так:
Для себя как раз делал "сложные" алгоритмы обьединения диапазонов.
public struct Range<TValue> : IComparable<Range<TValue>>
where TValue : IComparable<TValue>
{
// основные методы
Union
Contains
Intersects
IsAdjastent
}
Основные особенности диапазонов
1. Могут быть бесконечными ..... , S....., ......E
2. Могут включать или не включать грани [S]....., ......[E]
И есть ImmutableRangeList (сортированный)
public class ImmutableRangeList<TValue> : IEnumerable<Range<TValue>>
where TValue : IComparable<TValue>
{
// основные методы
IsEmpty
IsFull
ContainsValue,
Add
Remove
Invert
Intersect
~, +, -, &, |, !
}
С тегами не думал. Пока хватало для своих задач.
Как использовалось. Например когда делал кеш даных по диапазонам (Cached).
Делался вызов — нужен такой то диапазон или набор диапазонов даных (Request).
Request — Cached = То_что_надо_закачать. Потом по этому строился ExpressionTree для IQueryable и накладывалась Where условие. Как результат, на сервер ушел оптимальный запрос, а из кеша взялось то что уже в нем лежит.