На Хабре неоднократно в комментариях звучало мнение, что Россия впереди планеты всей по онлайн‑сервисам. Мол, у нас и госуслуги, и финтех, и такси, и доставки — все на высочайшем уровне, а в остальных странах, а особенно в отсталой Европе бедные бюргеры до сих пор стоят в многочасовых очередях, заполняют вручную тонны бумажек и ждут в очередях на кассах чтобы сделать банковский перевод, а курьер не привезет им ночью смузи в течении получаса после заказа. Давайте разбираться, так это или нет.
Software Developer
Как я победил хаос умных устройств, или Цифровая трансформация жилого пространства
Несколько лет назад я увлекся проектированием системы умного дома и создал для себя удобное пространство, в котором не нужно открывать дверь курьеру или включать настольную лампу для работы. Покажу, что подключил и как работает система. Сразу спойлер: умный дом не зависит от наличия интернета или облачных сервисов.
Автоматизированное тестирование на Flutter: нативные тесты или кроссплатформенные решения
Стабильный пакет для работы с E2E и Widget-тестами был включен во Flutter-фреймворк не так давно — в начале декабря 2020 года. Разбираемся в нюансах автотестирования мобильных приложений в рамках Flutter-фреймворка: плюсы, минусы, костыли.
makesure — make с человеческим лицом
Многие ли из вас используют всевозможные вспомогательные shell-скрипты в своих проектах? Это также могут быть Python или Perl скрипты. Обычно такие скрипты используются на этапе сборки или для других задач автоматизации проекта.
Примерами таких задач могут служить:
- вспомогательные скрипты для Git,
- запуск тестов/линтеров,
- запуск необходимых докер контейнеров,
- запуск БД-миграций,
- собственно, сборка проекта,
- генерация документации,
- автоматизация публикации релизов,
- развертывание и т.д.
Впрочем, часто для подобных целей используют системы сборки.
Make — пожалуй, наиболее известный из подобных инструментов.
Похожий функционал известен разработчикам nodejs и любим ими в виде скриптов в package.json (npm run-scripts). Ветераны Java вспомнят Ant.
Но nodejs/Ant требуют установки, make хоть и способен выполнять функции task runner довольно неудобен в этой роли, будучи на самом деле очень олдскульным build tool со многими вытекающими "особенностями".
А shell-скрипты требуют некоторой системы и неизбежной рутины в написании (обработка аргументов, help-сообщения и т.д.).
Хотя, например, Taskfile представляет прекрасный шаблон для подобных скриптов.
Так и родился makesure.
Elementary: новый взгляд на архитектуру Flutter-приложений
Elementary — это архитектурный пакет, который создали в Surf на основе опыта разработки приложений на Flutter и лучших практик современной разработки.
Решение позволяет чётко разделить слои согласно ответственностям, сделать код прозрачнее, а тестирование проще. На примере реального приложения показываем, как использовать Elementary.
Flutter: автоматизация UI тестирования
Мы — команда мобильного проекта FL.ru. В своей статье хотим познакомить вас с Flutter Driver и рассказать об автоматизации UI тестирования мобильных приложений с помощью данного инструмента.
Dart Code Metrics 4.0: команды, поддержка монорепозиториев и новые правила
В предыдущей статье мы анонсировали Dart Code Metrics — инструмент статического анализа кода. Сегодня я расскажу про новые возможности, которые появились в Dart Code Metrics с выходом очередного мажорного обновления. Поговорим про появление команд, поддержку монорепозиториев, улучшения в интеграции с CI/CD, и, конечно же, про новые правила для анализатора. Теперь у инструмента появился сайт с документацией, его можно найти здесь.
Полезные консольные Linux утилиты
В этой подборке представлены полезные малоизвестные консольные Linux утилиты. В списке не представлены Pentest утилиты, так как у них есть своя подборка.
Осторожно много скриншотов. Добавил до ката утилиту binenv.
binenv — cамая интересная утилита для установки новых популярных программ в linux, но которых нет в пакетном менеджере.
Повышаем качество кода с Dart Code Metrics
Dart Code Metrics — это инструмент статического анализа кода, который позволяет собирать метрики по коду и предоставляет дополнительные правила для анализатора. Основная задача — помогать разработчикам следить за качеством кода и улучшать его. В этой статье мы хотим поделиться возможностями инструмента с сообществом. Он помог нам в Wrike решить часть проблем на фронтенде, и, надеемся, поможет и вам.
Магия асинхронных операций: взгляд изнутри. Future
Бу́дущее — гипотетическая часть линии времени, множество событий, которые ещё не произошли, но могут произойти.
Этот месяц может определённо пройти под девизом "Даёшь асинхронность!", на хабах Dart и Flutter. Неудивительно, ведь асинхронный и реактивный подход являются основой работы языка и фреймворка.
Предлагаю продолжить тему асинхронности, и, через погружение во внутренний мир языка Dart, заглянуть за кулисы реализации, чтобы понять, кто же реально управляет нашим будущим.
Как создать кастомный плагин для Dart-анализатора
Привет! Меня зовут Дима, я frontend-разработчик в компании Wrike. В этой статье я расскажу про то, как написать плагин для анализа кода на Dart. Текст будет полезен тем, кому не хватает текущей функциональности дартового анализатора по статическому анализу или если вам просто захочется попробовать написать простой анализатор самостоятельно.
Как «приручить» консоль, или 5 шагов к жизни с командной строкой
Всем привет! Меня зовут Осип, я Android-разработчик в red_mad_robot и я люблю автоматизировать всё, что автоматизируется. В этом мне помогает консоль, поэтому решил поделиться опытом, как настроить командную оболочку так, чтобы в ней было приятно работать и она ежедневно помогала вам решать задачи.
Статья для тех, кто использует Linux или macOS. Если у вас Windows, вы можете использовать WSL (приравнивается к Ubuntu).
Фантастика 2020 года, которую стоит почитать
Под конец года принято подводить итоги и кажется стоит вспомнить, что же было в этом непростом году хорошего. Например, я читал много отличных книг (что еще делать дома?). Вот немного про самые примечательные из них или, по крайней мере, те, которые сильнее всего запомнились мне.
DartUP 2020: итоги и видеозаписи докладов
Вот и отгремел DartUP 2020! Два дня мы слушали доклады про Dart и Flutter, играли в Code Kombat и Bugz Arena и общались с участниками и спикерами в SpatialChat. Получилось ничуть не менее атмосферно, чем в офлайне. В этой статье мы подведем итоги конференции и поделимся с вами видеозаписями докладов на русском и английском.
Как Uber переписал приложение iOS на Swift
Шёл 2016 год. Трампа ещё не избрали президентом, поэтому движение #DeleteUber пока не началось. Трэвис Каланик оставался гендиром, мы переживали фазу гиперактивного роста с открытием филиалов в других странах, общественные настроения в целом позитивные, все довольны, Uber на высоте.
DartUP 2020: архитектура Dart VM, non-nullability в действии и Flutter для бизнеса
Уже 4 и 5 декабря пройдет DartUP — конференция по Dart и Flutter на русском и английском языках. Обычно в это время мы смотрим площадку, печатаем стикеры и запасаем в офисе коробки со свежеприготовленным Dart-пивом. Но в этом году все будет по-другому. Под катом рассказываем про темы докладов, спикеров и онлайн-активности, которые нас ждут на DartUP 2020.
DartUP 2020: в этом году онлайн и с известными спикерами
4-5 декабря уже в четвертый раз Wrike при поддержке Google проведет DartUP — единственную в России конференцию по Dart и Flutter. Современная реальность внесла коррективы в наши планы, поэтому в этом году DartUP пройдет в онлайн-формате. Это значит, что мы не будем обращать внимание на границы, трудности с логистикой и часовые пояса и позовём самых крутых спикеров, которые поделятся новостями об экосистеме Dart и практическим опытом.
Глубже в дебри ФП
Прежде чем начать, зацените эту красоту! Это — игра "жизнь" на языке APL:
В прошлой статье о функциональном программировании мы обсудили некоторые концепции ФП (впрочем, довольно вольно). В этой статье я бы хотел продолжить раскрывать суть других понятий, не затронутых в первой статье. Все же ФП не ограничивается одними монадами, хотя о них сегодня тоже поговорим.
Впереди вас ждут скандалы, интриги, расследования, моноиды, трансформеры, линзы и прочие полугруппы с комонадами. Заодно попытаемся разобраться, откуда происходят эти странные названия.
Глупость и излишняя уверенность. 13 качеств хорошего руководителя
Я инженер и дизайнер. Мне нравится представляться людям именно так, особенно в Европе. Слово «инженер» там носит интересный налёт загадочности, интеллектуальности и богатства. В общем, очень помогает заводить новых знакомых.
Если копнуть, то в сухом остатке уже не так таинственно. Я просто люблю программировать и рисовать интерфейсы. По-настоящему, очень люблю. На столько, что иногда увлекаюсь и забываю выставлять клиентам счета за это.
А ещё я почти 10 лет руковожу небольшой организацией. Но при этом всегда продолжал программировать и дизайнить как минимум в виде хобби.
Обнаружилась особенность: нельзя одинаково подходить к работе программиста/дизайнера и к работе руководителя, приходится как бы переключать тумблер, перенастраиваться.
В очередной раз планируя проект, поймал себя на мысли «Ну, архитектуру REST API я-то и сам могу сделать. Заодно функциональные требования напишу и нарисую дизайн для MVP. Там же немного совсем». И тут в голове захохотал голос:
— Сказочный ты руководитель, раз самому приходится всё делать.
В общем, ниже привожу чек-лист для себя из будущего, чтобы быстрее переключиться в режим начальника. Надеюсь, кому-то из читателей он тоже окажется полезен. Будет много ссылок на литературу.
Мой топ IT книг из прошлого века, актуальных до сих пор
В этой статье автор предложил написать свои книги, которые относятся к разряду неувядающей классики. Если в оригинальной статье был сделан упор на электронику, то у меня будет упор на разработку программ.
Disclaimer: это мой личный топ из тех книг, которые я лично прочитал, и у которых первое издание было в прошлом веке, даже если она переиздавалась недавно (при условии актуальности именно того издания, которое было в прошлом веке).
В данном топе книги не упорядочены по важности, они все очень хорошие, но есть одна книга, которая равнее других.
Information
- Rating
- Does not participate
- Location
- Россия
- Date of birth
- Registered
- Activity