Сообщество - Лига программистов

Лига программистов

2 354 поста 11 979 подписчиков

Популярные теги в сообществе:

1

2.3 МЯСНИК + ИИ = (ВИЗУАЛ) ПУТЬ ОТ ХАОСА К ПОРЯДКУ

Серия Мясник + ИИ (2 сезон)=> Проект

Приветствую, дорогие читатели! 👋
Давненько не было постов. Думали, я забросил?
Ан нет — всё идёт полным ходом. Просто были другие жизненные дела. 😁
Итак, продолжим.

🎨 Когда захотелось сделать «как в жизни»

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

🐞 Первый баг, который я бы не увидел в JSON

Главное — теперь можно было тестировать визуально.
И в первой же партии обнаружился баг: определённая карта при розыгрыше добавлялась в два места, а не в одно.

В JSON я бы этого не заметил.
А на экране — сразу.

🧠 Озарение: от парсинга JSON к ООП

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

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

И вот сижу в конце вечера, гляжу на код — и меня озаряет: это неправильно.
Вспомнилось про ООП… и мысль созрела.

Я сообщил Логосу. Мы отказались от парсинга эффектов из JSON.
Вместо этого логика эффектов была вынесена в отдельные сервисы-обработчики, которые в зависимости от типа и ID карты выполняют нужные действия, взаимодействуя с другими картами, предметами и состоянием игры.

Карты остались объектами-данными, но теперь их поведение определяют обработчики.

И наконец я смог спокойно лечь спать. 😁

😴 Лирическое отступление про сон

Каждый раз хочу лечь часов в 22–22:30.
Но не могу оторваться — и только в 12 лечу в кровать.
Вредно, но что поделать, когда процесс так затягивает.

Ой… отвлёкся. 😁

🚀 Что имеем на данный момент

  1. Работающий бэкенд (пока ещё шлифуется)

  2. Первичный фронт — играть уже можно

  3. Закрепление навыков во взаимодействии с ИИ

  4. Мысли о дальнейших шагах 😊

Вот как-то так…

💬 А теперь — вопрос, который меня реально волнует

Как вы считаете: моя фантазия, что ведя такой блог, меня кто-то увидит, заметит во мне потенциал (если он вообще есть) и скажет: «Пойдём работать к нам» — это вообще реально?

Или как говорится: «Нет, сынок, это фантастика» 🥲

P.S. Спасибо, что читаете. Ваши комментарии — топливо для этого костра.
А если у вас есть истории, как блог или проект помогли вам в карьере — делитесь. Очень интересно.

Показать полностью
10

Толя, что же ты все токены пожёг?

Толя, что же ты все токены пожёг?

— Толя, что же ты все токены пожёг?
— Я не нарочно. Эксперимент это был. На предмет рационализаторского предложения.
— А нельзя было хотя бы тестировщикам оставить?
— А чё это?
— Сегодня прод должен был быть.
— Я не подумал.
— Не подумал! Теперь думай, как без тестов на прод раскатить, а то засадють в переговорку на one-to-one, как жирафу.

Показать полностью
1

10 вещей, которые бы я хотел услышать в первый год работы

Серия Первые годы работы

Дорогие читатели, категорически вас приветствую! Я прошел путь от стажера до разработчика Java с опытом в 5+ лет. За это время было принято не мало хороших решений, но плохие тоже не отставали, о последних и возможном способе их решения я хочу рассказать, и возможно кому то это поможет не наступить на те же грабли что и я, или же менее болезненно “отодрать” их от своих ног, если вы уже попали на них.

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

1. Онбординг: не бояться спрашивать и просить помощи

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

Задача онбординга – с наибольшим комфортом и за наименьшее время помочь вам влиться в процессы компании и команды. Поэтому смело задавайте вопросы и просите помощи при необходимости у ответственных лиц. При этом не забывая о балансе, есть вещи которые предполагается что вы знаете, например установить среду разработки, склонить проект, установить и настроить СУБД по конфигу и тому подобное. А есть вещи специфические для конкретной компании или команды, который вы не можете знать изначально, например где лежат конфигурации для различных стендов, какие политики именования веток в системе контроля версий, где взять доступы к внутренним API и так далее. И помните, вашем быстром и комфортном онбординге заинтересован бизнес, вы имеете полное право на него.

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


