Pull to refresh
1
0.1
Send message

Поленился писать код.

Первый раз поиграл мозгом. Верный ответ нашел, но было тяжко.

Почесал репу, и выработал такой подход:

Сначала ввожу четыре слова, которые подобраны так, чтоб перебрать все гласные без повтора букв.

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

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

Одна неудача за всё время. Времени на сей комментарий потратил больше, чем на 5 раундов игры.

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

Вот причины:

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

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

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

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

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

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

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

Я встречал людей, претендовавших на сеньора, при этом на словах даже превосходящих Льва Толстого, а на деле не способных пользоваться стандартной библиотекой. Как таких отсеивать без лайвкодинга - не очень понятно.

Похоже, я неверно понял ваш коммент. Фразу "Когда я был девелопером, я писал 100-500 строчек в день. Сейчас, когда дорос до техлида пишу в 3 раза больше, ..." я прочитал так, будто в роли техлида вы стали писать больше кода в 3 раза.

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

У меня так же было. А потом я выгорел.

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

Можно, например, предложить кандидату на обзор кусок забагованного кода, для починки которого без понимания устройства HashMap не обойтись.

Этот подход хорош еще и возможностью интегрировать несколько проверок.

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

Не хочу огорчать вас отказом!

Нужно же как то фильтровать кандидатов. ) К сожалению, никто не умеет нанимать малоизвестных, но толковых разработчиков прицельно. Если никто не знает, как правильно фильтровать, то какая разница как? Тем более, что это про программирование, а не про мячики от гольфа в автобусе и круглые люки. Прогресс.

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

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

Откуда брать процент? Насочиняли всякой сложной логики, как учитывать распараллеливаемые операции, как вложенные, что делать, если текущая операция добавит другую (дада, прогресс откатывался) и еще всякие интересные кейсы.

Юзеры довольны, разработчики - нет. Подсчет процента оказался сложным.

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

Вместо нее начал считать так: от момента начала операции в течении ожидаемого максимального времени операции (эмпирическое значение, десятки секунд) процент равномерно бежит от 0 до 60, далее - каждые 10 секунд добавляется по проценту, и так до 99.

С тех пор прошел год. Никто не жаловался.

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

Хочется вступиться за Джона.

Его же кто-то нанял. Кто-то закрыл ему испытательный срок. Кто-то собирал требования. Кто-то анализировал. Задачи кто-то ставил. Следил за работой и контролировал процесс исполнения. PRы обзирал и утверждал. Писал тест-план. Тестировал. Выпускал. Организовывал сбор обратной связи от пользователей. Да?

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

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

Беру ответственность. Дорого. Без ресурсов и полномочий просьба не беспокоить.

А если потом получится фигня - можно свалить на исполнителей.

Здесь очень не хватает хотя бы поверхностного перечня достижений этой чудесной структуры.

Есть ровно одно важное последствие. Частный IT сектор в РФ начал заканчиваться. Еще какое-то движение будет, но это инерция и угасание.

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

Information

Rating
2,785-th
Registered
Activity