Контакты

Достижения

Все достижения (15)

Наибольший вклад в теги

Все теги (68)

Лучшие ответы пользователя

Все ответы (121)
  • Как пройти внезапное собеседование в IT-компанию?

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

    Все у вас получится! Успехов ;)
    Ответ написан
  • [Асинхроность и nodejs] Кто что использует против callback hell и почему?

    Это популярная проблема, все пытаются с ней бороться, придумывают разные инструменты, библиотеки и прочее. Но скажу, что при хорошей архитектуре вложенность функций редко переваливает за 2 штуки - а это уже никакой не `хэл`. Ну вот посмотрите на метод в котором у вас этот самый `хэл`. Это же явное нарушение SOLID - один метод обрабатывает данные, куда-то их посылает, ждет в коллбэке ответ, с ним что-то делает, потом снова вызывает другую асинхронную функцию и опять ждет ответ, и так несколько раз. Поэтому `коллбэк хэл` - это классная штука, которая помогает разбивать код на независимые функции - принял данные, что-то сними сделал, отправил дальше как эти данные, так и другие аргументы. Точка.

    Ответ написан
  • Как посмотреть все глобальные переменные в js?

    Создайте новый Window и сравните свойства:
    document.body.insertAdjacentHTML('beforeend', '<iframe hidden />');
    var originalWin = window.frames[window.frames.length - 1],
        originalKeys = Object.keys(originalWin);
    
    var globals = Object.keys(window).filter(x => originalKeys.indexOf(x) === -1);
    Ответ написан
  • Node.js (или другие асинхронные фреймворки): А как отлавливать ошибки?

    К node.js имею косвенное отношение, но мне всегда казалось, что:
    • всеми силами надо избегать выброса исключений, а возвращать статус ошибки
    • вызов ассинxорнной функции должен иметь вид:
      asyncFunction(args, function(error, result){})
    И теперь, если перевести эти пункты на ваш код:
    auth.getUser(req, function(error,user) {
      if (error != null){
        handle(res,error);
        return;
      }
      db.getData(function(error,data) {
        if (error != null){
          handle(res,error);
          return;
        }
      res.write(template.render(data));
    });

    Проверки исключений здесь, мне кажется, излишни. Слабое место только template.render(data), надо просто проверить или эта функция бросает исключения. И даже если да, то лучше проверить или объект data валидный перед передачей в render. Пока сам придерживаюсь правила, если в функции для ее нормальной работы надо больше 2/3 if-ов, тогда только try..catch. К сожалению, в Яваскрипте нельзя так гибко обращаться с исключениями как в .NET(печальный вздох). Буду тоже рад если, кто то предложит более конструктивный ответ.
    Ответ написан
  • Поиск по Tab в Google Chrome, или как оптимизировать под это сайт?

    Если коротко и быстро:
    • на странице должен быть подключен xml с описанием OpenSearch:
      <link rel="search" type="application/opensearchdescription+xml" title="Site Search" href="http://mysite.com/SearchEngineInfo.xml" />

    • и сам файл виду:
      <?xml version="1.0" encoding="utf-8"?>
      <OpenSearchDescription xmlns="http://a9.com/-/spec/opensearch/1.1/" xmlns:moz="http://www.mozilla.org/2006/browser/search/">
       <ShortName>Site Search</ShortName>
       <Description>The search engine</Description>
       <InputEncoding>UTF-8</InputEncoding>
       <Image type="image/x-icon" width="16" height="16">mysite.com/favicon.ico</Image>
       <Url type="application/opensearchdescription+xml" rel="self" template="http://mysite.com/SearchEngineInfo.xml" />
       <Url type="application/atom+xml" template="http://mysite.com/search?q={searchTerms}&p={startPage?}" />
       <Url type="text/html" template="http://mysite.com/search?q={searchTerms}&p={startPage?}" />
       <moz:SearchForm>mysite.com/search</moz:SearchForm>
      </OpenSearchDescription>
    Ответ написан

Лучшие вопросы пользователя

Все вопросы (5)