2. Не стесняться спрашивать того, кто дал задачу, но подходить к этому с умом

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

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

Поэтому нужно смело уточнять все что вам не понятно, это естественная часть процесса решения задач. Лучше всего собрать список вопросов и подойти к ответственному сотруднику и обсудить максимум вопросов за раз. Это гораздо лучше каждые 5 минут бегать к коллеге с 1 новым вопросом.

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


3. Код-ревью. Защищаться и получать выгоду

Сомнительное ревью — вам могут сказать что-то вроде «Так пишут студенты», «Решение так себе» и не объясняют почему. Это не про вас. Это про неумение ревьюера в коммуникации.

Как-то раз мне сказали: «Мне не нравится, надо переписывать». Я спросил: «А что не так?» - «Так писать нельзя». И только после третьего вопроса «Почему именно не устроило решение?» я наконец получил внятный ответ. Хороший способ провести "эффективное" ревью. С тех пор я не стесняюсь переспрашивать. Уточните: «Расскажи, что именно не так». Если не помогает - фраза «Не понимаю, что вы говорите» часто отрезвляет. Она не обвиняет явно, но подчёркивает, что человек говорит невразумительно, и лучше бы ему изъясняться по-человечески.

Но оно бывает и таким: разговор начинается с того, что хорошо, но вот тут можно сделать более качественно - есть несколько подходов, вот первый, вот второй, вот примеры, где посмотреть. Если возникнут вопросы — сразу спрашивай, я помогу. Это бесплатный урок. Даже если ревьюер не сделал никаких замечаний, у таких коллег лучше лишний раз спросить: «А как бы вы сделали? Насколько вам нравится моё решение? Может, что-то можно улучшить?». Так можно быстрее улучшить свою экспертизу.


4. Сразу уделять большое внимание чистоте кода и архитектуры(уровень классов, сервисов и тп)

Лучше всего как можно раньше начать уделять большое вниманием этим аспектам, даже если вы видите, что в вашей команде кто-то на это забивал. Так как чем раньше начнете, тем меньше будет размер технического долга (скорость реализации в обмен на возможность поддержки и развития решения). Фраза «Потом отрефакторим», часто в действительности означает «Никогда»). А в результате мучительные и долгие правки которые делать либо вам, либо вашим коллегам, выслушивая много “лестных” слов в свой адрес, а вероятно и оба варианта сразу.

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

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


5. Не откладывать написание тестов

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

Если у вас в команде плохо с культурой тестирования, можно сказать, что прежде, чем приступить к новой задаче, вы покроете тестами функционал предыдущей задачи.

Как-то раз была ситуация, когда нашей команде нужно было обновлять версию одной библиотеки для работы, и как на зло, с обновлением у нее изменился API, а тестов на участках, где она использовалась, было крайне мало. И помимо того, что тебе нужно разобраться с новым API, так тебе еще предварительно нужно покрыть все задействованные участки качественными тестами, а вспомнить как должны эти участки работать гораздо сложнее через несколько лет, чем в момент их создания. Поэтому, не забывая про тесты, вы сильно упрощаете себе жизнь на дистанции. И не забывайте о том, что тесты, это тоже код, и он тоже должен быть качественно спроектирован и реализован, и главное здесь не количество, а качество. Наличие бесполезных тестов хуже, чем их отсутствие, в основном бесполезные тесты дают ложное чувство безопасности, замедляют рефакторинг, множат себе подобных (плохой пример для других) и тратят время CI/CD.


