Pull to refresh
12
0

Frontend developer

Send message
Сделайте голосовалку, чтобы хабр комьюнити выбрало стек на котором будут писать ваши разработчики
Утверждение про родину, которая чем-то одаривает в корне неверно. Мои родители и родители моих родителей всю жизнь платили налоги в России, достаточно справедливо, что эти выплаты частично вернулись в виде моего высшего образования.
Думаю, будет полезно добавить в readme сравнение с другими подобными решениями, например с github.com/typestack/typedi
Поддерживаю вопрос про готовые решения. Сейчас на рынке много сервисов, каждый из них обладает своим набором плюсов и минусов. Что именно было для вас критичным, что было решено разрабатывать своё? Статья отличная, почерпнул для себя много полезного!
Зачастую минусы ставят просто мнению, с которым не согласны. Поэтому новички минусы лепят точно так же, как и эксперты.
Тогда продолжайте размышления. Минусы в этой выдуманной ситуации никак не спасают) Новички минусуют хорошую статью, эксперты — плохую. Итого у плохой — 3 плюса, у хорошей — 0. Положение остается прежним.
Дерево комментариев сохраняется, просто появляется ранжирование. Не смогу расписать алгоритм в рамках комментария. Конкретную реализацию, как я уже писал выше можно увидеть на dev.to
Хорошая статья собирает больше плюсов, чем плохая. Этого достаточно для ранжирования. Механизм минусов в текущем виде изжил себя, если говорить о статьях. Уже можно заметить первые шаги в этом направлении, нельзя поставить минус статье, не указав причину.
Хабру стоит позаимствовать некоторые идеи с dev.to:
  1. Оставить возможность только плюсовать статью, без возможности минусить её, таким образом низкокачественные статьи так и останутся с низким рейтингом.
  2. Добавление статьи в закладки должно положительно влиять на её ранжирование
  3. Заплюсованные комменты должны отображаться первыми
Отличная статья! Будет полезна всем начинающим!
Спасибо за комментарий, обязательно гляну доклад.

В свою очередь попробую ответить на поставленные вопросы:

  1. Собственно разработчик работает с ключами, не зная ничего о конкретном языке или значении внутри ключа. С этим есть некоторые недостатки, но пока не вижу решения лучше.
  2. Как уже писал выше, для переводов есть достаточно классные сервисы, которые предоставляют переводчикам удобный интерфейс. Очевидно, что не нужно заставлять переводчиков редактировать json файл или вникать в синтаксис грамматики.
  3. Собственно так как переводы живут в отдельном сервисе, то всё что нужно это скачивать их перед каждой выкладкой на продакшн.
Парсер вот тут github.com/eo-locale/core/tree/master/src/parser

Про то, что остальное просто использование Intl в статье указано прямо)

У нас не несколько простых текстов, много мультиязычных проектов. Используем в работе сервис lokalise.com переводы из него можно экспортировать в том числе и в ICU.
Собственно переводчики там работают с интерфейсом сервиса, им не нужно знать в каком формате будет экспортироваться текст.

select ни разу не приходилось использовать.

При использовании ICU грамматики вы пишете код для plural один раз и потом можете добавлять/убирать сколько угодно языков. Вам не нужно думать о plural rules для конкретного языка. Если приведете пример кода, который на Ваш взгляд форматирует plural более удобным способом, мне будет интересно взглянуть)
Спасибо за замечание!
Очень круто, но ни одну из объявленных выше задач не решает
Спасибо за статью!

Очень часто проект ломался. Это реально не круто. Ты взял изменения с ветки, пробуешь запустить — и ни фига. Это сильно раздражало. В какой-то момент мы просто написали скрипт, который чистит проект полностью. Нельзя сказать, что решили проблему целиком, но большую часть добили.

Можете рассказать про этот скрипт подробнее?
Даже не приступил) Потратил почти 3 часа на задачу с рисованием мира)
Оставлю на суд свой вариант решения первой задачи:

function promisify(api) {
  const handler = {
    get(target, propKey, receiver) {
      const prop = target[propKey];

      if (typeof prop === 'function') {
        return convertFunctionToPromise(prop);
      }

      if (typeof prop === 'object') {
        return new Proxy(prop, handler);
      }

      return prop;
    },
  };

  return new Proxy(api, handler);
}

function convertFunctionToPromise(func) {
  return function(...args) {
    return new Promise((resolve, reject) => {
      func((error, data) => {
        if (error) {
          reject(error);
          return;
        }
  
        resolve(data);
      }, ...args);
    });
  }
}
С таким громким заголовком я бы добавил следующую информацию:
  1. Как исключить из продакшн сборки какую-нибудь используемую библиотеку, например React
  2. Как следить за тем, чтобы размер библиотеки не превышал заданного лимита
Думаю, что Facebook больше озабочен тем, что огромные деньги на рекламу уходят мимо них, различным блогерам, нежели тем, что пользователи обращают внимание на лайки вместо контента.
1

Information

Rating
Does not participate
Registered
Activity