Как стать автором
Обновить
0
@lihhanaread⁠-⁠only

Пользователь

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

Создание приложений на Angular с использованием продвинутых возможностей DI

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

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

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

Redux в Angular. Туда и обратно

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

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

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

Прикручиваем ngx-translate в Angular приложение. Практическое пошаговое руководство

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

Практическая пошаговая инструкция как прикрутить динамическую локализацию (возможность выбора языков) в веб приложении на Angular 4+ используя @ngx-translate/core.


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


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

Open Source GraphQL CDN / Edge Cache с Cloudflare, Fastly и Fly.io

Время на прочтение12 мин
Количество просмотров755

Мы недавно объявили, что WunderGraph теперь полностью открыт в исходном коде. Сегодня мы хотели бы объяснить, как вы можете использовать нашу платформу для разработчиков API, чтобы добавить кэширование на уровне Edge в ваши GraphQL API, не привязывая себя к конкретному поставщику.

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

Beego в Golang для начинающих

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

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

Beego – это фреймворк для разработки веб-приложений на языке Go, ориентированный на быстрое развертывание и простоту использования. В его основе лежит идея создания полнофункциональных приложений с минимум усилиям на настройку и кодирование. Это достигается за счет широкого выбора инструментов, включая ORM, систему маршрутизации, интерфейс кмд и многое другое. Beego придерживается принципов RESTful и MVC.

Читать далее
Всего голосов 14: ↑12 и ↓2+16
Комментарии5

ViewModel + Kotlin Multiplatform. Пробуем нативное решение

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


Всем привет! На связи Анна Жаркова, руководитель группы мобильной разработки в компании Usetech. Компания Google объявили о своем интересе к Koltin Multiplatform на прошлом Google I/O 2023. Следом был обозначен вектор развития имеющихся решений архитектурных библиотек Jetpack для поддержки KMP. Буквально считанные часы назад компания Google опубликовали ожидаемую многими новинку, а именно ViewModels из библиотеки Lifecycle с поддержкой API Kotlin Multiplatform. И сейчас мы с вами проверим, насколько это удобно, что уже готово, а что нужно доработать.

Для начала освежим, с чем же мы работали до ViewModels из Lifecycle.

Сами по себе ViewModel как часть паттерна MVVM применительно к кросс-платформенным решениям идея не новая. Многие давно использовали собственную реализацию, совмещая также с платформенными архитектурами.
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии5

Методы-расширения в Dart

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

Методы-расширения (далее просто расширения) позволяют добавлять функции к API существующих библиотек. Возможно, вы даже использовали их, не подозревая об этом. Например, когда автодополнение кода в IDE предлагает вам наряду с обычными методами еще и "расширяющие", именно так они и работают.

Обзор

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

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

Как улучшить юзабилити сайта для увеличения конверсии

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

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

Узнайте как увеличить эффективность сайта!
Всего голосов 5: ↑3 и ↓2+3
Комментарии3

Как сделать так, чтобы IT-продукт не прогорел? Часть 1

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

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

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

Управление контейнерами из Kotlin-тестов

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

Нередко для выполнения тестов требуется запуск вспомогательных сервисов (баз данных, брокеров очередей и др.) и стандартной практикой в подходах DevOps является запуск тестов внутри управляемого окружения, где сначала создается контейнер с JVM, после чего внутри конвейера CI/CD запускаются вспомогательные контейнеры и сборка Kotlin-приложения с точкой входа для запуска тестов. Однако есть и альтернативное решение - запускать вспомогательные тестовые контейнеры непосредственно внутри JUnit-теста. В этой статье мы обсудим несколько различных подходов к управлению контейнерами из тестов для Kotlin-приложений.

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

Собирательный образ Junior Android Developer. Какой он в 2024?

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

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

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

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

Что ждёт мобильную разработку в 2024 году

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

Привет! Меня зовут Таня Шашлова, я руковожу образовательными продуктами по мобильной разработке в Практикуме.

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

Читать далее
Всего голосов 15: ↑14 и ↓1+13
Комментарии10

Опровергаю пять архитектурных заблуждений

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

Привет! Я Алексей, iOS-разработчик в Тинькофф. Участвую в развитии архитектуры приложения, провожу собеседования и занимаюсь менторингом разработчиков.

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

Читать далее
Всего голосов 37: ↑33 и ↓4+32
Комментарии27

Flutter vs Native: почему мы переходим с первого на второй

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

Привет, Хабр! Меня зовут Сергей, я занимаюсь мобильной разработкой 13 лет и недавно стал руководителем разработки мобильного приложения «Пункты выдачи заказов» в Ozon. Невольно став сместителем существующего строя в проекте (фреймворки, технологии, подход), я стал часто слышать вопрос: «Почему вы отказались от Flutter?».

Слышал я этот вопрос прежде всего от разработчиков моей команды и соискателей на наши вакансии, потом во время доклада на эту же тему на конференции Panda Meetup, в конце концов, даже менеджер нашего проекта подошёл с вопросом: «Ну а всё же почему?». Настолько людей захватывает эта тема, что я решил поделиться развёрнутым ответом.

Читать далее
Всего голосов 46: ↑30 и ↓16+23
Комментарии117

KMP vs Flutter vs React Native

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

Сейчас существует широкий спектр кроссплатформенных технологий, среди которых Flutter, React Native и, конечно же, Kotlin Multiplatform Mobile (KMP). Какую технологию стоит выбрать и почему именно ее? Давайте попробуем разобраться!

Читать далее
Всего голосов 10: ↑3 и ↓7-2
Комментарии25

Why Flutter? Почему Flutter?

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

Почему Flutter должен быть выбран в качестве фреймворка для вашего следующего проекта?

Разбираем популярные высказывания о несостоятельности Flutter как технологии и доказываем обратное.

Выбрать Flutter
Всего голосов 13: ↑8 и ↓5+4
Комментарии30

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

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


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

Если вы давно хотели разобраться в CORS и вас достали постоянные ошибки, добро пожаловать под кат.

Ошибка в консоли вашего браузера


No ‘Access-Control-Allow-Origin’ header is present on the requested resource.

Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://example.com/

Access to fetch at ‘https://example.com’ from origin ‘http://localhost:3000’ has been blocked by CORS policy.


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

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

Но давайте-ка пойдем к истокам…
Читать дальше →
Всего голосов 41: ↑40 и ↓1+57
Комментарии14

Принципы для разработки: KISS, DRY, YAGNI, BDUF, SOLID, APO и бритва Оккама

Время на прочтение8 мин
Количество просмотров279K
image

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

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

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

Принципов много. Мы остановимся на семи самых важных. Их использование поможет вам в развитии и позволит стать лучшим программистом.

1. YAGNI

You Aren’t Gonna Need It / Вам это не понадобится

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

Этот принцип применим при рефакторинге. Если вы занимаетесь рефакторингом метода, класса или файла, не бойтесь удалять лишние методы. Даже если раньше они были полезны – теперь они не нужны.

Может наступить день, когда они снова понадобятся – тогда вы сможете воспользоваться git-репозиторием, чтобы воскресить их из мертвых.
Читать дальше →
Всего голосов 15: ↑12 и ↓3+16
Комментарии10

REST vs SOAP. Часть 1. Почувствуйте разницу

Время на прочтение6 мин
Количество просмотров477K
Некоторое время назад я гуглил интернет по поводу “REST vs SOAP”, прочитал пару статей и вроде бы все понял, но не почувствовал от этого никакого удовлетворения. Что-то было не так, то ли я не почувствовал основную идею, то ли просто читал, одновременно слушая новый музон и думая о новой фиче в проекте. Как появилось время, решил восполнить этот пробел, заодно написав полезную статью по этому поводу.
Читать дальше →
Всего голосов 117: ↑106 и ↓11+95
Комментарии101

Стеки и Очереди в Swift

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

В этой статье мы исследуем две фундаментальные структуры данных, которые являются неотъемлемой частью программирования на Swift: стеки и очереди. Они представляют собой коллекции элементов с особыми правилами для добавления и удаления элементов. Стеки работают по принципу "последним пришел, первым ушел" (LIFO), что делает их идеальными для задач, связанных с обратной навигацией или отменой действий. Очереди, следуя принципу "первым пришел, первым ушел" (FIFO), идеально подходят для задач, требующих обработки элементов в порядке их поступления, например, в управлении задачами или потоками данных.

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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность