fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

По-явански

По-явански

رفتن به کانال در Telegram

Пишу про Java-технологии, Kotlin и Android-разработку. Редко но метко. Кодревью: http://javanese.online/%D1%80%D0%B0%D0%B7%D0%B1%D0%BE%D1%80_%D0%BA%D0%BE%D0%B4%D0%B0/ Поболтать IRL: @coffeeCodeEverywhere Автор: @Harmonizr Менеджер по рекламе: /dev/null

نمایش بیشتر
823
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-17 روز
+530 روز
آرشیو پست ها
Массив пар или пара массивов? В ситуации, когда нужно хранить множество пар, кортежей, точек и т. п., есть несколько решений.
Массив пар или пара массивов? В ситуации, когда нужно хранить множество пар, кортежей, точек и т. п., есть несколько решений. В интернете встречал информацию о том, что в JVM наивный вариант (1) медленнее, чем «вывернутый наизнанку» вариант (2). Это правда: во втором варианте данные лежат плотнее, больше шансов попадания в кэши процессора. Но я бы предложил вариант (3). Именно так массив структур лежал бы в С или Rust. Тут и память сэкономлена, и прыжков по указателям меньше.

you.getСпина().setColor(0xFF_FFFFFF);

«Java многословная» — говорили они
«Java многословная» — говорили они

Head First Kotlin Бегло просмотрел эту книжку. Есть, конечно, откровенные ляпы вроде «Char variables are used for single char
Head First Kotlin Бегло просмотрел эту книжку. Есть, конечно, откровенные ляпы вроде «Char variables are used for single characters»; «In Kotlin, numbers are objects, and the variable holds a reference to the object, not the object itself» или arrayOf(1, 2, 3), но в целом вполне хорошо. Отличная аналогия между переменными и стаканами, размерностью и размером стакана. Хорошо разъясняется тема передачи аргументов в функции, раскрыто много базовых тем. «Питер», 2020, перевел с английского Е. Матвеев Перевод с трудом дотягивает по качеству до машинного. «Напоследок мы расскажем, почему объекты играют такую важную роль в программировании Kotlin». «Вы узнаете, как писать компактные функции единичных выражений». Все слова переведены (лексика потерялась, дата-классы стали классами данных), а структура предложений осталась (т. н. «калька»).

Итераторы В джавовых коллекциях «сколько-нибудь элементов типа T» выражается типом Iterable<T>. Но сейчас есть java.util.stream.Stream и kotlin.Sequence, которые не наследуют Iterable. Причём не потому что авторы врединки, а потому что итераблы многоразовые, а стримы с сиквенсами одноразовые и их не стоит смешивать. Также стримы и сиквенсы не являются подтипами друг друга, потому что существуют параллельно — в Java 1.8+ и в Kotlin, который совместим с 1.6. Единственное, что их объединяет, — это старые добрые итераторы. Если какому-нибудь методу нужно единожды вычитать «сколько-нибудь элементов типа T», можно принимать непосредственно Iterator<T>. Это сделает код совместимым и с итераблами, и с коллекциями, и со стримами, и с сиквенсами. Более того, ничто не мешает прямо на месте создать new Iterator<T>() { … } / iterator { yield } и нагенерировать данных на лету.

Транскрипт доклада Егора Бугаенко о том, как нужно собеседовать, а как — нет. Очень перекликается с тем, что я обычно говорю о задачах на алгоритмы и подготовке к собесам. Кстати, мы на @spbpeerlab проводим тренировочные собеседования для всех желающих.

«Какую книгу почитать новичку для вкатывания с нуля?» Пока не знаю. Зато точно знаю, какую читать не стоит.

«Я считаю, что бывают программы, которые написаны» Мне тоже очень хочется верить Тагиру, что бывают :) https://youtu.be/FTQUXQsSQ_Y?t=1451

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

Процессы и потоки Наконец порезал видео с весенней Android Academy. Основы многопоточки в Java и Android. youtu.be/TWlhCraPd3Q

На DevFest буду с более полной версией. https://devfest.space/schedule/2019-11-23?sessionId=kotlin_antipattern

Листы против массивов Везде рекомендуют использовать в публичных API коллекции, а не массивы. И я с этим согласен. Но мне всегда очень хотелось минимизировать количество обёрток, объектов в памяти, переходов по указателям и т. п.. Kotlin-MPP Collection utils — горстка inline-классов как раз для этих целей.

Спасибо @egroden за внимательность! Регистрация не через приложение для iOS — тут: https://cocoaheads-spb.timepad.ru/event/1113307/

15 ноября пройдет петербургская встреча CocoaHeads на площадке от Revolut. В программе: – Sign In with Apple (client + server) Пётр Третьяков, Redmadrobot – Рефакторинг в условиях быстрорастущего стартапа Георгий Фесенко, Revolut – Эволюция антипаттернов в Java и Kotlin Михаил Горюнов, Яндекс Афтерпати, викторина и тёплая атмосфера практически в сердце Петербурга. https://apps.apple.com/ru/app/cocoaheads-russia/id1257534277

Теперь то же самое, только вживую:

«Скажите этому чуваку, что у него эхо!» Казалось, всё должно пройти хорошо: саундчек был, настройки шумоподавления и громкости мы выбрали. Я открыл Impress на обоих экранах: один стримил, на втором видел следующий слайд. На телефоне открыл YouTube, чтобы поглядывать в чат, в Telegram держал связь с организаторами. Оказывается, чат в YouTube не работает на телефоне. Он остаётся белым полотном, и по нему не угадать, пустой он или сломался. Вот такой получился полезный опыт тестирования в проде. Приношу всем извинения за эхо и паузы в попытке всё исправить.

Стрим через пять минут. https://youtu.be/4-OOYlkf6l0

10 ноября(воскресенье) приглашаем всех желающих на бесплатный онлайн-доклад практикующего Android-разработчика Михаила Горюно
10 ноября(воскресенье) приглашаем всех желающих на бесплатный онлайн-доклад практикующего Android-разработчика Михаила Горюнова (github.com/Miha-x64, twitter.com/Miha_x64, @javanese_online) 💬Тема доклада: «Эволюция антипаттернов в Java и Kotlin». Приходите послушать и прокачать свой skill.💪🏼 Будет интересно и полезно! ——————————————— ❗️Save the date! 10 ноября в 19 по мск❗️ ——————————————— Трансляция состоится в ⏰19:00 по московскому времени на нашем Youtube-канале https://www.youtube.com/c/SkillBranch. Присоединяйся!🏃🏻‍♂️💨

Основы?.программирования?.на?.Kotlin!! Мне прислали проект на ревью и попросили пояснить, правильно ли реализованы MVP и маппинг. Отвечаю: нет, хороший маппер — выпиленный маппер, то же касается и хорошего презентера. Так что я просто разобрал встреченные в проекте ошибки. Напомню, любой желающий может прислать свой код на ревью. Если пример окажется интересным и нетипичным, я постараюсь его разобрать.