
Gid
16.03.2017
08:14:19
ну короче щас изкоробки в хроме

Arseniy
16.03.2017
08:14:26
кстате

Сергей
16.03.2017
08:14:44
Ясно, интреесно как это все работает с бабелами сормапами и тд

Nikolay
16.03.2017
08:14:47

Google

Arseniy
16.03.2017
08:14:55
насколько нормально рисовать джунам болванки их задач?

Nikolay
16.03.2017
08:15:06
Мне в ней девелоперские тулзы нравятся

Arseniy
16.03.2017
08:15:29
или надо им все же вот прям разжевывать, чтобы они сами такие хуйни могли делать?

Сергей
16.03.2017
08:16:09

Friedrich
16.03.2017
08:16:56

Nikolay
16.03.2017
08:17:51

Gid
16.03.2017
08:18:51

Arseniy
16.03.2017
08:21:11

Friedrich
16.03.2017
08:21:41
Ох, ну, у меня ни разу не получалось совместить джунов и сроки :)
Обычно им чото такое даёшь, чтоб они понемножку ковырялись, и где сроков чётких нету. А через какое-то время — ну, полгодика например — из них выходит толк.

Arseniy
16.03.2017
08:24:14
ну не, я щитаю, что месяц более чем ок. первому джуну хватило абстрактного описания процесса, потом он чет спрашивал и через 2 недели норм делал
второй, спрашивал дофига, чет полезное (у него был вырожденный самый простой случай) начал делать через полтора месяца
и щас у меня первого забрали и еще блин третий.
ну и у меня опять вопросы, что я там где рассказывал так или не так

Google

Arseniy
16.03.2017
08:29:41
мне тут дохуя интересно про все эти код ревью и прочие парные программирования
несмотря на весь трэш в мастере, я рассказываю джунам, что задачи надо робить в ветках, что каждый коммит надо сопровождать ссылкой на таск, что мержится они могу тока через PR (хотя текущая система прав им позволяет что угодно)
и когда я вижу PR, у меня просто глаза вытекают

Oleg
16.03.2017
08:40:47
от чего вытекают?

Arseniy
16.03.2017
08:41:44
от кода, конечно
у меня есть четкая позиция про джунов
может она не очень нравится людям или там руководству

Sergey
16.03.2017
08:44:11
А у нас джунов нет ☹

Arseniy
16.03.2017
08:44:14
но человек должен найти баланс между задаванием вопросов и саморазвитием

Sergey
16.03.2017
08:44:31
Нам не смешно

Arseniy
16.03.2017
08:44:45
это единственная задача, как мне представляется

Sergey
16.03.2017
08:46:03
Саморазвитию они должны были учиться в универе

Arseniy
16.03.2017
08:46:33
100500 вопросов - плохо, сидеть и разбираться 2 дня - плохо.
ребятам надо понимать, что либо они зашли в тупик, либо пришло время просить помощь

anton
16.03.2017
08:48:17

Arseniy
16.03.2017
08:48:18

anton
16.03.2017
08:48:37
они там вообще кажется обленились. даже доку впадлу обновлять
а.. это не в доке проблема :) это правда так пакет называется

Arseniy
16.03.2017
08:49:39
отвечать таки приходится, но общее мнение о человеке катится вниз

Sergey
16.03.2017
08:50:08

Google

Sergey
16.03.2017
08:50:51

anton
16.03.2017
08:51:15
sudo apt-get install dotnet-dev-1.0.1 тянет за собой 342 мб
мне кажется под виндой они сделали bash on windows
а под линуксом они сделали windows in bash
кажется что за потраченное время, я бы уже давно переписал этот написанный код на что-то другое :)

Sergey
16.03.2017
08:52:56
Это же борьба с последствиями

anton
16.03.2017
08:52:58
200 строчек кода, по сути оболочка в виде хттп апи над тср клиентом к одной софтинке..
сначала все конвертил под неткор
теперь вот пытаюсь завести на 16.04 убунте

Sergey
16.03.2017
08:53:17
Или ты про что счас?

anton
16.03.2017
08:53:28

Sergey
16.03.2017
08:53:56
А, я еще туплю и не проснулся

anton
16.03.2017
08:54:03
да это я сумбурно накатал всё.. только проснулся просто :)
1. есть софтинка, которая живет под никсами.
2. есть несколько серверов с этой софтинкой (геоданные там). вручную партиционировали по регионам
3. написали партиционера/балансировщика, который наружу висит как http rest api, а с другой стороны по tcp общается с софтинкой на N серверах
так вот (3) когда-то"умные" люди написали на .net и приходилось держать windows тачку, где это запускалось ;) ну как бы ну и ладно, могла бы быть linux тачка - всеравно для системы из N серверов нужен балансировщик

Arseniy
16.03.2017
08:57:26
Если не пытаются - плохо
это тожа очень субъктивно. как понять пытается или нет?
я первый раз сталкиваюсь с такой проблемой.
и я много раз повторил манагераам, что типо не я нанимал человека, не мне его и увольнять.
а от меня всё чего-то хотят.
при том что с человеком у меня работа идет в штатном режиме

