Вопрос правильных переменных, логичного и простого кода все чаще интересует меня. Когда ты работаешь в командах, где стандарты уже приняли давно до тебя или есть обкатанные решения, то не особо задумываешься про такие вещи. Все для всех понятно и никто не поспорит лишний раз как назвать переменную или должны ли быть в расширении приватные методы.
Но когда ты приходишь в еще неокрепший проект, в котором не пройден этап формирования стайлгайда, линтера и практик, то споры на ревью могут занять очень много времени. Иногда больше, чем делаешь фичу.
Попробовал собрать хорошие правила практик для эффективного код ревью:
Я до сих пор уверен, что хорошее кодревью не должно забирать много времени. Качество кода не должно быть идеальным и догматичным, а скорее стандартизированным и понятным. Код должен закрывать потребности разрабов и учитывать их хотелки. Он не должен слепо следовать внешним убеждениям из книг или локальными людьми, которые транслируют свои привычки вопреки стандартам большинства.
Прежде чем стандартизировать процесс производства кода, мне кажется, нужно выявить общий компромисс
Please open Telegram to view this post
VIEW IN TELEGRAM
Что ждёт мобильную разработку в 2024 году
Дал небольшое интервью Яндекс практикуму о трендах и прогнозах на 2024 год. Старался быть объективным, но без субъективщины не обошлось. Что-то приняли в финальный текст, а что-то нет. Но все равно почитайте.
Вкратце, все будет хорошо. Главное не останавливаться и не отчаиваться
Ну и кстати, кто не знал, я автор контента на Яндекс практикуме
Дал небольшое интервью Яндекс практикуму о трендах и прогнозах на 2024 год. Старался быть объективным, но без субъективщины не обошлось. Что-то приняли в финальный текст, а что-то нет. Но все равно почитайте.
Вкратце, все будет хорошо. Главное не останавливаться и не отчаиваться
Ну и кстати, кто не знал, я автор контента на Яндекс практикуме
Хабр
Что ждёт мобильную разработку в 2024 году
Привет! Меня зовут Таня Шашлова, я руковожу образовательными продуктами по мобильной разработке в Практикуме. Чтобы обучать людей профессии и помогать им найти работу, нам важно понимать, как...
Старый, но полезный доклад, чьи мысли всплывают раз в год в статьях с разоблачением заблуждений об архитектурах. О недопонимании MVC как паттерна и что мы все его неправильно используем. А почти все остальные паттерны могут иметь такие же проблемы, как и MVC.
Я не верю, что индустрия уйдет от вектора общих архитектур и от единообразия модулей. Сколько бы мудрецы не спорили, но VIPER, TCA, MVVM и другие архитектурные паттерны стали уже больше шаблоном для организации проекта, а не инструментом для вдумчивого проектирования. О последнем еще надо подумать и придти к договоренностям. А переизбыток абстракций и усложнение кода не сильно многих пугает отказаться от привычных майндсетов бездумно копировать привычный шаблон в очередной модуль.
Для чего же это полезно? К спорам с коллегами в чате кто как правильно понял MVC от дядюшки Боба. А также чтобы не пугаться огромных модулей, которые используют паттерны MVC. Возможно, в них есть свои принципы и методики.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
UIKonf18 – Day 1 – Joachim Kurz – MVC is Not Your Problem
MVC is Not Your Problem
In recent years, more and more criticism of the Model-View-Controller pattern (MVC) surfaced and MVC was often blamed for causing too much code in one place and too closely coupled code (“Massive View Controller”). Lots of different…
In recent years, more and more criticism of the Model-View-Controller pattern (MVC) surfaced and MVC was often blamed for causing too much code in one place and too closely coupled code (“Massive View Controller”). Lots of different…
У Эриха Фромма есть хорошее определение любви:
Любовь — это активная заинтересованность в жизни и развитии того, что мы любим. Где нет активной заинтересованности, там нет любви
Вся философия моего развития — находить вещи, с которыми происходит химия.
Наша жизнь слишком коротка. Не деньги и вещи дают свободу. Это сложная и тонкая материя. Все материальное отягощает и обесценивает. Усложняет и нагружает.
Без любви нет ничего. Впечатляющих достижений. Развития и долгосрочности в отношениях. Все инструменты в жизни нужны для поиска любви, которая приводит к счастью.
Это огромный труд найти и удержать любовь. Не разлюбить. Не обменять на брак по расчету. Не разменять себя страхам и сомнениям. Не изменять своим ценностям.
Надеюсь, что мы все дойдем до алтаря любви с близкими и делом жизни.
Please open Telegram to view this post
VIEW IN TELEGRAM
Впереди еще материалы с вопросами собесов для джунов про UIKit и язык Swift.
Также чуть буду менять структуру для упрощенной навигации.
получить доступ можно тут
Please open Telegram to view this post
VIEW IN TELEGRAM
Снова контент про стандарты качества. На этот раз древний материал, откопанный в забытой цивилизации. Но это настоящий клад по базовым советам написания кода
Вот саммари:
Скоро мы подробнее изучим правила написания читабельного и хорошего кода. Внутри чата мы уже активно ревьюим друг друга.
Please open Telegram to view this post
VIEW IN TELEGRAM
YouTube
How To Design A Good API and Why it Matters
Google Tech Talks
January 24, 2007
ABSTRACT
Every day around the world, software developers spend much of their time working with a variety of Application Programming Interfaces (APIs). Some are integral to the core platform, some provide access to widely…
January 24, 2007
ABSTRACT
Every day around the world, software developers spend much of their time working with a variety of Application Programming Interfaces (APIs). Some are integral to the core platform, some provide access to widely…
Манифест Чистого Программиста или краткий конспект книги «Чистый Код» Роберта Мартина
Полезный конспект книги, который нужен для ознакомпление каждому программисту. Для тех, кто уже прочитал книгу и иногда освежает знания.
В ноушене уже также добавил конспект по "Совершенному коду"
Полезный конспект книги, который нужен для ознакомпление каждому программисту. Для тех, кто уже прочитал книгу и иногда освежает знания.
В ноушене уже также добавил конспект по "Совершенному коду"
Хабр
Манифест Чистого Программиста или краткий конспект книги «Чистый Код» Роберта Мартина
Данная статья является конспектом книги "Чистый Код" Роберта Мартина и моим пониманием того, каким Чистый Код должен быть. Тут нет разделов о тестировании, TDD, о том какая должна быть архитектура и...
Одна из важных и ключевых секций любого собеса
Начал добавлять вопросы к собесам на UIKit:
- Теория
- Практика
- Ресурсы
- Квизы
Контент будет обновляться неделю. Также допом немного обновил вопросы и квизы к многопоточке
Весь контент с вопросами по памяти и многопоточки тут
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему увольняют людей?
Пост немного безжалостный, но честный.
Вы удивитесь. Одна из главных причин увольнения людей это не отсутствие результата. Это недостаточный результат.
Общаясь с руководством быстрорастущих бигтехов, я узнал, что недостаточно просто минимально делать задачи и верить, что всю жизнь просидишь на одном грейде.
Особенно это касается джунов и мидлов. Было много случаев, когда стажеров, джуниоров и мидлов просили уволиться или увольняли из-за отсутствия результата. Вроде бы и с задачами для своего грейда справляется, но стоит на одном месте. Зачем такой нужен, если на улице стоят много голодных и горящих?
Почему не получится просто придти на работу и делать минимум, который устраивает всех?
Потому что сидеть на одном месте, выполнять необходимый минимум и делать одни и те же задачи почти расписаться в своем смертном приговоре. Ничто не стоит на месте. Мало просто развиваться, нужно развиваться в необходимом темпе, который не всегда все выдерживают.
Еще чаще я начал встречать сеньоров и тимлидов, которые достигнув вершин, уходят на грейды ниже или долгий отпуск. Не выдерживая темп и нагрузку.
Когда ты выбираешь путь обмана и идешь на грейд выше своего реального, то тебе за год нужно не просто стать им, но и вырасти. Такие ставки на тебя в современной игре. В итоге, ты выгораешь, а более молодые и упорные обходят тебя.
Поэтому ит и считается супер стрессовой и динамичной областью. Поэтому здесь постоянно не хватает кадров из-за отсутствия статики.
Ну а как сопротивляться этой циничной машине и сохранять конкурентоспособность мы попробуем изучить здесь.
Здесь мы не строим ложных надежд и веру в быстрые и легкие пути.
Пост немного безжалостный, но честный.
Вы удивитесь. Одна из главных причин увольнения людей это не отсутствие результата. Это недостаточный результат.
Общаясь с руководством быстрорастущих бигтехов, я узнал, что недостаточно просто минимально делать задачи и верить, что всю жизнь просидишь на одном грейде.
Особенно это касается джунов и мидлов. Было много случаев, когда стажеров, джуниоров и мидлов просили уволиться или увольняли из-за отсутствия результата. Вроде бы и с задачами для своего грейда справляется, но стоит на одном месте. Зачем такой нужен, если на улице стоят много голодных и горящих?
Почему не получится просто придти на работу и делать минимум, который устраивает всех?
Потому что сидеть на одном месте, выполнять необходимый минимум и делать одни и те же задачи почти расписаться в своем смертном приговоре. Ничто не стоит на месте. Мало просто развиваться, нужно развиваться в необходимом темпе, который не всегда все выдерживают.
Еще чаще я начал встречать сеньоров и тимлидов, которые достигнув вершин, уходят на грейды ниже или долгий отпуск. Не выдерживая темп и нагрузку.
Когда ты выбираешь путь обмана и идешь на грейд выше своего реального, то тебе за год нужно не просто стать им, но и вырасти. Такие ставки на тебя в современной игре. В итоге, ты выгораешь, а более молодые и упорные обходят тебя.
Поэтому ит и считается супер стрессовой и динамичной областью. Поэтому здесь постоянно не хватает кадров из-за отсутствия статики.
Ну а как сопротивляться этой циничной машине и сохранять конкурентоспособность мы попробуем изучить здесь.
Здесь мы не строим ложных надежд и веру в быстрые и легкие пути.
Решил добить основные блоки по джуну на недели, чтобы сразу перейти к мидлу с памятью. Swift — самый важный блок и, наверное, нужно было начинать с него. Любое изучение иос разработки на любом уровне должно начинаться с языка.
Скорее всего, это будет самый объемный блок.
Начал добавлять вопросы к собесам на Swift:
- Теория
- Практика
- Ресурсы
- Квизы
Теперь в ноушене есть основной материал для джунов по фундаментальным блокам: память, многопоточка, язык и ui. Все остальные вещи, такие как архитектура, реактивщина, хранение данных если и будет, то скорее как дополнение
Весь контент с вопросами по памяти, UIKit и многопоточки тут
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Добавление метода GroupBy в Sequence
Одной из самой практичной задачей, которую я встречал на работе и на собесах — это группировка элементов по ключам.
Поэтому вот подборка всяких реализаций и вопросов:
- Group elements of an array by some property
- Swift’s Dictionary grouping and how underrated it is
Кстати, сегодня в чате мы начали решать дейли алгосы, чтобы прокачать себя и писать код лучше. Каждый день в чат будут падать разные задачи, где каждый может делиться своими решениями. Качаем навык кодинга и закрепляем на практике, а не только зубрим вопросы.
Одной из самой практичной задачей, которую я встречал на работе и на собесах — это группировка элементов по ключам.
Поэтому вот подборка всяких реализаций и вопросов:
- Group elements of an array by some property
- Swift’s Dictionary grouping and how underrated it is
Кстати, сегодня в чате мы начали решать дейли алгосы, чтобы прокачать себя и писать код лучше. Каждый день в чат будут падать разные задачи, где каждый может делиться своими решениями. Качаем навык кодинга и закрепляем на практике, а не только зубрим вопросы.
Swift Forums
Add GroupBy method to Sequence
Introduction Early in my career I worked a lot with C#, and I found the IEnumerable<T> extension methods extremely useful. I think Swift would benefit from adding some equivalents. This pitch is for GroupBy, which would be a method on Sequence that takes…
Как озон сканер делали
Статья специфичная, но полезная для тех, кто делал сканер. В авито у меня была такая же задача. В ней я проявил чудеса промышленного шпионажа: надел очки и накладные усы, чтобы собрать фидбэк у работников их пункта выдачи.
Задача была прикольная, потому что:
1. Проявлял разные подходы и инструменты продуктовой аналитики. Собирал какие плюсы и минусы есть у сканеров. Как вообще они влияют на бизнес метрики
2. Пытался запроектировать универсальный модуль сканера, который бы использовался в разных продуктовых флоу.
Мне все больше начали нравятся продуктовые задачи, тк в них есть много понимания «а точно ли это нужно кому-то»
Статья специфичная, но полезная для тех, кто делал сканер. В авито у меня была такая же задача. В ней я проявил чудеса промышленного шпионажа: надел очки и накладные усы, чтобы собрать фидбэк у работников их пункта выдачи.
Задача была прикольная, потому что:
1. Проявлял разные подходы и инструменты продуктовой аналитики. Собирал какие плюсы и минусы есть у сканеров. Как вообще они влияют на бизнес метрики
2. Пытался запроектировать универсальный модуль сканера, который бы использовался в разных продуктовых флоу.
Мне все больше начали нравятся продуктовые задачи, тк в них есть много понимания «а точно ли это нужно кому-то»
Хабр
Камера как сканер штрих-кодов: проблемы, инструменты и эксперименты
Всем привет, меня зовут Никита, я старший разработчик в компании Озон и работаю над iOS-приложением «Пункт Озон». «Пункт Озон» — это мобильное приложение для работников и менеджеров пункта выдачи...
21 пара по сложности алгоритмам
Нашел какой-то дикий по объему материал про сложности алгоритмов. 21 пара по полтора часа. Нет ни одного похожего по объемам и после просмотра этих лекций можно стать экспертом по алгосам. Теориком*
В ноушене я уже начал собирать сборник список "топ самых распространненых задач по алгоритмам", но решать их нужно после понимания сложностей по времени и памяти.
Нашел какой-то дикий по объему материал про сложности алгоритмов. 21 пара по полтора часа. Нет ни одного похожего по объемам и после просмотра этих лекций можно стать экспертом по алгосам. Теориком*
В ноушене я уже начал собирать сборник список "топ самых распространненых задач по алгоритмам", но решать их нужно после понимания сложностей по времени и памяти.
YouTube
Абрамов С. А. - Сложность алгоритмов - 1. Понятие сложности алгоритмов
0:00:10 1. Введение в понятие сложности алгоритма
0:12:05 2. Сортировка простыми вставками и его сложность
0:22:08 3. Определение сложности. Временная и пространственная сложность.
0:56:30 4. Равнодоступная Адресная Машина
1:00:10 5. Асимптотическая оценка…
0:12:05 2. Сортировка простыми вставками и его сложность
0:22:08 3. Определение сложности. Временная и пространственная сложность.
0:56:30 4. Равнодоступная Адресная Машина
1:00:10 5. Асимптотическая оценка…
Частые задачи на собесах
Помимо ежедневных алгосов в чате с разбором решений, оценок сложности и памяти, я начал вести библиотеку задач по алгосам с ответами, комментами и ссылками на литкод и тп.
Цель: не просто заучить, но и обмениваться опытом по навыкам кодинга. Все же качественный код сразу заметно, а он не прокачивается двумя прочтениями статей.
Доступ все там же
Помимо ежедневных алгосов в чате с разбором решений, оценок сложности и памяти, я начал вести библиотеку задач по алгосам с ответами, комментами и ссылками на литкод и тп.
Цель: не просто заучить, но и обмениваться опытом по навыкам кодинга. Все же качественный код сразу заметно, а он не прокачивается двумя прочтениями статей.
Доступ все там же
Порядок?
Anonymous Quiz
60%
3,3,2,1
3%
3,3,1,2
11%
deadlock
18%
3, 2, 3, 1
1%
3, 2, 1, 3
0%
3, 1, 2, 3
7%
Я хз