6. Синдром самозванца

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

  • Кажется, что я обманул всех: случайно прошёл собеседование, испытательный срок, а теперь месяцами (или даже годами) обманываю наставника, старших коллег и руководство.

  • Когда я решаю сложные задачи — мне просто везёт. А если коллеги не справились до меня, значит, они уже частично решили задачу, и мне оставалось лишь «добить» ее.

  • Если я не могу решить задачу сам, прошу помощи или трачу много времени — причина только в моей некомпетентности.

  • И, конечно, кажется, рано или поздно придёт «настоящий эксперт» и разоблачит наглого диверсанта, который шифруется под программиста.

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

  • Фиксировать достижения. Точное знание, что за время карьеры вы достигли конкретных результатов, помогает увидеть более реальную картину. Это может быть список в заметках, история в таск — трекере, граф коммитов — что угодно. Когда становится совсем грустно — полезно открыть этот список и напомнить себе: вообще‑то вот тут я разобрался с нетривиальной задачей, тут предложил решение, тут мне доверили сложный участок.

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


7. Не изучать всё подряд

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

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


8. Не злоупотреблять переработками

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

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

Конечно, бывают исключения: важный релиз, демо, срочная хотелка заказчика, который уже выслал своего курьера с мешком золота, в жажде важной фичи. Но если переработки становятся нормой — пора перерабатывать свой график. У каждого есть лимит часов, в которые он может выдавать качественный результат за разумное время.


9. Не бояться просить повышения

Вы растёте как специалист, и вместе с этим растёт ваша стоимость на рынке. Некоторые компании сами подходят и говорят: «Мы тебя повышаем». Но бывают и такие, где повышение нужно просить самостоятельно.

Ещё на этапе собеседования стоит узнавать, как в компании устроен карьерный рост: по каким критериям оценивают, как часто пересматривают зарплату, что нужно сделать, чтобы вырасти, и до куда примерно это возможно. Понимание этих правил поможет избежать неприятных ситуаций в будущем.


10. Не бояться проявлять инициативу

Если вы видите, что какой‑то процесс в команде или компании систематически создаёт проблемы, не нужно молчать только потому, что у вас мало опыта.

Пример: у вас в команде есть условный «человек‑знаток», который один знает ответы на специфичные для вашей компании/команды вопросы. Пока он на месте — все работают. Как только уходит в отпуск — процессы встают. Со стороны это выглядит как явная уязвимость процесса, и предложение завести базу знаний или хотя бы описывать где‑то типовые проблемы кажется логичным.

Если сомневаетесь, имеете ли право поднимать такие вопросы, — обсудите их с коллегами. Возможно, они думают о том же, и вместе вам будет проще сформулировать проблему и предложить решение.


Резюмируя

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

Буду рад видеть вас в MAX и Telegram — там выкладываю материал, который не попал в статьи, рассказываю, над чем работаю, и общаюсь с вами

Показать полностью
0

Я посчитал, сколько игр из библиотеки Steam прошел целиком. Дальше я стал считать вообще всё

Всё начиналось безобидно.
Steam показывает, сколько у тебя игр в библиотеке — у меня их 124
(но на самом деле со SteamFamily - порядка 300)
Захотелось узнать, сколько из них я реально прошёл. Конечно, сам стим этого не скажет, максимум часы.

Стал считать руками по памяти. Дошёл до 53 и понял, что остались супер маленькие проекты, про которые помнишь с трудом и не понимаешь вот это ты до конца прошёл или посмотрел прохождение у кого-то?

Мой профиль стим

Мой профиль стим

Дальше стало хуже

Раз уж полез считать игры, решил посмотреть на всё остальное, я вообще любитель списков и веду их уже несколько лет на LiveLib (книги), Фильмы и вот недавно стал еще аниме записывать на Shikimori

Но история с ними не сладкая
Аниме на Shikimori, 61 тайтл, всё четко, книги на LiveLib, куда я захожу примерно раз в полгода и каждый раз заново вспоминаю пароль.

Фильмы — в заметках телефона просто как чеклист с названиями условно "Остров проклятых 2008 8/10", без дат, без пометки "пересмотреть" или "любимое".
Сериалы только в голове. Настолки тоже нигде, потому что для них буквально нет сервиса.

Пример списка в заметках, база для многих

Пример списка в заметках, база для многих

Соответственно собирать и держать это всё было неудобно, в основном это в закладках у меня валялось в браузере, часто забивал на список и нормально consistent ритуала по оценке (да и критериев оценки) у меня не было

Момент, когда я понял, что это проблема

В один пьяный летний вечер (как раз после окончания сессии) Друг спросил, что мне запомнилось прикольного за весь год — вообще всё, не только фильмы или игры. Я впал в ступор и не смог нормально ответить. Вроде многое на языке крутится, а посоветовать особо нечего, под конкретного человека не так просто рекомендации подобрать, да и сравнить что и какие впечатления оставило негде.

Я решил попробовать Excel

Логичный следующий шаг. Любые колонки, любые сущности, ничего не закроется. Поэтому у половины людей, которые всерьёз ведут списки, рано или поздно заводится Excel или Notion.

Ломается она на двух вещах. Первая — заполнение: триста тайтлов это вечер работы, и каждый следующий ты вбиваешь руками. Вторая — вид. Простыню из четырёхсот строк текста не хочется открывать, и через месяц ты её не открываешь. Друзьям скидывать неудобно, надо всегда держать её в облаке, да и не все любят сходу разбираться с твоей табличкой на 300+ строк. Визуально ничего нет, показать нечего.

К чему я в итоге пришел?

Хочешь сделать хорошо - сделай это сам. Мой сервис называется AuraRating, пошёл третий месяц разработки, делаем вдвоём: sandor — код, deceas66ed — дизайн. Пользователей пока немного, так что это не «супер сервис», а скорее самобытный проект, который работает и старается быть удобным.

Как сейчас выглядит моя площадка

Как сейчас выглядит моя площадка

Что я добавил

Один профиль на все медиа. Игры, фильмы, сериалы, аниме, манга, книги — и любые свои категории. Настолки у меня теперь лежат именно там: сам придумал статусы, сам добавил поля («сколько игроков требуется», всякие жанры), дальше в категории удобно создавать карточки и всё четко.

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

Вот мой обзор на тарков))

Вот мой обзор на тарков))

БЫСТРЫЙ ПЕРЕЕЗД С ДРУГИХ ПЛАТФОРМ. Вот что мне было прям необходимо!
Импорт по ссылке на профиль или файлом: Shikimori, MyAnimeList, MangaLib, ReadManga, LiveLib, Яндекс Книги, Steam, фильмы и сериалы. Для всего остального — шаблон Excel (как раз пригодился мой файлик). Импортируются статусы, оценки, обложки, годы выпуска фильмы/игры; Автоматически проставляются теги.

Еще добавил тир-лист, который можно редактировать и быстро собрать все свои оценки в один прикольный вид (также можно кастомизировать и таскать карточки как по кайфу)

Мой тир лист Аниме, собирается в 1 клик на основе оценок

Мой тир лист Аниме, собирается в 1 клик на основе оценок

Приватность как в личных заметках.

Профиль целиком или отдельную категорию можно скрыть от всех. Никакой парсер или другой пользователь не сможет посмотреть твои обзоры и оценки.

Регистрация только по логину и паролю, никакой почты, телефона и т.д.

Удобный экспорт в Excel

Если вы боитесь что проект закроется (нет), я реально его буду поддерживать как минимум года 2 точно, то всегда можно сделать ЭКСПОРТ в эксель в 1 клик. Там будут все ваши отзывы, оценки, доп. оценки и вообще вся инфа по вашему профилю у меня на сайте. Потом в 1 клик сможете импортнуть в другой сервис или.... отправить ИИ для создания рекомендаций.

В общем, буду очень рад если поддержите молодого разраба активностью на AuraRating)

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

Показать полностью 5
9
Лига программистов
IT

Продолжение поста «Что происходит в ИТ сегодня в РФ и с чего всё началось?»3

Итак, в прошлом посте мы рассмотрели процессы с позиции бизнеса. Теперь с позиции именно технической части в ИТ.

Ключевой вопрос: кто считает рентабельность изменений в ИТ?

Правильный ответ - никто.

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

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

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

