• Как работать командой над большим проектом?

    Sanasol
    @Sanasol Куратор тега Веб-разработка
    нельзя просто так взять и загуглить ошибку
    Есть еще один вариант, возможно очень глупый - делать письменный договор о неразглашении "начинки" проекта. И давать полный доступ к файлам проекта, который будет лежать на сервере для разработки.

    Это не глупый, а единственный нормальный вариант.
    Все остальные попытки что-то спрятать обречены на провал.

    Я не поверю, чтобы в крупных проектах давался доступ ко всему коду, каждому back-end разработчику.

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

    2. Если, допустим фронтендер сделал обновление кода шаблона, как сделать так, чтобы не дергать постоянно back-end'а для внесения эти изменений?

    Значит скорее всего у вас проблемы с "архитектурой", если только дизайнер это верстальщик в html, а на бекенде шаблоны надо еще интегрировать с логикой/кодом, тогда это логично пропускать через бекендеров.
    А если дизайнер это фронтендер который делает конечный кусок кода, то значит надо менять подход.

    А так вообще с такими вопросами - нужен проект менеджер с техническими скиллами или тим лид, раз ни у кого в команде нет компетенции разрулить эти задачи.
    Ответ написан
    5 комментариев
  • Cookie или localStorage?

    @artinnok
    бекенд-программист
    Тут нет оптимального варианта - надо смотреть на бэкэнд и фронтенд совокупно.
    Далее, считаем что фронтенд SPA, бэкэнд чистое API.

    Если выбор за Cookies:
    1. На сервере необходимо реализовать защиту от CSRF
    2. На фронте также надо будет реализовать обвязку под передачу CSRF-токена
    3. Вся авторизация будет обрабатываться бэкэндом - т.е. он ставит куку через Set-Cookie с httpOnly и secure и сам же читает из куки для аутентификации / авторизации
    4. Фронтенд не имеет доступа к кукам - не думает об авторизации и об XSS
    5. Обычно, XSS используют чтобы украсть авторизационный токен через JS - если авторизационная кука httpOnly - нет доступа к кукам через JS, нет проблем

    Если выбор за localStorage:
    1. Не надо делать CSRF защиту на сервере - нет кук, нет проблем
    2. Экранировать потенциально опасные данные бэкэндом на входе - обеспечит дополнительную защиту от XSS при рендере данных
    3. Надо делать защиту от XSS на фронте, т.е. экранирование данных при рендере - чтобы потенциально вредоносный JS код превращался в строку, а не вставлялся в DOM
    4. На фронте надо сделать обвязку под сохранение / передачу / валидацию токена
    5. Всегда остается человеческий фактор - забыли сделать экранирование при рендере на фронте, JS код имеет доступ к токену и он утек


    Могу посоветовать использовать фреймворки, как на бэкэ, так и на фронте - они обычно имеют уже реализованную защиту от основных типов атак. Мы на проекте юзаем localStorage и React, ну и верим в лучшее :)
    Ответ написан
  • Как реализовать миграцию больших таблиц без блокировок?

    Melkij
    @Melkij
    PostgreSQL DBA
    Можно я сошлюсь на своё сочинение на SO? https://ru.stackoverflow.com/q/721985/203622

    Впрочем пару слов добавлю:
    добавив к примеру столбец

    Важно какой именно. Если default null - просто берёте и добавляете со statement_timeout в 1 секунду. alter table всё равно возьмёт блокировку на таблицу, но default null поле - это лишь быстрое обновление системного каталога.
    Если другой default - то для pg11 просто берёте и добавляете с таймаутом, для более старых немного приключений.
    Ответ написан
    2 комментария
  • Как грамотно организовать пробный период работы приложения?

    dollar
    @dollar
    Делай добро и бросай его в воду.
    Лучше сделать пробный период вечным, но с ограниченным функционалом.
    Ответ написан
    3 комментария
  • Почему я не могу печатать русские буквы в mysql?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Чтобы сделать запрос с русскими буквами, надо заходить не под рутом, а под нормальной учетной записью.
    Под рутом в консоли будет применяться дефолтная кодировка, а до версии 8.0 это Latin1, в которой русских букв нету.

    При заходе под нормальным юзером консоль mysql автоматически подхватит текущую кодировку клиента командной строки.
    Ответ написан
    Комментировать
  • Как работают сервисы перевода денег с карты на карту?

    @m0nym
    1) Сервис заключает договор с тем, кто предоставит платежный шлюз. И вносит предоплату. Например, 1 млн. рублей.
    2) После этого сервис по API имеет право распоряжаться упомянутым миллионом (минус комиссия платежного шлюза). То есть может указывать платежному шлюзу куда нужно положить деньги на какую карту. Пока не закончился предоплаченный миллион.
    3) Чтобы не делать это за свой счет, чтобы получать деньги от пользователей, нужен все тот же договор с тем, кто предоставит шлюз. Но уже шлюз для получения денег. С этим проще - можно подключить себя как обычный интернет-магазин.
    4) Через какое то время, обычно на другой день, реже через 3 дня - деньги полученные тобою в шлюзе, переводятся на банковский счет.

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

    Но как минимум один нужен.
    Ответ написан
    Комментировать
  • Не сталкивался с таким, нужно сверстать блок?

    Taraflex
    @Taraflex
    Ищу работу. Контакты в профиле.
    Перерисовать все в svg включая надписи, ибо нет смысла верстать такую приблуду, когда её можно мышкой накликать.
    Вставлять svg на страницу инлайново, а не через img или background. + ширину в 100%.
    Будет и адаптивно и шрифты мылиться не должны.
    Ответ написан
    2 комментария
  • Домашняя цензура для Youtube?

    vicodin
    @vicodin
    Имею некоторый опыт
    Если отключить всё хранение истории в настройках гугла для ютуб, то рекомендаций и не будет будут только подписки, полезно не только для детей :)
    Ответ написан
    2 комментария
  • В чем смысл ВУЗа?

    @garik_R
    On my way
    В ВУЗе учат взаимодействовать с людьми. Не в том смысле, что прогулять пары, прибухнуть, а наоборот, решить проблемную контрольную, написать курсовую. Развивать навыки, в любой сфере. Часто, именно этим, люди в Вузе и пренебрегают. Это социальная структура, где, по идеи, должны были собраться люди со схожими интересами. К сожалению, у нас это простой способ откосить от армии. Или родители сказали: "Ты должен поступить..." еtc. Кроме того, диплом поможет устроиться на хорошую работу у нас в стране или где-то в другой.

    Зачем учить? Что касается "странных" предметов, которые, казалось бы, никому не нужны - это ошибочная точка зрения. Любая работа сталкивает нас с такими неожиданностями, о которых мы и не думали. Вот тогда и вспоминаешь про какое-то ОБЖ и так далее. Часто негодование на этот счет связано не с большим умом, а наоборот, с большим незнанением и узким взглядом на жизнь. Подобные предметы нужно проглотить, отмучаться и знать где подсмотреть в случае чего. Или просто посмотреть шире. Вы же не станете отрицать, что даже если Вы учитесь на программиста, знать основы экономики необходимо, верно? А потом вы можете устроиться на работу, где будете писать какой-то софт где уже и не помешают и глубокие знания?

    Без математики можно заниматься только формошлепством. Везде так или иначе нужна математика. Где-то простая арифметика, где-то нюансы шифрования.

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

    Учить наизусть? Скажем так - хуже не будет. Да, сейчас всё немного изменилось. Если до ~2000х важно было иметь хорошую память. По книгам сложней искать, но других способов тогда не было. Сейчас нет острой необходимости помнить важную информацию. Сейчас важно знать где найти. Это умение стало более важным сейчас, из-за доступности интернета. Важная информация откладывается у вас в голове, если вы её постоянно используете - этого не избежать. Тут действительно, сейчас важно знать где найти, чем помнить досконально. Но человек, который является ходячей библиотекой оставляет гаааараздо более интересное впечатление, нежели тот, который говорит: "Щас, сек, я точно знаю, это вот здесь было написано". Перед работодателем это совершенно точно. Если вы помните, умеете развивать мысль, а не тупо заучили - то вы оставите более яркое впечатление. Мне кажется, это старомодный подход и со временем действительно можно будет погуглить и это всех будет устраивать. Но сейчас имидж умного, начитаного человека всё еще очень важен. Всё еще интересно поговорить вживую, с телефоном в кармане, нежели общаться отрывками статей, которые только что прочитал.

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

    ВУЗ нужен. Он учит, учит общению с людьми, решению социальных проблем. Учит решать поставленные задачи, порой, которых вы не ожидали. Дает возможность встретить людей, которым интересна таже область, что и Вам. Встретить людей, которые умнее Вас и прокачаться до их уровня. И да, как ни крути он даёт вам бумажечку. Может быть, она Вам и не пригодится, а может, вы в какой-то момент сильно пожалеете, что не получили её. Я бы даже сказал, что ВУЗ - это часть молодости, и не нужно её себя лишать. :-) И добавил бы, что желательно учится не в родном городе. Но это уже лирика :)
    Ответ написан
    4 комментария
  • Прием денег на сайте. Не рубли. Как просто и быстро?

    @boss_lexa
    paypal
    для saas paddle.com, fastspring, payproglobal
    через Payoneer's Billing Service можно принимать оплату картой или через европеский IBAN,
    но кажется только вручную можно выставлять счета
    Ответ написан
    Комментировать
  • Как максимально быстро перенести бд mysql (MariaDB) на другой сервер?

    Melkij
    @Melkij
    PostgreSQL DBA
    Версия MariaDB отличается, но только на минорную версию.

    Это major релиз.
    Изучайте upgrading часть мануала: https://mariadb.com/kb/en/library/upgrading-from-m...

    По идее между ближайшими major версиями репликация у mariadb работает, поэтому самое быстрое - поднять реплику, затем promote до мастера.
    А, не ваш случай. Да, перенести физически диски - это будет быстрее, просто обычно нет такой возможности. Смотрите инструкцию к major обновлению, inplace upgrade возможен.
    Ответ написан
    Комментировать
  • Как получить разницу между датами в javascript?

    VoidVolker
    @VoidVolker Куратор тега JavaScript
    Dark side eye. А у нас печеньки! А у вас?
    Используйте momentjs — там все есть.
    Ответ написан
    Комментировать
  • Как защитить от ddos по tcp/udp?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    От DDoS в принципе защититься нельзя. Были случаи, когда бот-атака просто валила магистральный канал вместе с целой страной, в которой располагалось оборудование сервиса защиты от DDoS'а, пытающегося прикрыть атакуемого клиента. Можно защитится только DoS'а определённого уровня. И тут встаёт вопрос профессионализма ваших админов, которые будут быстро находить действенные решения в момент каждой отдельной атаки и вашей готовности вложить деньги в оборудование, способное справляться с нагрузками. Как показывает опыт, дешевле получается арендовать эту услугу у специализированных сервисов.
    Ответ написан
    Комментировать
  • Почему говорят, что postgress лучше для более-менее серьезного проекта чем что-либо иное?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега PostgreSQL
    Седой и строгий
    Этот вопрос на Тостере задают примерно раз в неделю и в Интернете полно сравнений. Например, это или это. Для меня лично самый главный косяк MySQL в том, что в 2018-м году он даже стандарт SQL 92-го года поддерживает не в полном объёме. Или вот косяк из недавнего вопроса - он не запускает триггер на действиях с внешними ключами. И таких косяков просто чудовщное количество. Как только выходишь за рамки чего-то сложнее select * from some_table, начинаешь материть разработчиков ежесекундно. И ещё один факт, мало влияющий на повседневную работу, но достойный упоминания - при проверке статическим анализатором кода нескольких популярных СУДБ, MySQL по количеству ошибок оказался на первом месте с существенным отрывом!
    Ответ написан
    11 комментариев
  • Битрикс, подключить разные шаблоны для одного товара в зависимости от условия?

    Rema1ns
    @Rema1ns
    и так сойдет
    Проще же создать в шаблоне папочку например themes, там создать файлики с шаблонами, в template будет инклюд нужной "темы" по вашему условию.
    Ответ написан
    2 комментария
  • Какую утилиту лучше использовать для реорганизации таблиц PostgreSQL (например: pg_repack vs pgcompactor vs подстройка автовакума)?

    Melkij
    @Melkij
    PostgreSQL DBA
    pg_repack - это community extension, форк более раннего pg_reorg. И не отрицая вклад участников pgpro в разработку postgresql в целом - я не вижу их среди контрибьютеров pg_repack.

    Мы активно используем обе. Основные моменты касательно pg_repack vs pgcompacttable в общем-то именно я и изложил в README компактора. Если говорить на русском:
    - pg_repack делает копию таблицы, т.е. требуется двукратный запас диска. Компактор работает в рамках одной таблицы и требует место только под копию наиболее толстого индекса и то, толстые индексы обрабатываются самыми последними. Т.е. расчёт на работу когда места уже мало.
    - компактор намеренно выполняется медленно чтобы не задевать работающий проект
    - компактор не может обрабатывать toast таблицы. Репак - может.
    - pg_repack характеризуется очень заметными пиками io и wal. Вся таблица едет одной транзакцией и это никак не регулируется. Поэтому может аффектить прод на неважных дисках и в том числе оторвать реплики при недостатке сетевой полосы.
    - pg_repack умеет перемещать между tablespace и может делать команду cluster

    (или лучше подстроить автовакум)?

    Конечно необходимо настроить автовакуум и не мешать ему работать - т.е. исключить долгие транзакции. Но всё равно бывают хитрые моменты, когда репак или компактор бывают нужны.
    Ответ написан
    2 комментария
  • Как это работает "без интернета"?

    mindtester
    @mindtester
    http://iczin.su/hexagram_48
    все выше "вокруг-да-около"

    1 - интернет реализуется различными организациями, чаще комерческим

    2 - каналы связи - та же межконтинетальная оптика - тоже всегда кому то принадлежат (РЖД, в свое время "прозрев", бодро начала класть оптику вдоль своих линий - сначала федеральный провайдер для контор, и уже годы как и для физиков - TTK)

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

    4 - это не значит что в каждом канале, где есть свфит есть кто то еще

    5 - это не значит что в каждом канале где есть кто то - есть и свифт..

    это сраная игра в "монополию".. и каналы тут как оптические, так и спутниковые или медные - транспортный уровень ни как не влияет на то кто в нем покупает полосу пропускания

    ps - пример - в каком то трансконтинентальном суперволоконном канале, проложенном в складчину некий приличный % принадлежит гуглу (хотя у гугла уже есть собственные каналы.. но пофантазируеруем) - это интернет? хрен! это закрытая связь между ДЦ гугла!... хотя, в силу того что гугл до фига услуг предоставляет именно в интернете - может возникать стойкая иллюзия, что это интернет канал.. он же будет транзитом и для почты.. и для сайтов/блогов на гугло ресурсах.. и для выдачи поиска...
    Ответ написан
  • Как это работает "без интернета"?

    Ezhyg
    @Ezhyg
    Интернет - сеть сетей, она использует любые каналы связи. По этим же каналам связи, можно пускать что угодно, но не делать это частью интернета. Например интернет через телефонную линию, GSM/3/4/5G-модем, спутниковый канал, Wi-Fi и т.д, все эти каналы связи могут использоваться и не для интернета. Та же VPN - не часть интернета, по своей сути.
    ГАС Выборы вообще частично (не скажу насколько) отдельными каналами проведена, правда часто отдельный канал проводит обычный интернет-провайдер, просто вместо доступа в интернет по нему бегает VPN или настроена маршрутизация к ближайшему "узлу системы". А иногда параллельно и интернет в той же линии :).

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

    это я утрировал, конечно же, но суть не меняется
    Ответ написан
    Комментировать
  • Как это работает "без интернета"?

    @yaror
    10 лет в мобильном телекоме
    Ну да, именно что отдельная сетевая инфраструктура.
    Местами поверх существующей, местами вообще отдельное оборудование.

    Входящее в состав этой сети оборудование не участвует в глобальной ip-маршрутизации.

    Там свои, независимые от интернета планы адресации: свои принципы выделения ip-адресации, свои организации, отвечающие за выделение BGP AS.
    В общем, это свой маленький отдельный интернетик - только для своих.
    А протоколы все те же, дабы ничего нового не придумывать.

    Примером много: и тот же Swift, ГАС Выборы, и ведомственные сети, и связывающая мобильных операторов связи друг с другом сеть IPX/GRX.

    Собственно, это - в широком смысле огромный, как гоеграфически, так и топологически, VPN с многими тысячами узлов.
    А что тут удивительного?
    Ответ написан
    Комментировать
  • Как сменить версию nodejs?

    Krasnodar_etc
    @Krasnodar_etc
    fundraiseup
    Так обновление же и есть смена версии, не?))

    Для Ноды есть очень хорошая штука - NVM
    Ответ написан
    4 комментария