Pull to refresh
51
0
Александр Десятьбитов @tenbits

User

Send message

Именно, но к сожалению, уж очень много модулей в npm страдают этой болезнью. Мы например, релизим модули скриптом через отдельный бранч. Грубо говоря — создаём ветку release; удаляем из git-индекса всё; генерируем .gitignore с *(ignore all), там же добавляем исключения для релизных файлов, часто это лишь lib/**, readme.md, package.json, bower.json; дибавляем всё в гит; пушим в ветку release; создаем тэг. Таким образом у нас и npm чист, и bower пакет чист, а также все git releases.


Вот перечень команд:
[
    `npm run bump`,
    `git commit -a -m "v${version}"`,
    `git push origin master`,

    `git checkout -B release`,
    `npm run build`,
    `npm run ignorefiles`,
    `npm publish`,  
    `git rm -r --cached .`,
    `git add -A`,
    `git commit -a -m "v${version}"`,
    `git push origin release -ff`,
    `git tag v${version}`,
    `git push --tags`,
    `git checkout master -ff`
]

Ёмаё, стыдно то как, а ведь на самом деле в pe2 не всё поддерживается. Беглым взглядом я пропустил, что это альтернатива к движкам с backtracking механизмом. Отсюда и сложность с внедрением backreference. Жаль старые комментарии редактировать нельзя на хабре.
Было также интересно почитать про irregexp. Lookbehind сделан на базе read_backward, действительно просто и удивляет почему раньше это не было сделано.

Ни одна из этих фич в regex dna не используется.

Разумеется, по ссылке теста видны регекспы. Но ведь именно из-за поддержки этих фич, иначе устроен процессинг.


backreferences \n,

Ну тут должно быть просто, так как backtracking так и так есть, поэтому такая фича должна быть почти бесплатной.


А вот что вы имеете в виду под zero-width positive lookahead? Ведь любые lookahead и lookbehind это zero-width match?

Наверняка имеется в виду такие штуки как https://github.com/codemix/fast.js

по алгоритму regexdna JavaScipt отрабатывает чуть быстрее, чем C++

В C++ версии используется re2 с lookbehind, atomic groups, possessive quantifiers, а в V8 это встроенная имплементация с довольно урезаным функционалом?

Да, мы уже выяснили, что удалять модули от которых зависят другие модули — это плохо. Теперь речь о том, как быть если авторы обновляют модуль с намеренно поломанным кодом.
Хм, версии дерева зависимостей фиксируются, на версиях которые у вас установлены на данный момент. Вас смутило полагаю поле "from", но это лишь мета информация изначального состояния дерева зависимостей. А bundledDependencies, как по мне, уже слишком "грубо", также как и добавление "node_modules" в репозиторий.
Когда используется относительная версия зависимости, тогда ответственность перекладывается на их авторов и вас. Ведь тогда вы просто надеетесь, что разработчики будут лишь улучшать модуль, а не наоборот. В таком случае пакетный менеджер вам ничего обещать не может. А так, есть же отличная вещь как shrinkwrap.
В данной ситуации, они сплошали лишь в том, что разрешали удалять модули и версии от которых зависели другие модули.
Разумеется заглушаются методы, но лучше, когда на базе интерфейса.
Нaверное лучше всё таки — реализация интерфейса доступа к данным. То-есть мы делаем стаб для IDataProvider
Раз про структуры и доступ к данным, наверное имелась ввиду индексация текста. Но показалось, что человек думал как можно сходу очень быстро из "миллиона" текста выудить нужные слова. То-есть препроцессинг вовсе не рассматривался.
Получается ли это, что ОС реального времени не может выполнять задачи, в которых нет возможности заведомо вычислить срок выполнения этой самой задачи?
Спасибо, такого ответа я и ожидал. В одном приложении понятен замысел, и когда перечитываешь реализацию, много становится понятно, зная для чего всё это.
Спасибо, а могли бы ещё на второй вопрос ответить? Хотя конечно может и дурацкий вопрос, но всё же — какие есть ОС не реального времени и в чем разница?
А что значит "ОС-система-платформа реального времени"? И какие есть ОС не реального времени, и в чем их разница?
На моей машинке Rust-овская версия отрабатывает за 80-85ms

Это чистая "Rust-овская версия" или уже с бриджем из ноды? Интерeсно какой оверхэд на вызов Rust методов?
А в какой версии Node.js тестировался пример? Ведь функции уже давно захватывают из области видимости не больше чем нужно. Это значит, что gc удалит функцию "unused", a затем и "originalThing"
Ну как же, контроллер и компонент это разные вещи. Компонентом называют законченную единицу интерфейса/приложения — и он как раз состоит из контроллера, или шаблона, или только модели, также может другие ресурсы и компоненты включать в себя. Вообщем компоновать все это вещи можно как угодно. Здесь «компонент» был назван в контексте HMVC.
Компоненты можно тоже по принципу MVC строить, или одному из его вариаций.

> для маршрута может быть только один соответствующий контроллер
Это если только жестко привязываться к «Роут-Контроллер» архитектуре, но достаточно ввести между ними шаблон и уже можно комбинировать. И именно такой подход набирает популярность, так как он сочетает в себе и «Роут-Контроллер» вариант, и композицию.

Information

Rating
Does not participate
Location
Leipzig, Sachsen, Германия
Date of birth
Registered
Activity