Худшая ошибка, которую можно совершить при наследовании, или "Не шутите с SOLIDом"
У меня была амбициозная задача на глубокий рефакторинг, с которой, как мне казалось, я прекрасно справился. Но, спустя время, я стал понимать, что допустил одну непростительную ошибку.
Эта ошибка до сих пор красуется в проде и ежедневно бесит меня и моих коллег. Ух, дойдут у меня руки её порефакторить! Но теперь это будет куда тяжелее, она пустила корни и разрослась.
"А теперь он расскажет, в чём эта ошибка состоит", – подумали вы. А вот и не угадали.
🤔 Ваша очередь мне в комментариях рассказывать, в чём я тогда накосячил! И стало ли лучше справа, чем слева. И что бы вы ещё доработали. 👇👇👇
Посмотрим, как у вас с DRY–KISS–SOLID'ом дела обстоят 😏
#android #вопросы #рефакторинг
@andrdevnotes | Обучение android
У меня была амбициозная задача на глубокий рефакторинг, с которой, как мне казалось, я прекрасно справился. Но, спустя время, я стал понимать, что допустил одну непростительную ошибку.
Эта ошибка до сих пор красуется в проде и ежедневно бесит меня и моих коллег. Ух, дойдут у меня руки её порефакторить! Но теперь это будет куда тяжелее, она пустила корни и разрослась.
"А теперь он расскажет, в чём эта ошибка состоит", – подумали вы. А вот и не угадали.
🤔 Ваша очередь мне в комментариях рассказывать, в чём я тогда накосячил! И стало ли лучше справа, чем слева. И что бы вы ещё доработали. 👇👇👇
Посмотрим, как у вас с DRY–KISS–SOLID'ом дела обстоят 😏
#android #вопросы #рефакторинг
@andrdevnotes | Обучение android
🤔3👀3🔥1
А теперь внимание – правильный ответ!
Да какой правильный ответ, лол, это же архитектура, тут у всех своя правда.
Как многие из вас отметили, наблюдается проблема с инкапсуляцией. Нельзя делать в родителе стейт и трогать его и из родителя, и из наследников – иначе начнётся жуткая путаница, будет непонятно, что где вызывается и в каких местах меняется.
Из-за этой путаницы любой написанный в родителе или наследнике код может вести к неприятным сайдэффектам и с каждым разом приводить к новым костылям и усилению связности кода.
Поэтому очень желательно либо вообще не заводить в родителе стейт, либо хотя бы делать его приватным, чтобы нельзя было трогать из наследников.
А лучше в родителе обходиться абстрактными переменными и функциями, а также не абстрактными protected функциями.
И вообще, помним: предпочитаем композицию, а не наследование!
#android #вопросы #рефакторинг
@andrdevnotes | Обучение android
Как многие из вас отметили, наблюдается проблема с инкапсуляцией. Нельзя делать в родителе стейт и трогать его и из родителя, и из наследников – иначе начнётся жуткая путаница, будет непонятно, что где вызывается и в каких местах меняется.
Из-за этой путаницы любой написанный в родителе или наследнике код может вести к неприятным сайдэффектам и с каждым разом приводить к новым костылям и усилению связности кода.
Поэтому очень желательно либо вообще не заводить в родителе стейт, либо хотя бы делать его приватным, чтобы нельзя было трогать из наследников.
А лучше в родителе обходиться абстрактными переменными и функциями, а также не абстрактными protected функциями.
И вообще, помним: предпочитаем композицию, а не наследование!
#android #вопросы #рефакторинг
@andrdevnotes | Обучение android
👍6❤2😁1
Привет, друзья!
Этот канал я веду для того, чтобы помогать начинающим разработчикам быстрее и легче входить в профессию.
И мне важно, чтобы здесь вы находили только нужную и важную для вас информацию.
Пожалуйста, уделите пару минут вашего времени и пройдите опросы ниже 👇👇👇
Это поможет мне лучше понять, какая информация для вас сейчас актуальна.
Этот канал я веду для того, чтобы помогать начинающим разработчикам быстрее и легче входить в профессию.
И мне важно, чтобы здесь вы находили только нужную и важную для вас информацию.
Пожалуйста, уделите пару минут вашего времени и пройдите опросы ниже 👇👇👇
Это поможет мне лучше понять, какая информация для вас сейчас актуальна.
С каким утверждением вы согласны?
Final Results
19%
Джуны никому не нужны, и даже с крутым навыками на работу не устроиться
51%
С крутыми навыками устроиться джуном на работу не составит особых проблем
11%
Выпускник хороших курсов готов устраиваться на работу джуном
59%
Хороший наставник может помочь освоить навыки и устроиться на работу
Какой пункт лучше соответствует вашей текущей ситуации?
Final Results
39%
Я работаю на нелюбимой работе, хочу сменить её на андроид-разработку
11%
Моя работа (не в андроид-разработке) мне нравится, менять её не хочу
13%
Я уже работаю в IT, но хочу в андроид-разработку
19%
Я уже стажёр / джун андроид-разработчик
29%
Я ищу первую работу
Выберите верные для вас утверждения:
Final Results
42%
Непонятно, что делать, чтобы побыстрее устроиться на работу
19%
У меня есть план, что делать, чтобы побыстрее устроиться на работу
32%
Я НЕ понимаю, как готовиться к собеседованиям
14%
Я понимаю, как готовиться к собеседованиям
9%
Я понимаю, что делать, чтобы моё резюме прошло фильтр и меня позвали на собес
51%
Я НЕ понимаю, что делать, чтобы моё резюме прошло фильтр и меня позвали на собес
Я живу в:
Final Results
17%
Москва
10%
Питер
29%
Другой крупный региональный город
15%
Маленький город
30%
Не в РФ
Полезные ссылки для подготовки к собеседованию на junior
Вокруг море информации, где-то неверной, где-то устаревшей. В этой рубрике я буду давать вам ссылки, где информация актуальна и хорошо разъяснена.
И не надо жаловаться, что там местами iOS или джава! Архитектура у iOS / android аналогичная, а джавой андроид не испортишь!
Пишите в комментариях, если есть, что улучшить, будем с вами вместе собирать базу знаний.
1️⃣ Dagger / Hilt
По хилту советую официальную документацию. Там и учить особо нечего, заводится с пол-пинка.
По даггеру у официалов мне дока не нравится, поэтому идём на хабр:
📚 Пытаемся понять Dagger раз
📚 Пытаемся понять Dagger два
2️⃣ MVVM
Тут мы касаемся архитектуры, поэтому можно начинать холиварить. Хотя, строго говоря, это презентейшн-паттерн, а не архитектура – ну вот, видите, я уже начал набрасывать на вентилятор. Короче, ссылки:
📚 О презентейшн-паттернах
📚 Объединяем презентейшн-паттерны с Clean Arch
📚 MVVM по-простому
📚 MVVM-задротство со склонностью к MVI
Если такой контент вам полезен, ставьте лайк!
#android #БазаЗнаний
@andrdevnotes | Обучение android
Вокруг море информации, где-то неверной, где-то устаревшей. В этой рубрике я буду давать вам ссылки, где информация актуальна и хорошо разъяснена.
Пишите в комментариях, если есть, что улучшить, будем с вами вместе собирать базу знаний.
1️⃣ Dagger / Hilt
По хилту советую официальную документацию. Там и учить особо нечего, заводится с пол-пинка.
По даггеру у официалов мне дока не нравится, поэтому идём на хабр:
📚 Пытаемся понять Dagger раз
📚 Пытаемся понять Dagger два
2️⃣ MVVM
Тут мы касаемся архитектуры, поэтому можно начинать холиварить. Хотя, строго говоря, это презентейшн-паттерн, а не архитектура – ну вот, видите, я уже начал набрасывать на вентилятор. Короче, ссылки:
📚 О презентейшн-паттернах
📚 Объединяем презентейшн-паттерны с Clean Arch
📚 MVVM по-простому
📚 MVVM-задротство со склонностью к MVI
Если такой контент вам полезен, ставьте лайк!
#android #БазаЗнаний
@andrdevnotes | Обучение android
🔥17👍6👀2❤1
Как перестать терять время?
❓ Однажды ко мне на консультацию пришёл парень, учащийся на Яндекс-практикуме, с точечным запросом о помощи по внедрению одной библиотеки.
В процессе занятия он упомянул, что ему не хватает внимания и поддержки преподавателей, и нужна более глубокая помощь с накопившимися вопросами, которые начали его накрывать снежным комом.
😎 Что, в общем-то, неудивительно, поэтому сейчас многие и берут себе ментора либо во время курсов, либо сразу после них.
Фишка в том, что в результате занятия я не помог ему с внедрением той библиотеки. Вместо этого я показал ему, что эта библиотека ему нафиг не нужна для решения нужной задачи, а решить её можно куда проще, буквально десятью строками кода.
А заодно я успел немного поревьюить его код и подсказать несколько мест и подходов, как всё можно сделать удобнее, красивее и эффективнее.
Всего за час плотной работы с ментором парень нашёл реальную проблему и решил её самым эффективным способом, а бонусом явно почувствовал себя сильно увереннее, и был мне очень благодарен. И даже по собственной инициативе поделился одним моим постом с сокурсниками =)
🏃♂️🏃♂️🏃♂️ А вы хотите перестать топтаться на месте? Оставляйте заявку на консультацию.
#android #консультация
@andrdevnotes | Обучение android
В процессе занятия он упомянул, что ему не хватает внимания и поддержки преподавателей, и нужна более глубокая помощь с накопившимися вопросами, которые начали его накрывать снежным комом.
😎 Что, в общем-то, неудивительно, поэтому сейчас многие и берут себе ментора либо во время курсов, либо сразу после них.
Фишка в том, что в результате занятия я не помог ему с внедрением той библиотеки. Вместо этого я показал ему, что эта библиотека ему нафиг не нужна для решения нужной задачи, а решить её можно куда проще, буквально десятью строками кода.
А заодно я успел немного поревьюить его код и подсказать несколько мест и подходов, как всё можно сделать удобнее, красивее и эффективнее.
Всего за час плотной работы с ментором парень нашёл реальную проблему и решил её самым эффективным способом, а бонусом явно почувствовал себя сильно увереннее, и был мне очень благодарен. И даже по собственной инициативе поделился одним моим постом с сокурсниками =)
🏃♂️🏃♂️🏃♂️ А вы хотите перестать топтаться на месте? Оставляйте заявку на консультацию.
#android #консультация
@andrdevnotes | Обучение android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥3💯3👏1🙏1
Личные консультации: для кого и зачем?
Друзья, вы хотите выделиться из кучи претендентов и, наконец, стать уже джуниором?
Или же работаете стажёром или джуниором, но хотите резко вырасти в доходе и стать миддлом?
Тогда вам пригодится моя помощь.
С какими типами запросов можно прийти ко мне на консультацию?
1️⃣ Вы не понимаете, в какой точке пути находитесь, и куда двигаться дальше, чтобы стать джуном или миддлом
2️⃣ Вы хотите ускорить развитие навыков и быстрее прийти к цели
3️⃣ У вас в процессе обучения накопился ряд вопросов, на которые некому нормально ответить, а информация вокруг противоречива
4️⃣ Вы хотите, чтобы вам глубоко и понятно разобрали одну из тем, например Clean Arch
5️⃣ Вы хотите тестовое (мок) техническое или алгоритмическое собеседование на джуниора или миддла, чтобы оценить свой уровень и уменьшить страх перед собеседованиями
6️⃣ У вас любой другой точечный запрос, который можно решить ~ за час
С проблемами по Compose не приходить, я всё уже сказал тут!
👉 Приходите, обсудим ваш запрос, созвонимся и всё решим.
#android #консультация
@andrdevnotes | Обучение android
Друзья, вы хотите выделиться из кучи претендентов и, наконец, стать уже джуниором?
Или же работаете стажёром или джуниором, но хотите резко вырасти в доходе и стать миддлом?
Тогда вам пригодится моя помощь.
С какими типами запросов можно прийти ко мне на консультацию?
1️⃣ Вы не понимаете, в какой точке пути находитесь, и куда двигаться дальше, чтобы стать джуном или миддлом
2️⃣ Вы хотите ускорить развитие навыков и быстрее прийти к цели
3️⃣ У вас в процессе обучения накопился ряд вопросов, на которые некому нормально ответить, а информация вокруг противоречива
4️⃣ Вы хотите, чтобы вам глубоко и понятно разобрали одну из тем, например Clean Arch
5️⃣ Вы хотите тестовое (мок) техническое или алгоритмическое собеседование на джуниора или миддла, чтобы оценить свой уровень и уменьшить страх перед собеседованиями
6️⃣ У вас любой другой точечный запрос, который можно решить ~ за час
👉 Приходите, обсудим ваш запрос, созвонимся и всё решим.
#android #консультация
@andrdevnotes | Обучение android
👍6🔥2🥰2
Друзья, по результатам опроса в канале я вижу, что у многих есть большие непонятки:
❓ как сделать себе сильное резюме и портфолио, чтобы вас позвали на собес?
❓ как готовиться к собесу?
Для начала познакомлю вас с замечательной статистикой, которую привела Наталья Давыдова в своём интервью.
Статистика касается откликов фронтенд-джунов на одну из вакансий, которую она публиковала.
📍Количество откликов: 355.
📍Сопроводительное письмо, просьба о котором была жирным выделена в описании вакансии на третьей строчке, прислали 110.
📍То, что просили прислать в сопроводе, было у 29. А просили ссылку на любой проект в гитхабе и желаемую зп.
📍При этом нормальный гитхаб (с фото автора и хоть одним проектом) был у 26.
📍Хоть что-то было в резюме у 95.
📍Адекватных резюме было 21. Адекватным считалось наличие фотографии, хоть чего-то про учебный опыт и чего-то о себе.
И, внимание, подвох: те, кто прислал норм сопровод, и те, кто прислал норм резюме – далеко не всегда одни и те же люди.
📍Поэтому на собес захотелось позвать только 7 из 355. И это при том, что планка была ОЧЕНЬ заниженная.
К чему это я? К тому, что, уверяю вас, у нас в индустрии +- та же статистика. И для того, чтобы выделиться из толп выпускников курсов, достаточно лишь:
1️⃣ иметь хоть какой-то проект на гитхабе. А если он будет хороший (многомодульный Clean + MVVM и тд) – то вас с руками оторвут. И проверьте, чтобы ссылка открывалась, а проект запускался и работал
2️⃣ составить нормальное резюме: грамотно написать, чему где учились, что умеете
3️⃣ присылать на все вакансии сопровод, чтобы пойти в первых рядах
Готовы, вы великолепны. Осталось не завалить собес и дело в шляпе.
Джуны – нужны. Джунов искали и будут искать. Поверьте моему опыту и опыту смежных IT-сфер. Очень много где толковые джуны гораздо эффективнее миддлов и синьоров.
P.S.: а для тех, кто всё ещё считает, что весь мир против того, чтобы они стали андроид-разработчиком, скоро у меня будет отдельная активность. Stay tuned.
#android #собеседования #работа
@andrdevnotes | Обучение android
Для начала познакомлю вас с замечательной статистикой, которую привела Наталья Давыдова в своём интервью.
Статистика касается откликов фронтенд-джунов на одну из вакансий, которую она публиковала.
📍Количество откликов: 355.
📍Сопроводительное письмо, просьба о котором была жирным выделена в описании вакансии на третьей строчке, прислали 110.
📍То, что просили прислать в сопроводе, было у 29. А просили ссылку на любой проект в гитхабе и желаемую зп.
📍При этом нормальный гитхаб (с фото автора и хоть одним проектом) был у 26.
📍Хоть что-то было в резюме у 95.
📍Адекватных резюме было 21. Адекватным считалось наличие фотографии, хоть чего-то про учебный опыт и чего-то о себе.
И, внимание, подвох: те, кто прислал норм сопровод, и те, кто прислал норм резюме – далеко не всегда одни и те же люди.
📍Поэтому на собес захотелось позвать только 7 из 355. И это при том, что планка была ОЧЕНЬ заниженная.
К чему это я? К тому, что, уверяю вас, у нас в индустрии +- та же статистика. И для того, чтобы выделиться из толп выпускников курсов, достаточно лишь:
1️⃣ иметь хоть какой-то проект на гитхабе. А если он будет хороший (многомодульный Clean + MVVM и тд) – то вас с руками оторвут. И проверьте, чтобы ссылка открывалась, а проект запускался и работал
2️⃣ составить нормальное резюме: грамотно написать, чему где учились, что умеете
3️⃣ присылать на все вакансии сопровод, чтобы пойти в первых рядах
Готовы, вы великолепны. Осталось не завалить собес и дело в шляпе.
Джуны – нужны. Джунов искали и будут искать. Поверьте моему опыту и опыту смежных IT-сфер. Очень много где толковые джуны гораздо эффективнее миддлов и синьоров.
P.S.: а для тех, кто всё ещё считает, что весь мир против того, чтобы они стали андроид-разработчиком, скоро у меня будет отдельная активность. Stay tuned.
#android #собеседования #работа
@andrdevnotes | Обучение android
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6❤3👍3👌1
❇️ А вы понимаете, что такое Clean Architecture и зачем она нужна? ❇️
В видео я кратко рассказал, зачем нужна архитектура в принципе, и об особенностях реализации Clean Architecture в Android.
Приятного просмотра! 🚀
Мне будет приятно, если поддержите лайками и комментариями 👀
https://youtu.be/NYjEinJAPyo?si=oIWkP43MF0FIqpZ5
#android #видео #архитектура
@andrdevnotes | Обучение android
В видео я кратко рассказал, зачем нужна архитектура в принципе, и об особенностях реализации Clean Architecture в Android.
Приятного просмотра! 🚀
Мне будет приятно, если поддержите лайками и комментариями 👀
https://youtu.be/NYjEinJAPyo?si=oIWkP43MF0FIqpZ5
#android #видео #архитектура
@andrdevnotes | Обучение android
YouTube
Что такое Clean Architecture и зачем она нужна?
Зачем нужна архитектура в принципе, и какие в android особенности реализации Clean Architecture?
Телеграм-канал: https://t.iss.one/andrdevnotes
Получить наставника по android: https://androidmentor.ru
Телеграм-канал: https://t.iss.one/andrdevnotes
Получить наставника по android: https://androidmentor.ru
👍5🔥2🥰1🤩1👀1
Next Level Dev pinned «Личные консультации: для кого и зачем? Друзья, вы хотите выделиться из кучи претендентов и, наконец, стать уже джуниором? Или же работаете стажёром или джуниором, но хотите резко вырасти в доходе и стать миддлом? Тогда вам пригодится моя помощь. С какими…»
Общался я тут со своими выпускниками и понял, что нужно до всех донести пару мыслей по поводу поиска работы. И начнём мы с вами с резюме на джуниора.
Для тех, кто уже считает себя готовым к поиску работы джуниором:
Если вы до сих пор не слушали или слушали невнимательно видео Натальи Давыдовой, у котором я упоминал выше, подчеркну ещё раз.
В вашем резюме:
1️⃣ Обязательно должна быть фотография с вашим лицом
2️⃣ Обязательно должно быть чёткое описание вашего вклада на каждой работе
👎 Плохо: "выполнял обязанности программиста", "работал с клиентами", "участвовал в разработке проекта"
👍 Хорошо: "участвовал в разработке доски объявлений, аналога Авито. Написано на Java, Clean MVVM, стэк: retrofit, rx, ... . Я реализовал:
– экран авторизации (сетевой слой, кэширование, UI)
– кастомные пуш-уведомления с диплинками
В процессе взаимодействовал с iOS-командой, backend'ом, ручными тестировщиками, работали по спринтам.
3️⃣ Если вы никогда не работали андроид-разработчиком и пришли из совсем другой сферы:
👎 Плохо: подробно описать весь свой профессиональный путь в другой сфере.
👍 Хорошо: во-первых – описать только последнее место работы, или последнее + самое значимое. И очень кратко опишите эти места работы: описывайте именно то, что, на ваш взгляд, применимо к андроид-разработке и поможет вам в ней. Остальное никому не интересно.
Куда важнее чётко описать, что в андроид-разработке вы умеете, чему и как учились: какие курсы и книги освоили, какие проекты написали, чему научились, в какой стек технологий умеете.
И в идеале ваши навыки должны очень хорошо матчиться с навыками в каждой вакансии, на которую вы откликаетесь. Если видите, что навыков у вас маловато – идите подтягивайте.
4️⃣ Если есть старший товарищ, который вас менторил, ревьюил код ваших проектов и готов дать на вас рекомендацию – смело указывайте это в резюме – это тоже выделит вас среди толпы.
А если вы не показывали свой код опытным разработчикам, но считаете его крутым – советую подумать ещё раз.
#android #работа #резюме #советы #ошибки
@andrdevnotes | Обучение android
Для тех, кто уже считает себя готовым к поиску работы джуниором:
Если вы до сих пор не слушали или слушали невнимательно видео Натальи Давыдовой, у котором я упоминал выше, подчеркну ещё раз.
В вашем резюме:
1️⃣ Обязательно должна быть фотография с вашим лицом
2️⃣ Обязательно должно быть чёткое описание вашего вклада на каждой работе
👎 Плохо: "выполнял обязанности программиста", "работал с клиентами", "участвовал в разработке проекта"
👍 Хорошо: "участвовал в разработке доски объявлений, аналога Авито. Написано на Java, Clean MVVM, стэк: retrofit, rx, ... . Я реализовал:
– экран авторизации (сетевой слой, кэширование, UI)
– кастомные пуш-уведомления с диплинками
В процессе взаимодействовал с iOS-командой, backend'ом, ручными тестировщиками, работали по спринтам.
3️⃣ Если вы никогда не работали андроид-разработчиком и пришли из совсем другой сферы:
👎 Плохо: подробно описать весь свой профессиональный путь в другой сфере.
👍 Хорошо: во-первых – описать только последнее место работы, или последнее + самое значимое. И очень кратко опишите эти места работы: описывайте именно то, что, на ваш взгляд, применимо к андроид-разработке и поможет вам в ней. Остальное никому не интересно.
Куда важнее чётко описать, что в андроид-разработке вы умеете, чему и как учились: какие курсы и книги освоили, какие проекты написали, чему научились, в какой стек технологий умеете.
И в идеале ваши навыки должны очень хорошо матчиться с навыками в каждой вакансии, на которую вы откликаетесь. Если видите, что навыков у вас маловато – идите подтягивайте.
4️⃣ Если есть старший товарищ, который вас менторил, ревьюил код ваших проектов и готов дать на вас рекомендацию – смело указывайте это в резюме – это тоже выделит вас среди толпы.
А если вы не показывали свой код опытным разработчикам, но считаете его крутым – советую подумать ещё раз.
#android #работа #резюме #советы #ошибки
@andrdevnotes | Обучение android
👍5🔥2❤1