Pull to refresh
38
0
Дмитрий Карпич @meettya

User

Send message
Ох. Вы только не обижайтесь, идея здравая, но её качество вам бы подкачать.

var workerCount = require('os').cpus().length;

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

Статус 999 — детский сад. Есть rfc на статусы ответов, возьмите подходящий код.

Забудьте про синхронные вызовы. ИМХО их использование нельзя оправдать ничем. Ну разве что эмм. невысоким уровнем разработчика. Очень невысоким.

Забудьте про global. Или реквайрте явно, или передавайте параметром. Глобали вообще нет оправданий, даже если это написал Ризинг. Но он так не сделает.

Именование функций местами сбивает с толку. Не пишут ok, пишут isOk, ибо булен-флаг.

И последнее (на что у меня хватило сил) — реквайр ноды устроен хитро и конечно же кеширует последующие require, но идея делать его на каждый запрос вызывает оторопь.

В общем у вас есть место для улучшений.
Вот таки да, у нас реклама висит — «отдохните в отпуске в кредит!»
ИМХО если денег нет — какой нафик отпуск?
На деньги, которых у них нет люди покупают вещи которые им не нужны :)
А, собственно, что Вам мешает использовать кастомный фильтр, который преобразует «максимальную строку» в число?
Кто-то решил по тягаться с китайцами?
Ну, подождем реальной железки, посмотрим как играть будет, хотя сомнительно что переплюнет 200-250 баксовые модели.
И да, аудиофилы — не более больные чем геймеры или горнолыжники, просто у всех свой приход :)
Здорово описано, ждём продолжения.
Ох, как-то привык в JS к тому что создать объект ничего не стоит, так что совсем красиво не сделать, в яве хешмапы жуть какая-то (как-то раньше пристально не смотрел на нее).

А вообще конечно по нормальному нужно вести от общего к частному

vw.setScrollBarVerticalEnabled(false);


Что все равно ужасно, но хоть логичнее по структуре.
Вот за такое API
vw.setVerticalScrollBarEnabled(false);


Разработчика нужно п… дить кирзачами отрывать руки дать в репу заставить самого этим пользоваться.
Этож просто какая-то жесть.

А по итогу-то что получается — только Java, только хардкор? Как не посмотрю — все кривенько :(
Меня больше всего во всем этом цирке 2 вещи забавят:
1. Никто не боится демонстрировать в магазинах фрагменты трупов расчлененных млекопитающих, отличающихся от людей на 2-3% по ДНК. Никого не беспокоят выставленные свиные головы и прочее. А видите ли человеческий трупик — это прям ужас-ужас!
2. Все больше вводится всякого маразма «оградить и не пущать», но строго до 18! С первым звонком взрослой жизни опекаемое доселе чадо получает обязанность взять в руки огнестрел и уже получить навык «зачистки». Так вот, без лишних ласк.

Нужно не от информации «вредной» защищать, а учить критически мыслить и верно ещё оценивать — но они же на самом деле не идиоты — рыть самим себе могилки :-)

В чистом итоге — сраное ханжество, морализм, попил бюджетов и попрание прав и свобод.
Если посмотреть в кот — либа ужасна
this._MAX_KIDS = (options.max_processes || Math.ceil(require('os').cpus().length * 1.25));

тут в трех местах поперхнутся можно.
И самое главное — непонятно зачем извращаться с поддержкой очередей если есть async? Ну допилить кое-чего по мелочи, но там все красивое уже есть.
Пример от этого удачнее не становится.

counter = 5
console.log counter-- until counter is 2
В данном случае, для получение значений массива использовать нужно именно of, а не in.

ой ли?
вот две записи, дающие одинаковый результат
result_in = ( val for val in ['a', 'b', 'c'][0...2])
result_of = ( val for key, val of ['a', 'b', 'c'][0...2])

Но почему первая — корректна, а вторая — путь на темную сторону?
Потому что:
var key, result_in, result_of, val;

result_in = (function() {
  var _i, _len, _ref, _results;
  _ref = ['a', 'b', 'c'].slice(0, 2);
  _results = [];
  for (_i = 0, _len = _ref.length; _i < _len; _i++) {
    val = _ref[_i];
    _results.push(val);
  }
  return _results;
})();

result_of = (function() {
  var _ref, _results;
  _ref = ['a', 'b', 'c'].slice(0, 2);
  _results = [];
  for (key in _ref) {
    val = _ref[key];
    _results.push(val);
  }
  return _results;
})();

Мы же не будем спорить о том, насколько неэффективно обращаться с массивом как объектом?
Алсо —
expr = /foo*/g;
alert "#{array[0]} : #{expr.lastIndex}" until (array = expr.exec('foofoo')) is null

пример явно не удачный, потому как это же явно
expr = /foo/g
console.log "#{array[0]} : #{expr.lastIndex}" while array = expr.exec 'foofoo'
Алсо —
alert i for i in [1..10] when i % 2 is 0

ИМХО удачнее будет
for i in [1..10] when not( i % 2) then console.log i
Алсо — с места
[value for i, value of ['a', 'b', 'c'][0...2]] # a, b

и до конца раздела — это вы о чем?
Во-первых не нужно писать of [arr], нужно in [arr]
Во вторых — смысла конструкции вообще не понял — может проще сразу было
 ['a', 'b', 'c'][0...2]

не?
Эм, за напоминание о слайсах — спасибо, в отместку — там опечатка есть
[list1, list2 ...]  #[1,2,3,4,5,6] 

Не, чтобы получить плоский список надо сказать
[list1..., list2...]
Бла-бла-бла — кидалтское нытье и занудство.

Автору стоит вернуться к взрослой реальности.
Не хотите наш CS — ну и xрен с вами! Не нравится ответ на SO на CS — ну и хрен с вами!
Это ваши проблемы и не вам мне указывать где что и на чем писать.
Я же не начинаю ныть, что вот тут книжка по алгоритмам на сях, тут — на лиспе, а тут вообще не пойми чего? Раз оно надо мне, значит и с этим я разберусь.
Ну, многослойные абстракции нам дает DI, за связанностью следит ООП, а сокращать код помогают mixin-ы.

Я как бы не настаиваю, но есть некие best practice, игнорировать которые черевато боком, мне ли не знать.

Но в любом случае — успехов, хоть я лично за unix-way и держусь подальше от комбайнов.
Есть такой вопрос провокационный — а почему Вы не пишите на node.js?

Зачем Вы изобрели собственный механизм импорта\экспорта?
Почему не используете сторонние клиентские библиотеки — для работы с датой, строками и т.д? Всякие lodash-underscore уже стандарт де-факто.

Я уж молчу про то, что использование global — жуткий моветон, который еще как-то можно простить в тестах, но в продакшен-коде — ни-ни.
Что-то мне подсказывает, что криворукие люди не напишут в продакшен машину регулярных выражений.

А что быстрее будет работать — честно говоря пофик, микрооптимизации меня никогда не интересовали.

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity