Re[5]: TODOs
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.12.16 13:00
Оценка:
Здравствуйте, rameel, Вы писали:

R>Вот не далее как вчера пришла такая мысль. Так что я поддержу предложение

R>Ассерты годная вещь и вполне самостоятельная, так что его даже в отдельный пакет засунуть можно

Не знаю, меня идея кучи микропакетов не радует. Разве что сделать один кумулятивный.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[5]: TODOs
От: Sinix  
Дата: 22.12.16 13:00
Оценка:
Здравствуйте, rameel, Вы писали:

R>Вот не далее как вчера пришла такая мысль. Так что я поддержу предложение

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


Кстати, польза от awesome list уже есть. Камрад zihotki не поленился написать про косяк с лицензиями.

Временную быструю заглушку я закинул, теперь надо определиться, что делать дальше. Я бы решил проблему кардинально и выкинул ObjectPool к чертям.
Вроде бы у нас больше нет кода под Apache.

Во-первых, в дотнете планируются куда более интересные Span<T>/Memory<T> + ArrayPool<T>.
Во-вторых, одно дело включать код для таргетинга под 4.0 и совсем другое — скидывать чужой код в свой namespace.

Идея насчёт ObjectPool вроде была моя, но я первый готов признать, что получился неудобняк
Re[6]: TODOs
От: rameel https://github.com/rsdn/CodeJam
Дата: 22.12.16 14:19
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Не знаю, меня идея кучи микропакетов не радует. Разве что сделать один кумулятивный.


Идея бить на микропакеты мне тоже не нравится, да и все равно вряд ли получится, так как один пакет у нас будет завязан на один, а то и два других, вот так весь CodeJam и подтянется

Идея была разбить библиотеку отдельно для утилитарных вещей, скажем базовую и расширенную, которая будет содержать Mapping, TableData, ServiceProvider и т.п.

А выделить ассерты в отдельный пакет я думал потому как, что ни библиотека так свой велосипед с Guard, Ensure, Require. С отдельным пакетом для ассертов, будет шанс, что люди быстрее согласятся ее использовать, чем писать свой недовелосипед, и детских страхов не будет, что там ой как много всего, что я не хочу. Но это так мысли вслух
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[6]: TODOs
От: rameel https://github.com/rsdn/CodeJam
Дата: 22.12.16 14:27
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Идея насчёт ObjectPool вроде была моя, но я первый готов признать, что получился неудобняк


Частично есть еще InterlockedOperations: InterlockedOperations.cs

Хотя... кода там одна строчка, и который сам собой напрашивается
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[7]: TODOs
От: Sinix  
Дата: 22.12.16 14:47
Оценка: +2
Здравствуйте, rameel, Вы писали:

R>Частично есть еще InterlockedOperations: InterlockedOperations.cs


R>Хотя... кода там одна строчка, и который сам собой напрашивается

Ну да. Там отсылка не к конкретной реализации, а к алгоритму. Как пруф, что должно работать.

То же самое можно из исходников фреймворка или из сгенеренного кода для событий вытащить.
В общем, если нам нужно принципиально отвязаться от кода под апач-лицензией, код можем из другого источника взять. Ну, или переписать (хотя там и переписывать-то нечего).
Re[6]: TODOs
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.12.16 20:40
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Временную быструю заглушку я закинул, теперь надо определиться, что делать дальше. Я бы решил проблему кардинально и выкинул ObjectPool к чертям.


А это разве не ты его предложил добавить? Лично мое имхо — штука очень специфичная.

S>Идея насчёт ObjectPool вроде была моя, но я первый готов признать, что получился неудобняк


Ну тогда просто выкинуть и все. Тем более что там и с доккоментами все довольно печально.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[7]: TODOs
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 22.12.16 20:40
Оценка: +1
Здравствуйте, rameel, Вы писали:

R>Частично есть еще InterlockedOperations: InterlockedOperations.cs


Блин, это код чуть ли не из учебника. Такое можно смело написать с нуля с закрытыми глазами.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[7]: TODOs
От: Sinix  
Дата: 22.12.16 20:50
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>А это разве не ты его предложил добавить? Лично мое имхо — штука очень специфичная.

Предлагал вроде я, по логу — добавил rameel.

S>>Идея насчёт ObjectPool вроде была моя, но я первый готов признать, что получился неудобняк

AVK>Ну тогда просто выкинуть и все. Тем более что там и с доккоментами все довольно печально.
Ок, если rameel не против.
Re[8]: TODOs
От: rameel https://github.com/rsdn/CodeJam
Дата: 23.12.16 04:22
Оценка: 24 (1)
Здравствуйте, Sinix, Вы писали:

AVK>>Ну тогда просто выкинуть и все. Тем более что там и с доккоментами все довольно печально.

S>Ок, если rameel не против.

Я не против
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
Re[7]: TODOs
От: Sinix  
Дата: 23.12.16 06:45
Оценка: 36 (1)
Здравствуйте, AndrewVK, Вы писали:

AVK>Ну тогда просто выкинуть и все. Тем более что там и с доккоментами все довольно печально.


