• Клиент на Upwork угрожает международным судом, возможно ли это?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Блеф. Мой совет, меньше оскорблений и вообще общений с этим заказчиков. На все "а мы подадим в суд", отвечаем "это Ваше право, как раз готовлю встречный иск". Вы не отказываетесь от своих обязательств, они отказываются от своих и просто пугают. Возможно тактика разрыва отношений, что бв не заплатить остаток и не переживать, что Вы будете пакостить. Так как отсутствие иска уже будете считать победой. Гребаная психология.
    Ответ написан
    Комментировать
  • Существует ли язык разметки веб страниц в виде вычислительных таблиц?

    saboteur_kiev
    @saboteur_kiev Куратор тега Веб-разработка
    software engineer
    google documents уже делает это. Но это не просто колоссальная работа, это немного больше.
    Вы как бы должны понимать, что поддержка формул - это НЕ язык разметки, это уже язык программирования.

    И как бы зачем нужно писать браузер, способный отображать документы такого типа, если УЖЕ есть программа (excel, openoffice таблицы), которые умеют отображать документы такого типа? Вы должны понимать, что это не взлетит.
    Ответ написан
    2 комментария
  • Где взять тестовые данные для дизайна?

    rework
    @rework
    Помог ответ? В благодарность отметь его решением
    Неужели так сложно придумать фейковые телефоны и адреса?
    Ответ написан
    3 комментария
  • Как уменьшить размер фото в CSS если в файле я этого не вижу?

    PavelMonro
    @PavelMonro
    В build.js код
    a(["jquery","get_val"],function(a,b){a(function(){var c=a("html");if(c.hasClass("homestead_page")){var d=a(".section_wrap"),e=".resize_rooms";d.find("section.homestead").each(function(){var c=a(this),d=c.find("nav.rooms"),f=d.find(">a");!function(){function b(){a(window).trigger("resize"+e),c.each(function(){var b=a(this),c=b.find(">span"),d=c.width();b.css("width",""),b.css("width",d+h+"px")})}var c=f.find(">span"),d=parseInt(c.eq(0).css("padding-left"),10),g=parseInt(c.eq(0).css("padding-right"),10),h=d+g;a(window).on("load",a.proxy(setTimeout,null,b,1)),setTimeout(b,1)}(),function(){function c(){var b=a(window).width();i>b&&(b=i),b>j&&(b=j),b-=i,f.css("width",""),f.css("width",Math.floor(b*k/l+g)+"px")}var d=74,g=d+28,h=d+50,i=b("minWidth"),j=b("maxWidth"),k=h-g,l=j-i;a(window).on("resize"+e,c),setTimeout(c,1)}()}),d.find(".columns").each(function(){var b=a(this);!function(){var a=b.attr("data-background");a&&b.css("background-image",'url("'+a+'")')}(),require(["section_block_resize"],function(a){b.each(a)})})}})})}(),function(){function a(){var a=Array.prototype.slice.call(arguments,0);"string"!=typeof a[0]&&a.unshift("pages/homestead_subpage"),window.define.apply(this,a)}a.amd={jQuery:!0},/**
    Ответ написан
    1 комментарий
  • Где почитать про "боевое" использование сокетов?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Еще в 2012 году парни выжимали 1 млн соединений с 1 физического сервера: https://habrahabr.ru/post/123154/
    Даже если снизить накал на порядок и предположить что у них и нагрузка была в плане количества сообщений ничтожной - все равно получается 100 000 соединений с сервера, а это больше чем средний онлайн ААА игры.

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

    "Pubg держит 3 млн игроков" - забавно). Pubg держит 100 игроков в одной сессии и это хороший результат.
    WoT держит 20 игроков в одной сессии.
    EVE в самой большой битве было ~7500 человек, и они вводили своё фирменное замедление времени - сервер обслуживающий локацию не успевал обсчитывать математику.

    А вообще, все проекты обслуживающие большое количество людей строятся изначально исходя из возможности горизонтального масштабирования. В этом смысле сессионки вообще шикарны, изолированная на долгое время группа людей, какие-то связи за пределы группы отсутствуют, никакие серьезные потоки данных из сессии перебрасывать не нужно, целостность данных тоже пофиг по большому счету - идеальная история.
    Ответ написан
    2 комментария
  • Все ли приложение будет ререндерится, если измениться какой то внутренний(где то в приложении) state одного из компонентов?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Разумеется что нет. Рендерится (перерисовывается) только "та часть" (тот компонент), в которой были изменены пропсы/стейт + все дети если в них нет оптимизаций (например, они могут быть сделаны как stateless, pureComponent или иметь shouldComponentUpdate - тогда перерисовываться не будут при описанных условиях).

    вижу обновили вопрос: да, только футер.
    Ответ написан
    2 комментария
  • Что такое side эффект?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Sideeffect - это что-то, что может повлиять на "чистоту" вашей функции. Редьюсер же - функция. Чистая функция, это значит такая, что если ей на вход подать одни и те же параметры, то результат будет всегда один и тот же.

    Пример: есть у вас в localStorage имя пользователя. И вы в коде пишите, что-нибудь такое:
    case SET_DISPLAY_NAME: {
      return {
        ...state,
        name: window.localStorage.getItem('name') ? window.localStorage.getItem('name') : action.payload,
      }
    }


    Следовательно, если вы подадите на вход функции, имя Вася, то оно вам вернет Васю только если "в sideeffect локал_сторадже" нет ничего. Здесь вы не можете быть уверены, что если подать Васю, вам всегда вернется Вася.

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

    Бывает, что айдишники нужно генерировать самому, тогда они отлично генерятся в acftionCreator'ax. Например, делаете вы систему уведомлений, и у каждого уведомления должен быть свой id (например, тут сервер вам не нужен, вы ничего туда не отправляете, просто визуальная часть). В таком случае, я бы не стал генерировать id через middleware, а просто делал бы это в "экшенах".

    Тем не менее, с генерацией айди все тоже самое, что и с localStorage. Вы не уверены, что подав на вход: имя, текст комментария и почту - получите ТОТ же результат, что и в прошлый раз с такими же входными параметрами (айдишники то разные будут!)
    Ответ написан
    3 комментария
  • Как сделать Ajax запрос на React js?

    RomReed
    @RomReed
    JavaScript, Flutter, ReactNative, Redux, Firebase
    Для аякс запросов можете использовать Fetch или Axios.
    Советую выбрать второй.
    Ответ написан
    5 комментариев
  • Как сделать Ajax запрос на React js?

    Krasnodar_etc
    @Krasnodar_etc
    fundraiseup
    У React же просто охренительный официальный туториал

    Пройдите его - это несколько часов займёт. Пока вы не разберётесь немного с Реактом - вы ничего на нём не напишете)
    Ответ написан
    1 комментарий
  • Как сделать Ajax запрос на React js?

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

    Пример (код с одной из глав нового учебника, если интересно инфа в профиле)
    class App extends React.Component {
      constructor(props) {
        super(props)
        this.state = {
          data: [],
          isLoading: false,
        }
      }
      componentDidMount() {
        const xhr = new XMLHttpRequest();
        xhr.open('GET', 'http://localhost:3000/data.json', true); // замените адрес
        xhr.send();
        this.setState({ isLoading: true })
    
        xhr.onreadystatechange = () => {
          if (xhr.readyState !== 4) {
            return false
          }
    
          if (xhr.status !== 200) {
            console.log(xhr.status + ': ' + xhr.statusText)
          } else {
            this.setState({
              data: JSON.parse(xhr.responseText),
              isLoading: false,
            })
          }
        }
      }
      renderProducts() {
        const { data, isLoading } = this.state
        if (isLoading) {
          return <img src='/i/preloader.gif' alt='загружаю...' /> // рисуем прелоадер
        } else {
          return data.map(item => {
            // я здесь отрисываю все через другой компонент, вы же можете просто рисовать сразу верстку для начала
            return <ProductCard key={item.id} name={item.name} price={item.price} quantity={item.quantity} />
          })
        }
      }
      render() {
        return (
          <div className='App'>
            <div className='product-list'>
              {this.renderProducts()}
            </div>
          </div>
        )
      }
    }
    Ответ написан
    1 комментарий
  • Как реализована замена в vue/angular...?

    Вот сделал небольшой набросок просто для понимания https://jsfiddle.net/wq3sLnbd/16/
    Ответ написан
    1 комментарий
  • Как правильно разместить элементы?

    politon
    @politon
    HTML5,CSS3,JS,PHP,SQL,API,canvas,animation...
    У тебя скрин с калькулятора?
    Ответ написан
    1 комментарий
  • Про конкуренцию на фрилансе?

    search
    @search
    мама говорит что я особенный
    • индусы и "хорошие специалисты" - это разные непересекающиеся ниши;
    • заказчики тоже разделяются на новичков (не знающих разницу между индусом за 5 долларов в час и тяжеловесом за 50) и опытных. Чтобы стать опытным заказчиком нужно хоть раз обжечься об индуса;
    • заказчики в основном аматоры, но на том же апворке можно встретить и приличные компании. Компании в основном ищут грамотных спецов и не жалеют денег;
    • если у вас нет отличного профиля с историей заказов, то вам предстоит как-то доказать что вы не индус;



    PS
    Как-то у своей хорошей подруги из Индии спросил "почему индусы такие дряные программисты?". Она ответила что это культурная особенность. В Индии во многих школах запрещено задавать вопросы (во всяком случае так было раньше), поэтому программист выполняет задание настолько, насколько он его понял и редко ставит под сомнение идеи начальника/заказчика. Такие дела.
    Ответ написан
    2 комментария
  • Что такое web 2.0?

    webinar
    @webinar Куратор тега Веб-разработка
    Учим yii: https://youtu.be/-WRMlGHLgRg
    Для начала, предлагаю прочитать книги "википедия для чайников" и "как пользоваться гуглом"

    https://ru.wikipedia.org/wiki/Веб_2.0

    магический сайт, который знает ответы
    Ответ написан
    Комментировать
  • Как в TypeScript структурировать файлы?

    k12th
    @k12th
    console.log(`You're pulling my leg, right?`);
    Если речь о nodejs (если верить тэгам), то надо просто запускать вот так: ts-node ./index.ts (ts-node), скомпилированных файлов вы при этом даже не увидите.
    Если паче чаяния речь о фронтенде, то сборкой занимается бандлер (чаще всего webpack), опять же промежуточные скомпилированные файлы при этом не видны.
    Ответ написан
    1 комментарий
  • Должно ли в React всё быть компонентами?

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

    Другое дело, когда у вас изначально SPA приложение на React. Тогда нет никакого смысла шапку/страницы с логотипом и так далее делать не на react. Удобно же, когда все в компонентах.
    Ответ написан
  • Что такое react на пальцах?

    maxfarseer
    @maxfarseer
    https://maxpfrontend.ru, обучаю реакту и компании
    Вы можете написать все что угодно. Будь это сайт с сундуками cs:go или сервис поиска дешевых билетов. Главное, что React и подобные библиотеки отвечают за "лицевую" часть. Отсюда и слово frontend. Для полноценного сервиса нужен еще бэкэнд.

    Реакт упрощает написание SPA - то есть одностраничного приложения. Это такое приложение, которое не требует перезагрузки окна браузера для брождения по разным экранам.

    Без бэкэнда вы тоже можете написать кучу приложений, если воспользуетесь доступными API.
    Например - вк выдает вам всю инфу по вашим фотографиям. Вы можете найти те, которые были самыми популярными (по лайкам), добавить сортировку по годам, фильтры по 10 / 100 лайков, например.

    Если играете в доту, можете вытащить все свои игры и построить графики... (пример dotabuff)

    И тд тп.
    Ответ написан
    3 комментария
  • В чем ошибка при переключении года?

    RomReed
    @RomReed
    JavaScript, Flutter, ReactNative, Redux, Firebase
    https://codesandbox.io/s/mopx1nzpkj
    у вас куча маленьких ошибок
    1 вы не поключили connect и следовательно компонент не знает о функции setYear
    2 вы выводите год как {year} но как только жмете на 1 из кнопок года то в редусер вы ложете не число а обьект
    return { ...state, year: action.payload } это вернет вам {year:2017} и в компоненте уже к нему обращаться нужно вот так {year.year}

    вот в этом моменте const { year, photos} = this.props вы получате ваши данные в компоненте. Выведите их в консоль и тогда вам станет немного понятнее в чем у вас ошибки
    Ответ написан
    8 комментариев