Работа тестировщиком после переезда в Германию
Как то печально получилось...
Для него да, т.к. заказов из-за локдауна не будет. Для меня нет. Там где он живёт у всех подозрительных на корону в локдауне прям двери в подъезде заваривают, еду по верёвочки родственники передают, так сказать передачка, идут в пятёрочку а потом им скидывают верёвку, или если без маски идёшь то до полусмерти дубинкой могут избить. Во время я оттуда уехал. И во время президент в отставку ушёл, а то его бы сейчас инакомыслющие свергли.
Возможно было бы достаточно выбрать другое имя переменной или добавить коммент...
Согласен. Хотя бы переименовать "int_minute" в что-то вроде "full_quarter_minute". Не стал, чтобы не перенапрягать оппонента, а то вообще ничего знакомого в коде не увидит...
В идеале - объявить константу "четверть часа в минутах" (а то я два раза 15 использовал) и функцию "округлитьМинутыДоПолнойЧетверти"и её уже вызывать. Но в функции уже стоит проверять параметр, что он >=0 и < 60 и кидать ошибку... И вот это всё ради одной строчки было лень. Так как используется это в одном единственном месте, то просто добавить строчку с комментарием "округляем минуты до полной четверти часа, например 29 => 15" должно хватить.
Это что то типа кода на руби от высокодаренных - да, просто - да быстро, а что делает фиг поймешь.
Тут нужно или постоянно пользовать данный способ или немного задуматься, а нафига тут подобная конструкция.
На руби одарённые не писали никогда. Модные писали :) Потому как в этом языке не было вообще ничего нового и интересного. Очередная duck-typing поделуха. Скопированные с перла гемсы и всё.
Но. Не согласен. Это примитивная конструкция. 3 действия в одной строчке. Все действия примитивные. поделил, обрезал, умножил. Никаких ветвлений, никакого синтаксиса, у которого может быть 20 возможных интерпретаций. Никаких перлоподобных фантазий вроде $@_$!@{__%} или битовых масок. Да, когда первый раз такое видишь, надо секунд 10 подумать. Примерно, как и когда в первый раз видишь ++ или +=. Если человек не в состоянии это понять, ему не в программисты, ему в дворники. Переменную стоило бы по-другому назвать, тут да. Облегчило бы понимание.
оппонента, а то вообще ничего знакомого в коде не увидит...
А у вас есть хотябы портфолио, чтобы хотя-бы увидеть ваш код и оценить ваши способности? Вы показали только одну строчку, и то взяли отсюда, https://github.com/moment/moment/issues/959 и https://stackoverflow.com/questions/4968250/how-to-round-t... копи пастить каждый умеет.
int_minute = Math.trunc(dt_time.Minute/15) * 15;
Если кода нет, который вы бы могли нам продемонстрировать, значит вы просто ветродуй. Пока что я увидел одну строчку, и то копи-паст, и усё .
3 действия в одной строчке
Примитивная конструкция не делает 3 действия, а тем более в одной строчке.
Примерно, как и когда в первый раз видишь ++ или +=
Кому как, я не могу "отладить" эту конструкцию в уме и проверить правильность ее работы.
Это формула с которой нужно разбираться. Набор ифов и то будет лучше в данном случае, там ничего не нужно разбираться
Нет, не покажу. В открытом доступе практически ничего нет. А в том, что можно увидеть, моё полное имя есть. Обойдётесь.
Да, я рад, что сподвиг вас поискать способы решения вашей проблемки в гугле. Стоило бы, конечно, поискать до того как лепить угробище с кучей if-then-else, но лучше поздно, чем никогда, верно? Теперь вы вот округлять по произвольному базису научились.
И один вопрос, можно? А что вы понимаете под copy-paste? Я что-то по обеим ссылкам прошёл, нигде Math.trunc не нашёл...
Если кода нет, который вы бы могли нам продемонстрировать
Тут я с вами не согласен. Никто не должен никому ничего демонстрировать.
Если хотите сильно меряется пиписьками, то для этого есть масса других способов, но не факт, что это же желание будет иметь и другая сторона.
Набор ифов и то будет лучше в данном случае
-----
Не, не будет - там нужно "читать границы" ифов и думать все ли покрыто.
Наиболее понятным будет... switch...case.
При этом касы должны четко указывать принимаемое время.
switch(dt_time.Minute/15)
{
case 0: rounded_minute = 0; break;
case 1: rounded_minute = 15; break;
case 2: rounded_minute = 30; break;
case 3: rounded_minute = 45; break;
default: throw new Exception("Can't get minutes rounded.");
}
или, как вариант:
static int[] roundet_time = { 0, 15, 30, 45};
int minutes_region = dt_time.Minute/15; // => 0..3, not checked foor >=4 & <=-1
rounded_minute = roundet_time[minutes_region];
но тут тоже не сразу поймешь как сделано.
Примитивная конструкция не делает 3 действия, а тем более в одной строчке.
Исчо как. Зависит от действия.
Кому как, я не могу "отладить" эту конструкцию в уме и проверить правильность ее работы.
Это старость! Ну, извините, не думал, что вы в уме для парочки значений, вроде trunc(32/15) * 15, trunc(1/15) * 15, посчитать не можете.
И да, примитивные (арифметические) операции можно и больше 3-х в строчке. Смешивать, например с логическими операциями, стоит аккуратнее.
Например, 4 операции: sqrt(a*a + b*b)
узнаёте?
Нет, не покажу.
Ок, тогда и нечего говорить что-то негативное про своих опонентов.
Это старость
не обязательно. Не припомню что бы и в студенческие годы я мог с одинаковой скоростью и текст читать и формулы.
посчитать не можете
С написанного посчитать еще можно, а вот картинка не возникает на автомате.
Например, 4 операции
ну так там деления нет и узнать можно сразу.
Весь IT мир уже давно живёт в других реалиях. Redis, DynamoDB, MariaDB, MongoDB, для RDS в крайнем случае SQL Server/Postgres/MySQL с мультизонной репликацией.
Я бы еще добавил биг дата, искусственный интеллект, блок чейн ну и конечно дигитализация :)
Есть, конечно, полторы конторы в Германии, которые до сих пор на VBA и Access лабают, но это даже и не динозавры уже, а го*но динозавров.
Особенно хорошо в Германии развивается дигитализация: