Pull to refresh
0
0
Арсений Александров @SPOGS

Android

Send message

Проектный менеджмент в бигтехе: как там все устроено, и почему во всем этом отсутствует Scrum

Level of difficultyMedium
Reading time19 min
Views8.8K

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

Читать далее
Total votes 7: ↑4 and ↓3+2
Comments4

Парное программирование: стили, организация, тайм-менеджмент

Reading time13 min
Views14K


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

P.S. Предлагаемые в статье техники затрагивают моменты удаленной совместной работы, что в текущих условиях вдруг стало особо актуальным.
Читать дальше →
Total votes 4: ↑4 and ↓0+4
Comments0

Не бойтесь использовать Gradle

Reading time9 min
Views24K

Дорогие junior и все, кто занимается copy-past конфигов Gradle.

В этой статье я хочу простым языком рассказать вам о gradl'овой конфигурации сборки вашего проекта, чтобы вы не боялись использовать Gradle.

Читать далее
Total votes 23: ↑21 and ↓2+21
Comments21

Анатомия юнит-теста

Reading time11 min
Views21K

Эта статья является конспектом книги «Принципы юнит-тестирования». Материал статьи посвящен структуре юнит-теста.

В этой статье рассмотрим структуру типичного юнит-теста, которая обычно описывается паттерном AAA (arrange, act, assert — подготовка, действие и проверка). Затронем именование юнит-тестов. Автор книги описал распространенные советы по именованию и показал, почему он несогласен с ними и привел альтернативы.

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments2

О проблемах нормальной оценки фич и как их решить

Reading time8 min
Views10K
image

Привет. Давайте я расскажу вам о своем опыте в оценке программных продуктов. Я занимаюсь этим без перерывов уже 15 лет, и мне бы хотелось поделиться опытом и эволюцией моих взглядов на оценку. Уверен, что это будет полезно. Начнем с целеполагания. Зачем вообще оценивать? Кому это надо?

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

Но, в конечном счете, нам всем бы хотелось получать зарплату, а зарплата не из воздуха появляется, ее компания берет из выручки, в отдельном случае — из инвестиций. А чтобы эта самая выручка была, нам надо достигать бизнес-цели. А люди, которые формулируют бизнес-цели очень любят всякие финансовые формулы — ROI, LTV и прочая EBITDA. А в этих формулах постоянно фигурируют сроки. Без них крокодил не ловится, не растет кокос.
Читать дальше →
Total votes 22: ↑21 and ↓1+27
Comments73

Тесты должна писать разработка (?)

Reading time4 min
Views13K
Привет! Есть старый холивар на тему, кто же должен писать тесты: разработчики или тестировщики. Вроде как если в команде есть тестировщики, то логично, что тесты пишут они, правда? С другой стороны, ребята из разработки (помимо самой разработки) точно знают, как работает их код и как будет вести себя в тех или иных ситуациях. Как минимум предполагают.


Дисклеймер: меня зовут Эрик Бурыгин, я давно работаю тестировщиком, веду студентов на курсе «Инженер по тестированию», поэтому может показаться, что тестировщик просто хочет перекинуть кусок работы на разработчиков. На самом деле у описываемого подхода есть как плюсы, так и минусы, поэтому статья носит в том числе и дискуссионный характер. Буду рад увидеть в комментах мнения как разработчиков, так и тестировщиков.

Если тесты пишет разработка, можно решить сразу несколько проблем, например:

  • Ощутимо ускорить релизный цикл.
  • Снять нагрузку с тестирования.

В большинстве команд процесс выглядит примерно так:

  1. Разработчик создаёт новые фичи и допиливает существующие.
  2. Тестировщик всё это тестирует и пишет различные тест-кейсы.
  3. Автоматизатор, оправдывая название должности, автоматизирует всё по написанным тест-кейсам из п.2.

Вроде бы всё выглядит просто.

Но в этой парадигме есть слабые места.
Читать дальше →
Total votes 19: ↑16 and ↓3+20
Comments73

Android Architecture Components. Часть 1. Введение

Reading time7 min
Views69K
image

На Google I/O 2017, было представлено набор библиотек под названием Android Architecture Components. В нескольких словах — это ряд вспомогательных библиотек, которые призваны помочь с такими вещами как, проектирование, тестирование и сопровождение приложений. То, что команда разработки Android начала акцентировать внимание на архитектуре не может не радовать, поскольку проблема является действительно актуальной. Ведь изначально не было предоставлено никаких требований или гайдлайнов по проектированию, и разработчику приходилось отталкиваться от своего предыдущего опыта. Что, в свою очередь, вызывало сложности в сопровождении проекта, а также сомнительные решения для специфических для ОС ситуаций. По факту это не первые шаги в этом направлении. Ранее уже Google представил репозиторий android-architecture с примерами применения разных архитектурных концептов. Надеемся, что развитие будет дальше и может на следующем Google I/O мы сможем увидеть полноценный фреймворк.
Читать дальше →
Total votes 7: ↑7 and ↓0+7
Comments5

Мой топ IT книг из прошлого века, актуальных до сих пор

Reading time5 min
Views64K

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

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

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

Читать далее
Total votes 49: ↑48 and ↓1+67
Comments55

Трансформация Android-разработки с Jetpack Compose и Корутинами

Reading time11 min
Views8.9K

Jetpack Compose — одна из наиболее обсуждаемых тем из серии видео про Android 11, заменивших собой Google IO. Многие ожидают от библиотеки, что она решит проблемы текущего UI-фреймворка Android, содержащего много легаси-кода и неоднозначных архитектурных решений. Другим не менее популярным фреймворком, о применении которого я расскажу в этой статье является Kotlin Coroutines, а конкретнее — входящий в него Flow API, который может помочь избежать оверинжиниринга при использовании RxJava.
Применение этих инструментов я покажу на примере небольшого приложения для контроля за употреблением кофе, написанного с использованием Jetpack Compose для UI и StateFlow как инструмента для управления состоянием. В нем также используется MVI-архитектура.


Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments2

Шаблон проектирования Entity-Component-System — реализация и пример игры

Reading time22 min
Views81K
image


В этой статье я хочу обсудить шаблон проектирования «сущность-компонент-система» (Entity-Component-System, ECS). По этой теме можно найти много информации в Интернете, поэтому я не буду глубоко вдаваться в объяснения, а больше расскажу о моей собственной реализации.

Часть 1: Реализация шаблона Entity-Component-System на C++


Начнём сначала. Полный исходный код моей реализации ECS можно найти в репозитории на github.

Entity-Component-System, в основном используемый в играх — это шаблон проектирования, обеспечивающий огромную гибкость в проектировании общей архитектуры программного обеспечения[1]. Такие большие компании, как Unity, Epic или Crytek используют этот шаблон в своих фреймворках, чтобы предоставить разработчикам очень богатый возможностями инструмент, с помощью которого они могут разрабатывать собственное ПО. Прочитать более широкое обсуждение по этой тематике можно в этих постах [2,3,4,5].
Total votes 15: ↑15 and ↓0+15
Comments6

Вещи, которые я бы хотел знать до начала разработки собственной игры

Reading time6 min
Views27K


Последние два года я в свободное от основной работы время разрабатывал личный проект — игру, которую выпустил в Steam пару месяцев назад. На протяжении всего процесса я делал много ошибок, и вел записи для своего «прошлого я». Этот список может не относиться ни к вашей игре в частности, ни к вашему движку или языку (я использовал Unity и C#). Но я верю, что кому-то эти советы могут помочь. Поехали.
Читать дальше →
Total votes 37: ↑26 and ↓11+23
Comments24

Поднимаем свой полноценный игровой Minecraft сервер с мини-играми. Часть 1. Выбираем и устанавливаем сервер

Reading time5 min
Views76K


Часть 2. Устанавливаем карту для лобби сервера

Часть 3. Устанавливаем мини-игры

tl;dr;
И так, что будет сделано в конце всего туториала?

  • создадим основной сервер, так называемое лобби — место, куда попадают все игроки, только что подключившиеся к серверу
  • запустим второй сервер, на котором установим популярную мини-игру Murder Mystery
  • установим и настроим прокси сервер, который соединит игровой клиент и запущеные серверы таким образом, что игроки не заметят, что они переходят с одного сервера на другой
  • создадим игрового персонажа, который будет перенаправлять нас на сервер с мини-игрой
  • Установим еще одну популярную мини-игру SkyBlock
  • Добавим внутриигровое меню на основе предметов инвентаря игрока
  • Добавим внутриигровые деньги
  • Создадим магазин
  • … и многое другое

Посмотреть, что в итоге получилось у меня: mc.piratebayserver.net
По любым вопросам пишите в Discord.

Поехали!
Читать дальше →
Total votes 11: ↑10 and ↓1+16
Comments39

Что такое Spring Framework? От внедрения зависимостей до Web MVC

Reading time41 min
Views489K


Вы можете использовать это руководство для различных целей:


  • Чтобы понять, что такое Spring Framework
  • Как работают ее основные фичи: такие как внедрение зависимостей или Web MVC
  • Это также исчерпывающий FAQ (Перечень часто задаваемых вопросов)

Примечание: Статья ~ 9000 слов, вероятно, не стоит читать ее на мобильном устройстве. Добавьте ее в закладки и вернитесь позже. И даже на компьютере ешь читай этого слона по одному кусочку за раз :-)


Содержание


  • Введение
  • Основы внедрения зависимостей
  • Контейнер Spring IOC / Dependency Injection
  • Spring AOP (Аспектно-ориентированное программирование) и прокси
  • Управление ресурсами Spring
  • Spring Web MVC
  • Дополнительные модули Spring Framework
  • Spring Framework: часто задаваемые вопросы
  • Заключение
Читать дальше →
Total votes 17: ↑14 and ↓3+17
Comments14

TelegramBot инструкция по созданию базового функционала для бота. (Часть 1)

Reading time6 min
Views48K
Не так давно я предложил вам воспользоваться моим ботом для телеграмма.

Telegram Bot — помощник в планировании мероприятий

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

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

Я решил написать цикл статей, в которых хочу показать базовые вещи, которые будут нужны вам для написания своего бота.
Вас ждет Java, Maven, TelegramAPI, Lombok и Log4j.
Кому интересно — прошу под кат…
Читать дальше →
Total votes 4: ↑3 and ↓1+5
Comments17

Shader — это не магия. Написание шейдеров в Unity. Вертексные шейдеры

Reading time8 min
Views15K
Всем привет! Меня зовут Дядиченко Григорий, и я основатель и CTO студии Foxsys. Сегодня мы поговорим про вершинные шейдеры. В статье будет разбираться практика с точки зрения Unity, очень простые примеры, а также приведено множество ссылок для изучения информации про шейдеры в Unity. Если вы разбираетесь в написании шейдеров, то вы не найдёте для себя ничего нового. Всем же кто хочет начать писать шейдеры в Unity, добро пожаловать под кат.


Total votes 18: ↑17 and ↓1+16
Comments2

Оптимизация Unity UI

Reading time10 min
Views32K

image


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

Читать дальше →
Total votes 31: ↑31 and ↓0+31
Comments11

Тестирование Android приложений

Reading time28 min
Views77K

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



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

Читать дальше →
Total votes 12: ↑12 and ↓0+12
Comments8

Drag и Swipe в RecyclerView. Часть 1: ItemTouchHelper

Reading time6 min
Views34K

Drag и Swipe в RecyclerView. Часть 1: ItemTouchHelper


Существует множество обучающих материалов, библиотек и примеров реализации drag & drop и swipe-to-dismiss в Android c использованием RecyclerView. В большинстве из них по-прежнему используются устаревший View.OnDragListener и подход SwipeToDismiss, разработанный Романом Нуриком. Хотя уже доступны новые и более эффективные методы. Совсем немногие используют новейшие API, зачастую полагаясь на GestureDetectors и onInterceptTouchEvent или же на другие более сложные имплементации. На самом деле существует очень простой способ добавить эти функции в RecyclerView. Для этого требуется всего лишь один класс, который к тому же является частью Android Support Library.

Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments2

Визуальный редактор логики для Unity3d. Часть 1

Reading time15 min
Views25K

Введение


Здравствуйте уважаемые читатели, в сегодняшней статье я хотел бы остановиться на таком феномене в разработке приложений на Unity3d, как визуальная разработка или если бы точнее, разработка с применением визуального представления кода и логики. И, прежде чем продолжить хочу сразу уточнить, речь не идет о визуальном программировании, от слова “совсем”, никаких Blueprint вариаций в мире Unity и никаких генераций C# кода. Так что же тогда подразумевается под визуальным редактором логики? Если вам интересен ответ на данный вопрос добро пожаловать под кат.

Статьи в серии:
Визуальный редактор логики для Unity3d. Часть 2
Визуальный редактор логики для Unity3d. Часть 3

Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments9

Функциональное мышление. Часть 11: Финал

Reading time11 min
Views9.6K

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



Хочу отдельно поблагодарить @kleidemos. Именно он выступил главным переводчиком и менеджером всей серии статей. Спасибо!


Читать дальше →
Total votes 23: ↑23 and ↓0+23
Comments3

Information

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

Specialization

Mobile Application Developer
Middle