Перейти к публикации
  • Сейчас на странице   Всего пользователей: 0   (0 пользователей, 0 гостей)

Rooster

Программирование[8]

Рекомендованные сообщения

(изменено)

ArzanisAncient, 25 Июль 2019 - 02:15, написал:

Хз, у меня нет оснований не доверять челу, который это писал. Он в соло ебашит уже больше 5 лет коммерческое приложение, в котором и с памятью, и с крашами всё очень хорошо.

так я и не сомневаюсь что на qt можно писать правильно, я не смог.

мой опыт это дефолтный фриланс, где фикс уже сломанного кода, и по ходу оно начинает течь во всех возможных месятах.

 

Как на прошлой странице показано - начинаешь дебжить, в пустой проект копипастить по строке.(после двух недель долбежки с попытками понять на лету где течет)

и оно течет с первых же строк хело ворда, начинаешь лезть в интернеты перечитывать доки в сотый раз, и оказывается что не все так просто.

и понимаешь что весь оригинальный код который надо пофиксть, он сломанный, и что даже за оставшиеся месяц/два тут нихуя не пофиксить, ну и латаешь что можно.(по ходу фиксов у меня(в проге(qt)) текло вообще везде, самые невероятные места)

суть утечек не в сломанной логике, а именно в функциях qt которыми просто накопипастили из примеров(где нет ни деструкторов ни мутексов)

несколько больших прог так фиксил, то еще развлечение, никому не пожелаешь кароче

 

 

 

Kant, 24 Июль 2019 - 20:58, написал:

а что в кт много гуишных потоков?

гуи парсит конфиги, и рисует векторную графику, еще и отправляя данные на сервера амазон это уже в три потока навешано(так сделано кодерами пишущими тот код что я трогал)

по 5+ потоков на гуй прогу навешивали, даже не думая о мутексах

ну и я также писал, в доках qt красным нигде не выделено что не тхреад сейф и поэтому даже не задумываешься.


Изменено пользователем hira88

Поделиться сообщением


Ссылка на сообщение

 

 

переформулируй вопрос

асинхронщина нужна когда она нужна, а когда она не нужна лучше пистать синхронно

нужна когда есть требования либо по производительности (пераллельное выполнение, либо чтобы потоки не жрало), либо по асинхронности (когда отдаешь клиенту ОК, а по факту тяжелую операцию стартуешь асинхронно)

ручное создание потоков - это очень низкоуровневая херня, которую если использовать для высокоуровневых тасков - пишешь свои велосипеды с кучей багов и неоптимальностей, лучше юзать всякие экзекьюторы и высокоуровневые фьючи

когда мне нужно было сделать что-то асинхронно в java 8 я очень порадовался что есть статический метод, который просто ранит на дефолтном тредпуле

что за метод?
Думаю речь о методах интерфейсов Executor и ExecutorService. Они прям сильно упрощают работу с потоками благодаря тредпулу и не только. В доках к этим интерфейсам нормально написано)

 

помоему я юзал

CompletableFuture.runAsync(

Вот только средствами джавы сложно сделать ленивые асинхронные вычисления.

То что на изи делается реактивщиной.

приведи пример что за ленивые асинхронные вычисления и чего в джаве для этого не хватает


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

Mono<?> publisher = Mono.fromRunnable (()-> {я выполнюсь когда позовут});

 

publisher.subscribe(); // вот

 

Если бы ты был программистом, мог бы сам нагуглить.

Ты понимаешь что ты комплитабл фьючером ранишь сразу код. А он тебе может нахуй не нужен, а может нужен, но позже, а может нужен, но несколько раз.

 

У тебя ноль возможностей реюзнуть комплитабл.

https://m.habr.com/ru/company/funcorp/blog/350996/

Просвящайся вот

Поделиться сообщением


Ссылка на сообщение

Mono<?> publisher = Mono.fromRunnable (()-> {я выполнюсь когда позовут});

 

publisher.subscribe(); // вот

 

Если бы ты был программистом, мог бы сам нагуглить.

Ты понимаешь что ты комплитабл фьючером ранишь сразу код. А он тебе может нахуй не нужен, а может нужен, но позже, а может нужен, но несколько раз.

 

У тебя ноль возможностей реюзнуть комплитабл.

https://m.habr.com/ru/company/funcorp/blog/350996/

Просвящайся вот

"У тебя ноль возможностей реюзнуть комплитабл." разве? гет результата разве не 10 раз можно вызвать откуда угодно? 

про реактивность - я бы сказал что это больше походит на очереди тасок чем "ленивая асинхронщина"


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

Ну попробуй повызывать гет на

CompletableFuture.runAsync(() -> sout(Tlr.cr().nextInteger()))

Можешь даже колабл сделать, мне самому интересно :)

Поделиться сообщением


Ссылка на сообщение

ебать вы угораете по rx  :trollface:

почитал статейки - круто. 


:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение

Ну попробуй повызывать гет на

CompletableFuture.runAsync(() -> sout(Tlr.cr().nextInteger()))

Можешь даже колабл сделать, мне самому интересно :)

не понял

у тебя есть сомнения что future.get() можно вызывать много раз? или сомнения в правдивости того что написано в javadoc этого метода?


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

 

Ну попробуй повызывать гет на

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"));

Поделиться сообщением


Ссылка на сообщение

Завтра покажу интеграционный тест своего дистрибьютив реактивного лока.

Поделиться сообщением


Ссылка на сообщение

 

 

Ну попробуй повызывать гет на

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

