Digital Media
1.92K subscribers
319 photos
34 videos
326 links
Интернет-медиа об IT&Digital

– Свежие новости и инсайды ведущих IT-гигантов
– Полезные сервисы и приложения
– Анонсы конференций

Мобильная разработка – @mobile_native
Митапы – @meetup_today

По всем вопросам – @artemiygreg
Download Telegram
Интересная статья, о том как с помощью нейронных сетей написать Web приложение для определения лиц и масок для Google Chrome.

Используемые технологии

👉 React.js
👉 TensorFlow.js
👉 Web Assembly / WebGL
Про комментарии к коду

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

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

На хабре есть статья на этот счет, рекомендую к ознакомлению.

А вы пишите комментарии к коду?
Есть мысль начать писать коротенькие посты про продуктовую разработку. Как устроены процессы в компаниях, основные понятия Scrum (Backlog, Sprint, Planning, Grooming, Demo, Retro и т.д.), с чего начинается разработка фичей и вот это вот всё.

Будет интересно про такое читать?
This media is not supported in your browser
VIEW IN TELEGRAM
В телеграм подвезли групповые видеозвонки и шеринг экрана во время видеозвонка 🥳🥳🥳
Анонс мини-курса по основам Scrum

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

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

Я составил вот такой план (на картинке), которого буду придерживаться. Посты будут выходить примерно 1 раз в 2/3 дня, по мере свободного времени и написания материала.

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

Полезных источников по Fultter не особо много, поэтому хочу порекомендовать Вам канал Oh, my Flutter – отличное комьюнити единомышленников. Автор канала Михаил Зотьев, практикующий Flutter-разработчик и техлид Flutter команды в Surf. На канале Миша публикует всё самое интересное из мира Flutter - новости, статьи, подборки, анонсы. Хоть я и пишу на Kotlin, для общего понимания подписан на канал.

Залетайте: @ohmyflutter
Что такое Scrum и с чем его едят?

А вот и первая, вводная часть мини-курса "Основные понятия Scum". Официальные трактования вы и без меня найдете в интернете, я же постараюсь своими словами объяснить что такое Scrum и для чего используется.

Итак, что же такое Scrum? Можно встретить множество различных интерпретаций этого понятия (методика, методология и даже фреймворк). Я бы описал этот термин как некий набор рекомендаций для более гибкой разработки, который позволяет значительно снизить время выхода фичи в продакшн (time to market).

В основе Scrum лежат

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

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

3. Короткие спринты. Определенный отрезок времени, за который нужно успеть выполнить поставленные цели.

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

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

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

Не давно Github провёл внутренне исследование "Good Day Project от GitHub". Так вот, результаты этого исследования как раз тому подтверждение.
Основные понятия Scrum. Backlog (Бэклог)

Backlog (Бэклог) – простым языком, это список задач продукта, которые нужно выполнить. Стоит отметить что в Scrum есть 2 варианта бэклога.

1. Product backlog (Бэклог продукта) – это непосредственно общий список задач, историй, багов всего продукта. Как правило, поддерживают общий бэклог, формируют, выставляют приоритеты, актуализируют представители бизнеса, Product Owner или Product Manager, хоть и обязанности у них немного отличаются.

2. Sprint Back (Бэклог спринта) – это уже непосредственно список задач, историй, багов, которые команда должна выполнить за спринт. Бэклог спринта определяет непосредственно вся команда на Sprint Planning.

Дальше у нас по плану "Sprint (Спринт)". Первая, вводная часть о скраме тут. И по традиции, оставьте обратную связь, жмакнув соответствующую кнопку.
Крутые лекции по Android для начинающих

Наткнулся недавно на плейлист с лекциями от Android Academy. Посмотрел несколько видосов - крутые лекции от крутых ребят, доступно, понятно и на русском языке, в общем всё как мы любим. Для начинающих зайдет.

А на гитхабе можно посмотреть крутой Android Roadmap
Пять худших практик написания кода, которые помогут испортить отношения с коллегами

Интересная статейка на хабре про худшие практики написания кода.
Вам знакомо такое понятие как "Технический долг"?

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

Так вот, есть интересная статистика от Stepsiz, согласно которой, средний разработчик тратит 6 часов в неделю (~ 1 рабочий день) на работу с техническим долгом.

Среднее время, затрачиваемое на работы по поддержанию работы legacy систем составляет 33%, из этого времени более 50% тратится исключительно на технический долг. Это время, когда инженер не работает над достижением своих основных целей.
Основные понятия Scrum. Sprint (Спринт)

Продолжаем серию постов по теме "Основные понятия Scrum". Сегодня у нас речь пойдет про спринты. 👇

Sprint (Спринт) – это фиксированный, как правило, короткий промежуток времени, за который команда должна выполнить поставленные цели в начале спринта. Иногда спринты называют итерациями.

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

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

Это пожалуй основные моменты, которые нужно знать о спринтах. Для тех, кто пропустил, предыдущая часть "Backlog (Бэклог)". Включайте уведомления, в следующем посте интересная тема "Grooming (Груминг)".
10 практик «ответственного» тимлида

Интересная статья, в которой собраны 10 практик "ответственного" тимлида. Осторожно, в статье присутствует сарказм 😉
Основные понятия Scrum. Grooming (Груминг)

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

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

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

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

Несколько советов по личному опыту

1. Длительность груминга. Для себя определил оптимальное время 1 час, если груминг длится больше 1 часа – как минимум нужно сделать перерыв 15-20 минут, а лучше и во все закончить, иначе эффективность будет снижаться.

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

3. Активное участие. На груминге может участвовать любой желающий, лучше, когда на груминге будут присутствовать представители всех направлений (fron-end, back-end, moble, qa, аналитики, безопасники), таким образом вы закроете вопросы со всех сторон. Ходите на груминги и принимайте активное участие, на планировании вам это зачтется.

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

И важно понимать, в скраме истории оценивают не в обычных часах, днях, а в неких условных величинах, которые называются Story Points, про них и напишу в следующем посте, не переключайтесь. Scrum план тут.
Слышали что-нибудь про требования ACID?

ACID – это набор требований к транзакционной системе, которые обеспечивают сохранность ваших данных. Расшифровывается аббревиатура ACID как Atomicity (Атомарность), Consistency (Согласованность), Isolation (Изолированность), Durability (Надёжность).

На хабре есть статья, в которой детально описывают каждое из этих требований и на примерах рассказывают для чего это нужно и как работает. А если лень читать, на Youtube канале Listen IT можно послушать аудио версию статьи.
Наткнулся на интересный сервис, зацените 👇

DevDocs – сайт с документациями по множеству популярных языков для разработчиков Angular, Django, Go, Git, Kotlin... Так же есть разделы с популярными фреймворками и еще куча всего.