
Roman
25.05.2018
19:09:39
А бигинт только с 67версии хрома

Aleh
25.05.2018
19:09:40
Слава богам

Дмитрий
25.05.2018
19:10:32
> Нельзя считать деньги!1!
> Бери BigInt
> Где перегрузка операторов?!? Нельзя считать деньги!1!

Google

Aleh
25.05.2018
19:10:36

Дмитрий
25.05.2018
19:10:42
Даже раньше

Aleh
25.05.2018
19:10:48
Скорее всего
Просто не приходилось проверять

Дмитрий
25.05.2018
19:11:06
Этой библиотеке 18 лет https://github.com/zerobias/leemon
Т.е. с 2000 года ведётся отсчёт)
Занимается в данный момент тем, что перемалывает 500 разрядные числа при генерации криптографического ключа в телеграме

Aleh
25.05.2018
19:12:10
Это когда шарпа не было что ли?

Roman
25.05.2018
19:12:21
Ну и опять же. Bigint. В копейках считать? Или в чём?

Дмитрий
25.05.2018
19:12:30
И перегрузки!1!
Как вы без перегрузок деньги считать будете ну

Aleh
25.05.2018
19:12:44

Дмитрий
25.05.2018
19:12:44
Где вы видели такое вообще

Google

Дмитрий
25.05.2018
19:12:58
У меня даже в уме перегрузка операторов между прочим

andretshurotshka?❄️кде
25.05.2018
19:13:30
чет перегрузка немного от кол-ва сообщений

Roman
25.05.2018
19:13:49

andretshurotshka?❄️кде
25.05.2018
19:13:55
опять фпшники

Igor
25.05.2018
19:14:00

Roman
25.05.2018
19:14:03
Жсники

andretshurotshka?❄️кде
25.05.2018
19:14:27
жсники === фпшники

Дмитрий
25.05.2018
19:14:31

Roman
25.05.2018
19:15:07

Дмитрий
25.05.2018
19:15:37
И не требуют перегрузку операторов для тривиальных арифметических операций с повышенной точностью
И не оскорбляют людей с иным мнением, между прочим
Короче ясно всё с тобой, набрасыватель)
Вопросов больше не имею

Igor
25.05.2018
19:21:42

Roman
25.05.2018
19:21:53
Вопросов больше не имею
Прийдет к тебе аналитик с адовой формулой расчета какого нить коэффициента финансовых показателей. А ты такой a.add(b).add(c)...
Визуально мало похоже на арифметику. А мы же люди, человечки. Сидишь потом, читаешь такой код, плюёшь на него и пишешь на жаве какой нибудь. Тем более, что ту же ноду она уделает в хвост и в гриву.

Дмитрий
25.05.2018
19:22:30
> Визуально мало похоже на арифметику
Душераздирающе

Roman
25.05.2018
19:22:40
Хоть по IO хоть по CPU-bound

Дмитрий
25.05.2018
19:23:26
Стадия первая, отрицание

Google

Roman
25.05.2018
19:23:32
Суппортить потом такую сатану

Дмитрий
25.05.2018
19:23:50
С перегрузками тупо для денег
И не говори

andretshurotshka?❄️кде
25.05.2018
19:24:16
Перегрузка денег ето хорошо

Aleh
25.05.2018
19:25:49

Евгений
25.05.2018
19:26:45
А ещё ЖСер.
И планирую быть растером.

andretshurotshka?❄️кде
25.05.2018
19:27:11
Вектором

Roman
25.05.2018
19:39:33

Anton
25.05.2018
19:46:51
Странно что программистами никто не пробует быть...

Sergey
25.05.2018
19:51:32

M
25.05.2018
19:53:27

Дмитрий
25.05.2018
19:54:42
Писать на до диезе, судя по всему, достаточно

Alex Фэils?︙
25.05.2018
20:13:46
Надо уметь починить принтер!

M
25.05.2018
20:22:27

Roman
25.05.2018
20:41:36
Надо уметь починить принтер!
Цисочку поднять еще, BGP настроить, арч собрать, Kubernetes на 2к машин развернуть, патчить PostgeSQL, контрибутить в Lucene, писать RFC, играть на скрипке, писать стихи, летать на МКС, но самое главное - уметь переустановить винду. Без этого скила - ты ж не программист)

Alex Фэils?︙
25.05.2018
20:48:31
Цисочку поднять еще, BGP настроить, арч собрать, Kubernetes на 2к машин развернуть, патчить PostgeSQL, контрибутить в Lucene, писать RFC, играть на скрипке, писать стихи, летать на МКС, но самое главное - уметь переустановить винду. Без этого скила - ты ж не программист)
Все так
Но это уже уровень чуть выше

Chupa
26.05.2018
07:24:48
Подскажите, есть ли какие-нибудь best practises по созданию фикстур? Есть ли способ организовать механизм создания фикстур для большого объема тестов для большого количества сущностей со связями, не превращая это все в ад из огромной кучи методов и наследования?

Google

Mykola
26.05.2018
07:41:07


Denis
26.05.2018
08:03:50
https://habr.com/company/mailru/blog/329494/
А вот скажите, насколько по вашему приведённые в статье аргументы действительно серьёзны?
Как по мне - не очень.
- хочу, быть всегда уверен, что у меня в массиве только экземпляры нужного мне класса;
:это скорее вопрос архитектуры. Если у тебя массив набирается из где попало, то проблема не в отсутствии жёсткого контроля со стороны языка, а в непродуманном коде.
- хочу автодополнение и подсветку в IDE;
:в том же phpStorm эти фичи отлично работают из коробки при условии использования хотя бы самого базового phpDoc
А тянуть в язык дополнительные конструкции только для того, чтобы позволить халатному разработчику дальше оставаться таким... имхо таке идея :-/
Может быть это позволит делать дополнительные оптимизации по производительности/памяти? Но что-то не могу навскидку придумать какие...


Mykola
26.05.2018
09:04:03
Аргументы такие: если что-то можно выявить на этапе до деплоя на прод, то это стоит того. Даже самый хороший разработчик иногда косячит по невнимательности.

Denis
26.05.2018
09:34:16


Sergey
26.05.2018
09:35:13
А вот скажите, насколько по вашему приведённые в статье аргументы действительно серьёзны?
Как по мне - не очень.
- хочу, быть всегда уверен, что у меня в массиве только экземпляры нужного мне класса;
:это скорее вопрос архитектуры. Если у тебя массив набирается из где попало, то проблема не в отсутствии жёсткого контроля со стороны языка, а в непродуманном коде.
- хочу автодополнение и подсветку в IDE;
:в том же phpStorm эти фичи отлично работают из коробки при условии использования хотя бы самого базового phpDoc
А тянуть в язык дополнительные конструкции только для того, чтобы позволить халатному разработчику дальше оставаться таким... имхо таке идея :-/
> это скорее вопрос архитектуры
ты в своей мысли не учитываешь факт того, что массивчики не только собираются где попало но еще и используются где попало (ты ж их не просто так собираешь), да и еще код имеет свойство изменяться, и нам хочется быстро убедиться что мы ничего не сломали. Да, мы можем руками просмотреть все места использования нашего массивчика но это занимает время, это человеческий фактор и в целом у меня есть чем заняться помимо этого. Потому я бы хотел иметь возможность автоматической проверки.
В целом в phan/psalm поддержка дженериков есть, хотя это и не сильно помогает.
> в том же phpStorm эти фичи отлично работают из коробки
проблема в том что люди зацикливаются на коллекциях и радуются возможности написать Collection|Data[].
По факту же есть намного больше вариантов "параметризованных типов". Один из них, к примеру, это возможность описать какие-то процессоры данных:
interface NodeVisitor<Node> {
public function visit(Node $node);
}
class DataTransformer implements Transformer<Data>
{
public transform(Data $data)
{
}
}
ну и возможность интроспекции к этому, и сразу целый класс задач решается намного проще.
но по факту дженерики это капля в море. Я был бы рад хотя бы им, хотя возможность описывать структуру массивов, структурный тайпинг и т.д. меня радуют больше. Но это скорее всего проще будет просто перестать писать на php


Aleh
26.05.2018
09:36:59
А использование параметризованных типов это ну базовая фича)
За которой кроется много чего интересного)

Дмитрий
26.05.2018
09:37:52
Если типизация отражается на рантайме по дефолту то что-то в языке идёт не так)

Aleh
26.05.2018
09:38:06


Denis
26.05.2018
09:38:18
> это скорее вопрос архитектуры
ты в своей мысли не учитываешь факт того, что массивчики не только собираются где попало но еще и используются где попало (ты ж их не просто так собираешь), да и еще код имеет свойство изменяться, и нам хочется быстро убедиться что мы ничего не сломали. Да, мы можем руками просмотреть все места использования нашего массивчика но это занимает время, это человеческий фактор и в целом у меня есть чем заняться помимо этого. Потому я бы хотел иметь возможность автоматической проверки.
В целом в phan/psalm поддержка дженериков есть, хотя это и не сильно помогает.
> в том же phpStorm эти фичи отлично работают из коробки
проблема в том что люди зацикливаются на коллекциях и радуются возможности написать Collection|Data[].
По факту же есть намного больше вариантов "параметризованных типов". Один из них, к примеру, это возможность описать какие-то процессоры данных:
interface NodeVisitor<Node> {
public function visit(Node $node);
}
class DataTransformer implements Transformer<Data>
{
public transform(Data $data)
{
}
}
ну и возможность интроспекции к этому, и сразу целый класс задач решается намного проще.
Я это понимаю. Мой вопрос был не чтобы заявить противоположную статье позицию, а именно, чтобы пообсуждать, стоят ли выигрыши на этапе написания кода и которые могут быть достигнуты повышением дисциплины (упрощенно ) того, чтобы усложнять язык?


Sergey
26.05.2018
09:39:11
мы ж не просим штуки вроде,...
function array_column<T extends array>(iterable<T>, keyof T $key): T[$key]

Aleh
26.05.2018
09:39:21

Sergey
26.05.2018
09:39:38
более того, тайпхинты ЗАМеДЛЯЮТ код
выпилить
жесточайше

Google

Denis
26.05.2018
09:40:02

Aleh
26.05.2018
09:40:19

Sergey
26.05.2018
09:40:49

Aleh
26.05.2018
09:41:00

Sergey
26.05.2018
09:41:43
или о том что ты никогда не пользовался статическим анализом?

Aleh
26.05.2018
09:42:20

Denis
26.05.2018
09:42:42
Ничего не понял)
Свайп) иметь ввиду, что тайпхинт это помольза в процессе разработки. И она отлично работает средствами иде. А рантайме, разумнее, имхо, фокусировки на производительности

Sergey
26.05.2018
09:42:48

Aleh
26.05.2018
09:43:40

Sergey
26.05.2018
09:44:00

Aleh
26.05.2018
09:44:21

Sergey
26.05.2018
09:44:25

Aleh
26.05.2018
09:44:31

Sergey
26.05.2018
09:44:58

Aleh
26.05.2018
09:45:02
Еще нужны перечисления

Sergey
26.05.2018
09:45:05
попробуй на этот вопрос ответить

Aleh
26.05.2018
09:45:25
И еще бы вырубить рантайм...

Sergey
26.05.2018
09:46:15