«Не баг, а фича» — учимся понимать язык программистов

В последнее время творится полный треш. Простите мне мою резкость, но я просто о***ваю от количества людей, которые на рынке занимаются разводняком.

Материалы по теме

Донбасc «Донбасс идет в Россию»: Состоялся первый диалог между Украиной и Донбассом (ВИДЕО) Глава ДНР Денис Пушилин в прямом эфире российского телеканала пообщался с главой украинской делегации в минской ТКГ Л Донбасc Они начали что-то понимать: Украинский генерал шокировал правдой о Донбассе Бывший глава Следственного управления СБУ генерал Василий Вовк в эфире телеканала «Наш» рассказал, чем может обернуть Донбасc Небензя напугал Украину: Россия готова официально войти в Донбасс (видео) Российская Федерация имеет большой опыт в помощи другим странам по разминированию территорий, и готова при необходимо Донбасc Касается всех россиян: Путин дал обещание по судьбе Донбасса на закрытом брифинге Президент России Владимир Путин сегодня провёл традиционный ежегодный закрытый брифинг с главными редакторами российс

Новая задача

Ваня — обычный джун в веб-студии. Его работа — поддержка бэкенда сайтов старых клиентов студии.

Джуниор (англ. junior — младший) в данном случае — младший разработчик в веб-студии. Также бывают мидл- (англ. middle — средний) и сеньор-разработчики (англ. senior — старший).

Бэкенд или бэк (англ. back end — задний край) — серверная часть сайта или приложения, которая нужна для обработки и хранения данных. Его противоположность — фронтенд или фронт (англ. front end — передний край) — видимая часть приложения или сайта. Если же разработчик занимается сразу фронтендом и бэкендом, его называют фуллстек-разработчиком (англ. full stack — полная куча / полный набор).

Рабочая неделя Вани начинается с митингов, потому что спринт в его компании длится всего неделю.

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

Спринт — период от одной до четырёх недель, за который сотрудники должны успеть выполнить задачу или задачи. Спринты являются частью Скрам.

Скрам (англ. scrum) — метод управления проектами. Относится к гибкой методологии разработки эджайл (англ. agile — гибкий).

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

Валидация — проверка данных, которые вводит пользователь.

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

До пятницы ещё целая неделя, поэтому с митинга Ваня пошёл сразу в курилку. Достав сигарету, он стал слушать разговор мидла и сеньора:

— Недавно залез в репозиторий, а там одни foobar’ы. Целый час голову ломал, а потом махнул рукой и заново переписал.

— Как наберут новых джунов, так всегда говнокод появляется. Как он вообще код ревью проходит?

— Надо проверить в гитхабе историю коммитов.

Тут Ваня поперхнулся, затушил сигарету и заторопился на рабочее место — от греха подальше.

Репозиторий — хранилище исходных файлов проекта.

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

Говнокод — очень плохой код.

Код ревью — проверка кода.

Гитхаб — сервис для хранения репозиториев IT-проектов и совместной работы над ними.

Коммит — запись изменений в репозиторий. Коммит содержит в себе данные об изменениях, комментарий и имя автора коммита.

У стола его уже ждал тимлид:

— Ваня, после того как ты добавил функцию загрузки фотографии в личном кабинете, появился баг. Теперь всё ломается, если ввести промокод.

— Вы уверены, что это из-за меня? Мой код вообще промокодов не касался.

— Уверен. Откати сайт и исправь всё до конца недели — нельзя ждать, пока клиент заметит, что одна из фич пропала.

Читайте также:  Как сделать «длинный» скриншот на компьютере и телефоне

— Но у меня уже есть задача на эту неделю, я не успею всё исправить.

— Это далеко не первый твой факап, поэтому, если не успеешь, мы поставим новый рекорд — так быстро мы джунов ещё не увольняли.

Тимлид (англ. team leader — лидер команды) в данном случае — программист, который выполняет роль менеджера. Тимлид редко пишет код, вместо этого он следит, чтобы его команда хорошо справлялась с задачами.

Баг (англ. bug — жук) — неожиданный результат или неожиданное поведение программы, ошибка.

Откатить (англ. rollback) — отменить изменения, вернуться к прошлой версии.

Фича (англ. feature — особенность) — полезная (а иногда забавная) функция / особенность программы.

Факап (англ. to fuck up — облажаться) — фиаско.

ПОЙТИ ДРУГИМ ПУТЕМ

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

Избавиться от неудачного сценария не так-то просто. Здесь, по словам Эрика Берна, помогают «война, любовь и психотерапия». Но можно вспомнить и другие высказывания, например «спасение утопающих – дело рук самих утопающих» и «пойти другим путем» (кстати, оба этих лозунга являются, несомненно, сценарными). Человеку, решившему переписать свою программу, имеет смысл самостоятельно предпринять следующие шаги.

Осознать свой сценарий

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

Расстаться с однозначными установками

Важно научиться слышать самого себя. Обратим внимание, что и как мы повторяем своему ребенку или подчиненным. Например, мы любим говорить: «У тебя ничего не получится до тех пор, пока…» Эти слова несут сильный отрицательный заряд, сомнение в возможности успеха. Ставится жесткое условие: «Ты не получишь пятерку, пока не выучишь теоремы…» или «Ты не продвинешься по службе, пока не получишь МВА».

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

Попробуем видоизменить, переписать эту программную фразу так: «У тебя получится лучше, если…» Это тоже так называемый «сценарий с условием», но он гораздо мягче. Теперь мы можем сказать себе: «Моя жизнь станет успешнее, когда я расстанусь с мешающими мне однозначными установками».