"Нам поставили задачу сделать ... Обычно это делается через ... стоимостью 50 тысяч рублей, за 1 день, но у нас его не оказалось, поэтому мы ...." Ключевое в "мы" - 2 инженера с суммарным ФОТ в 1 млн. руб. МЕСЯЦ делали то, что "обычно" делается 1 человеком за 1 день с устройством за 50 тыс. руб.

Если делать "как обычно" задача решается с бюджетом в 73 тыс. руб.

Если делать "по докладу", то задача решилась с бюджетом в 1 млн. руб т.е. в 13,7 раз дороже. При этом 2 инженера выпали из бизнес-процессов на месяц и не принесли прибыли.

Заказчик сего действия (не внутренняя задача) отказался от части пунктов контракта и переложил их на другого подрядчика, который такую же задачу на 2-м аналогичном сервисе решил вписав в счёт 150 тыс. руб., при том, что первый выставил 2 млн. руб.

Я смотрю материалы конференций. Слежу за трендами в ИТ. Ситуация выше - ПРАВИЛО, а не исключение. Безусловно я не отслеживаю каждый тренд, но по тем проектам за которыми слежу:

- уровня библиотек / сервисов уровня ОС/виртуализации - 90 % изменений экономически хуже, чем без изменений;

- уровень прикладных решений - 70 % изменений экономически хуже, чем без изменений;

То есть ситуация пришла к тому, что НЕ ДЕЛАЯ НИЧЕГО бизнес ПОЛУЧАЕТ БОЛЬШЕ.

Проблема существует на 2-х уровнях:

- управление в ИТ;

- инженеры в ИТ;

Рассмотрим на примере Яндекс.Навигатора, как наиболее для меня показательном.

Самим приложением я пользуюсь 10+ лет.

В 2016 году оно меня полностью устраивало. Как есть. Приложение занимало 106 Мб.

В 2022 году приложение (алгоритм поиска пути) поменяли и оно стало годиться только для того, чтобы прокладывать маршрут туда, куда 1 раз в жизни едешь и нет времени/сил вручную просидеть над картой.

В 2024 году Навигатор стал сбивать нормальный маршрут на свой высер (о чём я писал пост Яндекс.Навигатор и идиотизм)

В 2026 году "голое" приложение занимает 430 Мб. И с позиции потребителя оно ХУЖЕ, чем в 2016-м. При этом для использования в формате "мозгов" для головного устройства автомобиля оно требует подписку.

Подведём итог - за 10 лет приложение стало в +/- 4,3 раза больше, требует более нового железа, в приложении появилась куча багов, приложением пользоваться стало хуже, чем 10 лет назад.

Вопрос: а за что отдел разработки Яндекс.Навигатора 10 лет получал зарплату? Больше, дороже, хуже? А зачем?

Если мы посмотрим на жизненный цикл продукта, то увидим такую картину, которую можно изобразить классическим "крестом" спроса/предложения:

Продолжение поста «Что происходит в ИТ сегодня в РФ и с чего всё началось?»

Если мы отсортируем возможности ("фишки") приложения так, чтобы слева были самые востребованные, то получим такое соотношение возможностей приложения и ресурсов, которое оно требует.

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

На графике отчётливо видно, что с момента пересечения каждое изменение делает продукт ХУЖЕ... НО!

Рассмотрим это с позиции всех участников, снизу вверх.

Пользователю нужно чтобы приложение имело меньше багов и весило меньше. Довольно быстро 85 - 90 % потребностей пользователя приложение закрывает полностью.

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

Менеджеру ИТ нужны задачи, чтобы получать зарплату. Причём смена проекта для него гораздо болезненней и опасней т.к. шанс вылета с работы гораздо выше, чем у разработчика.

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

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

Суть конфликта в том, что за всё платит Пользователь через Собственника.

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

Ещё в середине нулевых рядом ИТ-инженеров, которых сообщество быстро заклеймило идиотами, были призывы к тому, что ИТ-технологии не должны быть "вещью в себе". То есть не нужно добавлять в библиотеки функции ради функций, в интерфейсы кнопки ради кнопок и т.д. и т.п. Потому что будет... Да прямо скажем пиздец.

20+ лет таких инженеров подвергали остаркизму. Есть огромная библиотека мемов, поговорок и т.д. и т.п.

А теперь просто настало то, о чём предупреждали. Поэтому напомню аксиому и снова вернусь к картинке с графиками выше, потому что она иллюстрирует и второй пункт инженерии.

Пользователя и Собственника совершенно не ебёт как именно решена задача.

Если приложение на 100 Мб удовлетворяет мои потребности, то для Пользователя "хорошо" это:

- Приложение стало занимать меньше места;

- Приложение стало работать быстрее на том же железе.

Всё остальное - плохо! Вообще всё!

Для Собственника важен баланс затрат и выручки. То есть:

Если выручка в начале года была А, затраты Б, количество клиентов К, то "хорошо" это (н - начало года, к - конец года):

- в расчёте на пользователя (Ак - Бк) > (Ан - Бн)

- Кк > Кн;

Всё остальное - плохо! Вообще всё!

Так вот сегодня почти всё ИТ, это плохо. И с позиции Пользователя и с позиции Собственника.

Забавно, но у ИТ есть прекрасная, но позорная корреляция - АвтоВАЗ. Та же динамика - стоимость растёт, а качество не так чтобы очень...

В 2020 - 2025 году трогать ИТ-департаменты было нельзя из-за ковида и СВО. Теперь стало можно.

!!! ВАЖНО ПОНИМАТЬ !!! У собственников бизнеса есть свой "Хабр". Только он не в Интернете, а в кафе, встречах и банях. Где оффлайн эти самые собственники общаются и делают пометки в блокнотиках. И обсуждают сотрудников, решения. В целом всё тоже самое, что и в ИТ-сообществе. Только вопросы там задают другие и ответы там ждут в другой форме.

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

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

Второе !!! ВАЖНО ПОНИМАТЬ !!!! на работе зарплату платят не за то, что вы можете чем-то выпендриться на Хабре или конференции. Зарплату платят за решение задач. И зарплату платит Вам Пользователь через Собственника. И размер зарплаты напрямую зависит от того, насколько удовлетворены эти категории людей. Если Пользователь не удовлетворён, то он идёт к конкуренту и денег на зарплату нет. Если Собственник не удовлетворён, то он полученные от Пользователя деньги положит к себе в карман. Не устраивает? Ну пили сам свой бизнес.

Ковид и СВО не вырастили ИТ. Они ЗАСТАВИЛИ бизнес переплачивать. Как врачам непосредственно в ковидные времена. А как только хромого вылечили, он первым делом бросает свою трость...

Что делать?

Решать проблемы. Список того что не устраивает бизнес и пользователей:

  1. Не прозрачность решений. Каждое изменение должно быть обоснованным с рассмотрением вариантов. То есть мы делаем А потому что оно стоит Х, вариант Б стоит 2Х, вариант В стоит Х/2, но есть 80 % вероятность проблемы Г, которая будет стоить 10Х. Раньше бизнес слышал "Нужно Д", про себя матерился, но давал деньги... Это время прошло.

  2. Достоверность. Приходит Менеджер ИТ к начальнику и озвучивает схему выше. По факту оказалось, что Х это 5Х, а у конкурента сделали Б и оказалось, что там не 2Х, а 0,75Х. В сауне с конкурентом собственника высмеяли за 5Х вместо 0,75Х... Но он не будет собирать всех и орать. Это в госсекторе так можно. Просто в следующий раз ваши слова считаются истиной на 20 % и как только будет вариант, которому верят хотя бы на 25 %, Вас будут заменять.

  3. Эффективность. Снова повторю, что бизнес - благотворительная организация. Чем выше выручка и чем меньше затраты, тем Вы более ценный сотрудник. Если Ваша ценность становится ниже некоторого значения из полезного инструмента Вы превращаетесь в камень на шее. Полезный инструмент ценят, от камня на шее избавляются.

