Pull to refresh
10
0

Моя литера Т стремится к равнозначности линий

Send message

Управление состоянием приложения в Flutter

Reading time5 min
Views21K
Привет, Хабр! Представляю перевод статьи, Let me help you to understand and choose a state management solution for your app, которая попалась мне и заинтересовала в процессе изучения азов управления состоянием во Flutter. Буду рад услышать любую критику касательно данного перевода. В обратных кавычках (``) будут написаны мои личные мысли и пояснения.

Читать дальше →

Про Flutter, кратко: Основы

Reading time12 min
Views356K

Про Flutter, кратко: Основы


После доклада Юры Лучанинова, я решил для себя попробовать Flutter. Чтобы мозг размять, и чтобы было о чем похоливарить с мужиками на кухне. Дело пошло. Я начал смотреть, потом читать, потом писать. И вроде все получается, приложения запускаются, и то что объясняют — понятно, все просто. Но не без “но” — объясняют не все. А поскольку платформа, ЯП, подходы и даже предметная область для меня новые, то подобное вызывает раздражение, ведь у тебя “не запускается”, а ты даже не знаешь что гуглить: Dart/Flutter/Window/Screen/Route/Widget?


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

Читать дальше →

Порхающие* велосипеды. Что делать с сохранением состояния во Flutter?

Reading time9 min
Views11K

(*одно из значений слова flutter — порхать)


Разбираемся, есть ли жизнь сохранение состояния во Flutter-приложении. Что будет, если ОС решит его перезапустить. Куда денется пользовательский ввод и навигация, и как с этим справляться.


Дисклеймеры:


  • для понимания нужно иметь стартовые знания о Flutter;
  • рассуждаю с точки зрения Android, про iOS — это не ко мне;
  • не являюсь специалистом по Flutter/Dart, подхожу с позиции новичка;
  • в некоторых местах опускаю второстепенные моменты (например, реализации вспомогательных функций), найти недостающее можно в полном коде проекта.
Читать дальше →

Асинхронное программирование в Dart (часть 1)

Reading time3 min
Views17K
image

В данной серии статей я не буду касаться азов программирования на самом Dart, а коснусь вопросов асинхронности в Dart.

Библиотеки Dart полны функций, которые возвращают Future или Stream объекты. Эти функции асинхронны.

В документации читаем:

Future — подобен обещанию когда-то в будущем предоставить результат.
Stream — это способ получить последовательность значений, таких как, например, последовательность событий (поток).

Future и Stream входят в библиотеку dart:async, которую можно использовать как в скриптах веб-приложений, так и в скриптах, запускаемых из консоли.

Импортируем библиотеку так:

import 'dart:async';

Читать дальше →

Нейропластичность: как развивать свой мозг после 25 лет

Level of difficultyEasy
Reading time8 min
Views38K

Многие верят, что с возрастом мы перестаем развиваться, потому что наш мозг заканчивает прогрессировать примерно в 25 лет. Этот миф в обществе существует уже очень долго. Однако в современном мире всё меняется стремительно: профессии устаревают и, чтобы оставаться востребованными, нам нужно постоянно обучаться.

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

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

Читать далее

Люди не понимают ООП

Level of difficultyMedium
Reading time15 min
Views122K

«ООП для меня означает лишь обмен сообщениями, локальные ограничения и защиту, сокрытие состояния процесса и крайне позднее привязывание», — Алан Кэй (человек, придумавший термин «объектно-ориентированное программирование»)1

Похоже, многим не нравится объектно-ориентированное программирование. Первое, что приходит в голову, когда слышишь эту трёхбуквенную аббревиатуру — это пример с автомобилем, наследование, геттеры, сеттеры и ObjectFactoryFactorySingleton.

Мне это всегда казалось довольно странным. Мне не только нравится ООП, я ещё и считаю, что часто это лучший/наиболее очевидный способ моделирования задачи. И ниже я расскажу, почему.
Читать дальше →

Реализация чата на Flutter при помощи вебсокетов

Level of difficultyEasy
Reading time3 min
Views5.5K

Всем привет, на связи PurplePlane! В этой статья мы хотели бы рассмотреть реализацию простого чата на языке Dart, используя пртокол websocket.

Рассмотрим пример использования вебсокета при реализации простого чата с помощью библиотеки web_socket_channel.

Читать далее

Работаем с Git: трудовые будни

Level of difficultyMedium
Reading time14 min
Views49K

Прошлая статья «Работаем с Git: первые шаги в GitHub» была посвящена установке, настройке Git и классическим операциям из набора для новичков GitHub. А теперь перейдём к практике и рассмотрим «горячие» сценарии, которые делают трудовые будни куда веселее. Или не очень.

Читать далее

Как шутят математики. Решение первого шифра Олама

Level of difficultyMedium
Reading time12 min
Views15K

Не так давно в одной из статей я уже касался темы, краешком связанной с Манхэттенским проектом, и этот материал также имеет к нему некоторое отношение. Более того, учитывая масштаб и количество участников проекта, я наверняка буду его упоминать и в некоторых последующих текстах. Эта статья написана на основе исследования американского разработчика программного обеспечения Пола Релкина.

Итак, Лос-Аламос объединил одной целью многих видных учёных того времени. Одним из них был замечательный учёный Ричард Фейнман. Разумеется, основным предметом его интереса всегда была физика, но помимо потрясающих познаний в ней, профессор Фейнман отличался и другими талантами. Из его автобиографии (всем, кто ещё не читал, настоятельно рекомендую) известен факт, что профессор особенно гордился своими реактивными скилами решения головоломок и математических задач.

Читать далее

Программисты всё вымирают и вымирают

Level of difficultyEasy
Reading time19 min
Views136K

Да вымереть не могут.

Откуда это всё пошло? Чем так условные «программисты» не угодили? И почему именно программисты?

Читать далее

Система статусов для проектов в Obsidian

Level of difficultyMedium
Reading time25 min
Views21K

Статья о том, как внедрить и как продуктивно использовать систему статусов в персональных проектах.

Гайд предназначен для пользователей Obsidian. Однако, если вы к таковым не причисляетесь, то можете ознакомиться только с описанием системы статусов. Возможно, что вам сам подход понравится и у вас впоследствии получится адаптировать его в своих инструментах.

Obsidian и проекты – это мощь!

Это один из лучших подходов к изучению английского, что я видел за последние годы — коллокации

Reading time7 min
Views126K

Значение слова – это его использование в языке
Людвиг Витгенштейн (сурс) 

Что это вообще за магия такая? Коллокация – это просто пара или группа слов, которые часто возникают вместе. Такие комбинации звучат естественно для носителей языка, однако, тем, у кого язык не родной, бывает сложно догадаться до этой естественной комбинации.

А что если я скажу, что они улучшают сразу и вашу способность органично говорить, и канонично писать, и что совсем удивительно воспринимать английский от носителей языка на слух? И главный вопрос, который меня мучает – почему я узнал об этой технике изучения языка только полгода назад? (Рассказ об этой подготовке здесь.) 

Внимательно посмотрите на пример с картинки. Как только собеседник начал(а) произносить “pitch d…” ваш мозг, зная нужные коллокации, подскажет, что там должно быть “dark”. Даже если вы плохо расслышали эту часть. Это один из механизмов, через который коллокации позволяют лучше воспринимать язык на слух.

Подробнее о том, как их учить и использовать и будет эта статья.

Disclaimer: если у вас филологическое образование, то вам наверное будет смешно, что кто-то открыл для себя коллокации и их использование для изучения иностранного языка в 202N году, а вот если вы, как и я, когда-то читали “randomize” как “рандомизе”, то возможно эта статья будет вам полезной.

Добро пожаловать под кат

Отслеживание ради анализа гипотез

Level of difficultyEasy
Reading time15 min
Views7.1K

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

По умолчанию в статье я считаю, что вы являетесь пользователем Obsidian. Однако это не является чем-то ключевым – идеи из статьи вы сможете довольно легко реализовать и в иных инструментах.

Организовать слежку за собой

Как я с 0 поднял свой уровень английского до B2 и подтвердил этот уровень на экзамене IELTS Academic

Level of difficultyEasy
Reading time10 min
Views170K

Привет, Хабр!

В этой статье я расскажу о своем опыте изучения английского языка и поделюсь вещами которые работали и не работали для меня. Процесс изучения языка очень индивидуален, и никогда нельзя утверждать что верный какой-то один метод / схема (хотя некоторые статьи на Хабре прямо говорят: вот этот метод правильный, а вот этот нет).

Начнем с бекграунда и причин.

Я – инженер машиностроитель (мой профиль – торцевые уплотнения вращающихся валов). Я начал работать в своей отрасли сразу после бакалавра, параллельно заканчивая магистратуру, и как только я начал работать, я стал стараться впитать как можно больше теоретических знаний по моей специальности из академических источников. Достаточно бысто я понял, что последняя серьезная книга по моей специальности на русском языке была написана в 1978 году. И спустя больше чем 40 лет технологии сильно поменялись, а вот их описание на русском языке отсутствовает. Зато я нашел на reddit людей работающих в штатах в моей же отрасли. Они мне насоветовали кучу классной литературы. Разумееется, она вся на английском, и русского перевода не имеет.

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

Конечно, перед началом обучения я прочитал много статей на хабре о том как люди учат языки. Некоторые из них поражали скоростью овладения материалом (что-то вроде с нуля до fluent за 4 месяца). Но одна вещь была неизменна – у всех был какой-то план изучения языка.

Читать далее

Почему B-деревья быстрые?

Level of difficultyEasy
Reading time7 min
Views53K

B-дерево — это структура, помогающая выполнять поиск в больших объёмах данных. Она была изобретена более сорока лет назад, однако по-прежнему используется в большинстве современных баз данных. Хотя существуют и более новые структуры индексов, например, LSM-деревья, B-дерево пока никто не победил в обработке большинства запросов баз данных.

После прочтения этого поста вы будете знать, как B-дерево упорядочивает данные и выполняет поисковые запросы.

Читать далее

Трудности перевода: как научиться понимать то, что нарисовал дизайнер

Reading time6 min
Views5K

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

Если у вас только один фронтенд, все еще не так плохо. Однако, когда их количество достигает 10, микроошибки в компонентах могут отнимать до 200-300 человеко-часов в год. С учетом современных зарплат, это значительная сумма. А помимо фронтенда у нас также есть бекенд, девопс и тестирование, что также требует значительных затрат. Давайте вместе разберемся, как можно справиться с этой проблемой.

Читать далее

System Design 101

Level of difficultyMedium
Reading time42 min
Views126K



О сложных системах простыми словами.


В шпаргалке на высоком уровне рассматриваются такие вещи, как протоколы коммуникации, DevOps, CI/CD, архитектурные паттерны, базы данных, кэширование, микросервисы (и монолиты), платежные системы, Git, облачные сервисы etc. Особую ценность представляют диаграммы — рекомендую уделить им пристальное внимание. Полагаю, шпаргалка будет интересна всем, кто хоть как-то связан с разработкой программного обеспечения и, прежде всего, веб-приложений. Буду признателен за помощь в уточнении/исправлении понятий, терминологии, логики/алгоритмов работы систем (в рамках того, что по этому поводу содержится в оригинале), а также в обнаружении очепяток.


Выражаю благодарность Анне Неустроевой за помощь в редактировании материала.


Возможно, немного другой формат шпаргалки покажется вам более удобным.


System Design (сборник на английском языке).

Читать дальше →

Архитектура Android. Понятно и подробно

Level of difficultyMedium
Reading time15 min
Views31K

Если вы хотите сделать хорошую архитектуру, то используйте эту схему и строго соблюдайте правила, без каких-либо исключений.

Читать правила

10 лучших практик логирования в Python

Level of difficultyEasy
Reading time19 min
Views40K

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

В этой статье мы рассмотрим лучшие практики логирования в Python. Следуя им, вы сможете обеспечить информативность, практичность и масштабируемость генерируемых логов. Давайте начнём!

Читать далее

Фишки IDEA. Часть 3 — теперь с Git

Reading time4 min
Views22K

IntelliJ IDEA - фактически основной инструмент наших разработчиков. Года полтора назад мы публиковали собрание полезных фишек IDEA. С тех пор прошло много времени, а мы насобирали новую подборку - теперь уже для тех, кто только начинает работать в IDEA с Git. Кому интересно - добро пожаловать под кат.

Снова рассказываем по мотивам внутреннего митапа.

Читать далее

Information

Rating
Does not participate
Registered
Activity