Разобраться со своими «провокаторами»

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

Составить свой личный свод ограничений

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

Читайте также:  PS4 Pro шумела — теперь не шумит

Вступить в диалог и получить «разрешение»

Разрешение – это специальная процедура, используемая психотерапевтом при сценарном анализе. Когда человек освобождается от сценария – это похоже на чудо, говорят: «Его как будто расколдовали».

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

Так, главный вопрос. Антитела в итоге есть?

Да! Но они немного другие.

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

Так, главный вопрос. Антитела в итоге есть?

► кто болеет, у тех надо искать антитела к белку (N) IgM

► кто переболел, у тех смотрят на антитела к белку (N) IgG

► кто привился, у тех важны антитела к спайковому (S) белку IgG

Если вы не болели «короной», то у вас не будет первых двух типов антител.

Так, главный вопрос. Антитела в итоге есть?

Почему это важно? Большинство распространённых тестов крови на антитела, включая государственный (бесплатный) в Москве, определяют именно количество антител IgM и IgG. Они не заметят антитела к спайковому (S) белку, появляющиеся после вакцинации.

Сдав стандартный анализ крови на COVID-19, вы не сможете подтвердить «успешность» прививки. А если после них у вас найдут антитела IgM и IgG, то прививка тут не при чём – вы просто болели «короной» ранее или вообще сейчас болеете.

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

Узнав об этом, я решил сделать два анализа крови: бесплатный на IgM и IgG, а также платный, на IgS.

Так, главный вопрос. Антитела в итоге есть?

Хорошо, что на первый я заранее записался в день первой прививки. Попасть на него сейчас «с улицы» почти нереально: все места в поликлиниках через систему записи EMIAS лично у меня заняты на 30 дней вперёд.

Анализ показал, что у меня нет антител IgM и IgG. С учётом аналогичного результата, полученного примерно полгода назад, это означает, что коронавирусом я пока не болел ни в какой форме.

Второй анализ на антитела к спайковому (S) белку бесплатно не сдать. В Москве есть несколько клиник, которые этим занимаются. Например, Хеликс, Инвитро и Ситилаб. В среднем, «удовольствие» стоит от 800 до 1400 рублей.

Платный анализ сдал 28 января, через 17 дней после первой прививки. Он прошёл без неприятных последствий, вторая рука в порядке. Спустя день, 29 января, были готовы результаты. Кстати, платные клиники, в отличие от государственных, дублируют анализы на английском языке, что окажется полезным во время путешествий.

Так, главный вопрос. Антитела в итоге есть?

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

Я решил, что повторю второй анализ через 15 дней после второго укола и добавлю его результаты в эту статью. Теоретически, антител к этому моменту должно быть больше.

«Мне приятнее быть первым из популяризаторов, чем сотым из ученых»

— Вы в своих лекциях часто рассказываете про теорию игр. Это про что? Про покер?

— И про покер, и о пробках на улице, и про выборы президента. Теория игр — вообще про все, где есть люди. Вот пример из жизни: дочь Света хочет вермишель, но она закончилась. Осталась только в тарелке у младшего брата. Брат капризничает, делиться не собирается. Что делает Света? Достает из холодильника торт и ставит перед ним на стол. Что происходит дальше?

Читайте также:  Cyberpunk 2077 – прохождение задания «Аудиенция»

— Это понятно — брат переключается на торт, и Света заберет вермишель. Но где тут игра?

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

— А вот по-христиански, да и просто с точки зрения логики — где в таких играх, связанных с манипуляцией людьми, Вы видите угрозу? Где здесь тот предел, когда нужно говорить «стоп»?

«Мне приятнее быть первым из популяризаторов, чем сотым из ученых»

Прежде всего предел — в семье. Никаких игр между мужем и женой! Стопудово, дьяволу только этого и нужно! В семье, да и в общении с друзьями, нет места манипуляциям!

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

— Но все-таки, почему Вы отказались от предложения затронуть в лекциях тему азартных игр?

— Потому что моя цель не заработать кучу денег, а служить людям. У Бога о каждом человеке есть свой замысел: кто-то будет трактористом и будет счастлив, а кто-то — популяризатором математики. Я уверен, что раб Божий Алексей Савватеев именно для этого был создан Богом — для «проповеди» математики среди русскоговорящих! Когда я долго не «проповедую» математику, у меня внутри все горит, я себе места не нахожу и постоянно думаю, где бы мне еще выступить.

— А как понять этот замысел Бога?

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

— Ваша цитата: «Мне приятнее быть первым из популяризаторов, чем сотым из ученых». Что Вы имели в виду?

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

— Это как у режиссера Алексея Балабанова: «Главное в этой жизни найти своих и успокоиться»?

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

«Мне приятнее быть первым из популяризаторов, чем сотым из ученых»

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

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

Задача от Алексея Саватеева:

Ответ на задачу:

Экспорт.

“Инвестируй деньги и зарабатывай 30 % годовых на экспорте товара. У нас собственное производство. У нас все классно. Мы инвестируем ваши деньги. Все классно. Верьте нам. Мы классные!”

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

Я когда работал в группе компаний ПИК (старое ДСК-1), посетил кучу заводов для оценки производственных мощностей. Так вот, для того, чтобы заниматься экспортом с большими объемами, нужны большие объемы мощностей. У этих же стоит 3 станка и вот с этим делом они привлекают инвестиции и отправляют в экспорт. Как правило (99% уже точно), все так же вкидывают деньги в крипту.