И судя по всему эти топовые асусы ещё и работают хуже. 2011 на моей памяти повис один раз лет за 5 работы, он может от нагрузки начать тормозить, но никак не зависать. А асусы виснут постоянно (и даже топовые зависали).
Совсем современные топовые асусы не знаю, но пробовать уже точно никогда не буду.
С чего это вдруг плагины прям вот должны иметь возможность писаться на разных языках? При такой формулировке особо ничего и не сделаешь. Плагин зачастую должен иметь общаться с сервисами основной программы, как это в вашем варианте?
Кошмар, ужас. Зачем так делать? Зачем переносить проверку типов из compile-time в run-time? Почему бы не использовать специализированные интерфейсы? Шаблоны нормально позволяют это сделать. Делал работу с плагинами, при этом не просто так, а с IoC контейнером в добавок. Всё работает, всё строго типизировано, проверка ошибок в compile-time.
После последнего «радикального улучшения» Скайп стал работать вообще ужасно. Особенно мне нравится «радикальное улучшение», когда кто-то добавляет меня в контакты, мне не приходит никаких уведомлений, хотя сообщение приходит, в итоге пока не открою скайп, ничего не узнаю.
Не только же хромом единым. В Edge reduce не самый медленный, а вот for..of на удивление у меня тормозит знатно. В FF последнем разрыв уже не такой большой.
Конкретно работа с сетью, с файлами находится в недрах реализации мультиплексирования неблокируемого ввода-вывода, этим по сути заведует ОС. Подробнее можно поглядеть для win — IOCP, для Linux — epoll, для BSD — kqueue, либо библиотеки более высокого уровня — libuv, libev, libevent, boost::asio.
Где-то за кулисами может и быть и ожидание в отдельном потоке (на зачастую это не самое хорошее решение), либо одним потоком можно опрашивать состояние большого кол-ва задач (получше, но всё же всё равно плохо).
Я понимаю, я же не говорю, что надо идеально такой же, интересна подобная форма, т.к. он держится одной рукой и ей же удобно листается. С другими у меня так не получается.
Оникс, да никогда и ни за что не берите. Пользовался я их поделиями, после того как они переехали на андроид, стало всё очень плохо. Очень быстро садится, если полностью выключать, то очень медленный запуск. Сам интерфейс знатно тормозит. Библиотека очень медленно сканирует книги и не умеет работать в фоне, если у вас 1000 книг, то будет долго. Если как у меня, порядка 12 тысяч, то вообще пользоваться невозможно, будет только файловый менеджер без возможностей поиска. Приложения из маркета использовать вы всё равно никакие не будете. Единственное, что вы сможете, так это поставить другую читалку.
Но у покетов куда более интуитивный интерфейс, CoolReader можно поставить вместо стандартной читалки, хотя надо посмотреть сначала, замарочился ли кто с поддержкой конкретной модели читалки.
Когда же уже выпустите хорошее обновление в форм-факторе 360го, с подсветкой хотя бы и нормальным экраном? Таскать с собой его очень удобно было. Мелкий, удобный, заточен, чтобы держать одной рукой. Увы, что выпускается сейчас не имеет и близкой эргономики.
Я не знаю Kotlin вообще. Но далее следует общее опредление, свойственное всем известным мне реализациям.
Видимо потому что автор вообще не знает разницу между асинхронным и многопоточным кодом.
Видимо потому что корутины не являются потоками, от слова вообще. Корутины — синтаксический сахар. Корутины не являются многозадачными, вообще и никак. Корутины исполняются строго в вызываемом потоке, просто асинхронно и не более. Они не могут вызываться в других потоках, чтобы избежать проблем с хранимыми данными на стеке, которые захватываются контекстом корутин.
Как оно выглядит для компилятора: код корутин разворачивается во время компиляции на несколько отдельных блоков кода. Которые будут вызваны по мере выполнения асинхронных задач. При этом сохраняется последовательность кода. Просто за программиста убирается ад колбэков.
Я почему-то слегка уверен, даже если будут все доказательсва, то скажут:
— Здесь непонятно, тут возможно у вас вообще не было интернета
— Это у вас провайдер плохо работает
— Это у вас вирус на компьютере
и т.д.
Ребята, я понимаю, вы знаете что такое Внедрение зависимостей, но как-то принята в русских статьях аббревиатура DI, она не переводится никем в русских ресурсах. Или хотя бы дайте понятную расшифровку аббревиатуры. А то сложно было поять, что же такое ВЗ.
Всё зависит от сложности кода, но исходя из данного примера, будет быстрее переписать код и сделать для него тесты, чем извращаться с тестами для данного примера.
1. Это каким интересно образом?
Дальше смысла писать нет. Статья про тестирование нетестируемого кода, просто за подобный код надо руки отрывать, а не предлагать мокать то, к чему нет доступа.
Совсем современные топовые асусы не знаю, но пробовать уже точно никогда не буду.
Как игровая она вообще никакая, опять же графические пакеты не её конёк, вообще, а для офисной работы и встроенной хватит без каких либо проблем.
P.S. Нда, не посмотрел сразу сравнение, данный радеон примерно на уровне.
Где-то за кулисами может и быть и ожидание в отдельном потоке (на зачастую это не самое хорошее решение), либо одним потоком можно опрашивать состояние большого кол-ва задач (получше, но всё же всё равно плохо).
Сколько новый разработчик будет искать почему так карёжатся ссылки? И хоть это гибко, я против подобных решений.
Я конечно понимаю стандартное поведение для NgForm, но вот своё подобное всё же я не стал бы делать.
Но у покетов куда более интуитивный интерфейс, CoolReader можно поставить вместо стандартной читалки, хотя надо посмотреть сначала, замарочился ли кто с поддержкой конкретной модели читалки.
Видимо потому что автор вообще не знает разницу между асинхронным и многопоточным кодом.
Видимо потому что корутины не являются потоками, от слова вообще. Корутины — синтаксический сахар. Корутины не являются многозадачными, вообще и никак. Корутины исполняются строго в вызываемом потоке, просто асинхронно и не более. Они не могут вызываться в других потоках, чтобы избежать проблем с хранимыми данными на стеке, которые захватываются контекстом корутин.
Как оно выглядит для компилятора: код корутин разворачивается во время компиляции на несколько отдельных блоков кода. Которые будут вызваны по мере выполнения асинхронных задач. При этом сохраняется последовательность кода. Просто за программиста убирается ад колбэков.
— Здесь непонятно, тут возможно у вас вообще не было интернета
— Это у вас провайдер плохо работает
— Это у вас вирус на компьютере
и т.д.
Дальше смысла писать нет. Статья про тестирование нетестируемого кода, просто за подобный код надо руки отрывать, а не предлагать мокать то, к чему нет доступа.