hira88 #4501 25 июля 2019 (изменено) ArzanisAncient, 25 Июль 2019 - 02:15, написал: Хз, у меня нет оснований не доверять челу, который это писал. Он в соло ебашит уже больше 5 лет коммерческое приложение, в котором и с памятью, и с крашами всё очень хорошо.так я и не сомневаюсь что на qt можно писать правильно, я не смог. мой опыт это дефолтный фриланс, где фикс уже сломанного кода, и по ходу оно начинает течь во всех возможных месятах. Как на прошлой странице показано - начинаешь дебжить, в пустой проект копипастить по строке.(после двух недель долбежки с попытками понять на лету где течет) и оно течет с первых же строк хело ворда, начинаешь лезть в интернеты перечитывать доки в сотый раз, и оказывается что не все так просто. и понимаешь что весь оригинальный код который надо пофиксть, он сломанный, и что даже за оставшиеся месяц/два тут нихуя не пофиксить, ну и латаешь что можно.(по ходу фиксов у меня(в проге(qt)) текло вообще везде, самые невероятные места) суть утечек не в сломанной логике, а именно в функциях qt которыми просто накопипастили из примеров(где нет ни деструкторов ни мутексов) несколько больших прог так фиксил, то еще развлечение, никому не пожелаешь кароче Kant, 24 Июль 2019 - 20:58, написал: а что в кт много гуишных потоков?гуи парсит конфиги, и рисует векторную графику, еще и отправляя данные на сервера амазон это уже в три потока навешано(так сделано кодерами пишущими тот код что я трогал) по 5+ потоков на гуй прогу навешивали, даже не думая о мутексах ну и я также писал, в доках qt красным нигде не выделено что не тхреад сейф и поэтому даже не задумываешься. Изменено 25 июля 2019 пользователем hira88 Поделиться сообщением Ссылка на сообщение
Just.Doit #4502 25 июля 2019 переформулируй вопросасинхронщина нужна когда она нужна, а когда она не нужна лучше пистать синхроннонужна когда есть требования либо по производительности (пераллельное выполнение, либо чтобы потоки не жрало), либо по асинхронности (когда отдаешь клиенту ОК, а по факту тяжелую операцию стартуешь асинхронно)ручное создание потоков - это очень низкоуровневая херня, которую если использовать для высокоуровневых тасков - пишешь свои велосипеды с кучей багов и неоптимальностей, лучше юзать всякие экзекьюторы и высокоуровневые фьючикогда мне нужно было сделать что-то асинхронно в java 8 я очень порадовался что есть статический метод, который просто ранит на дефолтном тредпулечто за метод?Думаю речь о методах интерфейсов Executor и ExecutorService. Они прям сильно упрощают работу с потоками благодаря тредпулу и не только. В доках к этим интерфейсам нормально написано) помоему я юзалCompletableFuture.runAsync(Вот только средствами джавы сложно сделать ленивые асинхронные вычисления.То что на изи делается реактивщиной.приведи пример что за ленивые асинхронные вычисления и чего в джаве для этого не хватает очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Поделиться сообщением Ссылка на сообщение
Index #4503 25 июля 2019 Mono<?> publisher = Mono.fromRunnable (()-> {я выполнюсь когда позовут}); publisher.subscribe(); // вот Если бы ты был программистом, мог бы сам нагуглить.Ты понимаешь что ты комплитабл фьючером ранишь сразу код. А он тебе может нахуй не нужен, а может нужен, но позже, а может нужен, но несколько раз. У тебя ноль возможностей реюзнуть комплитабл.https://m.habr.com/ru/company/funcorp/blog/350996/Просвящайся вот Поделиться сообщением Ссылка на сообщение
Just.Doit #4504 25 июля 2019 Mono<?> publisher = Mono.fromRunnable (()-> {я выполнюсь когда позовут}); publisher.subscribe(); // вот Если бы ты был программистом, мог бы сам нагуглить.Ты понимаешь что ты комплитабл фьючером ранишь сразу код. А он тебе может нахуй не нужен, а может нужен, но позже, а может нужен, но несколько раз. У тебя ноль возможностей реюзнуть комплитабл.https://m.habr.com/ru/company/funcorp/blog/350996/Просвящайся вот"У тебя ноль возможностей реюзнуть комплитабл." разве? гет результата разве не 10 раз можно вызвать откуда угодно? про реактивность - я бы сказал что это больше походит на очереди тасок чем "ленивая асинхронщина" очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Поделиться сообщением Ссылка на сообщение
Index #4505 25 июля 2019 Ну попробуй повызывать гет на CompletableFuture.runAsync(() -> sout(Tlr.cr().nextInteger()))Можешь даже колабл сделать, мне самому интересно :) Поделиться сообщением Ссылка на сообщение
choojoykin #4506 25 июля 2019 ебать вы угораете по rx почитал статейки - круто. ни мало ни много, а много и мало Поделиться сообщением Ссылка на сообщение
Just.Doit #4507 25 июля 2019 Ну попробуй повызывать гет наCompletableFuture.runAsync(() -> sout(Tlr.cr().nextInteger()))Можешь даже колабл сделать, мне самому интересно :)не понялу тебя есть сомнения что future.get() можно вызывать много раз? или сомнения в правдивости того что написано в javadoc этого метода? очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Поделиться сообщением Ссылка на сообщение
hira88 #4508 25 июля 2019 лол Lorde - Sober ll и Kant понравилось это Поделиться сообщением Ссылка на сообщение
Frgttn #4509 25 июля 2019 Ну попробуй повызывать гет наCompletableFuture.runAsync(() -> sout(Tlr.cr().nextInteger()))Можешь даже колабл сделать, мне самому интересно :)не понялу тебя есть сомнения что future.get() можно вызывать много раз? или сомнения в правдивости того что написано в javadoc этого метода? там смысл в том что ранабл отрабатывает сразу, сторится результат и на каждый гет ты его получаешь, вместо того чтобы реранатьв дефолт джаве для такого можно в суплаеры их засовывать Supplier<CompletableFuture<Void>> delayed = () -> CompletableFuture.runAsync(() -> System.out.println("hui")); delayed.get().whenComplete((value, error) -> System.out.println("pizda")); delayed.get().whenComplete((value, error) -> System.out.println("zhopa")); Поделиться сообщением Ссылка на сообщение
Index #4510 25 июля 2019 Завтра покажу интеграционный тест своего дистрибьютив реактивного лока. Поделиться сообщением Ссылка на сообщение
Just.Doit #4511 25 июля 2019 Ну попробуй повызывать гет наCompletableFuture.runAsync(() -> sout(Tlr.cr().nextInteger()))Можешь даже колабл сделать, мне самому интересно :)не понялу тебя есть сомнения что future.get() можно вызывать много раз? или сомнения в правдивости того что написано в javadoc этого метода? там смысл в том что ранабл отрабатывает сразу, сторится результат и на каждый гет ты его получаешь, вместо того чтобы реранатьв дефолт джаве для такого можно в суплаеры их засовывать Supplier<CompletableFuture<Void>> delayed = () -> CompletableFuture.runAsync(() -> System.out.println("hui")); delayed.get().whenComplete((value, error) -> System.out.println("pizda")); delayed.get().whenComplete((value, error) -> System.out.println("zhopa")); а, яснону да, для таких специфичных задач нужны спец либы, а не кор языкахотя не удивлюсь если что-то из этого зачем-то затащат в jdkпросто тезис "обычная джава этого не может" какой-то глупый если для этого достаточно написать несколько строчек тривиального кодапонятно что всякие либы дают кучу примитивов, готовых методов, а иногда и целый жизненный цикл и воркфлоу - но тогда и агрументировать нужно с этой позиции очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Поделиться сообщением Ссылка на сообщение
scarppy #4512 25 июля 2019 уважаемые, а кто может объяснитьвот вы решаете там задачки, какие-то коды, бдвот со стороны смотришь и буд-то какие-то крупицы в морекакое практическое применение вашему коду, для чего оно служиткак много людей работает над каким-нибудь средним проектом (просто в голове картинка сложится не может) лучшая цитата финта+жизненная Поделиться сообщением Ссылка на сообщение
Medici- #4513 25 июля 2019 (изменено) уважаемые, а кто может объяснитьвот вы решаете там задачки, какие-то коды, бдвот со стороны смотришь и буд-то какие-то крупицы в морекакое практическое применение вашему коду, для чего оно служиткак много людей работает над каким-нибудь средним проектом (просто в голове картинка сложится не может)ну когда ты пишешь любой маломальский большой проект, всякие проблемы возникают. люди часто эти проблемы выделяют в задачи.или же просто из спортивного интереса. я вот делаю на работе аналог яндекс маркета (лол)достаточно крупно?правда у меня нет такой там дрочки, как у парнейвсе относительно просто но даже так, если бы я не решал задачки на всяких леткодах, то вряд ли бы мог уверенно себя чувствовать с sql Изменено 25 июля 2019 пользователем Medici- Поделиться сообщением Ссылка на сообщение
DIMAN123456789 #4514 25 июля 2019 Ну для базовых кейсов хватит базового набора кор джавы, а для чего-то посерьёзнее есть RxJava. Это как с js-ом. Ща есть Промисы, но они совершенно кошмарны и бесполезны на крупных проектах и все всё равно пользуются де факто RxJs либой. Да и в целом реализация там довольно примитивная, просто огромное количество операндов из коробки + пара полезных фичей Поделиться сообщением Ссылка на сообщение
Index #4515 25 июля 2019 RxJava древняя хуйня, реактор лучше. iMbanana понравилось это Поделиться сообщением Ссылка на сообщение
Just.Doit #4516 25 июля 2019 уважаемые, а кто может объяснитьвот вы решаете там задачки, какие-то коды, бдвот со стороны смотришь и буд-то какие-то крупицы в морекакое практическое применение вашему коду, для чего оно служиткак много людей работает над каким-нибудь средним проектом (просто в голове картинка сложится не может)что такое "средний проект" ? ну у нас средний проект - это 3-6 разработчиков. вместе со всеми тестерами аналитиками и менеджерами - человек 9-15. и что такое проект. есть проект "фича на странице поисковой выдаче" а есть проект "нетфликс"практическое применение - блять любая штука в айти или в электронике которую ты наблюдаешь. вообще не понимаю про что спрашиваешь.про крупицы вообще не понял что значит давай конкретнее вопрос формулируй очень крутые котейкиКому-то пизды дал - нужно сделать скрин обязательно. (с) Solo Поделиться сообщением Ссылка на сообщение
choojoykin #4517 26 июля 2019 ну вот я пилю qa утилитки в виде библиотек и попутно пишу mvp для тостиров + пара монолитных фреймворков для тестинга продуктав кор джаву иду только если надо очень сделать красиво и четко, иначе все оборачивается сторонними либами (вавр, спринг темплейты, апачи всякие)стараюсь в мейнстрим (лол блять) юзать функ интерфейсы, дженерики и прочую лабуду ждк8при этом для меня rxjava что-то не понятное (хотя код прочесть могу и понять что делается) изза того, что нет применения у меня и нет практикито есть есть условные аскмич или джаст дуит которые больше меня шарят в тонкостях джавките же паттерны и алгоритмы лол в qa юзается 2-3 штуки и этого достаточноплюс дроч с environment - настройка пайплайна, докеры (изучил базу - для меня и нужд достаточно), etcвсякими оптимизхациями БД и планов запросов не занимаюсь производительность кода не профилирую тостиры не люди, хотя если надо будет перекатиться в джава макаку средней руки - я пойду и изучу что надо (щас вон по спрингу курсы прохожу) ни мало ни много, а много и мало Поделиться сообщением Ссылка на сообщение
scarppy #4518 26 июля 2019 ладно +- понятноа вот ещё крч, когда только начинаешь интересоваться чем-топиздец много названий новых именно в плане новых утилит там всяких реально приходится с дохуя чем работать?ну просто вот я смотрел про фроненд там максимально понятно - ксс хтмл, все иди учиа начинаешь читать про другие языки там блять охуеешь лучшая цитата финта+жизненная Поделиться сообщением Ссылка на сообщение
JuJeu #4519 26 июля 2019 Язык/технология это вершина айсберга Saying that Java is nice because it works on all OS's is like saying that anal sex is nice because it works on all genders. Поделиться сообщением Ссылка на сообщение
iMbanana #4520 26 июля 2019 ладно +- понятноа вот ещё крч, когда только начинаешь интересоваться чем-топиздец много названий новых именно в плане новых утилит там всяких реально приходится с дохуя чем работать?ну просто вот я смотрел про фроненд там максимально понятно - ксс хтмл, все иди учиа начинаешь читать про другие языки там блять охуеешь ты заблуждаешься, думая что во френтенде названий меньше, чем в бекенде или в базах данных так в этом и смысл процесса обучения:это как разведывать карту в героях 3, изначально нихуя не видно и непонятнотам в подзорную трубу посмотрел, там посмотрелтам в подземелье спустилсяитд... [14:22:31] Сиэль: oh uj eti imbanani Поделиться сообщением Ссылка на сообщение