просто тезис "обычная джава этого не может" какой-то глупый если для этого достаточно написать  несколько строчек тривиального кода

понятно что всякие либы дают кучу примитивов, готовых методов, а иногда и целый жизненный цикл и воркфлоу - но тогда и агрументировать нужно с этой позиции


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

уважаемые, а кто может объяснить

вот вы решаете там задачки, какие-то коды, бд

вот со стороны смотришь и буд-то какие-то крупицы в море

какое практическое применение вашему коду, для чего оно служит

как много людей работает над каким-нибудь средним проектом (просто в голове картинка сложится не может)


VyMEtE8XtOI.jpg

  лучшая цитата финта+жизненная

XbkBCDXetHY.jpg

Поделиться сообщением


Ссылка на сообщение
(изменено)

уважаемые, а кто может объяснить

вот вы решаете там задачки, какие-то коды, бд

вот со стороны смотришь и буд-то какие-то крупицы в море

какое практическое применение вашему коду, для чего оно служит

как много людей работает над каким-нибудь средним проектом (просто в голове картинка сложится не может)

ну когда ты пишешь любой маломальский большой проект, всякие проблемы возникают. люди часто эти проблемы выделяют в задачи.

или же просто из спортивного интереса.

 

я вот делаю на работе аналог яндекс маркета (лол)

достаточно крупно?

правда у меня нет такой там дрочки, как у парней

все относительно просто

 

но даже так, если бы я не решал задачки на всяких леткодах, то вряд ли бы мог уверенно себя чувствовать с sql


Изменено пользователем Medici-

Поделиться сообщением


Ссылка на сообщение

Ну для базовых кейсов хватит базового набора кор джавы, а для чего-то посерьёзнее есть RxJava. Это как с js-ом. Ща есть Промисы, но они совершенно кошмарны и бесполезны на крупных проектах и все всё равно пользуются де факто RxJs либой. Да и в целом реализация там довольно примитивная, просто огромное количество операндов из коробки + пара полезных фичей :buba:

Поделиться сообщением


Ссылка на сообщение

RxJava древняя хуйня, реактор лучше.

iMbanana понравилось это

Поделиться сообщением


Ссылка на сообщение

уважаемые, а кто может объяснить

вот вы решаете там задачки, какие-то коды, бд

вот со стороны смотришь и буд-то какие-то крупицы в море

какое практическое применение вашему коду, для чего оно служит

как много людей работает над каким-нибудь средним проектом (просто в голове картинка сложится не может)

что такое "средний проект" ? ну у нас средний проект - это 3-6 разработчиков. вместе со всеми тестерами аналитиками и менеджерами - человек 9-15. и что такое проект. есть проект "фича на странице поисковой выдаче" а есть проект "нетфликс"

практическое применение - блять любая штука в айти или в электронике которую ты наблюдаешь. вообще не понимаю про что спрашиваешь.

про крупицы вообще не понял что значит

 

давай конкретнее вопрос формулируй


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

ну вот я пилю qa утилитки в виде библиотек и попутно пишу mvp для тостиров + пара монолитных фреймворков для тестинга продукта
в кор джаву иду только если надо очень сделать красиво и четко, иначе все оборачивается сторонними либами (вавр, спринг темплейты, апачи всякие)
стараюсь в мейнстрим (лол блять) юзать функ интерфейсы, дженерики и прочую лабуду ждк8
при этом для меня rxjava что-то не понятное (хотя код прочесть могу и понять что делается) изза того, что нет применения у меня и нет практики
то есть есть условные аскмич или джаст дуит которые больше меня шарят в тонкостях джавки
те же паттерны и алгоритмы лол в qa юзается 2-3 штуки и этого достаточно
плюс дроч с environment - настройка пайплайна, докеры (изучил базу - для меня и нужд достаточно), etc

всякими оптимизхациями БД и планов запросов не занимаюсь  :trollface: 
производительность кода не профилирую  :trollface: 
тостиры не люди, хотя если надо будет перекатиться в джава макаку средней руки - я пойду и изучу что надо (щас вон по спрингу курсы прохожу)


:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение

ладно +- понятно

а вот ещё крч, когда только начинаешь интересоваться чем-то

пиздец много названий новых именно в плане новых утилит там всяких 

реально приходится с дохуя чем работать?

ну просто вот я смотрел про фроненд там максимально понятно -  ксс хтмл, все иди учи

а начинаешь читать про другие языки там блять охуеешь  :lol:  :lol:


VyMEtE8XtOI.jpg

  лучшая цитата финта+жизненная

XbkBCDXetHY.jpg

Поделиться сообщением


Ссылка на сообщение

Язык/технология это вершина айсберга


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.
 

Поделиться сообщением


Ссылка на сообщение

ладно +- понятно

а вот ещё крч, когда только начинаешь интересоваться чем-то

пиздец много названий новых именно в плане новых утилит там всяких 

реально приходится с дохуя чем работать?

ну просто вот я смотрел про фроненд там максимально понятно -  ксс хтмл, все иди учи

а начинаешь читать про другие языки там блять охуеешь  :lol:  :lol:

ты заблуждаешься, думая что во френтенде названий меньше, чем в бекенде или в базах данных

 

так в этом и смысл процесса обучения:

это как разведывать карту в героях 3, изначально нихуя не видно и непонятно

там в подзорную трубу посмотрел, там посмотрел

там в подземелье спустился

итд...


[14:22:31] Сиэль: oh uj eti imbanani

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...