Senior Android Developer at DHL IT Services
  • Що має знати Senior Android Developer. Аналіз вакансій на DOU

    По первому кейсу — тестировать надо локально, для начала

    Вы даже невнимательно прочитатли мои слова. Я же написал, что «Репродьюсить баг на тесте не получалось.». Т.е. там случай, для которого невозможно написать тесты. И даже зная где баг — вручную его не получалось воспроизводить. Там даже теоретически невозможно было представить как такое может случаться. Так что тут вы мимо.

    По поводу писать тесты — как правило тесты(если же конечно они пишутся в проекте) в большей степени покрывают бизнес логику приложения и с ней обычно проблем и багов нет. Ну или вполне очевидно(хотя не всегда) где и как исправлять. Проблемные баги как раз возникают в том месте, в котором идет взаимодействие с ОС. А в тестах это либо не покрывается, либо мокается, либо используется какой нибудь robolectric, который не гарантирует 100% совпадения поведений. И вот как раз в этом месте и возникает судорожные ситуации «Ну какого х**ра оно тут так себя ведет». И как вы предлагаете это покрыть тестами? Как вы правильно заметили, иногда поведение на разных версия ОС или у разных вендеров отличается. И тут остается только выезжать на опыте разработчиков.

    Кто-то быстрее зафиксит ишу, если имел уже с ним дело, кто-то будет сидеть разбираться.

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

  • Що має знати Senior Android Developer. Аналіз вакансій на DOU

    Читал на днях очень забавную статью по Андроиду: medium.com/...​-application-924c91bafcac
    Суть — человек 3 месяца исправлял баг. Репродьюсить баг на тесте не получалось. Приходилось делать изменения, выкатывать на прод, ждать логов и перепроверять. И казалось бы что все логично, что логи должны появиться — а они не появлялись...
    Это я к чему, это я к тому что 3 месяца отлавливался один баг...один. А вы предлагаете всю платформу за 3 месяца изучить. И да, случай в статье очень специфичный(а может и нет), но вся разработка по Андроид — это борьба с такими очень специфичными случаями, которые постоянно всплывают. И когда ты, казалось бы, уже думаешь что познал Андроид, то обязательно прилетит какая нибудь херня, от которой ты готов волоса во всех местах повырывать, не понимая как вообще такое возможно.
    И поверх всего этого каждый год с новой версией прилетают новые «подарки» от гугла. И каждый год надо подгонять уже написанный код под новые ограничения. А эти ограничения иногда ой как не укладываются в концепцию написанного кода... И каждый год надо вырабатывать best practices что бы в дальнейшем можно было писать поддерживаемые приложения. И вы говорить что все это можно за 3 месяца? Ну-ну

  • Карьера в IT: должность Full Stack разработчик

    А с чего вы решили что узконаправленные специалисты не трогают другие области? Многие имеют свои проекты с использованием других технологий/областей/платформ, контребьютят в OpenSource, пробуют интересные темы не по специализации. Просто они указывают эти знания как вторичные в резюме, а не пишут что они фуллстэк.
    Более того, есть люди которые получают дополнительные знание совсем не из сферы IT(например психологии, социологии и т.д.) И чем плох узкоспециализированный разработчик с дополнительными знаниями в псохологии? Наоборот, я считаю он более гибкий т.к. не зацикливается только на одной индустрии. Но при этом он все еще только, например, бэк-энд разработчик и все.
    Но да, не все такие, есть много и таких, которые выучили что то одно и напрочь не хотят учить что то новое.

    Поддержали: Aleksandr Budnik, Olexandr
  • Карьера в IT: должность Full Stack разработчик

    На практике таких Василиев как у тебя довольно немного, среднестатический «бек-енд гуру» Вася 15 лет протирал штаны, гонял чаи, делал minimum viable job всем своим видом подавая что его деятельность очень сложна, поэтому у него нету времени на девопс и, ну совсем нет сил понимать что там на фронте.

    В этом высказывании можно заменить «бек-енд гуру» на переменную и подставлять что угодно и фраза останется валидной: бек-енд, фронт, фуллстэк, BA, менеджер...

    И не сравнивайте верхний экстремум одного типа разработчика и нижний экстремум второго типа. Сравнивайте либо двух «бек-енд гуру» и «фуллстэк гуру» — с высокой долей вероятности оба выдадут по вагону г... Либо реального бек-енд гуру и реального фуллстэк гуру — тогда с высокой долей вероятности узкоспециализированный человек будет иметь более глубокие знание в своей специализации.

  • Як стати андроїд розробником з нуля, на пальцях

    VM не должен возвращать конкретные строки из ресурсов, он должен возвращать состояние в виде enum, int, ну или на крайний случай ресурс в виде R.string.... А активити или фрагмент уже биндят это состояние в конкретную строку. И необходимость врапера отпадает автоматически

    Поддержали: Oleg Kykena, Мутный тип
  • del

    да, но реалии в Чехии на сегодняшний день таковы, что министерсво на сегодняшний день просираются все сроки. И если вы прийдете и скажете\напишите\позвоните — они скажут «Ждите»

    Поддержали: Andrey, anonymous
  • del

    Эта компания никому никогда такого не говорила(и не скажет, они за это могут на большие деньги попасть). Мы сами уже сделали выводы из того, как они разрулили некоторые ситуации

    Поддержал: anonymous
  • del

    нет, есть вполне конкретный случай у знакомого. Он подался на смену, министерство должно ответить в течении 60 дней, прошло больше(не помню сколько), ребята позвонили туда и сказали «Ребята, ну е-мое», ребята ответили «Завтра будет», и завтра действительно все было...А если по закону в такой ситуации ты должен писать какое то там толи письмо, толи заявление, почему надо ускорить процесс, что у тебя дети голодают и т.д.
    Понятно что никто не решит что то незаконное, или скажем не сделает за неделю то, на что у министерства есть два месяца. Но вот по таким мелочам порешать могут. Плюс могут из достоверных источников уточнить какую то информацию, которую если ты сам спросишь в частном порядке — просто скажут на оте..сь

  • del

    да, есть такое, случается. Но в моем случае документами занимается серьезная компания, и доверие к ним есть. Плюс, что такие комапании имеют свои какие то связи в министерстве(тадааам, в Европе тоже такое случается).
    Но даже они умудрились сделать факап знакомому...но при этом они жопу рвали и факап разрешили, т.к. я думаю по контракту с моим работодателем им влететь могло за такое хорошо.
    Ну а если вы обратитесь к кому то no-name, кто решил что он умеет таким заниматься и хочет так заработать — то лучшу 10 раз самому все перепроверять и контролировать

    Поддержал: anonymous
  • del

    Ну во-превых комент был на тему

    о случаях перехода с рабочей на ГК (и наоборот) я не слышал. Задавал эти вопросы посредникам, которые помогали с оформлением документов со стороны компаний — внятного ответа так и не получил

    А во-вторых что плохого, что процессом занимаются знающие люди?

  • del

    Я оригинал закона не читал, т.к. у меня блушка и мне особо это не надо. Но разные русскоговорящие источники(сайты и блогеры) трактовали закон по разному. Что абсолютно точно, так это то, что теперь по рабочей карте надо подавать не «Запрос на смену», а «Уведомление на смену»... а дальше начинаются разногласия. Одни говорят что теперь просто уведомил и все, другие говорят что поменялось название,но стало хуже. Процесс остался тот же — тот же пакет документов и т.д., но теперь если ты не доложил какой то документ — то тебе просто дают отказ на смену и подавать документы заново...а раньше министерство просто дозапрашивало нехватающий докумен.
    Я верю больше вторым — т.к. в Чехии тенденция к ужесточению закона, а не к облегчению для иностранцев. Но как всегда — надо читать оригинал закона и никому не верить

    Поддержал: anonymous
  • del

    Я в мае этого года перешел с рабочей на блушку — это вполне реально. О деталях не спрашивайте — всем занималась компания, я только физически присутствовал на подаче документов

    Поддержал: anonymous
  • del

    1) Основное отличие блушки от рабочей(это для всего ЕС), это то что период нахождение в других странах учитывется. Всмысле если вы работали 2 года по рабочей скажем в Чехии и потом уехали в Германию, то период для получения ВНЖ в Германии начинается с нуля. Если же у вас блушка, то у вас эти два года учитываются как будто вы жили в Германии.
    Ну и всякие мелочи типа:
    а) Если вы хотите сменить работу в Чехии,то министерство должно рассмотреть вышу заявку за 60 дней, а не за 90 как по рабочей карте. Но по факту министерство эти сроки почти всегда проеб@@ает
    б) По истечению двух лет наличия у вас блушки — вы не должны спрашивать разрешения у министерства на смену работодателя — а просто уведомляете их.

    2) и 3) Что то мне подсказывает что в реетсре нет вообще никакой разницы, все вакансии в общей куче(но точно утверждать я не могу)

    4)

    После двух лет просто уведомляешь что ты сменил работу.

    — да, это качается только блушки и только после того как ты являешься ее держателем больше 2х лет

    Поддержали: Andrey, anonymous
  • Android дайджест #33: Google I/O, 64-bit apps, Coroutines

  • Kotlin Decompiled: знакомимся с языком

    в for не можна робити кастомну умову і інкремент, згідний з автором статті (дивно, що тут в коментарях цього месседжа не зрозуміли, а переключилися на forEach)

    Автор привел пример 6ти for-ов тупого итерирования по коллекции — непонятно что конкретно в них ему не понравилось, вот и перешел на forEach как альтернатива его непонятной For
    Касательно более сложных случаев — опять же, kotlin идет немного другим путем: все делается цепочками вызовов 100500 вариантов вспомогательных функций типа takeIf, map и т.д. Это решает бОльшую часть задач в kotlin-стиле. Но «я ж привык вот так — значит язык гавно»

    Про

    typealias і женеріки

     — даже сам автор написал что это проблема вытирания типов в JVM. Поэтому упрекать только котлин в этом случае — глупо.
    То, что автор накрутил себя про nullable — вы согласны.
    В итоге примерно 70% негатива построены на примерах о nullable и дженериках, которые по факту либо недопонимание автора, либо проблема всего JVM семейства. Остальное — банальная придирка к синтаксису и «я привык так, я так сделать не могу, значит все плохо»

    P.S. А еще я думал что люди с 25 годами опыта в отрасли хэйтят новые языки\технологии по более важным темам, таким как performance, наличие-отсутствие глобальной инфраструктуры для разработки и т.д. а не по поводу неудобного синтаксиса

  • Kotlin Decompiled: знакомимся с языком

    Разобрался? Серьезно?
    1) «Убогий for»: автор даже не дошел до кононического подхода котлина forEach, и изобрел какую то несуразную функцию-велосипед For. Его «for (it in list) println(it)» записывается в полне адекватное «list.forEach{ println(it) }»
    2) «Истерично-бессмысленная война с null-абле»: я опущу тот момент что автор обращается к глобальной мутабельной переменной, которая кем угодно в любой момент может быть пререзатерта нулом, видно слово «многопоточность» для кого то незнакомо. Но даже если взять этот случай и немного разобраться в языке, то функция
    fun F() : Int { if ( value != null ) return 0 return value // Ошибка }
    может выглядеть так
    fun F() = value ?: 0
    что в разы короче и работает.

    И так дальше по всем пунктам.
    Елинственное с чем могу согласится с автором — это с отсутствием тернарочки. Вот чего реально не хватает, но вроде как есть надежда что ее добавят

    Поддержал: Andrey Andreyev
  • Android дайджест #22: Internet of Things, Smart Lock, Animations

    «Storing your secure information in the NDK. Еще один способ спрятать данные от неопытных заинтересованных лиц.» — способ, который поможет от совсем-совсем неопытных. Любой человек с базовым знанием Андроида и реверсинжениренга справится с задачей без проблем. По сути можно и не заморачиваться
    По безопасности это видео гораздо интереснее: skillsmatter.com/...on-security-the-right-way

  • DOU Проектор: Android приложение для чтения Ленты DOU

    Кэш на уровне сети и локальный кэш сущностей — это разные штуки.
    1) В данной ситуации такого быть не может, но в общем — если на одну и ту же статью(сущность) можно попасть по разным ссылкам — то сетевой кэш не спасет.
    2) твой случай

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

    3) Когда срок действия сетевого кэша истек, то ты все еще можешь показывать контетн из локального кэша с пометкой что данные не новые, а за такое то число — это лучше чем просто пустой экран

  • DOU Проектор: Android приложение для чтения Ленты DOU

    С самого начала стоит подумать о кэшировании контента, особенно для такого редкоизменяемого контетна. Если я только что уже видел список постов, какие то из них грузил, то отключившись от интернета(например зашел в метро — частый кейс) я не хочу видеть пустое приложение. Особенно бъет по глазам повторная загрузка статьи, когда возвращаемся из коментариев.
    Советую рассмотреть этот вопрос в первую очередь, т.к. он внесет свои коррективы в структуру приложения.

    Поддержал: Artur Matsehor
  • DOU Проектор: Android приложение для чтения Ленты DOU

    FAB для главного действия на скрине, а не для часто используемого. Но то что он в данном случае не нужен — факт

    Поддержал: Alexander Nesterenko