← All posts tagged IT

janPona
IT длиннопост typescript Эфиопа вчера уволили уже официально.

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

Делать код-ревью за ним было все равно, что переделывать самому — настолько все там было написано убого и уныло. Не было смысла комментировать, ибо комментарев бы вышло больше, чем исправлений.

И да, на все грабли тайпскрипта он наступил. В том плане, что если надо например, реализовать что-то так, чтобы, к примеру, поля интерфейса или элементы enum невозможно было бы переименовать средствами IDE (ну, знаете волшебную клавишу "F2" aka "rename refactoring"?), то это к эфиопу. Превратить сильную типизацию в слабую — к нему же. Я когда пишу, я не задумываюсь над такими штуками, у меня на автомате аналитика происходит, потому что за годы уже выработалось интуитивное чувство языка. Когда я вижу кусок плохого когда, написанный мной, у меня как будто зуб ноет.

С эфиопским кодом я себя чувствовал как на приеме у стоматолога без анестезии.

Ну ничо. Теперь, говорят для федеральной полиции Аддис-Абебы пишет на сишарпе складской учёт оружия.

Я бы делал такое с платной подпиской на функцию "внеплановые списания". Надо будет предложить, код должен работать на программиста.

Если без шуток, то я хотел бы, чтобы люди писали на расте. Ведь мне кажется, с растовской системой типов меньше шансов налажать, чем с Go, и тем более с TypeScript. И если Go и TypeScript иногда снисходят к говнокодеру и как бы говорят: «лааадно, я отвернусь и сделаю вид, что не замечаю, а ты можешь писать, как на своих любимых PHP/Python/JS», то Rust садистски ухмыляется: «что, не получается? Слы, ебашь типы, блеать!». И делать нечего, гуглишь, мучаешься, но пишешь так, что в рантайме ошибка невозможна в принципе. Если, конечно, найдешь, кто проспонсирует это извращённое хобби.
janPona
IT Эфиоп задолбал не только меня. Уже даже CTO решил его проводить с почестями. Аллах всемилостив.
janPona
IT Третья серия эфиопской саги. "Эфиоп идёт в PHP". Посадили эфиопа помогать бразильскому синьору писать на ПХП. Ну он и написал.

Ни одной проверки ошибок, все ошибочные ответы от базы данных, от внешних API тупо игнорируются.
Вот запросил его PHP-код что-то на внешнем API, а ем у в ответ 404 — не найдено. Что делает сын пустыни? Тупо игнорит ошибку и продолжает работать с полученым ответом, как если бы он содержал данные. Аллах разрулит, хуле там.

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

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

Но главное, что бразильский синьор, исповедуя махровый malandragem, врубает самбу погромче и аппрувит любой PR своего восточного коллеги.
janPona
IT У нас в команде завёлся эфиоп. Сначала он просто говнокодил, отдавал на ревью заведомо нерабочий код и сводил с ума целую толпу код-ревьюеров. Теперь решил девелоп-ветку на прод задеплоить. Красиво жить не запретишь.
janPona
IT индия В общем, индиец Android-разработчик вышел, проработал неделю и уже реализовал огромный кусок функционала. Практически мгновенно разобрался в нашем сложном и плохо документированном API. Очень неплохо стартанул.

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

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

Мифический человеко-месяц.

За неделю разработки пять человек смогли с трудом выродить GraphQL сервис, коннектящийся к MongoDB и высунувший наружу парочку глючных мутаций и запросов. Без аутентификации. Без бизнес логики.

Для сравнения. Я в одиночку как-то разрабатывал подобное решение да плюс ещё фронтэнд для него. У меня на это ушло две недели по вечерам после работы. На полностью готовый сервис.

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

Причина? Когда одному человеку до конца понятны требования, то ему гораздо проще все реализовать самому, чем весело проводить время в постоянных митингах, согласованиях, пачках пуллреквестов, бесконечном резолвинге конфликтов итд.

А всё потому что тимлид ушел в отпуск, один бэкендщик бегает по военкоматам, я тоже почти уже начал бегать по военкоматам, психологам и ещё учить сына уму-разуму. Какая уж тут работа? Разброд и шатание, а не работа.

Завтра тимлид выходит из отпуска, надо наводить порядок...
janPona
IT И да. Сегодня новый проект решили писать всё-таки на TypeScript, потому что на Go, видите ли, мало разработчиков. Только двое: крутая девушка клауд инженер и я. CTO подумал, что нахуй надо так рисковать: пару прилётов калибра — и компания останется без гоферов.

Ничего. Нам-то что? Мы строители. Скажут кирпич — будем ложить кирпич. Скажут газоблок — будем газоблок. Хуле, прорабу виднее, конечно.

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

А кстати, на TS гораздо меньше ебли с поднятием GraphQL сервера. Берёшь Apollo — да и ёб твою мать. Лоббирую этот вариант.

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

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

Вообще, попсовый бекенд — сильно переоценённая штука. Можно сколь угодно высоколобо взирать на фронтэндщиков, но покажите мне свой код, сучечки. И сразу вылазит непрофессионализм, халатность, туповатость и невладение средствами языка.

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

Вот и все сплетни на сегодня.
janPona
IT GOlang Делаю код-ревью в пулл-реквесте новой сотрудницы. Три раза реквестил ченджи — чувствую себя душнилой уже. А что поделать, сердце болит за будущие падения прода...

Ну ничего. Зато быстрее въедет в нашу кодовую базу с её проблематикой. И язык вспомнит, на котором давненько не писала.
janPona
IT говноархитектура Дожились до того, что при полном неумении программировать люди мнят себя неебическими клауд-аркитектами. Настолько, что для банальной задачи интеграции CRM со сторонним API доски объявлений им уже надо городить стейт-машину с 11 лямбдами, связанными между собой абсолютно невменяемыми контрактами, как курица лапой прописанными в serverless.yml.

Может, сначала будем думать, а потом педалить?

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

И то себя грыз, не переусложнил ли я. Притом будучи практически адептом микросервисов!

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

Ваши 300 юзеров вам столько прибыли никогда не сгенерируют.
janPona
IT тупое Вопросы кандидата на собеседовании.

"Вилкой в глаз?" — это "могу ли я увидеть диапазон зарплатного предложения?".

"В жопу раз?" — это "правда ли, что овертаймы происходят не чаще раза в месяц?".
janPona
работа IT хэппиэнд Наняли охуенного фронтэндщика. Два месяца — полет нормальный. С ним мы развернёмся теперь во всю ширь — и отрефакторим всё.

Тем временем я стал больше программировать бекенд. Нас было двое бекендщиков: один — больше облачный эксплуатационщик, другой — больше ООПшник. Так вот, сегодня мы, кажется, наняли офигеннейшую бекендщицу, которая сочетает в себе оба этих качества, причём, превосходя нас обоих. Академические знания, аккуратность, уверенность, спокойствие, внимание к деталям, опыт и способность к обучению. Обожаю собеседовать такие редкие находки, но ещё больше обожаю с ними работать.

Минутка сексизма. До неё я собеседовал ещё и нескольких мужиков. Жалкое зрелище. На лайвкодинге что-то там лопотали дрожащими губами про "я забыл синтаксис". А она... Нет, ребята, это надо было заснять на видео! "Как НАДО решать задачи".

Минутка вообще сексизма. @Pogo права. На девушек-программисток спрос выше: не загребут, легкость релокейта.
janPona
работа IT дыбр несун Несмотря на войну, возобновляю рубрику «Ужасы говнокода»!

Оказывается, что у нас был ключик от Google API, который стоил нам €30000 в год за счёт активного использования Geocoding API. Послали двоих разработчиков (включая меня) оптимизировать запросы, чтобы снизить расходы. А оказалось, мы этот ключ вообще нигде не используем. Но бабки платим, потому что его кто-то спиздил несколько лет назад, и активно юзает.

