К примеру, C, Pascal или Java – компилируемые языки программирования. Это означает, что код программы будет выполнятся непосредственно на процессоре (в случае с C, Pascal) или на виртуальной машине (в случае с Java).… К примеру, C# является промежуточным языком между компилируемым и интерпретируемым. Программа на C# будет скомпилирована в промежуточный аппаратно-независимый код, который в дальнейшем, в зависимости от реализации, будет либо интерпретирован, либо преобразован в машинный код.
Знатоки, растолкуйте — почему Java и C# тут причисляются к разным группам? Ведь насколько я понимаю оба языка компилируются в промежуточный язык (MSIL, байткод) а потом JITятся средой выполнения (CLR, JVM).
И откуда у Java такая производительность по сравнению с C#? Это какая-то оптимизация на стадии компиляции в промежуточный язык?
Прошу сильно тапками не кидать если что не так написал. Опыта нет, в универ/ институт ходить ещё рано :)
Не знаю как в других менеджерах паролей, но в том же битвардене vault синкается целиком, и есть оффлайн доступ. Т.е. в моём случае, чтобы остаться без доступа, нужно потерять 4 устройства + ОДНОВРЕМЕННО потерять 2 физических хардварных токена(потому что всегда есть ещё и веб версия Vault'a).
Странно что совсем нет упоминаний Bitwarden'a.
Есть моб приложение, веб версия, браузер экстеншн, шейринг паролей по организации, проверка утечек, проверка сложности, поддержка TOTP как в самих паролях, так и при доступе к Vault'у.
Есть как платная версия, так и селф хостед(особенно радует Bitwarden-rs от комьюнити, легкая реимплементация, которой хватает самого дешёвого дроплета).
Спасибо, хороший отрезвляющий материал.
Мне 22, вечно смотрел на достижения других в том же возрасте, и считал что сам нихрена не сделал тот же синдром самозванца, и нежелание признать что сам что-то могу, вплоть до самосаботажа когда "могу, но и другие тоже могут, ещё и лучше. Пожалуй стоит вообще не делать...".
По крайней мере я прогаю как и всегда хотел, и даже сделал несколько проектов, где мой код вызывался тысячами людей.
Спасибо, что привели впорядок мою депресуху этим вечером.
Не скажу за ангуляр, но в C# Subscribe по хорошему только во вью(т.е на самом верху, в том месте где вам понадобились элементы стрима), а не во View-Model, иначе ваши Observables превратятся из холодных(действия выполняются только при появлении сабскрайбера) в горячие(вью модель и есть этот самый сабскрайбер, который продолжает поглощать эвенты, даже если они никому не нужны).
Еще про сигнатуры и возвращаемые значения:
Справедливости ради, стоит сказать, что в C# если автор функции с опытом, то он не будет просто возвращать default(T). Он либо затребует new констрейнт на T, либо попросит через параметр/иньекцию фабрику для T, либо будет возвращать некий Result(ну или nullable reference type, когда C# 8 станет попопулярнее). Жаль конечно, что нельзя это заэнфорсить, но в большинстве случаев это так.
По поводу метода, что берёт на вход строку, а возвращает T, сразу же в голове вот это всплыло — JsonConvert.DeserializeObject(string value);
SourceTree под виндой когда то был очень хороший, а потом они его основательно так попортили.
Сравнить версию под мак и под винду — так вообще небо и земля. SourceTree под маком это ИМХО, идеальный GUI для гита.
К GitExtensions под виндой у меня только 1 претензия — он выглядит как привет из 2000-х.
Может знаете, можно ли его как нибудь облагородить?
Оформление кода это в первую очередь уважение к самому себе, через месяц-два, когда появится необходимость что-то поправить. Сами говорили, что уже сталкивались с проблемой подсчёта блоков.
"Вот если бы существовал инструмент, который форматирует код просто по нажатию кнопки...., постойте ка, большинство текстовых редакторов и IDE могут это"
Теперь по опенсорсу — в опенсорс в первую очередь как раз и кладут код, чтобы другие могли беспьатно пользоваться. Никто и не обещает вам, что сразу посыплются пулл реквесты с новыми фичами(хотя такое тоже иногда случается), но я просто могу гарантировать, что если проект хоть сколько нибудь интересный(а это вроде тот случай) — то вам сразу пришлют исправления ошибок, это как минимум.
Плюс, если я знаю, что мне этот код "людям показывать", то он автоматически становится чище, появляются скрипты для рутинных действий, и меняется мышление — "что мне такое добавить, что было бы полезно не только мне, но и большому количеству людей".
Знатоки, растолкуйте — почему Java и C# тут причисляются к разным группам? Ведь насколько я понимаю оба языка компилируются в промежуточный язык (MSIL, байткод) а потом JITятся средой выполнения (CLR, JVM).
И откуда у Java такая производительность по сравнению с C#? Это какая-то оптимизация на стадии компиляции в промежуточный язык?
Прошу сильно тапками не кидать если что не так написал. Опыта нет, в универ/ институт ходить ещё рано :)
Отлично!
Не знаю как в других менеджерах паролей, но в том же битвардене vault синкается целиком, и есть оффлайн доступ. Т.е. в моём случае, чтобы остаться без доступа, нужно потерять 4 устройства + ОДНОВРЕМЕННО потерять 2 физических хардварных токена(потому что всегда есть ещё и веб версия Vault'a).
Странно что совсем нет упоминаний Bitwarden'a.
Есть моб приложение, веб версия, браузер экстеншн, шейринг паролей по организации, проверка утечек, проверка сложности, поддержка TOTP как в самих паролях, так и при доступе к Vault'у.
Есть как платная версия, так и селф хостед(особенно радует Bitwarden-rs от комьюнити, легкая реимплементация, которой хватает самого дешёвого дроплета).
Спасибо, хороший отрезвляющий материал.
Мне 22, вечно смотрел на достижения других в том же возрасте, и считал что сам нихрена не сделал тот же синдром самозванца, и нежелание признать что сам что-то могу, вплоть до самосаботажа когда "могу, но и другие тоже могут, ещё и лучше. Пожалуй стоит вообще не делать...".
По крайней мере я прогаю как и всегда хотел, и даже сделал несколько проектов, где мой код вызывался тысячами людей.
Спасибо, что привели впорядок мою депресуху этим вечером.
www.arm.com/products/silicon-ip-cpu/cortex-a/cortex-a65ae
Вон в фичах — Simultaneous Multithreading, 2 треда в парраллели.
Режим караоке это я так понимаю отсылка к carpool karaoke?
2071: При строительстве подставки под экран был случайно возведён космический лифт.
Не скажу за ангуляр, но в C# Subscribe по хорошему только во вью(т.е на самом верху, в том месте где вам понадобились элементы стрима), а не во View-Model, иначе ваши Observables превратятся из холодных(действия выполняются только при появлении сабскрайбера) в горячие(вью модель и есть этот самый сабскрайбер, который продолжает поглощать эвенты, даже если они никому не нужны).
Еще про сигнатуры и возвращаемые значения:
Справедливости ради, стоит сказать, что в C# если автор функции с опытом, то он не будет просто возвращать default(T). Он либо затребует new констрейнт на T, либо попросит через параметр/иньекцию фабрику для T, либо будет возвращать некий Result(ну или nullable reference type, когда C# 8 станет попопулярнее). Жаль конечно, что нельзя это заэнфорсить, но в большинстве случаев это так.
По поводу метода, что берёт на вход строку, а возвращает T, сразу же в голове вот это всплыло — JsonConvert.DeserializeObject(string value);
https://www.newtonsoft.com/json/help/html/M_Newtonsoft_Json_JsonConvert_DeserializeObject__1.htm
Так и вижу, как с моим то характером, мой же бэкап решает, что он лучше и сносит меня к чертям...
SourceTree под виндой когда то был очень хороший, а потом они его основательно так попортили.
Сравнить версию под мак и под винду — так вообще небо и земля. SourceTree под маком это ИМХО, идеальный GUI для гита.
К GitExtensions под виндой у меня только 1 претензия — он выглядит как привет из 2000-х.
Может знаете, можно ли его как нибудь облагородить?
У меня там всякого мусора на 20+ Гигабайт было.
Только в ~/Library/Caches/VisualStudioInstaller было на 8 гигов временных файлов, которые установщик .net core не позаботился удалить.
Кешей спотифая было на гигабайт, хотя и не включено скачивание песен.
Пример с get_married() просто ужасен.
Уже давно все нормальные люди для bool проперти используют is вместо get.
Что лучше, gameObject.GetDisabled() или gameObject.IsDisabled() ?
ИМХО, 2 вариант гораздо лучше читается.
Напомнили вы мне про вот эту чудесную статью:
https://habr.com/ru/post/370801/
docs.microsoft.com/ru-ru/dotnet/api/system.random?view=netframework-4.8#avoiding-multiple-instantiations
Я не заради позлорадствовать, но это же прям в содержании написано.
Оформление кода это в первую очередь уважение к самому себе, через месяц-два, когда появится необходимость что-то поправить. Сами говорили, что уже сталкивались с проблемой подсчёта блоков.
"Вот если бы существовал инструмент, который форматирует код просто по нажатию кнопки...., постойте ка, большинство текстовых редакторов и IDE могут это"
Теперь по опенсорсу — в опенсорс в первую очередь как раз и кладут код, чтобы другие могли беспьатно пользоваться. Никто и не обещает вам, что сразу посыплются пулл реквесты с новыми фичами(хотя такое тоже иногда случается), но я просто могу гарантировать, что если проект хоть сколько нибудь интересный(а это вроде тот случай) — то вам сразу пришлют исправления ошибок, это как минимум.
Плюс, если я знаю, что мне этот код "людям показывать", то он автоматически становится чище, появляются скрипты для рутинных действий, и меняется мышление — "что мне такое добавить, что было бы полезно не только мне, но и большому количеству людей".
Попробуйте вот это:
https://youtu.be/0YM3WfHk5To
И коментатору выше киньте, у меня неполноценный аккаунт, ответить ему я не смогу.
Вот. Вот за такое я люблю хабр.
А не за всё то что приехало с Geektimes.
Прекрасная статья!
Поисковые запросы отслеживаются, если Вы вошли в режиме инкогнито в гугл аккаунт(зачем?!).
Если не входили, то всё хорошо.