• Многозадачность или марихуана?
    +1

    Вот прям подписываюсь под каждым словом.


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


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


    1. У каждого источника информации (почта, рабочие мессенджеры, личные мессенджеры, таск менеджеры, доски, прочее) есть свой приоритет и периодичность проверки. Имеет смысл сразу читать сообщение только в случае какой-то аварии.
    2. Практически каждому коллегу отправляю ссылку на не привет. Некоторые обижаются, но только по началу.
    3. Нарезаю время ломтиками — когда я полностью буду заниматься одной задачей, когда другой.
    4. В случае вопросов — прошу подождать, пока закончу какой-то логический блок. Когда сам подхожу с вопросами, то сперва задаю вопросы "А удобно ли тебе сейчас говорить? А когда будет удобно?".
    5. Телефон полностью исключён из процессов коммуникации. Самое злостное зло.
    6. Сознательно делаю перерывы на выйти погулять и попить чай. Лучше передохнуть и работать с 100% эффективности, чем тупить постоянно с 30%.
    7. Пользуюсь различными триггерами — напоминалки, календари, списки, доски. Всё, что может само о себе напомнить в нужный момент должно так и делать, а не висеть в памяти.
    8. Когда люди (в том числе семья) засыпают меня какими-то задачами и предложениями, то прошу всё это отписать через удобный источник. Профита много — неважные вещи выкидываются, важные переформулируются и остаются залогированы в нормальной форме.
    9. Оставляю себе подсказки и планы для восстановления контекста задачи, которую, возможно придётся прервать. Простейший пример — пишу большие развёрнутые ридми и туду листы для каждой программы, или тезисы для статьи.
    10. В случае, если предвидится мультитаскинг, делаю всё для его предотвращения.

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


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

  • Многозадачность или марихуана?
    +1

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

  • Почему зарплаты в ИТ скоро начнут падать?
    +9

    Вспоминается анекдот про различие теории и практики.


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


    Автору статьи было бы полезно пообщаться с живыми разработчиками или рекрутерами.

  • Отменяемые Promises в EcmaScript6
    0
    Bluebird заточен чтобы побеждать в своем конкретном бенчмарке. Совпадает ли это с реальными use-case — неясно.

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


    Тем не менее разрыв между Bluebird и нативными промисами сокращается с каждой новой версией V8.

    Да, поэтому когда-нибудь в 2020 году, когда нативные таки обгонят bluebird по производительности и добавят всё нужное, я спокойно удалю его из своих проектов. Хотя, может это будет и 2030… До тех пор не вижу в этом смысла.


    Добавить функцию в библиотеку намного проще, чем в стандарт.

    Естественно проще. Но для этого и есть функции, помечаемые как экспериментальные. Более того, в стандарте ещё и breaking changes случаются так же, как и в библиотеках — навскидку могу сказать, что очень позабавило изменение crypto.md5 с аргументами по умолчанию. Это, правда, пример из node.js а не ES, что не совсем корректно, но тем не менее.


    Поэтому ничего смешного в том, что нативные промисы развиваются медленее, нет.

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

  • Отменяемые Promises в EcmaScript6
    –2

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


    Или вот вам ещё более свежие бенчмарки прямо от ребят из nodejs. На turbofan всё равно быстрее оказывается bluebird, и их это огорчило.


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


    Ну и так, чисто поржать — например, Promise.finally есть только в ES2018. А в bluebird я им уже много лет пользуюсь.

  • Отменяемые Promises в EcmaScript6
    –1

    В bluebird есть возможность отмены уже много-много лет. Как и другие вещи, которых нет в нативных промисах. Как и скорость, превосходящая нативные промисы...

  • Магазины одежды в разрезе: почему нам так мучительно туда ходить
    0

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

  • Магазины одежды в разрезе: почему нам так мучительно туда ходить
    0

    По возвратам — на практике это не так — какой бы ни был простой возврат, это психологически сложно. Так что главное впарить.


    Про "пойдёт на выход" — вы попробуйте в той же Икее быстренько пройти на выход.


    Проблемы с маршрутизацией — на самом деле нет. Например, будет кроме жёлтой и синей сумки ещё розовая.


    Просто поверьте, в данном случае я теоретик, а не практик.

  • Подборка: 7 Chrome-расширений для обхода блокировок
    0

    У меня на сервере на Google Compute Engine стоит squid с вайтлистом по нужным айпишникам. Выставил прокси в браузере — заходишь практически куда угодно. Для остального есть тор.


    А для мобилки написал Android клиент для рутрекера (через тор) — с планшета мне больше ничего и не нужно.

  • Пишем масштабируемые и поддерживаемые сервера на Node.js и TypeScript
    +7

    Последние несколько лет пишу бэкенд на ноде для крупных проектов. По факту основные причины такие:


    • Высокая производительность. Да, ясное дело, что тот же Go может быть быстрее, но не на порядок. Редко когда разница актуальна.
    • Огромная скорость разработки
    • Огромная экосистема
    • Кроссплатформенность
    • Бэкенд и фронтенд команды говорят на одном языке и переиспользуют компоненты
    • Лёгкость отладки
    • Гибкость и возможность подстроить под свои нужды и парадигмы

    А насчёт низкого порога вхождения — как ни странно, это не так. Должно пройти немало времени, чтобы человек начал писать нормально серверный код. Ну или это должен быть разработчик с опытом работы на другом языке — тогда хватает 2-3 месяца.
    К сожалению, сейчас примерно одинаковое количество внятных соискателей на Node.JS, Go и, например, питоне. Поэтому в текущей компании мы берём любых хороших разработчиков на несколько наших стеков, а потом собираем из них команды. И то нового коллегу найти получается очень редко — и это при условии отличных условий и зарплаты выше средней по рынку.

  • GeekBrains начинает готовить JavaScript-разработчиков полного цикла
    0
    JavaScript-разработчиков полного цикла

    Звучит как описание человека, который целиком может написать цикл "for" на javascript. Уже неплохо.

  • Магазины одежды в разрезе: почему нам так мучительно туда ходить
    0

    Так всё то же самое — надо успеть списать деньги, пока покупатель не задумался, и надо разгрузить кассы.

  • Магазины одежды в разрезе: почему нам так мучительно туда ходить
    0

    Применимо к магазинам электроники, мебели, ресторанам и так далее. Например, в МВидео так уже работают, в Икее уже собираются (правда, эти ребята собираются долго). Даже в аэропортах мы схожие решения внедряли.

  • Состоялся релиз Kali Linux 2018.1
    +2

    Как же мне не хватало нескольких петабайт оперативки на кали! Теперь заживём.

  • Магазины одежды в разрезе: почему нам так мучительно туда ходить
    0

    По-моему, ваш пост имеет отношения к произвольным магазинам, а не только к магазинам одежды — советы стандартные. Ну и если вылить из него воды — останется три заголовка...

  • Огонь, вода и медные трубы: как мы создавали новый POS-терминал АТОЛ Optima
    0

    Спасибо за ответ! Правда вот сомневаюсь — совместимость обычно ломают как раз системные обновления (в том числе обновления безопасности), а не обновления Paint.


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

  • #Ускорение4X. Адвокат дьявола
    +1

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

  • WebRTC и Electron: тренд для desktop-приложений
    0

    Веб приложение вы на Qt не напишете, а оно делается в первую очередь.

  • Автодозвон: хороший способ активизации клиентской базы
    0

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

  • Автодозвон: хороший способ активизации клиентской базы
    +1

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


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


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

  • Огонь, вода и медные трубы: как мы создавали новый POS-терминал АТОЛ Optima
    +4

    Надеюсь, что я ошибаюсь, поправьте, пожалуйста. Правильно ли понимаю, что упомянутое достоинство


    имеет возможность отключать обновления полностью при необходимости. Если вы один раз протестировали свое ПО с этой версией ОС, нет необходимости проводить новое тестирование после нового обновления;

    Означает, что вы будете поставлять терминал с выключенными обновлениями? И на устройстве будут со временем накапливаться уязвимости?


    Ну и в целом интересно узнать, как вы защитили свой терминал от взлома. Ломают даже MPOS, а тут прямо совсем вкусная игрушка для хакера — Windows 10, куча открытых USB портов, можно отвлечь сотрудника и засунуть туда что угодно… А, учитывая размер флэшек, можно её там вообще оставить, и это ещё никто месяц не заметит.

  • Chromium: другие ошибки
    +1

    Вы и ваш продукт настолько круты, что в процессе чтения ваших статей уже не первый раз ловлю себя на сожалении о том, что редко пишу на сях, и поэтому не использую PVS Studio. Очень надеюсь, что вы сможете достучаться до Google.

  • История взлома одного WordPress плагина — или о том, как вы допускаете уязвимости в своих проектах
    0

    Это я просто не был уверен, что плагин обновится до 4.3, будучи заблокированным. Доберусь до дома — уточню в статье, спасибо.

  • История взлома одного WordPress плагина — или о том, как вы допускаете уязвимости в своих проектах
    0

    Если у вас была версия 4+, то она, видимо, поменяла настройки в свой формат — откатиться к третьей будет нельзя, не вернув руками все настройки. Можно поставить версию 4.3 из репозитория wordpress — в ней уязвимость была исправлена сотрудниками wordpress (кстати, по идее, у вас блог сам должен был обновиться до этой версии плагина). Для того, чтобы её поставить, вам потребуется SVN клиент, которого нужно натравить на эту версию. Ну или вы можете поставить версию от mihdan, он дал ссылку чуть выше — она, скорее всего, тоже работает с настройками в формате 4+. Но уточню на всякий случай ещё раз, что к версиям 4+ я отношения не имею и никакой моральной ответственности за них не несу.

  • История взлома одного WordPress плагина — или о том, как вы допускаете уязвимости в своих проектах
    0

    Не хочу начинать холивар, но надо сказать, что со всеми его минусами, у него есть и достоинства, которых я до сих пор не видел в других схожих проектах (в последний раз смотрел пару лет назад, что-то могло поменяться):


    • Самая богатая экосистема тем и плагинов, которая позволяет быстро собрать из него что угодно;
    • Удобное редактирование, управление пользователями, ролями, пермалинками и ещё кучей всего;
    • Если уметь его готовить и кэшировать, то он не столь прожорлив, как говорят легенды.

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

  • История взлома одного WordPress плагина — или о том, как вы допускаете уязвимости в своих проектах
    0

    Хорошо что форкнули, желаю удачи!


    На всякий случай лучше ещё раз перепроверить весь код на предмет нетривиальных закладок — они могли возникнуть с версии 4 (момент передачи плагина). Той самой закладки с вставлением ссылок у вас нет, но мало ли. Долго я в этом не разбирался, а для особо желающих просто выложил мою старую версию (3 с чем-то) на гитхабе.

  • История взлома одного WordPress плагина — или о том, как вы допускаете уязвимости в своих проектах
    +2

    Очень редко ты пишешь бесплатный проект потому что "почему бы и нет". Обычно ты решаешь какую-то свою частную задачу, а затем делишься решением. Если повезёт, то придут ещё разработчики и решение станет лучше и более общим.

  • История взлома одного WordPress плагина — или о том, как вы допускаете уязвимости в своих проектах
    +2

    Так никто и не обещает, что все open source проекты идеальны, и в них активные разработчики, которые готовы заниматься вашими вопросами. Там такие же люди, как и с этой стороны монитора. Вот я недавно отписал в issues и накидал pull request в проект snyk — там оно пока и зависло. Или, например, я уже неделю общаюсь с поддержкой сервиса ivideon. Денег от меня не хотят, но решить внятную и воспроизводимую проблему тоже не могут. Но я не отчаиваюсь. Точно так же много проектов, которые решают мои проблемы и принимают пулл реквесты. Не надо ожидать 100% выхлопа, но делать хоть что-то это всегда лучше, чем ничего не делать.

  • История взлома одного WordPress плагина — или о том, как вы допускаете уязвимости в своих проектах
    +1
    потому что перевод

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


    опять же автор вроде как четко написал что получил только головную боль и почти никакой благодарности от пользователей

    Вы очень чётко выдали краткое резюме четверти статьи, всё так.

  • История взлома одного WordPress плагина — или о том, как вы допускаете уязвимости в своих проектах
    +2
    Для меня самого загадка кто и почему поддерживает бесплатные проекты.

    Мотивация у всех разная, могу сказать только про себя. Свои я выкладываю, если сделал что-то хорошее для себя. Уменьшение мировой энтропии при написании сотен отдельных программ и все дела.
    Чужие я поддерживаю (деньгами или пулл реквестами), если ими пользуюсь — всё просто.


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

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


    В данном случае автор получал не материальное вознаграждение в виде удовлетворения самолюбия.

    Всё так! Но этого обычно хватает, пока ты Junior разработчик.


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

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


    И наконец багрепорт который автор получил от тысяч юсеров.

    Багрепорты в основном касались некорректного поведения плагина в среде пользователя. Или их новых хотелок. Так что пользы в этом для автора не было.


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

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


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

    В случае написания своей ОС, языка разработки, платформы, огромной библиотеки и так далее — да, требуется серьёзная мотивация. Но если мы говорим о плагинах, библиотеках и прочих довольно мелких сущностях — не вижу смысла искать серьёзную мотивацию. Как минимум, стоит выложить, чтобы кто-нибудь потом принял эстафету и допилил проект. Что же касается "выставления цены" — всегда было довольно сложно выкладывать такие вещи за деньги, отчасти потому, что долго не существовало подобных рынков. Сейчас они есть — но попробуйте, например, продать npm модуль… Задача не так тривиальна.

  • Рассказ о том, как не дать мне украсть номера кредиток и пароли у посетителей ваших сайтов
    0

    Нет, я в первоначальном комментарии говорил про тот способ, который описан в статье, в частности это должно быть понятно по параграфу


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

    Если это iframe банка, то тут остаются проблемы в рассинхроне, блокировке и доверии пользователя. Но здесь, конечно, решает конверсия — и я не спорю, что, возможно, она получится выше. Нужно проверять.


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

  • Рассказ о том, как не дать мне украсть номера кредиток и пароли у посетителей ваших сайтов
    0

    Если iframe ваш (что предлагает автор этой статьи), то ещё как отвечаете. За другой сервер, за его аптайм и безопасность, за скрипты, которые там лежат, за внешний вид всего этого добра, и так далее.

  • Рассказ о том, как не дать мне украсть номера кредиток и пароли у посетителей ваших сайтов
    +2

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


    Насчёт конверсии хочется пруфов.

  • Рассказ о том, как не дать мне украсть номера кредиток и пароли у посетителей ваших сайтов
    +1

    Point taken. Сервер действительно порядком проще оградить от кражи данных.


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

  • Рассказ о том, как не дать мне украсть номера кредиток и пароли у посетителей ваших сайтов
    0
    Неясно как мы пришли к бекенду на ноде, в статье вроде затыкали дырки на фронте)

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


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

  • Рассказ о том, как не дать мне украсть номера кредиток и пароли у посетителей ваших сайтов
    0

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

  • Рассказ о том, как не дать мне украсть номера кредиток и пароли у посетителей ваших сайтов
    –1

    Более того, он использовался там уже этак с 2014 года. А наши конкуренты свой процессинг написали на PHP и тоже до их пор живы (сам в шоке). Мир гораздо интереснее, чем написано в этой статье, и айфреймы, к сожалению, не решают и половины проблем.

  • Рассказ о том, как не дать мне украсть номера кредиток и пароли у посетителей ваших сайтов
    0

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


    Full redirect is used (excluding in-context integration) — PayPal checkout pages are not embedded, framed, or loaded within a popup or new window

    А по поводу


    Первая реакция обычно такая: больной рвётся кого-то спасать, какие-то украденные cvv…

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

  • Рассказ о том, как не дать мне украсть номера кредиток и пароли у посетителей ваших сайтов
    0

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


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

  • Рассказ о том, как не дать мне украсть номера кредиток и пароли у посетителей ваших сайтов
    +2

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