Pull to refresh
-1
1.8
Send message

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

Level of difficultyEasy
Reading time5 min
Views21K

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

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

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

Читать далее

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

Reading time16 min
Views7.9K

Меня зовут Анна Бабич, я психолог, 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
Views13K

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

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

Читать далее

Apple убивает Swift

Reading time10 min
Views16K

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

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

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

Читать далее

Что такое System design?

Level of difficultyEasy
Reading time4 min
Views10K

Привет Хабр! Меня зовут Татьяна Ошуркова, я разработчик, аналитик и автор телеграм-канала IT Talks. Сегодня большой популярностью пользуется термин «System design», что дословно в переводе означает «Системный дизайн». Направление, которое обозначает данный термин тесно пересекается с архитектурой и проектированием. Но в чем же его отличие и есть ли оно вообще? Что включает в себя направление системного дизайна?

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

Читать далее

Об анатомии крэшей на iOS «по-взрослому»

Level of difficultyHard
Reading time23 min
Views8.2K

Привет, Хабр. Меня зовут Давид Чупреев. Я разработчик мобильных приложений в команде Core iOS ОК. 

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

Читать далее

Уже не джун, но знаний нужно всё больше. Как самостоятельно учиться сложным вещам

Reading time6 min
Views12K

Самостоятельное обучение для разработчика — процесс, который не кончается никогда. Это касается не только джунов, но и намного более опытных мидлов и сеньоров. Однако возникает вопрос: все ли мы умеем учиться правильно? Как преодолеть свою инертность и научиться понимать сложные вещи? 

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

Читать далее

История одного модального окна или переходим с UIKit на SwiftUI. Часть 2.1. Неожиданный баг Combine

Level of difficultyMedium
Reading time3 min
Views1.1K

В этой статье изначально планировала написать продолжение первой части статьи. А именно показать обещанные ProgressView и SkeletonView. Но тут на моём пути возникло неожиданное препятствие.

Обо всём по порядку.

Мы же понимаем, что просто так оставить View со всем функционалом внутри нельзя. Обычно я накидываю быстрый функционал и UI в одном классе, а затем уже разделяю. Использую MVVM архитектуру. И модальное окно не стало исключением. Проверив, что всё работает во View, я создала ViewModel, сделала её ObservableObject

Читать далее

Как написать чат-бота в Telegram без навыков программирования

Level of difficultyEasy
Reading time15 min
Views64K

Мы напишем вот такого бота

В наше время любой человек без навыков программирования может самостоятельно написать простого чат-бота. Например, чтобы предоставлять услуги через Telegram, организовать работу сообщества и т. д. Скажем, для отметки посещаемости в учебном классе, для общения в домовом чате, для скачивания фильмов и музыки. А техническому специалисту написать такого бота вообще тривиальная задача. Зачем нужны чат-боты, как их использовать бизнесу и частным лицам, как написать бота самостоятельно, если у вас есть навыки программирования или их нет, поговорим в этой статье.
Читать дальше →

Как встроить распознавание звуков в ваше iOS приложение на Swift с использованием SoundAnalysis

Level of difficultyEasy
Reading time3 min
Views585

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

Читать далее

Внедряем DevSecOps в процесс разработки. Часть 5. Этап Deploy-time Checks, обзор инструментов

Reading time8 min
Views3.9K

Привет! На связи Олег Казаков из Spectr. 

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

Сегодня я расскажу о заключительном этапе DevSecOps — Deploy-time Checks. 

Узнать больше о DevSecOps

Telegram Боты на Aiogram 3.x: Простой бот на вебхуках с локальным запуском и деплоем

Level of difficultyEasy
Reading time12 min
Views16K

Друзья, приветствую!

Если вы следите за моими статьями, то знаете, что на Хабре у меня опубликовано более 10 объемных публикаций на тему разработки телеграмм ботов через замечательный Python-фреймворк Aiogram 3.

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

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

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

В общем, будет интересно и позновательно!

Читать далее

Битва с монстром. Региональный застройщик победил федерала и увеличил продажи в 4 раза с помощью контекстной рекламы

Level of difficultyEasy
Reading time7 min
Views1.5K

В регион с населением около 500 тыс. чел. пришел федеральный застройщик. Местным игрокам ловить нечего? Вот и нет, можно побороться за клиентов с помощью контекстной рекламы. Делимся опытом нестандартного использования инструментов Я. Директ в продажах недвижимости. В ход идут все средства ― инструменты из e-commerce, микроконверсии, точные офферы и доработки сайта. 

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

Читать далее

Режимы наложения/смешивания в SwiftUI

Level of difficultyEasy
Reading time3 min
Views941

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

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

Читать далее

Шесть способов позаботиться о здоровье мозга, когда вам ещё нет 40

Level of difficultyEasy
Reading time4 min
Views5.8K

Деменция не является неизбежным следствием старения. Считается, что около 40 % случаев деменции можно предотвратить (или хотя бы отсрочить), изменив некоторые привычки образа жизни.

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

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

Читать далее

Пишем свой Swift макрос без лида, ИТ-курсов и кредитов

Level of difficultyMedium
Reading time10 min
Views2.6K

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

Сегодня я хотел бы рассказать вам о макросах в Swift 5.9, как их можно применять для избавление от бойлерплейта в коде, как их создавать, какие сложности есть с ними и куда всё это движется. Так как я работаю в команде дизайн-системы, мы рассмотрим макросы на примере добавления метода copy для всех моделей UI-компонентов.

Читать далее

Принципы SOLID на примере iOS-разработки

Level of difficultyMedium
Reading time13 min
Views6.7K

Привет, меня зовут Антон, я iOS-разработчик в компании Surf. Все программисты хотят писать красивый, масштабируемый и сопровождаемый код, и мобильщики – не исключение. Как в этом помогут принципы SOLID, и зачем они нужны?

Расскажем и покажем на примерах (куда без этого). Кейсы в статье относятся к iOS-разработке, но они будут полезны для всех разработчиков, независимо от стека.

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

Введение в тестирование на Swift Testing

Level of difficultyMedium
Reading time17 min
Views6.8K

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

Читать далее

Telegram Боты на Aiogram 3.x: Отправка и обработка медиа сообщений

Reading time14 min
Views27K

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

Сегодня мы вновь погрузимся в мир Telegram ботов на Aiogram 3.x и рассмотрим отправку и обработку медиа сообщений.

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

Читать далее

Information

Rating
2,257-th
Registered
Activity