• Как вы делаете бэкапы?

    SSar
    @SSar
    База примерно такого же размера как и у вас, и те же проблемы были в прошлом, посему сделали следующее:
    1. Перешли на Percona (форк MySQL) наиболее быстрый из наших тестов среди форков.
    2. Использовали ее фирменный и легковесный Percona XtraBackup который практически не тормозит базу и бесплатен:
    https://www.percona.com/software/mysql-database/pe...
    Если же у вас проблемы с местом на хостинге, ну т.е. нет у вас еще 16-20 гиг в заначке под файлы бэкапа, то тут уже по cron писать свои SQL скрипты для больших таблиц и бэкапить их по частям (к примеру по UnixTime индексного поля) на удаленный ftp или через nfs.
    Ответ написан
    Комментировать
  • Скрипт, выполняемый на JavaScript за секунду, на PHP за 30 секунд проходит только 20%. В чём причина?

    Adamos
    @Adamos
    А вам никто еще руки не оторвал за такой код? Привыкли, что за вас компиляторы думают?
    Например, проверять $a != $b внутри десяти вложенных циклов - это [к сожалению, цензурных слов не нашлось].
    Кстати, РНР проверяет условия по порядку, и ставить первым самое тяжелое - это [ну, скажем, саботаж...].
    Ответ написан
    4 комментария
  • Можно ли улучшить антиалиасинг SVG в браузере?

    litlleidiot
    @litlleidiot
    Фронт-Энд разработчик
    Ответ написан
    Комментировать
  • Какие есть работающие варианты принятия платяжей в РФ изза рубежа?

    Epsiloncool
    @Epsiloncool
    Программер, веб-девелопер, гейм-девелопер
    Три года пользуюсь следующими 100% легальными способами получения средств из-за границы:

    1. Получение денег непосредственно от клиента на счёт в банке РФ. Банк устроит договор-оферта, однако, если настоит клиент, то нужно будет заключать двусторонний договор.

    2. Получение денег с биржи (ранее elance, сейчас upwork) на Paypal физлица и перевод на Paypal ИП, затем вывод через счёт в банке РФ. Нужен будет договор с биржей - один раз навсегда.

    3. Получение денег непосредственно от клиента на Paypal ИП или Paypal физлица (если клиент - юрлицо, то он не сможет перевести деньги на ваш Paypal ИП). Далее вывод денег на счёт в банке РФ. Это самый популярный (для меня) метод получения платежей и в 100% случаев клиента устроил мой договор-оферта.

    Даже 3 способа получилось :)

    Всего хорошего :)

    P.S. Если вас интересовало получение денег из-за рубежа без открытия счёта ИП в банке РФ, то законных способов нет. При осуществлении предпринимательской деятельности обязательно открытие ИП.
    Ответ написан
    3 комментария
  • Какой необходимый уровень знаний для junior React.js Разработчика?

    Junior-React разработчик?
    По-моему, как-то странно звучит.
    К изучению стэка технологий, среди которых Реакт нужно подходить уже будучи не совсем джуном: важно понимать базовые основы функциональной парадигмы, отличие её от ООП, понимание архитектуры flux и потоков данных, уверенный уровень JS (ES6), как асинхронность работает, всякие ajax-api (axious, fetch), конечный автомат (что такое и зачем нужен). Про хтмл\вёрстку, само собой, конечно же.
    Я когда без хорошего навыка JS полез в Реакт, то не понял, что вокруг происходит.
    Ответ написан
    2 комментария
  • Какой необходимый уровень знаний для junior React.js Разработчика?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    UPDATE: реальные тестовые задания и разборы здесь, ответы на все вопросы из поста в моем блоге об обучении react.

    не включая основы js

    Извините, но стандартная задача, про "напишите функуцию add, которая при вызове add(1)(2) вернет 3" - многих положила на лопатки =) Поэтому будьте готовы..

    React
    0) Какую проблему решает react ?
    1) Мгновенно ли срабатывает setState? Если нет, то как выполнить код, который 100% выполнится после того, как новый state будет установлен?
    2) Зачем многие постоянно пишут в constructor: this.FUNCTION_NAME = this.FUNCTION_NAME.bind(this) и отсюда вопрос вытекает чему равно this в разных местах вашего компонента...
    3) в каких методах жизненого цикла стоит выполнять xhr запросы? В каких стоит "обновлять state на основе props"?
    4) Что будет если вызвать this.setState в render методе компонента?
    5) зачем нужен componenWIllUnmount, приведите пример..
    6) Контролируемые, не контролируемые компоненты
    7) Как организовать роутинг в реакт приложении? (ответ: взять react-router - подходит, но было бы круто, если бы вы рассказали, как он примерно работает)*
    8) Зачем нужны propTypes? Что происходит с ними в production сборке?
    9) Как можно удобно "отлаживать" чужой код приложения, написанного на react (намек в сторону React devtools)
    ...

    Redux
    0) Какую проблему решает redux?
    1) Зачем многие создают типы действий NAME_REQUEST / NAME_SUCCESS ? А заодно, что такое "действие", а что такое "создатель действия"...
    2) Что такое редьюсер? Можете написать простой редьюсер без react/redux?*
    3) Для чего нужен redux-thunk? Как он работает? Напишите (можно псевдокод) асинхронный создатель действия (либо, если надоело говорить "терминами" - асинхронный aciton)
    4) Как компоненты приложения получают "пропсы" из "стора"?*
    5) Можно ли (и считается ли это нормальным) использовать state, если используется Redux?
    6) Почему в reducer'ax мы возвращаем новые объекты? Приведите пример, когда вы возвращаете новый объект, а когда тот же самый.
    6.5) А так же, "как в js вообще это работает?". Например:
    let obj1 { name: 'Test', age: 100 }
    let obj2 = obj1
    obj2.name = 'Test_new'

    Что будет в obj1, почему? В каких случаях объекты могут быть равны?
    7) Что возвращает функция connect (из react-redux)?
    ...

    Общее:
    0) package.json
    1) Webpack, gulp, etc...
    2) node.js
    3) promise

    Что-нибудь практическое:
    1) Как бы вы валидировали форму, если ошибки валидации приходят после submit'a ее на сервер..
    2) Почему не работает следующий код, сделайте чтобы работало
    ...
    На истину не претендую, но такие вопросы имели место быть на собеседованиях. В беседе можно многое разузнать дополнительными вопросами и так далее. Так же, если часть вопросов вам неизвестна - не беда, многие и на половину ответить не могут.

    p.s. возможно дополню...
    p.p.s. звездочкой отметил, на мой взгляд не самые необходимые для junior-собеседования вопросы.
    Ответ написан
    31 комментарий
  • Как аргументировать начальству создание существующего проекта заново, с ноля?

    @lega
    В большинстве случаев это экономический не целесообразно, и профессионал должен это учитывать.

    В вашем случае лучше попытаться плавно интегрировать опыт в текущий проект, разграничивая старый и новый код, (компоненты, микросервисы, "черные ящики" и т.п.), так же по чуть чуть можно будет подменять компоненты старого кода, на новые.
    В итоге через какое-то время новый код будет превалировать, и может даже можно будет завернуть старый код в отдельный ящик чтобы не вонял на весь проект.
    Ответ написан
    4 комментария
  • Принцип взаимоотношений front & backend?

    sim3x
    @sim3x
    Чаще всего так
    5 тел пилят бек, 5 фронт
    Просирают сроки напроч

    Приходит один синьйор и за два дня переписывает все с 0

    Для поисковиков нужна статичная хтмлка - ее кто-то должен рендерить
    Реакт и ко такое умеют, ангуляр также.
    Тк все там нода, то таким занимаются фронтендщики.
    Бекенду остается делать апи для всего етого хозяйства

    Если изначально рулили бекендеры, то реакты и ангуляры будут занимать нишу jQ

    В каждом (длинном) проекте все происходит по-своему

    каждая несчастливая семья несчастлива по-своему
    Ответ написан
    5 комментариев
  • Поиск заказов. Как вы находите что-то достойное?

    deemytch
    @deemytch
    linux root, ruby/perl programmer, sql, backend.
    Скажу по секрету, что заказчики сами не в восторге от индусов. Но они везде. Это не национальность, а способ мышления. Поэтому хорошие заказы всегда отдаются тем, "кого я знаю". А бросовые - "наймём с улицы".
    Вывод: надо стать своим.
    Ответ написан
    Комментировать
  • Стоит ли переходить на React.PureComponent по-умолчанию?

    PQR
    @PQR
    React.PureComponent реализует метод shouldComponentUpdate таким образом, что он делает поверхностное сравнение props и state (не глубокое). Вот собственно код:
    https://github.com/facebook/react/blob/c8fbdac2271...
    shouldUpdate =
                !shallowEqual(prevProps, nextProps) ||
                !shallowEqual(inst.state, nextState);


    Что такое shallowEqual? Это по сути сравнение оператором === каждого элемента из prevProps с каждым элементом из nextProps. На всякий случай дам ссылку на реализацию для полного понимания: https://github.com/facebook/react/blob/6963ea4bfcd...

    В итоге всё зависит от структуры ваших props. Если в props вы передаёте объекты которые иногда мутируются, т.е. по ссылке они равны ===, но внутри какие-то данные поменялись (что само по себе выглядит странно в экосистеме redux + reselect, но вполне возможно технически), тогда использование PureComponent вам всё поломает, т.к. на экране какие-то компоненты перестанут перересовываться!

    Если же у вас всё по уму, данные которые передаются через props являются скалярными типами (string, int, float, bool) или immutable объектами, тогда смело используйте PureComponent - в некоторых случаях он поможет избавиться от лишних вызовов render.

    Важное замечание: PureComponent нужно использовать только для так называемых presentational components, т.е. для тех компонент, которые НЕ обёрнуты в вызов redux connect().

    Для container components (т.е. тех компонент, которые обёрнуты в redux connect()) нет смысла наследоваться от PureComponent, т.к. метод connect() оборачивает ваш компонент своей реализацией shouldComponentUpdate, которая также использует shallowEqual. Если вы по недосмотру унаследуете container component от PureComponent - ошибок не будет, но это не имеет никакого смыла, т.к. ваш код по сути будет дважды делать shallowEqual, а зачем делать лишнюю работу?

    Подводя итог, рецепт такой:
    - presentational components наследуем от React.PureComponent
    - container components (которые обёрнуты в redux connect()) наследуем от старого доброго React.Component
    Ответ написан
    1 комментарий
  • Какие вопросы на собеседовании ожидать по JS?

    mudrenokanton
    @mudrenokanton
    frontend dev
    Я по-приколу в закладочки кидаю всякие вопросы по js:
    https://habrahabr.ru/post/231071/
    https://medium.com/@sapy/7-interview-questions-and...
    https://habrahabr.ru/post/239065/
    https://github.com/h5bp/Front-end-Developer-Interv...
    perfectionkills.com/javascript-quiz
    Но, без хорошего знания языка, на многие вопросы очень сложно давать адекватные ответы.
    Есть еще отдельный файл в котором я храню вопросы, которые лично мне задавали на собесах и я их не знал. Советую вам завести такой же. В будущем пригодится)
    Ответ написан
    9 комментариев
  • Как отказаться от навязывания низкоквалифицированной работы?

    opium
    @opium
    Просто люблю качественно работать
    Если намочить на своем то просто откажитесь от работы, если заливать данные наймите любого студента по профилю он вам за копейки забьет и еще сами заработаете
    Ответ написан
    13 комментариев
  • Как учиться новому после рабочего дня?

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

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

    И самое главное: два-три месяца работы в компании с более высоким уровнем разработки, чем у вас в данный момент, дадут вам больше, чем год бессонных ночей после работы. Поэтому не стоит пытаться сначала дорасти до определенного уровня, а потом устраиваться. Скорее всего не дорастете, только время потеряете. Изучайте базу и в бой!
    Ответ написан
    7 комментариев
  • Как легально держать веб-сервис, подразумевающий получение прибыли (например ежемесячная подписка)?

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

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

    Открывать ли расчетный счет?
    Если ИП теоретически можно и не открывать. Хотя на практике - трудно представить ситуацию когда без него можно однозначно обойтись. В случае ООО - без вариантов открывать.

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

    Нужно ли уведомлять какую-нибудь гос.структуру о том, что я храню персональные данные?
    Статья 22 пункт 1 федерального закона N 152-ФЗ
    В общем - нужно, если вы не попадаете под исключение указанное в статье 22 часть 2 федерального закона N 152-ФЗ

    А о том, то на моем сайте можно провести какую-либо денежную операцию?
    Тут все просто - на вашем сайте однозначно нельзя провести какую-то денежную операцию! Это просто физически невозможно.
    Денежные операции проводятся через банки, процессинговые центры, расчетные счета, платежные системы, наличный расчет.

    И раз уж на то пошло, сколько можно этим заниматься нелегально, при каких объемах и что за это грозит?
    www.consultant.ru

    Как работать с юриками если ты веб-сервис? Типовой договор с каждым? Выставлять счета по почте + ЭЦП?
    Неправильный вопрос. Веб сервис не может работать ни с юриками ни с физиками. Он работает с компьютерами.
    С юриками и физиками работают другие юрики и физики.
    Т.е договора с юриками будет заключать ни в коем случае не веб сервис, а организация или предприниматель которому принадлежит этот вебсервис.
    Ну а дальше все как у всех - обычная работа организации или предпринимателя с контрагентами.
    Вариантов заключения договоров и документального оформления масса, все зависит от вашей ситуации.
    Ответ написан
    3 комментария
  • Как избавиться от привычки усложнять задачу?

    saboteur_kiev
    @saboteur_kiev Куратор тега Программирование
    software engineer
    У вас слишком много свободного времени, вот и не знаете куда девать.
    Ответ написан
    Комментировать
  • Черные списки сотрудников?

    @jkotkot
    режим сарказма
    Нужно спросить причину у того, кто отказывает. Даже если будут скрывать, то рано или поздно найдется тот, кто ответит.
    Ответ написан
    Комментировать
  • Как сэкономить ресурсы оперативной памяти при кодинге в Ubuntu?

    @Evangelist
    Для разработки под linux нужно достаточное количество оперативки и нормальный диск (он же SSD).
    Мне, на текущей галере, изначально дали пк с 4гб оперативки, HDD 10-летней давности с 2 мб кэша, без видеокарты. Я просто отказался так работать.
    В итоге предоставили 16 ГБ оперативки, диск SSD, видеокарту, - полет нормальный. Честно скажу, 16 мне иногда маловато. Photoshop работает через win7 в virtualbox (7 гб выделяю).

    В домашнем офисе 32 gb RAM и в разы лучше всё остальное.

    Поддерживаю позицию polifill, ставь перед фактом, что тебе выдали корч, а не компьютер для современной разработки (или с тебя хотят проекты 5-летней давности сложности, аки компьютер, который тебе выдали?).

    Также рекомендую с ubuntu перейти на xubuntu (облегченная убунта). Таким образом, OS может заработать быстрее.

    плюсую уже упомянутым рекомендациям:
    - swap не нужен;
    - стоит попробовать работать с avocode (я использую и avocode и photoshop);
    Ответ написан
    4 комментария
  • Как сэкономить ресурсы оперативной памяти при кодинге в Ubuntu?

    @polifill
    На работе?
    Это проблема руководства предприятия. Ставь их перед фактом, чтобы модернизировали компьютер.

    Ибо это нужно для работы.
    Ответ написан
    4 комментария
  • Как сэкономить ресурсы оперативной памяти при кодинге в Ubuntu?

    Melkij
    @Melkij
    PostgreSQL DBA
    swap в наличии. Так что описываемое поведение вполне норма, когда начинает подходить к концу свободная памяти и ОС лезет в swap (что можно проконтролировать вызовом free при начале проблем). Немного странно выглядят падения расширений, но, возможно, их отстреливает хром за слишком долгий отклик.
    Для начала стоит покрутить swappiness, чтобы ОС лезла в свап только в крайнем случае.
    Затем поиграть в Zswap, zram. Что порежет производительность CPU, но поможет от нехватка памяти.

    Раз на всё памяти не хватает - то есть варианты действий:
    - отчаянно тормозить в свапе
    - звать на помощь OOM killer, который будет убивать какой-нибудь на его усмотрение бесполезный процесс. Для этого достаточно вырубить swap и ядро само позовёт при необходимости.
    - добавлять память
    - уменьшать потребление памяти. Следить, кто сколько памяти жрёт, может у вас кто-нибудь не особо нужный просто течёт по памяти. Можно запускать текущие процессы в cgroup с жёстким лимитом памяти, тогда они будутт отстреливаться при превышении лимита.
    Ответ написан
    1 комментарий