Pull to refresh
16
0
Шевченко Олег @BloodUnit

Разработчик обыкновенный

Ну дак и DateTimeOffset тут не поможет, потому что как уже писали выше, TimeZone и Offset разные вещи.
UTC+3 это может быть и MSK, а может быть и нет, а может MSK это UTC+4, до 2011 года, вдруг MSK станет UTC+5 в 2019?
Все что даст узнать DateTimeOffset, это оффсет в котором произошло событие, но никак и время в какой-либо таймзоне.


Пример выше про календарь опять же не решается с помощью DateTimeOffset, потому как запланированная встреча на 2020 год в 8 утра по MSK может поломаться, т.к. правительство решит опять переходить на летнее/зимнее время, и часовой пояс для MSK изменится, а на момент создания вы полагаетесь просто на +3. Посмотрите диалог создания событий в гугл календаре, там выбирается не оффсет, а именно таймзона.


Таким образом, чтобы узнать локальное время в таймзоне, надо хранить, таймзону, как ни странно!

Автоматическое назначение инвестигаций

Эта фича работает если проблема не в упавшем тесте, а допустим, в синтаксисе?
Для тестов всегда назначает на кого-нибудь, а для просто свалившегося билда не назначает даже на дефолтного юзера.

Хотел было взять Online-Personal билет, даже не столько для трансляции, сколько для поддержки хорошей конференции. Но увидев стоимость в 10к(уже с учетом скидки) и поняв что на эти деньги можно взять R# на пару лет или 2-3 хорошие книги, быстро остыл.


Аппетит с 2015 года вырос значительно, даже с учетом того что конференция теперь идет 2 дня.

"NLog.Prod.config со всеми паролями прод базы" — если вы в нлоге храните "все пароли", то ой, конечно.

Я как раз предлагал использовать подход где пароли хранятся не в репозитории. Ну и я не использую NLog)


можно конфиг нлога...

Понятно что можно шифровать, выносить в N отдельных файлов, убеждать себя и команду что хранить пароли от прода в репозитории это хорошо и надеяться что кто-нибудь по случайности не дропнет базу. Но ради чего все это? Чтобы получить систему которая не масштабируется и не работает с новыми технологиями (ASP.NET Core)?


Статья ровно об оповещении об ошибках по-своему для каждого контура.
Тут я не имею в виду проекты, где разработчиков очень много — и опять же, это обычная ситуация. Даже для 10 разрабов не вижу проблемы.

Стоит добавить: Для небольшой команды.
Ну то есть вы понимаете что ваш подход не масштабируется, и если вдруг ваша команда вырастет, то он не будет работать хорошо?


Именованный инстанс sql server'а, или он может использовать sql server на сервере, если, например, он на ноутбуке и у него не хватает ресурсов.

В sql server есть алиасы.


Кстати, весьма полезна практика иметь 2 sql server'а — ПРОД и тестовый, для экономии ресурсов. А на тестовом несколько БД для разных тестовых контуров, в том числе и для разрабов.

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


Другой урл для собственного веб-сервиса, эмулирующего внешнуюю ИС. Не надо запрещать это делать.

Согласен что нельзя, но какой довод в пользу уникального имени для каждого разработчика?


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

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


Вредно называть "окружением" значения настроек.

Почему вы так решили? Даже в документации МС разделение настроек идет по окружению.

Судя по иконке в SolutionExplorer файл NLog.config лежит в репозитории и наверное у него длинная история.
Подход с кофигом для каждого разработчика имеет недостатки:
• Надо следить за изменением конфигов во всех N трансформ файлах
• NLog.Prod.config лежит в репозитории и судя по всему со всеми паролями прод базы
• Плохо масштабируется и не работает для большого кол-ва разработчиков
• Не применить без боли в ASP.NET Core


Если проблема только в имени БД, возможно, проще всем использовать одно имя?
Посылать мейлы с локальной машины выглядит странновато, но ладно.


Но даже для решения этих двух проблем можно использовать:
• Environments variables


Для Core:
https://docs.microsoft.com/en-us/aspnet/core/security/app-secrets?view=aspnetcore-2.0
• Параметны командной строки


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

В общем, переписал на groovy.

Грусть какая, что рекомендуете использовать вместо clojure?

А зачем вам в связке Serilog + ELK нужен L?

DataGrip замыкает цепочку релизов наших IDE

А как же Rider 2017.3?

Для проверки этого утверждения я набросал 4 небольшие функции: 2 для boxing и 2 для unboxing типов int и struct.

int, внезапно, это тоже struct. Смысл тестировать с еще одной структурой?


Для замера производительности была использована библиотека BenchmarkDotNet в режиме Release (буду рад если DreamWalker подскажет, каким образом сделать данные замеры более объективными).

Я не DreamWalker, но вот http://benchmarkdotnet.org/RulesOfBenchmarking.htm

У вас политика компании такая? Не выкладивать в паблик цены и календарики?

Если объекты достаточно маленькие (от 16 до 32 байтов или меньше в разных ситуациях), то стоит рассмотреть вариант хранения их по значению (struct в .NET), а не в объекте.

Откуда взяты эти цифры, чем плоха структура меньше 16 байт?

Дело в том, что можно выбрать сразу много таблиц, в этом случае файлы, наверное, удобнее.
Но я думаю, что есть API и для работы с буфером.
AgentMulder, незаменимая вещь при работе с DI.
Вы только первое предложение из ответа с 760 голосами прочитали?)
Don't listen to these guys. You actually can parse context-free grammars with regex if you break the task into smaller pieces. You can generate the correct pattern with a script that does each of these in order:

Solve the Halting Problem.
Square a circle (simulate the «ruler and compass» method for this).
Work out the Traveling Salesman Problem in O(log n). It needs to be fast or the generator will hang.
The pattern will be pretty big, so make sure you have an algorithm that losslessly compresses random data.
Almost there — just divide the whole thing by zero. Easy-peasy.
Если надо вытащить текст из пары нодов, то да, возможно, наверное, не знаю.

Вначале вы пишете регулярки типа ...class=...[^>]*>(?<text>...)<... .

Но вдруг, надо работать с атрибутами, порядок которых неизвестен, и начинаются пляски с опциональными группами, и вы начинаете писать регулярки типа ...(?<attr1>...)?(?<attr2>...)? либо выполняете несколько matches на каждый атрибут.

Потом вы хотите работать с коллекциями, допустим с <ul> или чего еще хуже с таблицами, и вы начинаете понимать что что-то пошло не так, но продолжаете использовать регулярки, чтобы достать значения из td вы вначале захватываете таблицу, потом коллекцию tr, и проходите по коллекции td, регулярки вида ...[^>]*>(?<text>...)<... растут как грибы на каждый элемент/идентификатор/класс/аттрибут.

И вдруг, вам необходимо ходить по DOMу, на этом месте будет боль и холодный пот, т.к. везде уже тонны регулярок. Вы с тоской удаляете регулярки, на которые затрачено много времени и используете xpath.

Это мой печальный опыт, если у вас по-другому, расскажите.
Каждый раз, когда тянет использовать Regex для парсинга HTML, читаю этот ответ, успокаиваюсь и использую как минимум HtmlAgilityPack, чего и всем желаю.
Запилите пожалуйта RSS на it.mail.ru.
Новости вроде хорошие, а заходить каждый раз проверять как-то лень.

Information

Rating
Does not participate
Location
Архангельск, Архангельская обл., Россия
Registered
Activity