Задать вопрос
  • Какие должны быть первые шаги новичка во фрилансе?

    Sanes
    @Sanes
    И вообще, есть ли альтернатива фрилансу на сегодняшний день?

    Есть. Удаленная работа.
    Фрилансер, в первую очередь это предприниматель и менеджер проектов.
    Всё остальное вторично.
    Ответ написан
    Комментировать
  • Обязательно ли использовать какой-либо фреймворк?

    27cm
    @27cm
    TODO: Написать статус
    Если проект будет активно развиваться, то без фреймворка не обойтись. Но давайте попробуем рассмотреть поближе разные варианты.

    1. Использование готового фрейморка, с которым вы уже работали
    Если фреймворк достаточно популярный и вы хорошо с ним знакомы, то есть работали несколько лет, знаете его возможности, сильные и слабые стороны, то такой фрейморк позволит существенно ускорить разработку проекта, особенно на начальной стадии. Под такой фрейморк уже наверняка написаны готовые модули, которые позволят ещё сильнее упростить разработку. С хорошим фреймворком первую версию готового проекта можно написать меньше, чем за неделю.

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

    2. Использование готового фрейморка, с которым вы никогда не работали
    Готовьтесь потратить массу времени на его изучение. Порой даже на решение тривиальных задач в некоторых фреймворках придется потратить несколько дней, если вы с этим никогда не работали. По собственному опыту могу сказать, что если сравнивать варианты (2) и (4), то готовьтесь потратить в 3 — 4 раза больше времени. Однако у этого варианта есть и плюсы: вы освоите ещё один фреймворк и в следующих проекта сможете выбирать вариант (1), другим разработчикам знакомым с данным фреймворком будет гораздо проще разобраться в коде, последующая разработка и развитие проекта существенно ускорятся.

    3. Использование собственного фреймворка
    Рекомендуется только строго после того, как вы несколько лет поработали с разными фреймворками, точно знаете их недостатки, четко можете сформулировать, почему в данном проекте не подходит ни одно из готовых решений. Плюсов у такого решения масса, но основной — ваш фреймворк будет оптимальным образом решать именно ваши задачи, он не будет «комбайном», пытающимся угодить всем вокруг. Но и минусов хватает, крупные фреймворки как правило развиваются огромным сообществом, сотни и тысячи разработчиков ежедневно находят и исправляют в нем ошибки, расширяют функциональные возможности, улучшают производительность, заменяют устаревшие решения на новые.

    4. Вообще без фреймворка
    Такой проект сильно рискует превратиться в спагетти-код. Но абсолютное большинство новичков начинает именно с этого. В этом нет ничего страшного, если это ваш первый проект, вы освоитесь с языком и его возможностями, набьете кучу шишек, и неизбежно рано или поздно перейдете к вариантами (1), (2) или (3).
    Ответ написан
    5 комментариев
  • Как переопределить функцию внутри другой функции javascript?

    @kvaak
    FE
    Для начала, Вам нечего наследовать, go доступен только внутри функции, которая, похоже, подразумевалась как конструктор.
    var handler = new Handler();
    handler.go();

    вызовет так же ошибку, что go is not a function. Чтобы сделать методы публичными, пользуйтесь внутри конструктора ключевым случаем this
    this.go = function () {}

    Наследовать же можно так
    Handler2.prototype = Object.create(Handler.prototype);
    Handler2.prototype.constructor = Handler;

    А подробнее про наследование лучше почитать тут
    Ответ написан
    3 комментария
  • React Render Performance?

    vahe_2000
    @vahe_2000
    https://github.com/nitin42/react-perf-devtool/ новый для React Fiber
    Ответ написан
    Комментировать
  • Какие есть современные подходы организации веб-приложения с большой кодовой базой?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    requirejs умеет только в amd, то есть с commonjs-модулями (а в npm подавляющее большинство такие) и тем более es6 ничего не получится. В общем и целом, брать его сейчас смысла нет.

    webpack + code splitting ответ на ваш вопрос.
    Ответ написан
  • Курсы реакт, что дальше?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Все что написано до вас может быть:
    а) написано хорошо
    б) написано плохо
    в) настраиваться легко и удобно (вытекает из А)
    г) настраиваться плохо, кастомизация и универсальность на нуле, поддержка компонента медленная или вообще не производится (вытекает чаще всего из Б, но иногда хороший компонент могут просто забросить и тогда появляется его форк или конкурент, или не появляется).

    Итого, при поиске компонента, смотрите на гитхабе: сколько issues (активных/закрытых и какие), обновляется ли компонент (если это требуется, обычно да, хотя бы реакт и проп-тайпсы должны быть версии повыше).

    Следовательно, теперь вопрос, когда нужно взять уже готовый, а когда нет. Все зависит от временных затрат.
    1) Если для выполнения чего либо вы нашли хороший компонент, понимаете как его настроить - берите. Если в процессе он вас не устроит, вы его либо допилите (что вряд ли, на уровне новичка), либо откажетесь и возьмете другой/напишете свой.
    2) Если для выполнения чего либо, вы понимаете сколько это займет кода и какого, что это быстро/просто/удобно или если такого компонента, подходящего для вас, нет - пишете свой.

    На практике может выглядеть так: есть библиотеки с графиками, есть UI библиотеки (которые устраивают вас по дизайну или для прототипа), для таблиц, для работы с датами, для календарей - то есть все популярные задачи, обычно уже сделаны, и сделаны хорошо - БЕРЕМ. Но вам для работы все равно останется место: нужно будет прислать в эти компоненты данные с сервера, научить их как-то отправлять от пользователя какие-то действия к вам на сервер и тд тп.
    Ответ написан
    3 комментария
  • Какой фрейм или движок использовать для создания сайта?

    Maksclub
    @Maksclub Куратор тега Веб-разработка
    maksfedorov.ru
    Сейчас правит балом веб-разработки PHP
    потому Yii2, Laravel, Symfony
    Ответ написан
    5 комментариев
  • Как работать через домашний белый IP удаленно?

    AlexMcArrow
    @AlexMcArrow
    Люблю РНР, да я такой!
    Для этого лучше:
    - настроить basic-authorization| - это позволит "защитить" сайт от посторонних
    - настроить VPN
    -- на домашнем роутере (компе)
    -- на сервере
    Ответ написан
    3 комментария
  • Нормальный ли codestyle?

    @kulaeff
    Front-end developer
    Не знаю, что там с кодом на 70 строк, но этот кусок вполне нормальный. Разве что пустые строки до и после if'ов поставить и у стрелочной функции убрать скобки, если параметр один. И вообще юзать eslint.
    Ответ написан
    Комментировать
  • Какой правильный подход к реализации браузерных многопользовательских реал тайм игр?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    3. помимо phaser можно так же поглядеть https://github.com/gamestdio/pixi-engine

    5. socket.io был нужен когда не везде поддерживались сокеты.

    6. meteor для agar.io — overkill, ну и в целом неоднозначное решение
    Ответ написан
    4 комментария
  • Как поменять состояние у другого компонента в React?

    Вам необходимо поднять состояния от детей до общего родителя
    Ссылка на документацию: https://reactjs.org/docs/lifting-state-up.html

    App.js
    import React, { Component } from 'react';
    import Form from './Form';
    import Button from './Button';
    
    class App extends Component {
      state = {
        isChecked: false,
      }
      handleInputChange = event => {
        this.setState({ isChecked: event.target.checked })
      }
      handleButtonClick = () => {
        this.setState({ isChecked: !this.state.isChecked })
      }
      render() {
        return (
          <div className="App">
            <Form
              handleInputChange={this.handleInputChange}
              isChecked={this.state.isChecked}
              />
            <Button handleButtonClick={this.handleButtonClick}/>  
          </div>
        );
      }
    }
    
    export default App;


    Button.jsx
    import React from 'react';
    
    const Button = ({ handleButtonClick }) => (
      <div>
        <button onClick={handleButtonClick}>
          clickme
        </button>
      </div>
    )
    
    export default Button;


    Form.jsx
    import React from 'react';
    
    const Form = ({ isChecked, handleInputChange }) => (
        <input
            type="checkbox"
            checked={isChecked}
            onChange={handleInputChange}
        />
    )
    
    export default Form;
    Ответ написан
    Комментировать
  • Почему именно такая структура (BEM)?

    rework
    @rework
    Помог ответ? В благодарность отметь его решением
    Потому что lang-switcher__item не является каким-то отдельным компонентом, который можно вынести из lang-switcher, он зависит от него. И стиль lang-switcher__link зависит от корневого компонента, а не от "обёртки" lang-switcher__item. А дерево просто показывает вложенность DOM элементов.
    Ответ написан
    4 комментария
  • Где хранить фильмы для киносайта?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Многие видео-сайты используют Amazon S3 для хранения видео.
    Ответ написан
    Комментировать
  • Как не стать тупым в общении, профессионально занимаясь программированием?

    BBmike
    @BBmike
    Автор, иди продавцом на рынок или кассиром в макдак. Там одни экстраверты.
    остальные профессии в основном как раз про то, как человек сидит и делает свою работу.
    Ответ написан
    Комментировать
  • Как прийти от знаний уровня простых алгоритмов и стандартных библиотек Java к Java EE и Spring?

    sergey-gornostaev
    @sergey-gornostaev Куратор тега Java
    Седой и строгий
    Просто берёшь учебники, читаешь и практикуешься.
    5a53ac08cf030078714128.jpeg
    Ответ написан
    Комментировать
  • Как реализовать компонентную архитектуру UI-элементов на JS?

    abyrkov
    @abyrkov
    JavaScripter
    Вы пытаетесь изобрести React или Vue. Не изобретайте их, используйте их
    Ответ написан
    1 комментарий
  • Зачем нужен Vuex, если хранилище можно эмулировать с помощью data в рутовом экземпляре?

    kulakoff
    @kulakoff Куратор тега Vue.js
    Vue.js developing
    Vuex это же паттерн управления состоянием. Он дает понятные механизмы управления, по сути задает стандарт, единый подход, методологию. Это удобно, когда вы не один в проекте, когда проект развивается и растет. Без этого ваш подход через не которое время приведет к неизбежным костылям, более сложной управляемости, а еще через некоторое вы вообще перестанете понимать, что происходит)
    Ну и минусы вашего подхода:
    1. Жесткая связь с рутовым компонентом
    2. Нет разделения на синхронные и асинхронные операции
    3. Ну и вообще у вас только есть реактивность, а вуекс дает различные удобные механизмы типа модулей, наймспэйсов в них, для управления сложностью и возможностью к расширению.
    Ответ написан
    Комментировать
  • Как защитить свою работу фрилансеру?

    @McBernar
    Не работайте с такими людьми. Сейчас, может, и нормально будет, но в следующий раз обязательно что-нибудь случиться.

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

    Он может поставить проект на паузу или вообще пропасть — предоплату-то не вносил, поэтому пофиг.

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

    НИКОГДА не работайте без предоплаты с новым клиентом. Только с проверенными ребятами — там уж пофиг. Хотя, как показывает практика, и у проверенных ребят может легко что-то поменяться и денег ты не увидишь. Например, когда менеджер уходит из компании, бизнес прекращается не начавшись, просто проект ставится на паузу. Но такое бывает не часто.

    По вашему вопросу — никак. Код доступен всегда. Можете напихать в JS какого-нибудь говно-кода, который будет тянуть с удаленного сервера ваш скрипт, в который можно будет подсунуть любую бяку — замедлять загрузку сайта, например, или вообще затирать весь хтмл. Но это же не вернет вам денег. Да и легко правится простым удалением нужных строк в js-файле.
    Ответ написан
    Комментировать
  • Как защитить свою работу фрилансеру?

    index0h
    @index0h
    PHP, Golang. https://github.com/index0h
    Очень просто, демонстрируйте видео с рабочего экрана
    Ответ написан
    12 комментариев
  • Может ли один хороший веб-разработчик заменить команду?

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

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

    В третьих - вопрос рисков. Один человек может заболеть, уволиться, умереть наконец.
    Команда и распределение обязанностей страхует эти риски.

    Если говорить про приведенный пример в виде сайта Аэрофлота - мой опыт работы с enterprise компаниями, говорит что задачка "нам нужно сделать новый баннер на главной странице" оформляется в виде небольшого ТЗ страниц на 70-80, включает в себя предварительную аналитику, 5-6 вариантов дизайна, исследования фокус групп, - и это все не говоря о юридической части работы. Сможет ли это все сделать 1 человек за приемлемое для заказчика время - ...
    Ответ написан
    1 комментарий