anton
16.03.2017
08:59:03
а тут парни развернули деплой - там у клиента кейс - только Урюпинск. ему другие геоданные не нужны, соответственно партиционирование не нужно (все умещается на 1 тачку) и прокси эта для балансировки тоже не нужна
но http api блин нужно.. парни делают 2 тачки (одна никсы, другая винда)
меня это задевает и я решил всё упихать на 1 тачку..
делов то: нужно всего лишь .net 4 проект под кору снести.
стоит ли мне упоминать что не все так гладко прошло? :)
реально быстрее было бы на голанге это всё возвести. 200 строк переписалось бы быстрее, чем через Урюпинский интернет 350мб скачается

Arseniy
16.03.2017
09:01:34
ай
в прошлый раз через эликсир лучше вышло
теперь вот всё было бы, но вот гошеньку не завезли
@troyanov чо как, дальше чего хватимся? эльма или пурскрипта?

anton
16.03.2017
09:04:30

Google

Женя
16.03.2017
09:05:32
А если я объявляю статическую переменную класса, для не статического класса, класс у меня будет static?

Arseniy
16.03.2017
09:06:02
класс не будет, поле - да

Женя
16.03.2017
09:06:33
но поле же это и есть экземпляр этого класса

Arseniy
16.03.2017
09:06:59
не, статические поля - это особый случай

Женя
16.03.2017
09:07:31
вот класс
public class AppConfig
{
public AppConfig()
{
this.LogWrite = true;
this.LogFilePath = "";
this.SoundFilePath = "";
}
public bool LogWrite; // писать лог-файлы или нет
public string LogFilePath; // путь к папке с логами
public string SoundFilePath; // путь к папке со звуком
}
а вот объявляе его в другом классе:
public class Start
{
// переменная где хранятся настройки приложения
public static AppConfig appConfig;
appConfig получается статическим классом?

Arseniy
16.03.2017
09:08:31
нет конечно

Admin
ERROR: S client not available

anton
16.03.2017
09:08:53

Artem
16.03.2017
09:08:56

Arseniy
16.03.2017
09:09:04
в классе старт есть статическая переменная АррКонфиг

Nicholas
16.03.2017
09:09:10

Женя
16.03.2017
09:10:44

Arseniy
16.03.2017
09:11:11
да

Андрюшка :D
16.03.2017
09:11:12

Женя
16.03.2017
09:11:43
теперь ясно... какое оно трудное это ООП

Artem
16.03.2017
09:12:15

Arseniy
16.03.2017
09:12:49
@tg_girl а тебе правда нужна своя система конфигурации?

Gid
16.03.2017
09:13:10

Google

Gid
16.03.2017
09:13:24
Вот видеоответ

Женя
16.03.2017
09:14:05

Arseniy
16.03.2017
09:14:26
ну ок
тогда я максимум не рекомендую делать это через статические поля
ты ж не выживешь, если у тебя попрут всякие обжетинициализерэксапшоны

Женя
16.03.2017
09:16:12

Arseniy
16.03.2017
09:16:45
ну в твоем случае надо завести Lazy переменную
почти тоже самое, только оно будет резолвится в рантайме с человеческими ошибками, если чо

Nicholas
16.03.2017
09:19:04
В консольных утилитах такой велосипед юзаю
public class SettingsManager<T>
{
private readonly string _path;
public SettingsManager(string path)
{
_path = path;
}
public T LoadSettings()
{
var settingsFileContent = "{}";
if (File.Exists(_path))
{
settingsFileContent = File.ReadAllText(_path);
}
return (JsonConvert.DeserializeObject<T>(settingsFileContent));
}
public void SaveSettings(T settings)
{
var settingsFileContent = JsonConvert.SerializeObject(settings);
File.WriteAllText(_path, settingsFileContent);
}
}
рейт ми

Arseniy
16.03.2017
09:19:41
это еще что за хуйня

Nicholas
16.03.2017
09:20:26
менеджер настроек, ему похуй что грузить

Женя
16.03.2017
09:21:21

Anatoly
16.03.2017
09:21:33
return (JsonConvert.DeserializeObject<T>(settingsFileContent));
Может null вернуть. И в целом LoadSettings исключение кинуть может. Я похожий велик у себя использую

Nikolay
16.03.2017
09:21:33

Дмитрий
16.03.2017
09:22:00

Nikolay
16.03.2017
09:22:07
И ещё save/load лучше в try/catch обернуть, ибо всякое бывает

Nicholas
16.03.2017
09:22:13
ну типа не смогли настройки загрузить - падаем с ошибкой

Женя
16.03.2017
09:24:43
у меня вот такой метод чтения файла настроек
public static bool ReadAppSettings( ref AppConfig config)
{
string configPath = Assembly.GetExecutingAssembly().Location;
configPath = Path.GetDirectoryName(configPath);
configPath = Path.Combine(configPath, APP_CONFIG_NAME);
if (File.Exists(configPath))
{ //файл конфига есть на диске
try
{
using (Stream stream = new FileStream(configPath, FileMode.Open))
{
XmlSerializer serializer = new XmlSerializer(typeof(AppConfig));
config = (AppConfig)serializer.Deserialize(stream);
}
}
catch (Exception ex) //ошибка чтения или парсинга конфигурации
{
logger.Error(ex);
config = new AppConfig();
return false;
}
}
else //файла конфигурации нет на диске
{
logger.Warn(" Файла конфигурации нет на диске!");
config = new AppConfig();
return false;
}
return true;
}
Эта группа больше не существует