Через сколько недель владения Андроидом можно будет считать объективной точкой зрения признание его сильных недостатков на фоне iOS?
Все больше недоволен AWS-лямбдами. Причин много — и долгий старт, и неестественность сборки бандлов для node.js, и вендор-лок, и общее ощущение связанности по рукам и ногам. Простой пример — на дворе май, но AWS все ещё предлагает только node.js 14. Сколько лет прошло (и сколько пройдет), но нет милей сервачка на express/fastify для node.js-разработчика. Будьте проще и люди к вам потянутся.
Вообще собирался сделать по этому поводу доклад, но какие сейчас доклады.
Вообще собирался сделать по этому поводу доклад, но какие сейчас доклады.
👍3
Одним из важнейших навыков разработчика я считаю привычку писать тесты на обнаруженные QA баги.
- обнаружен баг
- дописан тест на сценарий (красный)
- запилен фикс
- тест позеленел
- релиз
Обычно при хорошем тестовом покрытии всплывают только самые хитровывернутые баги, завязанные на корректности бизнес-сценариев в краевых случаях.
- обнаружен баг
- дописан тест на сценарий (красный)
- запилен фикс
- тест позеленел
- релиз
Обычно при хорошем тестовом покрытии всплывают только самые хитровывернутые баги, завязанные на корректности бизнес-сценариев в краевых случаях.
👍9
Не выдержал сычевать-горевать, взял билеты на Dump. Попробую поискать новую жизненную цель, да и в целом оценить, как ощущают себя другие разрабы, что думают. Так что 27 мая в Екатеринбурге. Может голова хоть болеть перестанет на пару дней.
👍4
Media is too big
VIEW IN TELEGRAM
Потрясающая штука шагает (именно шагает, посмотрите на x2) за окном —сваевдавливающая установка. Почти бесшумно загоняет сваи в грунт, никакой долбёжки, никаких вибро-нагрузок на соседние дома.
В бытность мою разработчиком геофизического оборудования мы использовали полную противоположность этой машине — самоходные вибраторы, которые долбили бетонной плитой землю со страшной силой. Но только там, где нельзя было просто взорвать тротиловую шашку в скважине.
В бытность мою разработчиком геофизического оборудования мы использовали полную противоположность этой машине — самоходные вибраторы, которые долбили бетонной плитой землю со страшной силой. Но только там, где нельзя было просто взорвать тротиловую шашку в скважине.
Можно долго спорить, что лучше — веб или нативка. Сам я безумно люблю хорошие нативные приложения на iOS и macOS (и с удивлением смотрю на качество приложений в экосистеме Android). Одновременно испытываю боль от невозможности релизить нативку каждый день и гарантировать наличие свежей версии у всех клиентов. Но вот есть одно важное «но», которое не затронул Артём и которое является сейчас основополагающим при обосновании необходимости иметь максимально полноценную веб-версию (привет тебе, Сбер, «забывший» про СБП на вебе). И это «но» прекрасно ощутили на себе российские санкционные банки и их дочки (а ещё раньше ощутила оппозиция) — веб является сейчас единственной независимой платформой, ограничить которую возможно только на сетевом уровне.
Так что, при всей своей безумной любви к идеальным нативным приложениям, выверенным до дюйма по гайдлайнам платформы — я двумя руками голосую за развитие веба.
Так что, при всей своей безумной любви к идеальным нативным приложениям, выверенным до дюйма по гайдлайнам платформы — я двумя руками голосую за развитие веба.
Telegram
artalog
Архитектура веба
В комментариях к этому посту Никиты Прокопова опять начался дискурс об ошибочном применении веба (точнее браузерных технологий) для написания приложений. Мол, только нативные технологии, только хардкор, только так можно контролировать перф…
В комментариях к этому посту Никиты Прокопова опять начался дискурс об ошибочном применении веба (точнее браузерных технологий) для написания приложений. Мол, только нативные технологии, только хардкор, только так можно контролировать перф…
👍5
Не прошло и года от релиза LTS node.js 16 как она стала доступна в AWS-лямбдах. Трижды вот подумаешь — а оправдан ли этот вендор-лок ради обманчивой простоты лямбд?
Amazon
Node.js 16.x runtime now available in AWS Lambda | Amazon Web Services
This post is written by Dan Fox, Principal Specialist Solutions Architect, Serverless. You can now develop AWS Lambda functions using the Node.js 16 runtime. This version is in active LTS status and considered ready for general use. To use this new version…
Предварительно в августе вернусь к докладам (если конечно мир не станет ещё хуже). План хорошенько поругать AWS Lambda. Да и в общем-то любые лямбды. Не совершайте ошибку, лучше Express/Fastify пока ничего нам для node.js не сделали.
🔥1
Обожаю когда с очередным обновлением какой-нибудь библиотеки прилетает
unknown там, где был any. Прямо вскрытый нарыв. И больно и сказать нечего против правды.😢2
Позвали выступить в Ленинке с лекцией (под запись) для библиотекарей всей страны. Рассказать, что такое IT и какие книги и сайты читателям советовать, которые решили в то самое IT погрузиться. Сказать, что я польщён — ничего не сказать.
Все не зря!
Все не зря!
❤5
Выдался свободный вечер перед Dump — сгонял посмотреть на творение Нормана Фостера для РМК. Очень круто и безумно жалко, что в ближайшие годы нам такие проекты от западных архитекторов не видать как своих ушей.
❤9
Полный зал в бэкенде. Спикер из Марсиан «Кто ещё на Руби пишет?» В зале 0 рук. «Да ладно :( )»
😁4👍1
.net разработчик убеждал меня, что handler лучше сервиса, потому что handler всегда принимает на вход объект, а добавление параметра в публичный сервис это боль, ломается сигнатура по всей кодовой базе. Что же, очень жаль ребят, что им приходится создавать класс для объекта входящих параметров 😄 (Сравниваем с нашим, джаваскриптовым копеечным созданием объекта через литерал)
С другой стороны они могут делать (и делают) честный DI на абстракциях, так что туше.
С другой стороны они могут делать (и делают) честный DI на абстракциях, так что туше.
Тут Артём развивает мысль, что оптимизации зачастую это попытка лечить последствия, а не причины. Если бы писали нормально, то никакие супер-пупер кэши и не понадобились бы (а как мы помним, кэши это вторая главная проблема программирования).
А вот вам интересный факт — декларативное программирование позволяет отдать оптимизации на откуп интерпретатору/компилятору в наилучшем виде. Что сейчас пытается сделать условный V8? Он пытается понять, что за ерунду вы написали в императивном коде, вычленить эвристикой знакомые паттерны и применить встроенные оптимизации. Отсюда возникают советы «не пытайтесь писать оптимально, пытайтесь писать понятно для интерпретатора. Используйте самые свежие инструкции ECMAScript потому что они упрощают чтение кода движком. Не основывайте код на знаниях внутренней работы движка — завтра она может изменится и все оптимизации рухнут» И так далее. В декларативном же программировании мы вообще не говорим КАК выполнить нашу задачу, мы говорим ЧТО мы хотим сделать. И дальше движок сам решает, как он будет оптимизировать этот наш запрос. Никакие эвристики, чтобы понять что мы хотели тут сделать уже не нужны — движок изначально знает, что это за инструкции и как с ними поступить.
И вот потому декларативные CSS и HTML выполняются браузером молниеносно, а от императивного динамического рендера реакта да с «классическим» css-in-js меняющим параметры в лоб ноут орёт кулером и жрёт батарею как не в себя. Потому что в декларативном программировании, мы говорим «Эй браузер, поменяй у всех неактивных кнопок цвет на серый». И браузер прекрасно знает как это сделать без квадратичной сложности.
А вот вам интересный факт — декларативное программирование позволяет отдать оптимизации на откуп интерпретатору/компилятору в наилучшем виде. Что сейчас пытается сделать условный V8? Он пытается понять, что за ерунду вы написали в императивном коде, вычленить эвристикой знакомые паттерны и применить встроенные оптимизации. Отсюда возникают советы «не пытайтесь писать оптимально, пытайтесь писать понятно для интерпретатора. Используйте самые свежие инструкции ECMAScript потому что они упрощают чтение кода движком. Не основывайте код на знаниях внутренней работы движка — завтра она может изменится и все оптимизации рухнут» И так далее. В декларативном же программировании мы вообще не говорим КАК выполнить нашу задачу, мы говорим ЧТО мы хотим сделать. И дальше движок сам решает, как он будет оптимизировать этот наш запрос. Никакие эвристики, чтобы понять что мы хотели тут сделать уже не нужны — движок изначально знает, что это за инструкции и как с ними поступить.
И вот потому декларативные CSS и HTML выполняются браузером молниеносно, а от императивного динамического рендера реакта да с «классическим» css-in-js меняющим параметры в лоб ноут орёт кулером и жрёт батарею как не в себя. Потому что в декларативном программировании, мы говорим «Эй браузер, поменяй у всех неактивных кнопок цвет на серый». И браузер прекрасно знает как это сделать без квадратичной сложности.
Telegram
artalog
Смерть от тысячи порезов кеширования
Уже давно в разных чатиках @xbgnx высказывает мысль о том что реакт и все остальные библиотеки для рендеринга медленные не потому что в них не достаточно оптимизаций, а потому что их там слишком много и они в своей сумме…
Уже давно в разных чатиках @xbgnx высказывает мысль о том что реакт и все остальные библиотеки для рендеринга медленные не потому что в них не достаточно оптимизаций, а потому что их там слишком много и они в своей сумме…
👍4