Как стать автором
Обновить
4
0

Материаловедение, Dart/Flutter, Python

Отправить сообщение

Встроенные коллекции Dart: как реализовать в коде основные структуры данных. Глава из книги

Уровень сложностиСредний
Время на прочтение15 мин
Количество просмотров1.6K

Привет, Хабр! Меня зовут Станислав Чернышев, я автор книги «Основы Dart», телеграм-канала MADTeacher и доцент кафедры прикладной информатики в Санкт-Петербургском государственном университете аэрокосмического приборостроения. 

При поддержке компании Friflex буквально на днях вышла печатная версия моей книги. В ней есть раздел о нюансах изоляционной модели памяти в Dart, сквозной проект на пять глав (игра «Крестики-Нолики») и две дополнительные главы: «Алгоритмы, структуры данных на Dart и встроенные коллекции» и «Интероперабельность в Dart (Dart FFI)».

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

Читать далее
Всего голосов 8: ↑7 и ↓1+8
Комментарии2

Создаем Flutter-приложение для оплаты через СБП без натива

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров3.7K

Всем привет! Меня зовут Мурат Насиров, я Flutter-разработчик в Friflex. Мы разрабатываем мобильные приложения для бизнеса и специализируемся на Flutter. 

Ранее я поделился своим опытом, как интегрировать СБП при помощи нативных решений НСПК (Национальной системы платежных карт). В этой статье рассказываю, как можно сделать это при помощи Flutter-приложения и двух пакетов из pub.dev.

Читать далее
Всего голосов 5: ↑5 и ↓0+5
Комментарии8

Отвлекать программистов от работы — гораздо страшнее, чем кажется на первый взгляд

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров39K

Я всегда знал, что если отвлекать человека во время работы, это вредит делу. Но до конца не осознавал, насколько это серьёзная проблема. Особенно для разработчиков ПО.

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

Читать далее
Всего голосов 54: ↑46 и ↓8+44
Комментарии85

CTF — для начинающих

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров3.6K

CTF «захватить флаг» - секретный код, который в реальной жизни мог бы хранить ценные данные. Побеждает тот, кто быстрее и эффективнее решит задачи, демонстрируя свои навыки.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии2

Крекер. SQL инъекции. Уязвимость LFI

Время на прочтение4 мин
Количество просмотров3.4K

Введение

Рады вновь приветствовать дорогих читателей! Начиная с этой статьи мы запускаем новую рубрику "Крекер", в серии этих статьей мы будем разбирать различные уязвимости, их эксплуатацию. В этой вступительной статье мы разберём уязвимости SQL, LFI, ADB и инструменты их эксплуатации.

Дисклеймер: Все данные, предоставленные в статье, взяты из открытых источников. Не призывают к действию и являются только лишь данными для ознакомления, и изучения механизмов используемых технологий.

Читать далее
Всего голосов 3: ↑2 и ↓1+1
Комментарии1

От ручной работы к автоматизации: наш путь к идеальной доставке сборок Flutter

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров1.1K

Привет! Мы занимаемся созданием мобильных приложений, а также поддержкой и развитием уже существующих проектов.

Одной из ключевых задач в работе является быстрая и надежная доставка сборок приложений тестировщикам и клиентам. Мы стремимся автоматизировать этот процесс, чтобы минимизировать ручные действия и ускорить время отклика. Ведь зачем тратить время на рутину, если можно посвятить его решению действительно интересных задач?

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии3

Тик-так: Timer vs Ticker для анимаций

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров710

Всем привет! Это статья для тех, кто увлекается Flutter-разработкой. А я Николай —человек, который рулит этим направлением в Mad Brains. Поговорим о Timer и Ticker?

Итак, представим, что нам нужно построить экран, в котором будет отображаться текущее Unix-время в миллисекундах. Давайте сначала сделаем верстку без анимации.

Читать далее
Всего голосов 2: ↑2 и ↓0+4
Комментарии0

Вы пожалеете об использовании естественных ключей

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров20K

Хотя я живу в Копенгагене и в основном перемещаюсь по городу на велосипеде, у меня есть и машина, чтобы добираться до других частей страны. В Дании автомобили через каждые два года проходят обязательный официальный осмотр; я проходил его за свою жизнь несколько раз. Несколько лет назад механик, выполнявший осмотр, сообщил мне о том, что у машины неправильный номер кузова.

Я немного занервничал, потому что покупал машину с рук, и внезапно задался вопросом, действительно ли всё так, как я думал. Неужели я непреднамеренно купил краденную машину?

Но механик просто подошёл к своему компьютеру, чтобы исправить ошибку. И тогда у меня возникло совершенно другое опасение. Когда программируешь больше десятка лет, то учишься предвидеть разные типичные режимы отказа. Так как номер кузова — очевидный кандидат на должность естественного ключа, я заранее предвидел, что изменение этого номера будет или невозможно, или приведёт ко всевозможным каскадным эффектам, и в конечном итоге к уничтожению официальных записей, больше не признающих, что машина принадлежит мне.

Читать далее
Всего голосов 45: ↑42 и ↓3+55
Комментарии126

Мотивация — тайм-менеджмент

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров29K

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