Выключили ключ, разрушили чей-то преступный бизнес ;)
janPona
IT баян говнокод Философский камень, говорили они.
Камень-то оно, конечно, камень, да вот только не сильно философский. Даже не столько камень, сколько окаменелость.

А что? Бизнес доволен, 2000 рабочих мест целыми днями гудят, пыхтят, изображая бурную деятельность. Кто-то даже, судя по всему, живёт внутри матрицы иллюзий, что он что-то там рефакторит.

Но вы не понимаете, как работали компьютеры 20 лет назад, поэтому не надо критиковать. Пианист играет как может

lleo.me
janPona
IT путь Я знаю одного чувака, фрилансера, так он не парится. Месяц тут жиденького похлебал, месяц там сухонького погрыз — чередует рацион. Мир попсы как бы диктует нас условия: сортов говна много, выбирай любой, но выбирай.

Если я не смогу найти проект, где я мог бы сделать так, чтобы люди перестали (а в идеале и не начали) питаться говном, я уйду из профессии по-самурайски.

А пока что у меня есть Путь, и я в самом его начале. Мне подачки не нужны, мне нужен господин, которому я бы служил, но сражаясь при этом не деревянным мечом. Иное для самурая позор.
janPona
программирование IT слепота Бизнес хочет примерно вот чего.

#3009622

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

Закончился резерв maintainability, то есть, новые фичи уже невпихуемы в глыбу ставшего непонятным монолита? Не беда, щас мы ещё сбоку прикрутим парочку микросервисов, кое-как синхронизируем их с остальными данными (создав попутно несколько дырок в безопасности, ну да пофиг).

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

Когда же систему, состоящую из неподдерживаемого монолита и недокументированного клубка микросервисов, станет и вовсе невозможно расширять, да даже просто фиксить, самый идеальный вариант — это продать её вместе с прикованными к ней рабами. Пусть это теперь будет проблема какого-нибудь Оракла.

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

Вот такие обыдлившиеся вместе со своим быдлокодом кодеры и сидят по 12 лет на одной и той же джава5-помойке, забывая вообще, что такое Программировать. Не для них Кнут и Мартин тонны деревьев извели. Плодить бледных корпоративных слепых ко всему прекрасному кротов и гордиться этим! «Наши кроты самые подземные, самые неповоротливые»

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

1) строго типизированный код на клиенте и сервере, модели доменных сущностей
2) SOLID или гексагоналку, или хоть чорта лысого, только чтобы не мешанину SQL в АПИ-хендлерах
3) строго типизированные API (OpenAPI или GraphQL) с генерацией клиентских и серверных интерфейсов и клиентского кода а не REST-by-Postman-example
4) не пушить токены в гит, ну и вообще не делать подобной этому детской фигни

Ну вот скажи мне @kran, я сумасшедший, да? Скажи мне, друг дорогой, так никто не пишет, да? Стыдно так писать? Это всё задроты придумали, да? И самое главное скажи, только подумай хорошенько: это НЕ решает проблемы бизнеса, совсем-совсем?
janPona
IT Да такие ж блядь объектно-ориентированные. Репозитории у них сука. Сука. БЛЯДЬ.

А ХУЛИ ВЫ, ПИДОРЫ, ПИХАЕТЕ В ЭТИ СВОИ РЕПОЗИТОРИИ ВСЯКУЮ ХУЙНЮ?! Map<string, any>, блять нахуй?

Всё, блядь, всё. Никакого Хуанито не было. Мигель, блядь его матери, Карвахаль. Miguel Carvajal, я ненавижу тебя, уёбыш. Пусть мне потом прилетит по NDA, похуй. Докажу моральный ущерб в аргентинском суде. Гори в аду, пидорюга.

janPona
Украина IT дыбр психо Когда я не программирую, я срываюсь с катушек. Четыре главных тега, кроме Птички.
Птичка любовь.
Я сегодня не программировал, и мой сын мне уже задвигал за монобанк. Будущий ФОП.
Мы остаёмся на спектакль в первых рядах.
Люблю.