Выкинул, в README добавил notices по остальным заимствованиям.

Да, CodeJam.Main.FW35.csproj вообще актуален? Там часть путей (как минимум к Algorithms.EqualRange.Comparer.cs и тыды) старая.
Re[8]: TODOs
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 23.12.16 07:12
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Да, CodeJam.Main.FW35.csproj вообще актуален? Там часть путей (как минимум к Algorithms.EqualRange.Comparer.cs и тыды) старая.


Это отладочный проект, если для таргетинга в 3.5 надо много править и нужна поддержка студии.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[9]: TODOs
От: Sinix  
Дата: 23.12.16 07:28
Оценка:
Здравствуйте, AndrewVK, Вы писали:

S>>Да, CodeJam.Main.FW35.csproj вообще актуален? Там часть путей (как минимум к Algorithms.EqualRange.Comparer.cs и тыды) старая.


AVK>Это отладочный проект, если для таргетинга в 3.5 надо много править и нужна поддержка студии.

А, ну тогда как будет время — сравни его диффом с основным проектом. Я не хочу туда лезть, т.к. не знаю, что в этом проекте нужно, что нет.
Re: TODOs
От: _NN_ www.nemerleweb.com
Дата: 12.01.17 07:45
Оценка: 201 (3)
Здравствуйте, Sinix, Вы писали:

Пока в awesome .net не добавили.
Но добавили в https://github.com/Microsoft/dotnet

https://github.com/Microsoft/dotnet/blob/master/dotnet-developer-projects.md
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[2]: TODOs
От: Sinix  
Дата: 12.01.17 08:33
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Но добавили в https://github.com/Microsoft/dotnet



Ну, если честно, я рад, что в awesome нас пока нет — офигенный стимул довести проект до ума.

Потому что замечания-то по делу. Документация ёк, примеры ёк, overbloated — во все поля, развитие... ну пока я один отдуваюсь. Как-то не совсем awesome.

Единственный странный аргумент — про "по отдельности всё это есть". Проблема в том, что каждый мелкий хелпер даёт кучу положительного эффекта и новые пишутся буквально не думая. Тот же свежедобавленный interval tree — все ошибки выловили ассерты, тесты по сути как интеграционные тесты сработали.
Re[3]: TODOs
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 12.01.17 08:42
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Потому что замечания-то по делу.


Там, по сути, одно замечание — лучше копипастить, чем использовать готовый вылизанный код. Остальное родилось, имхо, исключительно чтобы поспорить.

S> Документация ёк, примеры ёк


Это было понятно и без.

S>overbloated — во все поля,


Можно конкретнее?

S> развитие... ну пока я один отдуваюсь.


Я тебе уже говорил — для конкретно этого проекта это нормально, что нет огромного количества изменений.
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[4]: TODOs
От: Sinix  
Дата: 12.01.17 09:12
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Там, по сути, одно замечание — лучше копипастить, чем использовать готовый вылизанный код. Остальное родилось, имхо, исключительно чтобы поспорить.

Ну да, позиция у zihotki своеобразная, но это не значит, что косяков у нас нет

S>>overbloated — во все поля,

AVK>Можно конкретнее?

А вот тут вот
Автор: Sinix
Дата: 22.12.16
.

Сейчас CodeJam — всё и обо всём, если разбить (имена условные), получается
* CodeJam.Core — дополнения к фреймворку и таргетинг (отсутствующие типы для младших версий .net)
* CodeJam.Enterprise — все фишки, которые нафиг не нужны для единичной библиотеки, но нужны авторам приложений или своих фреймворков.

Куча проблем уходит. Начиная с моего ворчания по поводу качества кода — оно критично только для базовых вещей, дополняющих готовый код из фреймворка

S>> развитие... ну пока я один отдуваюсь.

AVK>Я тебе уже говорил — для конкретно этого проекта это нормально, что нет огромного количества изменений.
Это _не_ нормально. В здоровом проекте есть всегда свободные work items. Т.е. мелкие ошибки типа того, что в начале темы, чинятся сразу, а не как настроение будет.
Ну и нет деления в духе "я правлю только свой код". Нашёл место, которое не устраивает — поправь сразу или с обсуждением в issues.

А, да, насчёт стандартов, можно всё-таки const (и поля, и переменные) с заглавной сделать? Пожалуй единственный пункт, который резко отличается от всех остальных проектов. Раздражает
Re[5]: TODOs
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 12.01.17 09:17
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Сейчас CodeJam — всё и обо всём,


Он таким и задумывался.

S> если разбить (имена условные), получается

S>* CodeJam.Core — дополнения к фреймворку и таргетинг (отсутствующие типы для младших версий .net)
S>* CodeJam.Enterprise — все фишки, которые нафиг не нужны для единичной библиотеки, но нужны авторам приложений или своих фреймворков.

Как то слишком нечетко и искусственно, имхо.

S>А, да, насчёт стандартов, можно всё-таки const (и поля, и переменные) с заглавной сделать?


Приватные?

S> Пожалуй единственный пункт, который резко отличается от всех остальных проектов. Раздражает


