Pull to refresh
2
0
Константин @ConstOrVar

Разработчик мобильных приложений

Send message

Как стать DevOps с нуля? Бесплатная программа обучения

Level of difficultyEasy
Reading time2 min
Views18K

Если вбить фразу «как стать devops» в поисковую строку, можно найти множество курсов по данному направлению. Проблема заключается в том, что все курсы являются платными и, как правило, стоят несколько десятков, если не сотен тысяч рублей. 

Чтобы разбавить обилие платных курсов, мы с DevOps-инженером Андреем Кравченко подготовили для вас программу обучения «DevOps-инженер с нуля», которая состоит только из бесплатных курсов.

Читать далее

Погружение в мир Lint'a в Android-проекте (часть 2)

Level of difficultyMedium
Reading time10 min
Views722

Продолжим рассматривать различные нюансы статического анализа с помощью Lint. Опираться будем на предыдущую статью. С момента её публикации прошло много времени, за которое вышло несколько значимых обновлений Android Gradle Plugin (а с ним и всех артефактов линтера), а также вторая версия Kotlin с новым компилятором. Вкратце рассмотрим наиболее заметные для нас изменения с небольшими примерами. Кроме того, удалось найти что-то похожее на полноценную документацию по lint (правда, редко обновляющуюся), наиболее интересные моменты оттуда тоже рассмотрим.

Читать далее

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

Level of difficultyEasy
Reading time20 min
Views1.3K

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

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

Но есть и хорошая новость: научиться писать грамотные руководства проще, чем вы думаете. Следуйте нескольким простым правилам, и ваши тексты будут выделяться на фоне повсеместной посредственности.

Прочитать →

Мобильная разработка за неделю #571 (13 — 19 января)

Level of difficultyEasy
Reading time4 min
Views862
В новом дайджесте обсуждаем костыли поддержки iOS 15 на SwiftUI и корутины Kotlin, приложения на Go и шаблон на все случаи жизни, 30 уроков от 30 лучших продуктовых лидеров, мест Snap в виде исчезающих фотографий в iMessage, переделку одного устройства и многое другое. Подключайтесь!

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

Перестаньте молиться на принципы S.O.L.I.D

Reading time6 min
Views29K

В мире разработки программного обеспечения существует множество "священных коров" — принципов и практик, которые принимаются как данность и редко подвергаются критическому анализу. Особенно показательна ситуация с принципами SOLID на русскоязычных ресурсах: достаточно открыть Хабр, чтобы найти 100500 статей о SOLID, и в каждой из них принципы интерпретируются по-разному.


Само существование такого количества "объяснительных" статей говорит о фундаментальной проблеме: если принципы требуют толкования, значит их названия не являются самодостаточными и интуитивно понятными. А если каждый разработчик понимает принципы по-своему, возникает вопрос — зачем вообще нужны принципы, которые не дают однозначного руководства к действию? Принципы SOLID, предложенные Робертом Мартином, давно стали одной из таких "священных коров". Однако пришло время честно признать: то, как мы используем SOLID сегодня, часто противоречит изначальным идеям и в целом иногда может приносить больше вреда, чем пользы. Зависит от контекста.


SRP не SRP


Самый яркий пример искажения первоначального замысла — это интерпретация принципа единственной ответственности (SRP).

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

Жизнь в Норвегии: 6 лет спустя

Reading time11 min
Views49K

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

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

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

Читать далее

Я хочу поделиться и получить знания в IT, где? Сравнение, мифы, факты основных мест для блогов, статей, видео об IT

Reading time9 min
Views6K

Когда Вы приходите в сферу программирования, первое, что Вас интересует это: «начало работы с Unity», «как сделать первые шаги в C++», потом Вы возвращаетесь, желая помочь остальной части IT сообщества, тем что вы узнали, как разработчик, это может быть: «Создание NEAT алгоритма для Unity», «Что такое UART и как он работает» или Вы псих гений, который создал алгоритм для сортировки любого списка за O(1). Для того, чтобы не держать в голове кучу личных блогов-сайтов которым доверяете, Вы переносите этот процесс памяти и поиска на источник, который за счёт Вас и остальных как Вы помогает хорошим авторам и демпингует плохих, примерно так работал изначальный Hacker News. А также убирает требование разбираться с  CMS и оплатой хостинга, а во-первых далеко не все готовы платить, а во-вторых, если человек не оплачивает хостинг, то мы просто лишаемся полезной информации с этого сайта.

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

Поехали!

Кэш. Теория кэширования. Устройство и разновидности кэша

Level of difficultyEasy
Reading time7 min
Views9K

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

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

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

Стать гуру кэша

Как перейти от монолита к микросервисам без сложностей и рисков? Четыре проверенных паттерна

Level of difficultyMedium
Reading time3 min
Views7.8K

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

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

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

Использование в практике таких паттернов как Strangler Fig Pattern, Parallel Run Pattern, Decorating Collaborator Pattern и Change Data Capture позволяет разработчикам значительно снизить риски и проблемы, возникающие при таком сложном переходе.

Давайте рассмотрим основные концепции этих паттернов.

Читать далее

SQL HowTo: поиск «в ширину» внутри цикла (Advent of Code 2024, Day 10: Hoof It)

Level of difficultyEasy
Reading time6 min
Views1.4K

В этой челлендж-серии статей попробуем использовать PostgreSQL как среду для решения задач Advent of Code 2024.

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

В этой части снова сталкиваемся с вложенным в цикл рекурсивным поиском "в ширину".

Читать далее

Как я сделал PR на 14К строк в проект YDB будучи студентом

Reading time12 min
Views10K

В этой статье я хотел бы рассказать о задаче, решение которой легло в основу моей дипломной работы. На момент ноября 2023 года я был студентом Физтеха — учился на базовой кафедре Яндекса, программа обучения которой реализуется совместно с ШАДом. Задача заключалась в переводе парсера языка запросов YQL (диалект SQL для YDB и YTsaurus) с ANTLR3 на ANTLR4. Мой наставник в ШАД и руководитель команды разработки клиентских библиотек YDB в Яндексе к. т. н. Алексей Мясников @asmyasnikovотметил еёе как особо сложную. Но меня это не отпугнуло:, тема работы из всех тем, предложенных в ШАД, эта показалась самой интересной и близкой мне.

Читать далее

Сложно о простом. Как работает интернет. Часть 1. Что такое коммутатор, маршрутизатор и примеры работы простых сетей

Level of difficultyEasy
Reading time14 min
Views46K

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

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

Читать далее

Конструирование лучшей команды (мечты). Социальная инженерия. Часть 1

Level of difficultyMedium
Reading time9 min
Views1.4K

Получить лучшую, преданную ИТ-команду, можно только целенаправленно сконструировав ее.

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

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

Для начала, давайте придем к общему пониманию, что мы будем вкладывать в термин «Социальное сообщество», а также ее представление - «Социальная среда».

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

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

Читать далее

Комбинаторы синтаксического анализа на Kotlin

Level of difficultyMedium
Reading time12 min
Views1.4K

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

Читать далее

Разбираемся с динамической памятью (кучей) в приложениях Java

Reading time8 min
Views7.9K
Начнём с простого вопроса. В самом ли деле каждый Java-разработчик понимает, как в Java работает память? Одна из обязанностей любого Java-разработчика — гарантировать, что в результате тонкой настройки приложения на Java из него получится выжать такую производительность, какую только возможно. Требуется время, чтобы научиться управлять памятью в Java и понять этот процесс, это касается всех, кто имеет дело с Java. В этой статье попробую объяснить, как овладеть этими умениями.
Читать дальше →

«Когда будет готово?». Декомпозируем задачи и оцениваем сроки без фатальных ошибок

Level of difficultyMedium
Reading time11 min
Views17K

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

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

Читать далее

Транзакция, ACID, CAP теорема и уровни изоляций транзакций простыми словами

Level of difficultyEasy
Reading time5 min
Views20K

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

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

Читать далее

Зеттелькастен рисование на бесконечном канвасе или как помнить всё на свете

Level of difficultyMedium
Reading time8 min
Views13K

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

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

Cегодня же я хочу рассказать о чем-то более сложном и продвинутом. ВАЖНО! Если вы не совсем понимаете, что такое кривые забывания, метод заметок корнелла, зеттелькастен, то дальнейший текст будет вам мало полезен. Если нет необходимой базы и опыта, то дальше читайте на свой страх и меня потом не обвиняйте.

Изложенная ниже методика Зеттелькастен рисования на бесконечном канвасе (далее ЗРБК для удобства) мне не встречалась ранее, поэтому я скромно буду считать себя одним из первых её практикантов/изобретателей. Причем это не что-то абсолютно новое, а скорее соединение существующих методик и новых возможностей цифровых устройств.

Читать далее

Мегагайд: культура работы с Git

Level of difficultyEasy
Reading time16 min
Views38K

Привет всем! Меня зовут Юля, я фронтенд-разработчик, наставник на курсах по JS и React и организатор профессионального сообщества Tbilisi JS. В Практикуме я помогаю студентам на курсе «React-разработчик».

За время работы в разных компаниях и над разными проектами я поняла, что Git — это не только (и не столько!) знание самой технологии и конкретных команд, но и определённая культура взаимодействия, практики, подходы, договорённости. Всё это помогает участникам команды лучше понимать друг друга и работать быстрее и чётче.

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

Читать далее

Как новый компилятор K2 ускоряет компиляцию Kotlin на 94%

Level of difficultyMedium
Reading time10 min
Views15K

Привет, меня зовут Мялкин Максим, я занимаюсь мобильной разработкой в KTS.

Не за горами выпуск новой версии Kotlin 2.0, основной частью которого является изменение компилятора на K2. 

По замерам JB, K2 ускоряет компиляцию на 94%. Также он позволит ускорить разработку новых языковых фич и унифицировать все платформы, предоставляя улучшенную архитектуру для мультиплатформенных проектов.

Но мало кто изучал, как работает K2, и чем он отличается от K1. 

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

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

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity