• Как объяснить человеку, что ему нужно знать язык досконально?

    @iMaximus
    Каким местом, знание кто и зачем создал язык влияет на качество кода, мне тоже не понятно. Может до вас, что то должно дойти.
    Ответ написан
    Комментировать
  • Достать данные из LocalStorage и отправить их на сервер возможно?

    yarkov
    @yarkov Куратор тега JavaScript
    Помог ответ? Отметь решением.
    Да
    Ответ написан
    Комментировать
  • Полезные ресурсы, а лучше книги про Паттерны?

    qonand
    @qonand
    Software Engineer
    Читать стоит классику жанра:
    Э.Фримен, Э. Фримен — Паттерны проектирования
    Э.Гамма, Р.Хелм, Р.Джонсон, Дж.Влиссидес. — Приемы объектно-ориентированного проектирования. Паттерны проектирования
    М.Фаулер - шаблоны корпоративных приложений

    Лучше конечно читать в оригинале, но есть и переводы на русском
    Ответ написан
    Комментировать
  • Топ ресурсов с новостями о фронтенде?

    nikolayshabalin
    @nikolayshabalin
    Автор профессиональных курсов в HTML Academy
    https://habrahabr.ru/company/zfort/ - пользуюсь только этим, так как новостей становится всё больше и больше. Уследить за всем уже невозможно.
    Ответ написан
    3 комментария
  • Какие должны быть первые шаги новичка во фрилансе?

    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 комментарий