• В чем моя причина провала тестового задания Яндекса?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    Ну давайте я покритикую:

    возьмем файлик

    1) вы не разобрались как объявлять методы у прототипов с новой нотацией `class`:

    class Travelsort {
        constructor() {}
        sortTickets(tickets) {}
    }


    2) вы не умеете пользоваться исключениями.
    if (!Array.isArray(cards)) {
        throw new ValueError('Wrong input');
    }


    3) использование let там где должен использоваться const

    4) в принципе использование переменных там где их быть не должно

    5) вы зачем-то реализовали свою функцию сортировки, я не увидел в требованиях отсутствия возможности использовать старый добрый Array.prototype.sort

    6) Общие замечания по кодинг стайлу. snake_case там где должен быть camelCase, пишите с большой буквы то что должно быть с маленькой и т.д.

    7) нарушения принципа единой ответственности. У вас объеткт умеет и сортировать и писать куда-то. Это категорически плохо.

    8) Если исправить 7-ой пункт то наш класс превращается просто в функцию.

    Далее... берем следующий файлик

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

    2) вы зачем-то тут в прототип объекта строки впихиваете функции для парсинга CSS. Таким образом мы нарушаем принцип единой ответственности. Да и в целом расширять без надобности прототипы объектов как-то не ок.

    Чуть дальше проскролил - вы пытаетесь расширить прототип строк для того что бы добиться API jquery? ух, батенька.

    3) очень много дублирования.

    4) очень плохо с protected variations.

    Справедливости ради, ваш код входит в категорию ">50% JS кода", так что не расстраивайтесь. Просто для работы в яндексе нужен чуть более высокий уровень и понимание вещей.
    Ответ написан
    17 комментариев
  • Как и что можно написать на react?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    - алё, полиция?
    - да...
    - я сижу и изучаю React, другие давно юзают Vue, Angular или обходятся JQuery с html, , жду объяснений простым языком...
    - все понял, постарайтесь говорить спокойно и отвечайте только "да" или "нет".. вам угрожают пистолетом?
    Ответ написан
    4 комментария
  • Как решить проблему с концентрацией?

    webinar
    @webinar
    Учим yii: https://youtu.be/-WRMlGHLgRg
    У Вас проблемы психологического характера. Почему Вы ищите ответ на it ресурсе? Даже если у кого-то что-то подобное было, причины могут быть иные. Их очень много и то что Вам посоветуют, не зная реальных причин, может не только не помочь, но и усугубить проблему. Просто сходите к специалисту. Он найдет причину и даст совет. Не шутите с такими вещами, на ранних стадиях лечится все и просто, затянете и может быть печалька, очень, очень большая печалька.
    Еще раз:
    проблемы с пк или по - на тостер
    проблемы со здоровьем - к доктору.
    Ответ написан
    Комментировать
  • Как решить проблему с концентрацией?

    @immaculate
    Программист-путешественник
    Медитация. Отсечь лишние источники информации: ТВ, новости, социальные сети. Уменьшить нагрузку. У меня такие симптомы, когда слишком много обязанностей на себя беру.
    Ответ написан
    11 комментариев
  • Как решить проблему с концентрацией?

    saboteur_kiev
    @saboteur_kiev Куратор тега Организация работы
    software engineer
    Мозг работает так, как он привык работать.

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

    Нарабатывать умение концентрироваться на неприятных и неинтересных вещах делается таким же способом - стараетесь через силу регулярно это делать. Через несколько лет мозг привыкнет к новому поведению.
    Можно это назвать силой воли - умение осознанно приспособиться к некомфортным условиям.

    P.S. С детства такие вещи тренируются. Чем взрослее тем сложнее, и даже факт того что ты осознаешь конкретный недостаток не облегчает того, что избавиться от него тяжело.
    Ответ написан
    2 комментария
  • Почему не ререндерится компонент react-redux?

    @davidnum95
    Потому что Object.assign первым аргументом принимает целевой объект, а не то что вы подумали. Нужно так:
    export default function (state = innitialState, action) {
      switch (action.type) {
        case 'SELECT__DATE':
          return Object.assign({}, state, {
             date: state.date + action.payload,
           });
          break;
      }
    }
    Ответ написан
    Комментировать
  • React. Нужен редактор для html, на подобие TinyMCE?

    @forestyura
    Java Dev
    А что мешает то использовать тот же TimyMCE на реакте?) https://www.tinymce.com/docs/integrations/react/
    Ответ написан
    Комментировать
  • React-router и history.pushState не уверен в правильности использовании, можно ли так делать?

    dpigo
    @dpigo
    Front-end developer
    Используя какую-то архитектуру делать что-то в обход её это костыли. Либо архитектуру надо менять, либо код.

    Посмотрите как вопрос с модалами решен тут: stackoverflow.com/questions/28795085/react-router-...
    Ответ написан
  • Почему react оставляет "0" на странице?

    @juicyigor
    this.state.data.reply.length равно 0, поэтому выводится 0. Попробуй так:
    {!!this.state.data.reply.length &&
      <div className="reply">
        <Posts messages={this.state.data.reply}/>
      </div>
    }


    {this.state.data.reply.length > 0 &&
      <div className="reply">
        <Posts messages={this.state.data.reply}/>
      </div>
    }
    Ответ написан
    Комментировать
  • Как построить свой рабочий день фрилансеру?

    iiiBird
    @iiiBird
    Пока ты спишь - твой конкурент совершенствуется
    3 комментария
  • Как построить свой рабочий день фрилансеру?

    @Nwton
    Человечество уже давно изобрело решение твоей проблемы: список дел.
    Каждый вечер пишешь список дел на следующий день, планируешь во сколько встанешь, где будешь есть, с кем встречаться, что читать, когда и сколько работать. Сначала не получится выполнять все пункты, но года через пол это станет частью твоей жизни и ни одна минута не будет пропадать напрасно.
    Ответ написан
    2 комментария
  • Где найти опытного программера, который бы мог сделать code review?

    saboteur_kiev
    @saboteur_kiev
    software engineer
    Где же оно обоюдовыгодное?

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

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

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

    Ах да, договор о неразглашении вы не подписываете, отвечать ни за что не хотите, а получить доступ к коммерческому продукту изнутри хотите.

    Как вам такой взгляд на ваше предложение?
    Ответ написан
    4 комментария
  • Как передать DOM через prop?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Не проще ли сделать общего родителя для видео и элементов управления?

    <mediaPlayer>
      <video ref={(v) => this.video = v} />
      <playerControls onStop={...} onPlay={...} onPause={...} />
    </mediaPlayer>

    Тогда элементы управления смогут общаться с проигрывателем через общего родителя.
    Ответ написан
    4 комментария
  • Как в react реализовать простой пример: заполняем input - его value отображается в тексте?

    Без redux:
    const Input = (props) => (
      <input type="text" onChange={props.handleChange} />
    )
    
    const Output = (props) => (
      <div>{props.text}</div>
    )
    
    class App extends React.Component {
      constructor (props) {
        super(props)
        this.state = {}
        this.handleChange = this.handleChange.bind(this)
      }
    
      handleChange (e) {
        this.setState({
          value: e.target.value
        })
      }
    
      render () {
        return (
          <div>
            <Input handleChange={this.handleChange} />
            <Output text={this.state.value} />
          </div>
        )
      }
    }
    Ответ написан
    2 комментария
  • Как правильнее разделить код в react redux приложении?

    @fetis26
    Ну, за фронтенд!
    Зависит от типа обработчика. Если это какая-то внутренняя логика, то в самом компоненте конечно. Если этот обработчик меняет состояние, то он создается в контейнере и передается компоненту как свойство (property)
    Ответ написан
    Комментировать
  • Как использовать одну таблицу в разных методах Symfony 2, чтобы при этом не огрести ошибок при генерировании новых таблиц из сущности?

    @shagguboy
    это неправильно. наличие/отсутсвие сеттеров для entity ничего не меняет. пишет в базу ТОЛЬКО ORM и ТОЛЬКО когда ему сказали сначала заперсистить entity потом зафлашить.
    Ответ написан
    Комментировать
  • ReactJS performance: разумно ли передавать большой объем данных через props?

    @vsuhachev
    Принципиальной разницы между 1) и 2) нет, в обоих случаях используются ссылки на объекты.
    Ответ написан
    Комментировать
  • Как новичку влиться в мир современного фронт-енда?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    с мнениями, что знания ангуляр1 "вредны".


    тут проблема в том, что если мы берем среднестатистического ангулярщика, он пишет в стиле angular1.0, во всю использует скоупы в контроллере и т.д. Причина этому - отсутствие обновления документации к ангуляру. Ну то есть в пул реквестах на гитхабе валяются исправленные доки но они почему-то до сих пор там висят не принятыми по каким-то странным причинам.

    Например вот то как я готовлю ангуляр, а вот как другие. Последнее считается вредным. Скажем если вы используете $scope в ангуляр приложении версии 1.5+ то вы уже готовите ангуляр не правильно. Если у вас бизнес логика вытекает в компоненты - тоже что-то странное и тд. Но последнее уже никак к ангуляру не привязано.

    Стоит ли тратить время дальше на jQuery?

    Учите javascript. и так и так понадобится. Причем серьезно учите. И не только основы, надо еще общие вещи, не привязанные к js знать. Типа ооп, функциональное программирование, принципы solid, grasp, dry и другие аббривиатуры. Короче именно серьезно так подойти к этим вопросам. Паралельно разобраться с HTTP, уметь не только пользоваться API но и проектировать их и т.д. Короче это огромный пласт знаний который формируется не один год.

    Стоит ли тратить время сейчас на Backbone?

    Нет, не стоит. Backbone это низкоуровневая библиотека для тех кто знает как все делать. Человеку который не отличает MVC от MVVM оно только навредит (у меня есть парочка проектов доставшихся от других разработчиков которые демонстрируют проблему).

    На сколько экосистема ReactJS стремительно изменяющаяся по сравнению с angular1-> angular2 ?


    С учетом того что с моммента выхода angular 1.x до момента выхода angular2 (а он еще в бэте) прошло 4 года... мегабыстро.

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


    Просто учить нужно не фреймворк, а принципы на которых все это основано. Понимать идею. И тогда ничего не будет вредно. Большинство же разработчиков втупую копипастит код и радуется этому.
    Ответ написан
    1 комментарий
  • Как в React.js обновить компонент из вне? Или как связать React компоненты и Angular директивы?

    Fesor
    @Fesor
    Full-stack developer (Symfony, Angular)
    this.watchCollection


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

    Код React компонента:


    А вот код ангуляр компонента:

    class IstManagerListRowComponent {
        
    }
    export default {
        controller: IstManagerListRowComponent,
        bindings: {
             'uid': '='
        },
        template: `
            <div className="table-row">$ctrl.uid </div>
        `
    }


    а вместо ватчеров:

    class IstManagerListRowComponent {
        set uid(value) {
           this._uid = value;
           // do something
        }
    }


    Я сильно сомневаюсь что такое использование реакта вам хоть чем-то поможет. Если бы вы не внутри отдельных директив это делали, на например... сделали бы все компоненты на реакте. а состояние, роутинг и т.д. разруливали ангуляром - тогда да, профит был бы. А так - никакого профита, просто помимо накладных расходов на дерти чекинг ангуляра у вас добавляется накладные расходы на дерти чекинг реакта (между vDom и dom).
    Ответ написан
    Комментировать
  • Что нужно знать, чтобы стать хакером?

    Nick_Uajld
    @Nick_Uajld
    Интерес ко всему что связано с IT
    Надо знать что читать и где практиковаться.
    Что читать:
    https://webware.biz/
    https://kali.tools/
    https://hackware.ru/
    zalinux.ru
    https://defcon.ru/
    Где практиковаться:
    https://habrahabr.ru/company/pentestit/blog/261569/
    https://xakep.ru/2010/06/03/52289/
    Ответ написан
    Комментировать