Кто сможет работать по новому - останется, остальных рано или поздно из ИТ выдавят. Скорее рано, чем поздно.

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

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

Бывайте ихтиандры, потом сюрпризом будет.

Показать полностью 1
Лига программистов
IT

Ответ на пост «Что происходит в ИТ сегодня в РФ и с чего всё началось?»3

Сломан не найм в ИТ. Сломано само ИТ. Намеренно. И не только в России. И началось всё не вчера и даже не позавчера. Ещё в далёком 2016-м бизнес стал понимать, что с ИТ "что-то не так".

Тема разделена на 2 поста. Сперва с позиции бизнеса, второй пост - с позиции инженера в ИТ.

На этот счёт я сделал пост-пример, который ушел в минуса: Ненависти пост 01: Позор профессии ИТ

Через год опять заминусованный пост про то, что с позиции бизнеса ряд "стандартов" в ИТ являются очень плохими: История одного взлома

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

И качества ИТ-продуктов: Яндекс. Когда левая рука не знает, что делает правая

Тут надо сделать остановку и ввести крайне важный "дисклеймер" (предупреждение). Уже излагал в посте Почему ИТшники не линейные работники поэтому просто процитирую себя:

Поэтому ИТ, хоть и является крайне важной отраслью, но её сотрудники являются сервисно-сопровождающим классом. А тем, у кого подгорает от этого... Мир не обязан подстраиваться под чьи либо хотелки, он такой, какой есть.

Почему позиционирование ИТ как сервиса/поддержки имеет принципиальную важность?

Возьмём ТО автомобиля. Клиент платит за то, чтобы автомобиль продолжал ездить. И он готов за него платить МИНИМАЛЬНУЮ стоимость. То есть никто делать ТО каждые 100 - 500 - 1000 км не будет. Принципиально. Заказчик (бизнес) платит за результат. Запустим аллегорию булки хлеба и сделаем точкой отсчёта 2010 год в котором собственно всё уже оказалось настолько запущено, что сор выполз из избы. Итак 2010 год, булка хлеба стоит 10 рублей, весит 1 кг и на вкус 10 из 10. Сделаем ещё пару важных предупреждений и пойдём по хронологии:

В прошлых постах не освещено, но тоже крайне важно:

С позиции бизнеса ИТ, это как с позиции коллективного запада понятие "русский", то есть от начальника ИТ и ниже (для англичанина/француза русские это не только жители России, и даже не только украинцы, белорусы... Но и всякие литовцы/латыши/узбеки/киргизы и т.д. и т.п.).

Для точного понимания нужно всё-таки ещё раз повторить кто такие "бизнес", "собственник", "предприниматель","капитал" и "капиталист" и каково их позиционирование.

Бизнес - коллективная деятельность направленная на извлечение прибыли или получение иного результата.

Собственник - человек, который вложил личные средства в бизнес. Личные - ключевое для понимания.

Предприниматель - собственник бизнеса, который создал его для получения какого-либо не финансового результата. Например, человек хочет в городе круглогодичный ледовый каток. Его строительство и эксплуатация стоит денег. Чтобы их заработать человек делает бизнес, который приносит деньги на строительство этого самого ледового катка. Ну или простой пример - Галицкий и его парк, это наглядный и точный пример предпринимательства.

Капиталист - собственник бизнеса, который создал его для увеличения личного капитала.

Капитал - совокупность активов, как в виде денег так и в виде собственности.

Ключевая цель капитализма - преумножение капитала. То есть чистая сумма активов должна постоянно возрастать. Для чего рост активов должен превышать инфляцию. То есть:

Если инфляция составляет А в год, а сумма активов Б, то по итогам года (В) сумма активов должна отвечать следующему соотношению: В > А + (А * Б)

Ключевая формула бизнеса: прибыль = выручка - расходы

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

Тут надо остановиться и прямо указать один момент. Вы с объявления аллегории видели ИТ-термины? Нет. И не увидите. С позиции собственников бизнеса ИТ (как и любое другое подразделение) это "чёрный ящик" куда вкладывается А рублей в начале года и от которого ждут В рублей в конце. Что происходит внутри этого ящика капиталистов и бизнес волнует точно так же как шерифа проблемы негров т.е. извините за прямоту - абсолютно похуй.

