-name
, а -regex
.find . -regextype posix-extended -regex ./'10{3}'
Смысла в джуниор фулстак разработчике я не вижу, особенно если метить в крупную фирму.
Хочется двигаться в сторону фулстака, даже если не для работы сейчас, то для себя, чтобы некоторые проекты свои написать.
фирмы в которые попал в своем городе не понравились
есть-ли вариант как это все дело ускорить до нескольких миллионов комбинаций в секунду как тутЖелезо поменять, тогда возможно. А так - брут он и в Африке брут, все упирается в проц, программная среда может выиграть пару процентов, но на такой задаче серьезного буста производительности даже ассемблер не даст.
def <b>название(любое)</b>
программа сома
from <b>название файла(без разширения .py)</b> import *
код
название(указоное выше)
код
from дополнительный файл import *
print(ERROR)
ERORR = 'вася у тебя ошибка'
Получается, что он заменит мой файл своимНе заменит, потому что когда он попытается свои правки отправить, он получит сообщение о том, что есть конфликты, которые нужно руками разрешить.
Правильно ли я понимаюГит на сервере никак не связан с вашим компьютером.
Нормально лиДа делайте как хотите, полиции гита урезали финансирование и они теперь никого не арестовывают. Но вообще для "кусков кода" есть https://gist.github.com.
public sealed class DataProvider : IDisposable
{
// nit: Предложил бы названия firstValue, secondValue либо более осмысленные, если возможно
public extern int LongRunningCalculation(int value, int value2);
public extern void Dispose();
}
// nit: сразу бы хотелось видеть уровень доступа и sealed (если класс не планируется наследовать)
// Class2 - дать нормальное имя
// { - перенести на 2ю строку по рекомендациям code style от microsoft (если не принято иных)
class Class2 {
// Синхронизация не нужна, если убрать метод Init, а Create вызвать в статическом конструкторе
private readonly object _sync = new object();
// _ht - дать осмысленное название
// Судя по использованию, value может быть int`ом. Не зачем иметь лишний boxing и проверки на тип
// _ht статический, значит к нему могут быть обращения из разных потоков, лучше сделать его ConcurrentDictionary
// Прям сходу не могу сказать, но, возможно, использовал бы какой то другой тип Dictionary <key, key, val> (самописный или существующий), кажется, так было бы быстрее чем массив в ключе
private static Dictionary<int[], object> _ht;
// nit: хотелось бы имена со смыслом
public int GetValue(int index, int index2)
{
// Лишний метод, удалить. Create вызовем в static конструкторе
Init();
// Если ключ у нас объект, то необходимо реализовать IEqualityComparer для этого Dictionary (иначе не понятно как по нему искать)
var key = new[] {index, index2};
// Проверка на тип не нужна, Dictionary сделаем типа int
if (_ht.ContainsKey(key) & _ht[key].GetType() == typeof(int))
// приведение типов больше не нужно
return ((int)_ht[key]);
// nit: else не обязателен
else
// int не может быть null, будет ошибка, вернуть либо default, либо возвращаемое значение должно быть int?
return null;
}
// Метод удалить, вызовем Create в статическом конструкторе без lock
public void Init()
{
if (_ht == null)
lock (_sync)
Create();
}
// Нет смысла делать метод public, сделать private
public static void Create()
{
// nit: и так видно какой тип создаём, можно использовать var
// Обернуть в using
DataProvider provider = new DataProvider();
// Тут следует инициализировать значение _ht, т.к. ранее оно нигде не создаётся
// Не забыть передать реализацию IEqualityComparer в конструктор
// nit: хотелось бы видеть использование фигурных скобок (если не принят иной code style)
// nit: вместо int можно var
// i и j, похоже, несут какой то смысл, можно попробовать придумать нормальное название (иначе не понятно почему 100 и 12, их можно в константы класса)
// nit: возможно можно использовать Parallel.ForEach
for (int i = 0; i < 100; i++)
for (int j = 1; j <= 12; j++)
_ht[new [] { i, j }] = provider.LongRunningCalculation(i, j);
}
}
public interface IDataProvider : IDisposable
{
int LongRunningCalculation(int firstValue, int secondValue);
}
public sealed class DataProvider : IDataProvider
{
public extern int LongRunningCalculation(int firstValue, int secondValue);
public extern void Dispose();
}
public sealed class DataProviderService
{
public DataProviderService(IDataProvider dataProvider)
{
_dataProvider = dataProvider;
}
private static readonly ConcurrentDictionary<int[], int?> _calculatedCache = new ConcurrentDictionary<int[], int?>(new CalculatedEqualityComparer());
private readonly IDataProvider _dataProvider;
public int? GetValue(int firstValue, int secondValue)
{
var isNotSupportedValues = firstValue > 100 || firstValue < 0 || secondValue < 1 || secondValue > 12;
if (isNotSupportedValues)
{
return null;
}
var key = new[] { firstValue, secondValue };
if (!_calculatedCache.TryGetValue(key, out var result))
{
result = _dataProvider.LongRunningCalculation(firstValue, secondValue);
_calculatedCache.TryAdd(key, result);
}
return result;
}
}
Received: from smtp2.osuosl.org ([140.211.166.133]:43816)
by mx242.i.mail.ru with esmtp (envelope-from <openid-specs-risc-bounces@lists.openid.net>)
id 1nD7cH-000BCL-Nx; Thu, 27 Jan 2022 19:27:22 +0300
Received: from localhost (localhost [127.0.0.1])
by smtp2.osuosl.org (Postfix) with ESMTP id 818F640207;
Thu, 27 Jan 2022 16:27:16 +0000 (UTC)
Received: from smtp2.osuosl.org ([127.0.0.1])
by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 0oLF9wJ5GV1X; Thu, 27 Jan 2022 16:27:15 +0000 (UTC)
Received: from ash.osuosl.org (ash.osuosl.org [140.211.166.34])
by smtp2.osuosl.org (Postfix) with ESMTP id F27D4401DD;
Thu, 27 Jan 2022 16:27:14 +0000 (UTC)
Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133])
by ash.osuosl.org (Postfix) with ESMTP id 4A7A21BF84C
for <openid-specs-risc@lists.openid.net>; Thu, 27 Jan 2022 16:27:11 +0000 (UTC)
Received: from localhost (localhost [127.0.0.1])
by smtp2.osuosl.org (Postfix) with ESMTP id 36EB3401DD
for <openid-specs-risc@lists.openid.net>; Thu, 27 Jan 2022 16:27:11 +0000 (UTC)
Received: from smtp2.osuosl.org ([127.0.0.1])
by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024)
with ESMTP id 6ALaTL5qxGLX for <openid-specs-risc@lists.openid.net>;
Thu, 27 Jan 2022 16:27:09 +0000 (UTC)
Received: from rcdn-iport-6.cisco.com (rcdn-iport-6.cisco.com [173.37.86.77])
by smtp2.osuosl.org (Postfix) with ESMTPS id B051F400CC
for <Openid-specs-risc@lists.openid.net>; Thu, 27 Jan 2022 16:27:09 +0000 (UTC)
Received: from rcdn-core-7.cisco.com ([173.37.93.143])
by rcdn-iport-6.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA;
27 Jan 2022 16:19:37 +0000
Received: from mail.cisco.com (xbe-rcd-004.cisco.com [173.37.102.19])
by rcdn-core-7.cisco.com (8.15.2/8.15.2) with ESMTPS id 20RGJaJO009169
(version=TLSv1.2 cipher=AES256-SHA bits=256 verify=OK)
for <Openid-specs-risc@lists.openid.net>; Thu, 27 Jan 2022 16:19:36 GMT
Received: from xfe-rtp-001.cisco.com (64.101.210.231) by xbe-rcd-004.cisco.com
(173.37.102.19) with Microsoft SMTP Server (version=TLS1_2,
cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.14; Thu, 27 Jan
2022 10:19:36 -0600
Received: from xfe-aln-005.cisco.com (173.37.135.125) by xfe-rtp-001.cisco.com
(64.101.210.231) with Microsoft SMTP Server (version=TLS1_2,
cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.14; Thu, 27 Jan
2022 11:19:36 -0500
Received: from NAM10-DM6-obe.outbound.protection.outlook.com (173.37.151.57)
by xfe-aln-005.cisco.com (173.37.135.125) with Microsoft SMTP Server
(version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.14
via Frontend Transport; Thu, 27 Jan 2022 10:19:35 -0600
Received: from BL0PR11MB3267.namprd11.prod.outlook.com (2603:10b6:208:6b::22)
by BL1PR11MB5318.namprd11.prod.outlook.com (2603:10b6:208:312::24)
with Microsoft SMTP Server (version=TLS1_2,
cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4930.17; Thu, 27 Jan
2022 16:19:35 +0000
Received: from BL0PR11MB3267.namprd11.prod.outlook.com
([fe80::c981:5c34:715b:b3a6]) by BL0PR11MB3267.namprd11.prod.outlook.com
([fe80::c981:5c34:715b:b3a6%3]) with mapi id 15.20.4930.018; Thu, 27 Jan 2022
16:19:34 +0000