Pull to refresh
-1
1.1
Send message

Убить героя: почему героизм — это выбор легкого пути, который вредит не только вам, но и окружающим

Level of difficultyEasy
Reading time4 min
Views1.3K

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

Читать далее

Изоляция с помощью глобальных акторов в Swift Concurrency: варианты на примере @MainActor

Reading time7 min
Views365

Привет, Хабр! Меня зовут Алексей Григорьев, я техлид iOS-разработки продукта Membrana в МТС. Это тариф с приложением для управления приватностью в сети и окружением.

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

Один из самых распространенных и полезных глобальных акторов — это @MainActor, который гарантирует выполнение операций в главном потоке приложения. В этом посте я на его примере покажу все варианты, как можно реализовать изоляцию и что в итоге выведет код: на каком потоке будут выполнены update, internal update и set в property.

Читать далее

Как быть писателем, когда всем скучно читать книги | Как я делала визуальную новеллу

Level of difficultyEasy
Reading time4 min
Views10K

Что делать писателям в современном жестоком мире, где никто не хочет читать книги?

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

А как всё было и зачем?

GRASP: почему настоящая архитектура начинается не с SOLID

Level of difficultyMedium
Reading time12 min
Views41K

Хочу начать с личной предыстории. Давным‑давно, как и многие из вас, я читал умные книжки: «Чистый код» и «Чистая архитектура» Роберта Мартина, «Совершенный код» Стива Макконнелла и другие.

Также не обошли меня и классические принципы проектирования — SOLID, KISS, DRY — и, думаю, каждый читатель добавит сюда свои.

Безусловно, это всё важные и фундаментальные вещи.

Но однажды на горизонте появилось DDD — предметно‑ориентированное проектирование в изложении Эрика Эванса. Именно его «синяя книга» стала культовой и задала язык для архитектурного мышления.

Позже я открыл и «красную книгу» Вона Вернона, где DDD уже рассматривался с точки зрения практической имплементации: архитектура, код, реальные подходы в проектах.

Читая Эванса, рассматривая его диаграммы классов и примеры кода, я всё думал: как он это делает?

Самым большим открытием для меня стало то, что книга DDD хоть и показывает стратегические и тактические приёмы — агрегаты, объекты‑значения, спецификации, фабрики и т. д. — но не учит проектировать саму предметную область.

Складывалось ощущение, что мы это уже откуда‑то должны были знать. А откуда — остаётся загадкой.

Читать далее

Как не завязнуть в болоте рутины и оставаться эффективным

Level of difficultyEasy
Reading time5 min
Views5.2K

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

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

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

Читать далее

«Уволиться нельзя остаться»: где поставить запятую?

Level of difficultyEasy
Reading time5 min
Views24K

Кто-то сказал что-то не то, новая политика компании не зашла, проект отдали другому, или просто заманчивое сообщение в LinkedIn пообещало горы золота.
Каждого сотрудника минимум раз в месяц посещают мысли из разряда: «Как мне всё надоело?», «Почему я должен это терпеть/делать?», «Что за цирк и почему я здесь?», «Меня не ценят, почему я должен вкладываться?»... Но стоит ли уходить? Точно проблема в компании?

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

Читать далее

Как разобраться в своей мотивации. Теория Грея, опросник Карвера-Уайта

Reading time7 min
Views16K

Друзья, сегодня говорим о мотивации! Что там в мозге за нее отвечает, что такое нейропсихологическая теория Грея и какая система поведения - активации или торможения характерна для вас.

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

Читать далее

Использование ChatGPT o3-mini и DeepSeek при создании iOS приложения Countries “Страны Мира”

Level of difficultyMedium
Reading time47 min
Views4K

Что делает «животворящая» конкуренция?

Появление DeepSeek, позволило бесплатным подписчикам ChatGPT получить доступ к «рассуждающей» ChatGPT o3-mini.

Я предложила этим двум ИИ создать довольно простое на первый взгляд тестовое iOS приложение Countries, которое показывает все страны Мира по регионам (Европа, Азия, Латинская Америка и т. д.) и для каждой страны её название и флаг, a также численность населения population, размер ВВП (валового внутреннего продукта) gdp и расположение страны на карте Мира.

Использовались данные Всемирного банка (World Bank), но мы не сообщали ИИ ни сайты, ни структуры данных, всё это ИИ должен найти сам и использовать их при создании iOS приложения.

Раньше я отдавала предпочтение Clause 3.5 Sonnet при создании iOS приложений, прибегая к ChatGPT 4.o1 для решения отдельных проблем. Но появление «рассуждающих» ChatGPT o3-mini и DeepSeek изменили всё.

iOS разработка поднялась на новый уровень, и пока лидером в этой гонке для меня является ChatGPT o3-mini (даже в бесплатном варианте). Он способен вас приятно удивить.

Читать далее

Обновления в Swift Concurrency: что нас ждёт в Swift 6

Reading time20 min
Views4.7K

Привет, Хабр! Меня зовут Никита, я занимаюсь iOS-разработкой в Яндекс Диске. Как вы знаете, прошлой осенью зарелизился Swift 6, а вместе c ним появились и строгие проверки для защиты от датарейсов, связанные со Swift Concurrency.

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

Читать далее

Как самостоятельно выявить бессознательные установки, которые мешают вам больше зарабатывать?

Level of difficultyEasy
Reading time4 min
Views23K

Если вам важно зарабатывать больше, но не получается, возможно, вам просто подсунули негодные правила, как допустимо зарабатывать, а как нет. Но как обнаружить эти правила, если вы их даже не осознаете? Есть 5 способов это сделать.

Читать далее

Как перестать отвлекаться по мелочам, избавиться от прокрастинации и стать продуктивнее как минимум в 2 раза?

Level of difficultyEasy
Reading time4 min
Views88K

Если ты не можешь долго сконцентрироваться на одной задаче и часто отвлекаешься на что-то другое - то эта статья специально для тебя!

Читать далее

90% разработчиков не понимают принцип инверсии зависимостей из SOLID. DIP — это не про абстракции

Reading time4 min
Views60K

Зачастую, когда речь заходит про принцип инверсии зависимостей, можно услышать, что инверсия зависимостей (далее DIP) — это что-то там про зависимость от абстракций, и приводятся примеры, где в качестве «плохого» случая, используются конкретные классы, а в исправленном случае, используются абстрактные классы или интерфейсы. Но такая трактовка принципа в корне неверна.

Почему такая трактовка неверна и в чем же суть принципа — об этом и пойдет речь далее.

Читать далее

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

Level of difficultyEasy
Reading time11 min
Views7.4K

Хабр, привет. На связи Оксана Рубанова, разработчик на платформе Optimacros.

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

Так что ту часть проблем, на которую я имею влияние, я захотела проанализировать и улучшить.

В статье поговорим про:

1. Теории накопительного эффекта и разрушенных окон и их влияния на нас

2. Проблему внутреннего тестирование на проектах и идею, как его можно усилить

3. Рабочий эксперимент с командой, длинною в месяц

4. Результаты участников по итогам челленджа

5. Мои выводы со стороны организатора

Читать далее

Как заставить крутиться таймер –  инструкция для iOS-разработчиков

Level of difficultyEasy
Reading time10 min
Views1.5K

Привет, Хабр! На связи Андрей –  iOS разработчик из ecom.tech. Моя команда помогает различным маркетплейсам делать крутые вещи для их приложений. 

В этой статье я поделюсь своим опытом работы с обратным отсчётом времени (на примере Мегамаркета) и расскажу, как поставить таймер самостоятельно. 

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

Читать далее

Асинхронность в iOS: как ускорить корпоративные приложения и не сломать мозг разработчика

Level of difficultyEasy
Reading time4 min
Views1.9K

Когда все процессы в приложении работают как часы, это не магия, а правильно настроенная асинхронность.

Если ваше приложение не отвечает мгновенно на действия пользователя, то в голове у него сразу зажигается красный флаг: «Это медленно. Это неудобно. Может, удалить?». В корпоративных приложениях, где важна каждая секунда, это недопустимо.

В этой статье мы поговорим о том, как организовать асинхронную работу в iOS‑приложениях. Разберём подходы от старой доброй GCD до современной магии Swift Concurrency и покажем, как они помогают ускорить приложение без лишнего хаоса в коде.

Читать далее

SOLID. Проблема новичка

Level of difficultyEasy
Reading time5 min
Views21K

Здравствуйте, друзья! Меня зовут Константин, я python backend developer из компании «Окенит». Сегодня я хочу рассказать свое видение проблемы новичка при ознакомлении с принципами SOLID, описанными в книге «Стерильная Архитектура» Робина Мартерта.

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

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

Читать далее

«Модная болезнь»: как распознать и предотвратить профессиональное выгорание

Reading time16 min
Views7.7K

Меня зовут Анна Бабич, я психолог, ACT-терапевт, руководитель Школы самооценки и автор телеграм-канала «Жить навстречу себе». В этой статье поговорим о способах распознать профессиональное выгорание — проблему, о которой, кажется, все знают, но попадают в ловушку снова и снова. Я расскажу, как выгорание ощущается внутри и как проявляется во внешней жизни, как его самостоятельно продиагностировать; разберу причины выгорания — какие звоночки вы упорно пропускаете; помогу определить пути, как выбраться из выгорания, если вы в него угодили, и какой должна быть профилактика.

Читать далее

Английский для DevОps

Level of difficultyEasy
Reading time1 min
Views2.7K

100 фраз на английском для DevOps’ов

Последние 3 года я обучаю английскому исключительно ребят из IT.

За эти годы у меня скопилось куча материалов, а что самое главное лексики, которую я собирала с каждого мита, письма, переписки. Слова которые используют разработчики, аналитики,продакты, дизайнеры, QA. Используют не в «гугл переводчике», а в реальной ежедневной работе.

Я собрала большой ноушн файл. 100 фраз из лексики DevOps’ов. От простейших фраз, которые вы услышите в диалоге, до спец лексики. 

Собрала и поняла: на месте того, кто учит, я бы точно сохранила и забила! 😃 А потому ловите не только таблицу, но и все 100 фраз в Quizlet (ссылочка и описание в ноушн-доке) — так их точно проще выучить.

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

Читать далее

Простая настройка CI/CD для Фронтенда и Бэкенда в Github без сторонних инструментов бесплатно в 2024 году

Level of difficultyEasy
Reading time17 min
Views12K

Всем привет! Недавно решил попробовать, что из себя представляет Flutter Web, подумал, может попробовать сделать бота для Telegram, и заодно настроить простейший CI/CD для отдельного фронтенд- и бэкенд-проектов. Однако в интернете я не нашёл простой и исчерпывающей инструкции или процесса.

Поэтому задача этой статьи — решить эту проблему! Сделать автоматическую сборку, тестирование и деплой на сервер, и всё это — без необходимости городить SSH-ключи, Github-токены и подключать сторонние решения. Всё на минималках, без лишней бюрократии.

Читать далее

Apple убивает Swift

Reading time10 min
Views16K

Swift был прекрасным языком, но он далеко отошел от своего первоначального видения.

Очень далеко.

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

Читать далее
1
23 ...

Information

Rating
1,499-th
Registered
Activity