ИТ - сообщество. Как и в любом сообществе тон задаёт крайне небольшое меньшинство, которое умеет громче всех кричать. Как зоошиза. Разбор "стандартов" в ИТ я уже делал:

Ответ QuazZ в «Айтишники vs юзеры»

Так же, его делали и другие люди с аналогичным результатом.

"Чистый код" замедляет работу приложений в 20 раз

Так же я разобрал почему для бизнеса 1С круче всего остального:

Продолжение поста «Насколько разные "программист" и "программист 1С"?»

Но @astrobeglec, же дебил и ничего не понимает...

Так вот возвращаемся из вводной части к аллегории. Сор из избы вышел в 2010. Предположим что инфляция 0, чтобы не рожать лишние расчёты и сущности:

Динамика:

2010 год, булка хлеба стоит 10 рублей, весит 1 кг и на вкус 10 из 10.

2015 год, булка хлеба стоит 20 рублей, весит 1 кг и на вкус 10 из 10.

2018 год, булка хлеба стоит 40 рублей, весит 0,9 кг и на вкус 9 из 10.

2020 год, булка хлеба стоит 100 рублей, весит 0,8 кг и на вкус 9 из 10.

2021 год, булка хлеба стоит 120 рублей, весит 0,7 кг и на вкус 9 из 10.

2022 год, булка хлеба стоит 150 рублей, весит 0,6 кг и на вкус 8 из 10.

2023 год, булка хлеба стоит 250 рублей, весит 0,5 кг и на вкус 7 из 10.

2024 год, булка хлеба стоит 275 рублей, весит 0,4 кг и на вкус 6 из 10.

2025 год, булка хлеба стоит 300 рублей, весит 0,3 кг и на вкус 5 из 10.

Ломать ИТ хотели ещё в 2020-2021-м годах. Но сперва ковид, а потом СВО не дали запустить механизм. В 2026 произошли сразу 2 события, которые позволили запустить процесс:

  1. Перестали появляться блокирующий факторы типа ковида/сво.

  2. Появился крайне удобный инфоповод - искусственный интеллект, который позволил замаскировать (т.е. послужить удобным прикрытием) для процессов.

И процесс запустили. Какой процесс? Типичный для бизнеса, который до этого работал со 100 % эффективностью. Урезание бюджетов. Помните высказывание (по словам В. В. Полеванова) Ржавого в начале 00-х?

Что вы волнуетесь за этих людей? Ну, вымрет тридцать миллионов. Они не вписались в рынок. Не думайте об этом — новые вырастут.

Абсолютно тот же процесс сегодня запущен в ИТ. Бизнес видел, что булка хлеба может стоить 10 рублей за кг с качеством 10 из 10. Там понимают, что новые потребности требуют не 1 булку хлеба, а 10. И что рост в 10 раз приведёт к падению качества... Ну например до 8 из 10.

Поэтому где-то на бумагах (а не в компьютерах) или в блокнотах лежат согласованные крупными игроками планы доведения к 20ХХ году стоимости 10 кг хлеба с качеством 8 из 10 до 100 рублей.

Не вписавшиеся в план капитал не волнуют.

То, что мы видим сейчас - процесс понимания насколько сильно можно и нужно давить на ИТ. Это ещё даже не начало самого процесса.

Показать полностью

Даже ии не может ответить на этот вопрос

Здравствуйте, сеньоры, помидоры
Есть 2 файла, я их соединяю в один, в заголовок файла на выходе нужно записать хэш соединенных данных, в конец нужно записать хэш вместе с заголовком, как это сделать через браузер без перечитывания исходных файлов, без буфера в память или лишней копии на диске, перечитать финальный файл можно, то есть чтобы кроме финального файла больше ничего не создавать?

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

UPD Пиакбушники тоже не смогли, вот вам мем

Даже ии не может ответить на этот вопрос
Показать полностью 1
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества