• Куда дальше расти, что изучать? Как найти команду?

    hronik87
    @hronik87
    Обитаю в 1С-Bitrix
    Привет) Я так понял, что нет углубленных знаний в программировании и даже не определен путь по которому вы идете?
    У меня возникает вопрос: если вы позиционируете себя как front-end, то почему: "работаю в крупной компании веб-дизайнером". Кто-то может поспорить, но сейчас на дворе не 2000 год, когда можно было совместить дизайн, программирование и продвижение. Это уже несколько разных полноценных областей. Если можете в дизайн, то может быть стоит уйти в эту область? Человек-оркестр сейчас нужен только тем, кто не хочет качество, а хочет экономии. Вряд ли в таком месте будет перспектива роста.
    Если же все-таки интересно программирование, то как вариант изучите, что сейчас востребовано на рынке. Например angular, react, vue, почитайте, что они из себя представляют, выберите один из них и изучайте (я бы посоветовал vue, вполне себе понятно и документация нормальная). Придумайте себе задачу, выполните и выкладывайте на гитхаб, там уже можно будет посмотреть ваш код и что-то сказать.
    Если же вы разобрались с WP и Joomla, то может стоит от них отказаться и посмотреть в сторону фреймворков? Symphony или Laravel. Возможно Bitrix. Важным и приятным бонусом будет хорошая оплата).
    Ну и если у вас мозг не рвется от текущей задачи, то значит вы не растете)
    Ответ написан
    3 комментария
  • Куда дальше расти, что изучать? Как найти команду?

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

    А вы хотите уже делать и мобильные приложения.

    Мой вам совет, хотите найти профессиональную команду - забудьте о самостоятельной разработки сайта под ключ. Если Вас на работе заставляют делать сайты под ключ - уходите и ищите нормальную работу.
    Ответ написан
    3 комментария
  • Как заставить NodeJS при ошибке выводить имя файла и номер строки?

    khusamov
    @khusamov Автор вопроса
    ReactJS, NodeJS, TypeScript, Sencha ExtJS
    // Предварительная версия обработки ошибок функции Fs.readFile().
    		let configFileData;
    		try {
    			configFileData = await readFile(configFilePath, {encoding: 'utf8'});
    		} catch(e) {
    			Error.captureStackTrace(e);
    			throw e;
    		}
    Ответ написан
    Комментировать
  • Почему не срабатывают динамические события?

    Jeer
    @Jeer
    уверенный пользователь
    Доброго дня!
    Мне тоже лень переваривать код.
    Скорее всего, замените вызовы функции on() на функцию live(), тоже из jQuery. Она может работать с динамически созданными элементами, но работает чуть медленнее, но в вашем случае не будет разницы.
    Ответ написан
    6 комментариев
  • React: Почему обновляются пропсы? Когда я не обновляю их?

    rockon404
    @rockon404 Куратор тега React
    Frontend Developer
    Вы мутируете state:
    this.state.data[this.state.id][e.target.name] = !checked;

    До этого присваиваете ему значение props:
    this.setState({
      data: this.props.data,
      id: this.props.id
    });

    Естественно props изменяется после мутации.

    Банальный пример:
    const a = { key: 'value' };
    const b = a;
    b.key = 'new value';
    console.log(a.key); // new value

    Почитайте о том, что такое передача по ссылке. Почитайте про иммутабельность.
    И никогда больше не пишите ничего подобного:
    this.state.data[this.state.id][e.target.name] = !checked;

    Изменение state только через this.setState.
    Ответ написан
    5 комментариев
  • Как в node.js узнать кол.-во файлов в директории?

    @AlexKindGeek
    const fs = require('fs');
    const dir = './directory';
    
    fs.readdir(dir, (err, files) => {
      console.log(files.length);
    });
    Ответ написан
    Комментировать
  • Какова суть генерации своих событий в JavaScript?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Попробую на пальцах объяснить.

    Событие – это конверт, на котором написано его название. Внутрь конверта можете вложить что-нибудь, а можете оставить конверт пустым.

    Элемент – это столик. Кто угодно может подойти и положить на столик свой конверт.

    Слушатель – это мужик, который топчется около столика и смотрит, нет ли чего с интересующим его названием. Может несколько человек поджидать конвертики с определённым названием – прочтут все, если только в конверте не написано «по прочтении съесть» – тогда кто-то съест и дальше не передаст.

    Как создать/отправить конверт. В любом месте кода создайте конверт и дайте ему название: var myEvent = new Event('teaTime'); Остается положить конверт на нужный столик:
    document.getElementById('stolik').dispatchEvent(myEvent);


    Чтобы в событие вложить какие-то данные, нужно использовать другой конструктор и передать нагрузку в поле detail:
    var event = new CustomEvent('saySomething', { detail: "Hello there!" });


    Для чего нужно создавать свои события? Чтобы развязать куски кода. Например, в разных местах документа можно нажать на кнопку повторяющегося виджета. Виджет создаст на document событие "widgetClicked". А ещё несколько одинаковых компонентов в странице, слушающих document на предмет события "widgetClicked", получат пинок и что-нибудь вытворят.
    Ответ написан
    2 комментария
  • Как вы боретесь со слабой типизацией и зачем ее придумали?

    И самое главное: кто придумал слабую типизацию?

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

    Динамическую типизацию придумали для того, чтобы было легче писать обобщённые алгоритмы и мета-алгоритмы, в дин. языке для обобщения кода не нужны ухищрения типа дженериков (TypeScript, C# и много чего ещё) или шаблонов/макросов (C++). В ОО-языках часто доступны и другие удобства, например смена интерфейса объекта в зависимости от его состояния (т.к. решение о возможности вызова метода/свойства объект может принимать сам).

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

    Как вы пишете код на жс?

    Мы не пишем код на JS, мы пишем код на TypeScript. Да, такие сейчас странные времена, когда язык со статической типизацией компилится в язык с динамической, т.к. исполнять на клиенте (в браузере) больше нечего пока.

    Он же не должен быть напичкан parseInt() и !== undefined.

    Не должен. Если писать на голом JS, можно а) использовать JSDoc для аннотаций о типах, и работать с типами на уровне документации и договорённостей; б) писать алгоритмы в максимально обобщенной манере, и требовать по возможности не конкретных типов данных, а значений, над которыми допустимы нужные вам операции; в) покрывать код тестами, что и спасает в динамических языках.

    Чем больше проект, тем важнее статическая типизация, это нормально. JS - это язык который популярен по техническим причинам и по стечению обстоятельств, а не потому что он этого заслуживает (имхо). Очень неглупые дяди и тёти не стали бы тратить годы своего времени и кучу денег на разработку TypeScript и Flow, если бы это было ненужно.
    Ответ написан
    1 комментарий
  • Что лучше начать изучать новичку желающему писать веб сервисы Angular или Node JS?

    rockon404
    @rockon404
    Frontend Developer
    Вопрос поставлен некорректно, так как Node.js никак не альтернатива Angular.
    Изучайте Node.js и React.
    Node для бека, React для фронта.
    Можно посмотреть на Vue как альтернативу React, порог входа там ниже.
    Но комьюнити и экосистема у React больше.
    Angular тяжеловат для новичка, порог входа повыше, а научиться писать на нем правильные вещи тяжелей.
    Лучшая IDE для JS и фронтенда в частности Webstorm
    Ответ написан
    Комментировать
  • Как добавить данные в текущий блок?

    0xD34F
    @0xD34F Куратор тега JavaScript
    Замените

    $('.test').append('NEW BLOCK!');

    на

    $(this).closest('.test').append('NEW BLOCK!');
    Ответ написан
    1 комментарий
  • Как направить пользователя на приложение из мобильной версии?

    Если у вас сайт на серверном языке (PHP, Python и т.д.), то нужно распарсить заголовок User-Agent, если SPA, то в navigator.userAgent.
    Вот пример со stackoverflow для js
    /**
     * Determine the mobile operating system.
     * This function returns one of 'iOS', 'Android', 'Windows Phone', or 'unknown'.
     *
     * @returns {String}
     */
    function getMobileOperatingSystem() {
      var userAgent = navigator.userAgent || navigator.vendor || window.opera;
    
          // Windows Phone must come first because its UA also contains "Android"
        if (/windows phone/i.test(userAgent)) {
            return "Windows Phone";
        }
    
        if (/android/i.test(userAgent)) {
            return "Android";
        }
    
        // iOS detection from: http://stackoverflow.com/a/9039885/177710
        if (/iPad|iPhone|iPod/.test(userAgent) && !window.MSStream) {
            return "iOS";
        }
    
        return "unknown";
    }
    Ответ написан
    Комментировать