Это где приватные поля с заглавной буквы?
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[6]: TODOs
От: Sinix  
Дата: 12.01.17 09:37
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

S>>Сейчас CodeJam — всё и обо всём,

AVK>Он таким и задумывался.
Ну это не совсем ок, потому что у нас с позиционированием проблемы.
Библиотека для "хелперы к фреймворку" — одно, библиотека для "сделай свой фреймворк" — другое, надо бы разнести.

AVK>Как то слишком нечетко и искусственно, имхо.

Ну да, это общий критерий, который позволяет быстро ответить на вопрос "что выбрать?". По факту точно надо вынести папки Services, Mapping, Metadata, TableData.


S>>А, да, насчёт стандартов, можно всё-таки const (и поля, и переменные) с заглавной сделать?

AVK>Приватные?
Ага.

S>> Пожалуй единственный пункт, который резко отличается от всех остальных проектов. Раздражает

AVK>Это где приватные поля с заглавной буквы?
Как пример: corefx, поискать "private const" в кавычках. Ссылка:
https://github.com/dotnet/corefx/search?utf8=✓&q="private+const"

Ну и не поля, а константы. То, что константа как поле хранится — это чисто деталь реализации. Приватные Enum-ы ж с заглавной — норм.


P.S. Да, в
\Main\src\Structures\OneOf\IOneOf.tt
мелкий косяк: include file="OneOfCommon.ttinclude" — нет такого.

Проверить можно через build — transform all templates
Re[7]: TODOs
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 12.01.17 15:26
Оценка:
Здравствуйте, Sinix, Вы писали:

S>Библиотека для "хелперы к фреймворку" — одно, библиотека для "сделай свой фреймворк" — другое, надо бы разнести.


Так а какой бенефит в итоге получится от этого? Вот геморой от двух разных сборок и двух разных пакетов очевиден.

S>>> Пожалуй единственный пункт, который резко отличается от всех остальных проектов. Раздражает

AVK>>Это где приватные поля с заглавной буквы?
S>Как пример: corefx, поискать "private const" в кавычках. Ссылка:
S>
S>https://github.com/dotnet/corefx/search?utf8=?&q="private+const"
S>


Кто в лес, кто по дрова.

S>Ну и не поля, а константы. То, что константа как поле хранится — это чисто деталь реализации.


https://github.com/dotnet/corefx/search?utf8=%E2%9C%93&amp;q=%22private+static+readonly%22
Семантически очень близкие сущности выглядят совершенно по разному. Нафига нам этот геморой?

S> Приватные Enum-ы ж с заглавной — норм.


Енум это тип, а не поле.

S>P.S. Да, в

S>\Main\src\Structures\OneOf\IOneOf.tt
S>мелкий косяк: include file="OneOfCommon.ttinclude" — нет такого.

Какие то хвосты остались. Поправил
... << RSDN@Home 1.0.0 alpha 5 rev. 0 on Windows 8 6.2.9200.0>>
AVK Blog
Re[8]: TODOs
От: Sinix  
Дата: 12.01.17 21:12
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

S>>Библиотека для "хелперы к фреймворку" — одно, библиотека для "сделай свой фреймворк" — другое, надо бы разнести.

AVK>Так а какой бенефит в итоге получится от этого? Вот геморой от двух разных сборок и двух разных пакетов очевиден.
С моей точки зрения —
1. Явное разделение зависимостей на слои. Если хелперы начинают тянуть за собой код из, скажем, маппинга, то что-то явно пошло не так
2. Никаких вопросов на тему "ок, мы берём хелперы, но нам не нужна работа с csv, потому что у нас есть своя единственно верная реализация". Таки реальный отзыв. Обоснование было примерно такое: ну вот берёшь ты библиотеку-провайдер для СУБД, а с ней в нагрузку — свой ORM. Впечатление, как будто защитник от mail.ru впаривают Конец цитаты.
3. Меньше борьбы за "весь код должен быть отличным". Ну есть косяки в дизайне отдельных вещей — пусть себе лежат в библиотечке для авторов фреймворков и конечным пользователям не мешают.

Про версии — нет никакого геммороя, главное чтоб релизы обоих сборок выпускались одновременно. Я ж 4 сборки для перфтестов как-то обновляю и ок.


AVK>Кто в лес, кто по дрова.

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

S>>Ну и не поля, а константы. То, что константа как поле хранится — это чисто деталь реализации.

AVK>https://github.com/dotnet/corefx/search?utf8=%E2%9C%93&amp;q=%22private+static+readonly%22
AVK>Семантически очень близкие сущности выглядят совершенно по разному. Нафига нам этот геморой?
Ухтыж, забавно. В смысле, с моей точки зрения константы гораздо ближе к enum members чем к полям. Если рассматривать константы как поля — то да, твой вариант логичнее. Если остальных устраивает — ок.


S>> Приватные Enum-ы ж с заглавной — норм.

AVK>Енум это тип, а не поле.
Я про enum members. Не, понятно, что под капотом у enum member — public const field, но это чисто деталь реализации.


AVK>Какие то хвосты остались. Поправил

Ок, спасиб!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.