• В чем суть декораторов?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    если после
    https://habr.com/ru/post/141411/

    но так и не понял ничего(

    то только так:
    https://www.youtube.com/watch?v=iX_z-ePCCWw&t=39s
    Ответ написан
    Комментировать
  • Не взяли на работу из-за неправильно выполненного тестового задания, посмотрите?

    @RuComMarket
    Битрикс FullStack разработчик
    что касается замечаний не скажу, но если они есть, то их должны объяснить.
    Тут скорее дело в другом, и причин может быть много.
    сейчас программистов способных что-либо путное писать единицы.
    Если задание выполнено и работает, если даже есть замечания, дальше ведут беседу выявляя, почему ты допустил "замечания" и вообще понял ли ты о них.
    Очень часто встречается когда среди отбирающих присутствует программист, с которого начинались разработки компании, и который сам не умеет программировать, но с учетом что он когда-то написал для компании "Hello World" ориентир руководства на его мнение. Он может по разным причинам отклонить:
    - может он не знает язык на столько, чтобы читать чужой код
    - может он не хочет что бы кто-то лучше него разбирающийся работал
    - может он вообще не хочет чтобы кто-то еще работал, но руководство дало задачу искать
    я таких моментов за свою практику встречал примерно в половине компаний с которыми сталкивался как в поиске работы, так и сотрудничая по другим задачам.

    Не стоит обращать внимания на такие компании и, главное, не опускать руки.
    за 40к питонщика возьмут любого, даже с "замечаниями", т.к. хороший питонщик на такие копейки просто даже не откликнется.
    ищи работу дальше, чтобы нарабатывать опыт. Если задаешь такие вопросы, думаю с таким подходом через годик другой увеличишь зарплатные запросы раза так в 3)
    Ответ написан
    2 комментария
  • Не взяли на работу из-за неправильно выполненного тестового задания, посмотрите?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    Братан, индусский код, без обид

    1)
    TASKS_DIR = os.path.dirname(__file__) + '/tasks'
    тут os.path.join нужен ( + - еще можно поспорить, если б см. п 2 ты правильно заюзал)

    2)
    file_data = user['name'] + '<' + user['email'] + '> ' +\
            time.strftime('%d.%m.%Y %H:%M', time.localtime()) + '\n' +\
            user['company']['name'] + '\n\n'


    это пишется так
    file_data = f"{user['name']} < {user['email']} + >  {time.strftime('%d.%m.%Y %H:%M', time.localtime())} \n {user['company']['name']} \n\n"

    и вот так еще полубезобидно можно складывать путь из п1.

    3)
    except Exception as e:
         print(e, u'Не удалось получить задачи | get_http_error')

    есть такая вещь как ООП и паттерны, и там наружу тебе нужно передавать естестенную (читай систмную, сетевую, АПИ) ошибку, а не самодеятельность - ну нет прав на запись в твою создаваемую ДИР, что делать запустившему - код твой гадать? так он сразу увидит, что нет прав, апи кей не катит, нет роута и т.д.

    ну и , как понимаешь, весь блок коннекта к апи можно было обернуть одиним - какая разница где ошибка? ты ее выведешь, при общем неуспехе

    но ты стараешьтся, молодец - нет camel style по крайней мере (надеюсь, это осознанно? )
    Ответ написан
    Комментировать
  • Что такое back-end и front-end?

    DevMan
    @DevMan
    в основном:
    фронт - то, с чем непосредственно взаимодействует пользователь.
    бэк - скрытая от пользователя часть, которая занимается обработкой данных.

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

    Xuxicheta
    @Xuxicheta
    инженер
    Написать свой компонентный фреймворк
    Ответ написан
    Комментировать
  • Как оценить расстояние от одного адреса до другого?

    @strelok011
    Гугл, яндекс дают инструменты для расчета.
    Яндекс - по дорогам
    https://tech.yandex.ru/maps/jsbox/2.1/multiroute_d...

    Гугл, если я не ошибся, по прямой
    https://stackoverflow.com/questions/39765526/how-c...

    Вы можете и сами посчитать, но для этого нужны формулы длины дуги для эллипсоида и справочные данные по размерам земли и ее форме :) слишком много математики.
    Ответ написан
    2 комментария
  • Как сделать чтобы другие параметры были не обязательны?

    Aetae
    @Aetae Куратор тега TypeScript
    Тлен
    Мы же говорим о typescript?
    function test (a: number, b?: number, c?: number) {
      console.log(a);
      if (b) console.log(b);
      if (c) console.log(c);
    }
    
    test(1) // консоль: 1
    test(1, 2) // консоль: 1, 2
    Ответ написан
    Комментировать
  • Что означает символ! перед this в языках javascript?

    deepblack
    @deepblack
    Отрица́ние (инве́рсия, от лат. inversio — переворот, логи́ческое «НЕ»)

    https://learn.javascript.ru/logical-ops
    Ответ написан
  • Можно ли сделать такой способ импорта компонентов?

    Aetae
    @Aetae Куратор тега Vue.js
    Тлен
    Если юзаешь webpack то можно использовать require context.
    Но тут уж никакого treeshaking'a или подсказок IDE.
    Проще написать скрипт который будет тебе эти индексные файлы на лету генерить.
    Ответ написан
    Комментировать
  • Есть ли сайты, на которых собраны множество "рецептов" по html/css?

    Eugevin
    @Eugevin
    22 года, frontend как смысл жизни
    Оу, май, парень. В этом плане лучше всех CSS-Tricks! И это на самом деле лучший ресурс: трюки, фишки, обучение и гайды с подробным описанием всех новейших технологий в области HTML/CSS (Flex, Grid, красивые менюшки и так далее)
    Ответ написан
    Комментировать
  • Стоит ли углубляться в изучение git и тп?

    Стоит ли изучить гит глубоко ?

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

    Большинство начинают изучать гит по всяким туториалам и "спискам команд для работы с гит на первое время", и это ОЧЕНЬ пагубно сказывается на качестве знаний. Из-за не очень логичного и прямолинейного командного интерфейса, у человека создаётся не очень хорошее впечатление о гит как об инструменте. Ну т.е. большинство судит о книге по её "обложке", машинально запоминая последовательности команд для работы, и в панике потом разгребают свою историю коммитов при малейшей ошибке в заученных командах.

    Однако нужно не команды запоминать, а понимать как что работает, и, самое главное, что ВЫ ХОТИТЕ от гита. Тогда вы будете подбирать команды под свои задачи и пожелания, а не наоборот.

    Я вот например довольно фигово знаю гитовский CLI, прямо скажу постоянно заглядываю в документацию. Но это не мешает мне заниматься довольно сложными задачами, связанными с ним (например, отвечать в данный момент за перенос истории из SVN), только потому, что я понимаю его базовую философию (которая, повторюсь, реально проще, чем кажется, ну если конечно вы не первый день видите компьютер).
    Ответ написан
    1 комментарий
  • Стоит ли углубляться в изучение git и тп?

    @deliro
    Всё, с чем работаешь, стоит изучать на более глубоком уровне. Потому что есть далеко ненулевой шанс, что то, чего ты не знаешь, может быть очень удобным и полезным.

    По такой логике можно писать в IDEA как в текстовом редакторе (или вообще не попробовать IDEA, ведь в Sublime код тоже можно писать), дебажить в gdb, ходить в БД через cli, смотреть, кто правил твой код через git blame и не писать тесты вообще, потому что "ну я же руками проверить могу". Путь абсолютно тупиковый и никак не коррелирует с развитием. Потолок такого подхода — джуниор самодур девелопер.
    Ответ написан
    Комментировать
  • Есть ли способ во Vue неявно расширить какие-то данные вниз по дереву?

    Kozack
    @Kozack Куратор тега Vue.js
    Thinking about a11y
    Как-то плохо гуглили.
    https://ru.vuejs.org/v2/api/#provide-inject
    Ответ написан
    Комментировать
  • Как лучше организовать структуру данного кода?

    sergiks
    @sergiks Куратор тега Алгоритмы
    ♬♬
    Если действия симметричны, т.е. при X > (C > B > A) действия те же, что при X > (A > B > C),
    можно привести переменные к однозначно возрастающему варианту — поменять местами A и C если A > C.
    Так вариантов останется 7.
    if (A > C) [A, C] = [C, A]; // поменять местами значения A и C
                                // теперь точно A < B < C
    if (X < A) {          // вар. 0
    } else if (X == A) {  // вар. 1 
    } else if (X < B) {   // вар. 2
    } else if (X == B) {  // вар. 3
    } else if (X < C) {   // вар. 4
    } else if (X == C) {  // вар. 5
    } else { // X > C     // вар. 6
    }


    Ещё один способ — с бинарным деревом, который интуитивно но неправильно пытался подсказать xmoonlight
    Всего есть 2 * 7 = 14 вариантов. Гипотеза о том, что действия зеркальны для двух вариантов A > B > C и A < B < C вроде бы подтвердилась, поэтому оставлю первый шаг, где меняем местами A и C, чтобы последовательность точно была возрастающей.

    Остаётся 7 вариантов. Достаточно 3 битов, чтобы закодировать любой из них. Каждый бит это ответ на 1 вопрос, проверка одного условия. Т.е. достаточно всего трёх if'ов для определения нужного блока кода:
    0  1  2  3  4  5  6 
    ---o-----o-----o---   
       A     B     C      
    
    0  1  0  1  0  1  0  1
    0  0  1  1  0  0  1  1
    0  0  0  0  1  1  1  1


    Примерно так:
    if (A > C) [A, C] = [C, A]; // поменять местами значения A и C
                                // теперь точно A < B < C
    if (X > B) {
      if (X > C) {    // вар. 6
      } else {
        if (X == C) { // вар. 5
        } else {      // вар. 4
        }
      }
    } else {
      if (X > A) {
        if (X == B) { // вар. 3
        } else {      // вар. 2
        }
      } else {
        if (X == A) { // вар. 1
        } else {      // вар. 0
        }
      }
    }
    Так менее наглядно и читаемо, но сэкономили на спичках – меньше проверок.
    Не более 3 проверок условий, чтобы определиться, куда попали.
    Ответ написан
    2 комментария
  • В чем разница связаного списка от хеш-таблицы?

    @Mercury13
    Программист на «си с крестами» и не только
    Связанный список решает такую задачу: как хранить коллекцию объектов, добавляя и удаляя туда объекты. (Простите, что я не пишу характеристики того и другого, почитайте это в умных книгах)

    В чистом виде связанный список используется крайне редко из-за ограничений, но представьте себе объектный пул (кучу готовых к использованию объектов), и надо хранить список свободных — очень удобно использовать связанный. Также связанным иногда хранят содержимое гнезда в хэш-таблице.

    Хэш-таблица решает другую задачу: наладить отображение ключ→значение. Например, «осёл → иа, петух → кукареку», и так далее. Массив, только индексом будет не цифра, а что-то другое: x[«осёл»] = «иа». Так называемый ассоциативный массив.

    Если индексом массива может быть только цифра, поступим так: превратим нашего осла в цифру — например, о+с+ё+л = 4363 (в Юникоде), и пусть 63 — это номер гнезда. В 63-м элементе массива пусть и лежит наше «осёл → иа».

    Если у другого животного значением хэша будет 63 — это хэш-коллизия, и в разных реализациях решается по-разному. Я знаю такое: в гнезде лежит не просто один элемент, но связанный список. Главное, что такое слегка снижает производительность, но допустимо.
    Ответ написан
    Комментировать
  • В чем разница связаного списка от хеш-таблицы?

    @deliro
    В чём разница макарон от сосиски в тесте и есть ли она вообще? Или это одно и то же?
    Ответ написан
    6 комментариев
  • Что почитать начинающему фронтендеру?

    @fanofmarta
    Учу Flutter
    Есть идея пойти по цепочке по цепочке Html+Css->JS->PHP+MySQL


    Хорошая идея. Но зачем? Для чего тебе это?

    В последующие годы все также будет популярен PHP или стоит изучать node.js?


    Все так же будет популярен, реши сам, что учить. Тут нет правильного ответа.

    Если PHP будет актуален, для изучение данного ЯП будет ли актуальна ли книга "PHP 7 в подлиннике" или стоит начать изучение PHP, к примеру, с книги "Изучаем PHP 7".


    Возьми любую, прочти, ПОЙМИ, повтори все, что там написано. Потом так же с другой. Порядок не принципиален.

    Актуальна ли книга - "Выразительный JavaScript" и стоит ли прочитать "JavaScript. Полное руководство" или же "Изучаем JavaScript".


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

    Предложите свои варианты, что стоит почитать...


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

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


    Почитай обязательно. Но то, что ты понимаешь "что нужно практика", но решаешь все-таки читать - на здоровье.

    В следующий раз только задавай подобные вопросы на книжном форуме. Тут больше по программированию люди, чем по чтению.
    Ответ написан
    Комментировать
  • Каким образом посчитать разность дат в JS?

    lastuniverse
    @lastuniverse
    Всегда вокруг да около IT тем
    с использованием https://momentjs.com/docs/
    // ваши даты из бд
    var start = "1970-01-01";
    var end = "2018-03-10";
    
    // парсим их с помощью moment-а
    var a = moment(start, "YYYY-MM-DD");
    var b = moment(end, "YYYY-MM-DD");
    
    // получаем количество дней между датами
    var days = a.diff(b, 'days') ;
    
    // пихаем days куда вам там надо
    ...


    или так (на нативном js)
    // ваши даты из бд
    var start = "1970-01-01";
    var end = "2018-03-10";
    
    // парсим их с помощью нативного JS
    var a = Date.parse(start);
    var b = Date.parse(end);
    
    // получаем количество дней между датами
    var days = Math.floor(Math.abs(b-a)/(1000*60*60*24)) ;
    
    // пихаем days куда вам там надо
    ...
    Ответ написан
    9 комментариев
  • Где можно провести трансляцию лекции, кроме youtube?

    Oxyd
    @Oxyd
    Linux enthusiast
    Попробуйте zoom. Можно смотреть как с сайта, так и их десктопным или мобильным клиентом. Сервис заточен на всякие лекции и вебинары. Очень хорошо заточен.
    Ответ написан
    Комментировать
  • Возможно ли отследить выход из полноэкранного режима?

    hzzzzl
    @hzzzzl
    не пробовал, но вроде бы есть браузерное событие
    https://developer.mozilla.org/en-US/docs/Web/API/E...
    Ответ написан
    Комментировать