Друзья!
То, что мы мобильные разработчики - это не ваша вина!
Поэтому давайте поговорим про факапы. Факапы - это неотъемлемая часть нашей работы, мы ошибаемся тысячи раз.
Расскажите про ваши неудачи? То, где вы прямо ошиблись так, что аж стыдно.
Цена ошибки бывает разная, если в медицине цена ошибки зачастую человеческая жизнь, то у нас(если мы не пишем софт специальный) - это деньги.
Были ли у вас ошибки, что называется, на миллион? В какой валюте?
Я понимаю, что у всех тут NDA, мало кто ошибается, но хотя бы мелкие косяки и очень давно, я думаю(и вам советую!), можно рассказать!
Расскажу про себя для затравочки один:
Как-то раз мы делали сервис в галере, сервису на старте приходит текстовый файлик, в файлике в строгом заданном порядке данные пользователей, их мы хешировали, а после делали фильтрацию по событиям(в событиях были тоже хешированные
данные). По сути, чтобы понять, что это один и тот же человек мы сравнивали строчки-хеши. Грубо говоря, такие GUID-ы ходили.
Мы согласовали алгоритм, получили тестовый файлик и захешировали его, после чего я спокойно поехал домой.
И тут вдруг оказалось, что вроде приходят одни и те же пользователи, но на некоторых не срабатывает, они не матчатся, дело было вечером и мне позвонил дядя Сережа и настойчиво предложил приехать и разобраться.
- Когда надо приехать?
- Немедленно. Но лучше еще побыстрее.
В итоге, оказалось, что файлик, который мы захешировали и засунули в сервис содержал непечатные символы(BOM, в частности).
Отсюда была ошибка с пользователем.
Вот так простой маленький BOM устроил мне огромный BOOM.
Зато обратно я домой доехал на реактивной жопогорящей тяге.
Непередаваемые ощущения, даже люди с ковидом бы почувствовали запах моей горящей жопы.
Еще из совсем простенького, я сейчас ВСЕГДА ставлю {} скобки для if, while и прочее, крайне не люблю однострочники.
Как вы понимаете, это тоже не беспочвенно.
Как-то раз один такой if и небольшая строчка с фичей сломали нам показ проекта.
Да и в целом, чем дальше - тем больше я стремлюсь к максимальной явности.
Не знаю с чем это связано, с ошибками, которые я вечно совершаю, или со старостью, но я за все явное, пусть оно будет и многословнее и некрасивей даже.
Вообще правильное и взрослое отношение к ошибкам и косякам надо тренировать смолоду, зачастую сделав один косяк или серьезный баг потом или руки опускаются, или начинается мандраж и ты еще больше косячишь.
Раузмеется, у меня нет этого отношения, но сейчас я стал поспокойнее к этому. Хотя не так далеко то время, когда я просыпался от того, что мне снилось, что я сделал ошибку или не то написал. Особенно, когда ответственности было много и от меня кто-то зависел.
На эту тему очень круто мы как-то поговорили с одним моим друганом из JB, который рассказал историю свою, как страшно было катить супер-фичу. Частично, кстати, это обязанность тимлида - сделать так, чтобы вы не боялись совершать ошибки.
Разработчик должен иногда ошибаться, как у врача есть свое персональное кладбище, так и у разработчика есть свой персональный набор-букет проблем.
Это подводит нас к таким темам как тесты и тестирование своего кода!
Скажу честно: я ненавижу тестирование и тесты.
Господи, писать все эти юнит/интеграционные ужасы - это словно дрочить в боксерских перчатках, при этом повторяя алфавит задом наперед.
Читать, кстати, тоже.
Мать моя женщина, тут переменной то или методу простому название подбираешь сидишь по полчаса, потом еще на код ревью переписывая(про это еще поговорим), а тут надо ТЕСТ описать в одну строчку.
Да еще ладно тест и название, надо же еще тестовое окружение там поднять, что-то замокать, что-то подложить, а тут еще DI со своими классами по 100500 аргументов в конструкторе, такие, что пока объект создаешь вручную туннельный синдром разовьешь.
А если разработка идет быстро, все часто меняется, области ответственности(ну в single responsibility никто не верит же?), меняются/раздуваются, то вместо одной кодовой базы проекта надо вообще поддерживать две!
И нет ничего слаще и отраднее для ушей менеджера в дедлайны услышать: "Фича готова, НАДО ТОЛЬКО ТЕСТЫ ПОПРАВИТЬ".
Тесты не всем нужны - это факт, не всегда они подойдут проекту(например в силу ограниченности времени, концепции и прочее). Но обычно это значит, что тестироваться будем прямо в проде.Если ваш болевой порог позволяет это услышать без нервного тика - можно вам и без тестов.
Зачастую даже в команду специально берется и нанимается джун-проныра, который по задумке будет все обкладывать тестами.
Но если вы так рассуждаете - вы почти наверняка ошибаетесь.
Тесты писать зачастую СЛОЖНЕЕ чем фичи и код. Но об этом мноигие забывают.
Для хорошего теста надо понимать и предметную область, и код, и уметь еще в нехилые софт скиллы, чтобы донести кому-то, что код не рабочий и надо поправить.
Здесь работа для Ведьмака!
И зачастую, когда этим ведьмаком оказывается джун, то выходит:
С другой стороны тесты неплохое начало для ознакомления с кодовой базой и погружению в проект.
Если они написаны хорошо.
НО!
Тесты - это то самое малое зло, потому секс - это, конечно, хорошо, но вы отлавливали баг тестом?
Заранее!
Хотя я работал и на проектах, где не было ни одного теста или они не работали.
Но зачастую в таком случае можно сказать, что пока не работают тесты - работают разработчики.
А это дороже обычно.
Тесты - это хотя бы какая-то гарантия того, что у вас хотя бы что-то работает!
И что повесив очередную аннотацию на класс из StackOverflow у вас в выдаче endpoint-а не пошли пароли.
За тесты - не чокаясь!
• • •
Missing some Tweet in this thread? You can try to
force a refresh
Все эти разговоры про тесты и факапы привели нас к стрессовым ситуациям - я даже перестал твитить на 6 часов(спасибо тем, кто считал!).
Но, применив дыхательную гимнастику Лонли Локли, я пришел в себя и наш поезд отправляется!
Про стресс.
Стресс - это наш бро на долгие годы работы, это тот попутчик, что подсядет во время первых экзаменов и вплоть до конца будет ехать с вами.
Дедлайны, факапы, синдромы самозванца, просто ваша природная тупость(может ли мобильный разработчик написать симфонию? создать шедевр?)
Стрессовать вы будете постоянно, более того, даже вести диалог с вами через этот аккаунт - тоже стрессово(это одна из причин, почему я согласился).
Если не взять это дело под контроль(не аккаунт, а ваш стресс), то можно даже не звать гинеколога, и так понятно, что вам .
Возьмем два мира, в котором обитают пользователи(реальный не берем, это бред).
Веб-браузерный мир, когда вы живете через chrome, firefox, ie, safari и прочее.
И мир мобилок, когда вы живете через айфоны, айпады, андроиды и так далее.
И вот мобилки, по сути своей очень похожи на фронт браузерный, за исключением, что они добавляют еще тактильные ощущения, жесты, по сути - чистое 3D!
Мобильные устройства приучают нас, словно собак Павлова, к таким рефлексам, как свайп, увеличение двумя пальцами экрана, при этом все стараются свести к минимуму движений, дабы не превращать использование устройства в твистер(на фото - пример разблокировки экрана)
Что я люблю в ИТ и что ненавижу.
Налить немного романтики, приправить ложкой говна и не взбалтывать!
К столу подавать охлажденным.
Про прелести ИТ с романтической точки зрения очень круто написано у Брукса(ниже вольный перевод будет и смешнно с моими дополнениями, мыслями). Я не зря смотрел мультик про Золотую Антилопу, теперь как вы отличите его мысли от моих?!
1. Радость творения - то что вы своими руками делаете что то такое что работает и приносит пользу, да может даже вред, но это свое - родное! Ваше!
Кто не хотел когда-нибудь творить - тот сам тварь.
День 2.
Это не меня с вами заперли, а вас со мной.
Преподавание моими глазами.
Преподавание. Почему я пошел преподавать? По двум причинам:
а) уча других учишься сам
б) хотел помочь своему факультету:был курс,не было преподавателя с опытом(до сих пор нет!)
в)мне нравится работать со студентами - это еще с футбола пошло наверное(привет, мой любимый Космос!)
г) в то время когда я подписался на это я был немного потерянным и мне надо было просто завалить себя работой и людьми чтобы просто не было времени думать о себе и своих неудачах/проблемах
д) это интересный опыт, которого у меня не было
У меня не самое лучшее зрение, поэтому вы все для меня пока красивые, ну разве что вот вы кто поближе сидит просто симпатичные!
Начнём же обсуждение с образования!
Тема холиварная, тема бесячая и тригерящая.
Поэтому, разумеется, нам подходит!
Итак, нужно ли высшее образование программисту? И какое нужно : профильное? Подойдёт ли непрофильное? А как же самообразование?
Да и эта тема у разработчиков регулярно всплывает, особенно в твиттере.
А тут, как известно, ищут истину, даже не надеясь на успех.
Специально для тех, кто читает одно сообщение только - это ТРЕД, внимание, код красный, это не учебная тревога, сообщений будет несколько, это тред!
Вы не ждали, но дождались
С вами эту неделю буду я, Александр Кучук
Если вам будет казаться,что пишут не про мобильную разработку не переживайте- вам не кажется.
Я ничего не понимаю в мобилке, да и в целом в программировании не особо разбираюсь, поэтому я как вы поняли - я тут.
Кстати, передаю привет всем у кого я в чс, вот мы и встретились, ребята! ДУМАЛИ Я ВАС НЕ ДОСТАНУ?
Чисто встреча выпускников кафедры уродов и магистры ублюдства!
Я долго думал над темами разговора и поэтому буду импровизировать!
В целом, я вижу наше общение как открытый микрофон, я буду что-то вещать со сцены, вы будете выкрикивать из зала и иногда общаться в кулуарах.