Читать далее
Всего голосов 27: ↑22 и ↓5+18
Комментарии2

Собственные проекты, углубленная практика алгоритмов и другое: поднимаем навыки программирования на новый уровень

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров5.1K

Неважно, новичок ли вы, отлаживающий вашу первую программу «Hello World», или опытный инженер, — у каждого из нас всегда есть возможность улучшить свои навыки. Александр Шелютин, Data Architect в KarmaHQ, расскажет о разнице между тем, как просто заставить что-то работать, и написанием действительно хорошего кода.

Читать далее
Всего голосов 7: ↑4 и ↓3+3
Комментарии0

Людвиг. Победи прокрастинацию. Как перестать откладывать дела на завтра (инструменты из книги)

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров29K

Одна из самых практичных книг по тайм-менеджменту. Помогает в борьбе с откладыванием дел на потом и в более стоящем использовании своего времени. Расскажу про 3 инструмента, которые взял в работу.

Читать далее
Всего голосов 10: ↑8 и ↓2+9
Комментарии20

Реактивные формы во Flutter: как делать формы с меньшими трудозатратами

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров4.4K

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

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии4

Я до последнего буду защищать сильную статическую типизацию

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров24K

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

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

Читать далее
Всего голосов 61: ↑55 и ↓6+65
Комментарии135

Глубокое погружение в папку .idea в Android Studio

Время на прочтение3 мин
Количество просмотров18K

Глубокое погружение в папку .idea в Android Studio


Как и для многих разработчиков, папка .idea в Android Studio для меня всегда была, как черный ящик: я знал, что она существует, я знал, что её всегда добавляют в .gitignore, но я решил узнать, для чего же там нужны те или иные файлы и папки, чтобы у меня была возможность обрабатывать иногда возникающие git-конфликты, и для того, чтобы точно знать, какой файл можно безопасно добавить в .gitignore, а какой нет.


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

Читать дальше →
Всего голосов 35: ↑30 и ↓5+25
Комментарии9

Установка Firefox 116 под Windows 7

Время на прочтение1 мин
Количество просмотров20K
Тема навеяна публикацией «Пиратим» Google Chrome для Microsoft Windows 7.

Дурной пример заразителен, и одновременно с Google Mozilla объявила, что очередная версия её браузера — номер 116 — под Windows 7 работать не будет. Если вы попытаетесь скачать и запустить инсталлятор FF под этой ОС, он пожалуется на необходимость обновления. Можно ли это как-то предотвратить? И насколько сложно это сделать по сравнению с Google Chrome? Судите сами.
Читать дальше →
Всего голосов 48: ↑45 и ↓3+58
Комментарии115

SharedPreferences отличное хранилище для вашего flutter-приложения. Но есть нюансы…

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров6.4K

Вы задаёте себе вопрос, какое хранилище данных выбрать для flutter-приложения? Отлично, тогда продемонстрирую, каким образом можно воспользоваться key-value решением, используя два метода set() и get() для всех типов данных*, и не разбрасываться ключами по всему коду.

Данный способ уже используется в приложении Weather Today.

Что там под звёздочкой
Всего голосов 4: ↑4 и ↓0+4
Комментарии5

«Пиратим» Google Chrome для Microsoft Windows 7

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров53K

Привет, Хабр!
Возможно, здесь стоило написать какое-то длинное лирическое вступление или порассуждать о морально-этической части «пиратства» продукции крупнейших корпораций, ну или хотя бы просто сказать что это моя первая статья в Вашем сообществе. Но, к сожалению, даже не задумывался над всем этим и поэтому переедем сразу к делу и по существу.

На абордаж!

Читать далее
Всего голосов 107: ↑95 и ↓12+107
Комментарии123

Неразрешимые проблемы разработки

Время на прочтение3 мин
Количество просмотров10K


Сроки


В разработке ПО существует неразрешимое противоречие — это оценка сроков.


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


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


  • новая функциональность нетипична
  • есть зависимости на другие команды
  • будет задействована новая технология
  • ТЗ надо сильно уточнять
  • надо разобраться в логике легаси-кода

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

Читать дальше →
Всего голосов 40: ↑37 и ↓3+43
Комментарии128

Почему разрабатывать ПО действительно сложно?

Время на прочтение5 мин
Количество просмотров4.3K

Давайте начнем с тривиального, но неоспоримого факта: программное обеспечение постоянно развивается – устаревает и обновляется, видоизменяется и дает дорогу новому.

Заметным исключением является наборная система TeX, разработанная Дональдом Э. Кнутом (D.E.Knuth). Предполагалось, что эта система должна быть совершенной, но даже в ней можно найти свои недочеты. Тем не менее, это уже отдельная тема для другой статьи.

Читать далее
Всего голосов 17: ↑15 и ↓2+16
Комментарии11

Каким образом спецслужбы отслеживают пользователей мессенджеров (без доступа к устройству и ключам)

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров58K

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

Читать далее
Всего голосов 53: ↑51 и ↓2+65
Комментарии177

Информация

В рейтинге
4 179-й
Откуда
Красноярск, Красноярский край, Россия
Дата рождения
Зарегистрирован
Активность