Задать вопрос
  • Можно ли улучшить антиалиасинг 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
    DBA Team для вашего PostgreSQL?
    swap в наличии. Так что описываемое поведение вполне норма, когда начинает подходить к концу свободная памяти и ОС лезет в swap (что можно проконтролировать вызовом free при начале проблем). Немного странно выглядят падения расширений, но, возможно, их отстреливает хром за слишком долгий отклик.
    Для начала стоит покрутить swappiness, чтобы ОС лезла в свап только в крайнем случае.
    Затем поиграть в Zswap, zram. Что порежет производительность CPU, но поможет от нехватка памяти.

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

    Так же перепробовал многие приложения. Остановился на самом простом и очевидном:
    1. Планшет лежит там, где нет доступа ребенку.
    2. Когда нужно, я достаю планшет ребенку с условием, что запускаю и закрываю приложения сам.
    3. Если ребенок открыл другое приложение - то забираю планшет на сегодня.

    Обычно 1-2 раза хватает, чтобы ребенок понял условие 2.
    После этого никаких проблем с ограничением доступа!
    Ответ написан
    2 комментария
  • Как перенять объектно-ориентированное мышление?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Т.е. сложно понимаю, что "засунуть" в один объект, что в другой, что должно быть статическим методом, что приватным и тд.


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

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

    Теперь задумаемся о декомпозиции всего этого хаоса. Мы находим какую-то задачу, которую выполняет наш код (например какую функцию вызвать для обработки каждого конкретного запроса) и выносим это в отдельный объект. Отправка email-ов - отдельный объект. Весь SQL зашиваем в отдельный объект. Соединение с базой - объект. Пользователи - объекты. Все - объекты.

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

    А все безхозные функции, которые не пренадлежат никаким объектам (например функции порождающие объекты) можно вынести в статические методы. Главное что бы статичесих переменных у нас небыло (ибо это те же глобальные переменные). И поменьше публичного ибо черт его знает что эти разработчики будут использовать. Причем "те разработчики" это вы завтра.

    Вообщем писав всё время на процедурке, сложно перейти на ооп.


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

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

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


    Фреймворки универсальны, а значит чистого ООП там быть не может. Во всяком случае нет ни одного фреймворка на котором стоит учиться ООП.

    Есть хорошие упражнения на развитие понимания объектно-ориентированного проектирования. Например вот: https://habrahabr.ru/post/206802/

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

    Или может подскажите книгу/сайт где пошагово в ооп написан какой-то проект, чтобы быстрее пришло понимание.


    Так вы научитесь делать один конкретный проект а на втором вы уже проиграете. Так дела не делаются. Надо разобраться с причинами появления идеи ООП. Ну то есть что было до. Можно еще с функциональным программированием попробовать разобраться. В PHP оно слабо применимо, но основные идеи очень тесно переплетаются с ООП и познав немного функциональщины ваше ООП будет лучше. Да и если про ООП вы можете найти много булшита, про функциональщину врут мало.
    Ответ написан
    3 комментария