-
Notifications
You must be signed in to change notification settings - Fork 54
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
File cache #449
base: master
Are you sure you want to change the base?
File cache #449
Conversation
9e1068f
to
f6ca91e
Compare
put: function (cacheKey, content) { | ||
return vowFs.makeDir(this._cacheDir) | ||
.then(function () { | ||
this.put = this._put; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Я бы написал объясняющий коммент
Подумал - плохо, что методы |
2a1daf9
to
3d1901e
Compare
b36af8f
to
b11fc77
Compare
🆙 |
@@ -83,7 +83,7 @@ | |||
}, | |||
"main": "lib/api/index", | |||
"scripts": { | |||
"test": "npm run jshint && npm run check-style && npm run unit-test && npm run tech-test", | |||
"test": "npm run unit-test", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Забыл вернуть обратно?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ага
6e2da87
to
d4f1e18
Compare
🆙
|
@@ -14,13 +17,17 @@ var CacheStorage = inherit(/** @lends CacheStorage.prototype */ { | |||
/** | |||
* | |||
* @name CacheStorage | |||
* @param {String} filename Имя файла, в котором хранится кэш (в формате JSON). | |||
* @param {Object} opts | |||
* @param {String} tmpDir Путь к temp директории |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
opts.tmpDir
}; | ||
|
||
exports.mkHash = function (path) { | ||
return path.replace(/[\/\\: ]/g, '_'); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
такой вариант не прокатит. для глубоких путей имя файла может получиться длинее 255 символов.
Мы в деньгах перешли на md5 хеш от имени. Может есть варик получше.
5ee1850
to
fbc744e
Compare
🆙 |
@blond ping |
1 similar comment
@blond ping |
@blond ping! |
7c75441
to
c77c520
Compare
@blond Хватит тянуть кота за яйца, давай вливать. |
Мне не нравится текущее решение. Причины примерно те же, что и раньше. Попробую изложить свои идеи, что не так, и как можно лучше. А для начала отвечу на вопросы, которые точно прозвучат. Почему нужно сделать хорошо, это же дополнительная фича?Работа с файловым кэшом будет доступна через API технологий. Это значит, что API надо продумать сразу и правильно, а не менять его в каждой последующей версии. Кроме того очень важно, чтобы технологии не могли сломать кэш или мешать другим технологиям. Это самый базовый принцип, который нельзя нарушать. Без него пользоваться ENB и плагинами к нему будет невозможно. Почему нельзя сказать, что API экспериментальное, а потом воровать и убивать?Мы хотим использовать файловый кэш в технологиях для ускорения. Технологий много, нас мало. Кроме нас, есть ещё ряд разработчиков, которые пишут свои технологии. Мне очень не хочется, чтобы разработчики технологий тратили своё время на их переписывание при каждой новой версии ENB. Мне самому не хочется тратить время на то, чтобы переделывать технологии. Мне очень не хочется принимать исправления, которые ломают обратную совместимость, или объяснять разработчикам, почему я не буду принимать их «хороший» PR. Мне очень не хочется, чтобы пользователи технологий страдали от того, что они выбрали технологию, которая использует файловый кэш, при выходе каждой патчевой версии ENB. Почему
|
ну ок |
спасибо |
this._data = {}; | ||
this._mtime = 0; | ||
|
||
this.fileCache = new FileCache(_.pick(opts, 'tmpDir')); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
лодаш ради ({ tmpDir: opts.tmpDir })
?
Когда же когда |
Скорее всего на следующей неделе начнём перепиливать |
Сколько денег надо заплатить и кому, чтобы увидеть эту фичу в проде? |
Думаю, за 1 000 000 Блонд сделает. За 10 000 000 сделает наша служба :) |
@JiLiZART, вообще у меня складывается мнение, что если тебе понадобился файловый кэш, то пора валить с ENB. А так можешь глянуть на ветку: https://github.com/enb/enb/tree/feat/file-cache Я пока не могу найти ему хорошего применения. |
@blond у меня благодаря нему, первый билд 11 секунд, последующие по 200ms. Я им кеширую результаты билда файлов стилей отдельных блоков, и в последующей пересборке, проверяю нужно ли компилировать заново этот блок, или брать из кеша. Я бы рад свалить но не на что ) |
@blond а сейчас? |
TODO:
--no-cache
option specified