Эм... ну так вы же вызываете show сразу после fadeOut, не дожидаясь пока закончится оный... да и зачем вам тогда fadeOut если вы можете сделать это прямо в show установив там задержку. Либо тогда уберите вызов show и перенесите ваше замыкание в fadeOut
подозреваю что вы используете msysgit, который, если вы установили это в настройках, не видит разницы между CRLF и LF, так как при коммите заменят CRLF на LF автоматически.
А что будет если сделать git reset HEAD --hard? Или у вас не один файл изменен?
Вообще я не вижу в этом практического смысла. grunt нужен как раз таки что бы у нас был один файл (аля makefile) который будет группировать таски. Если вам не нужны таски, то вам не нужен grunt. Все те операции которые обычно запихивают в грант можно сделать и без него в терминале.
Мне казалось что php code sniffer это больше статически анализатор для определения возможных проблем в коде. Для coding style больше подходит csfixer, который помимо всего прочего еще и пофиксить это дело может.
Любопытства ради, какая разница, на каком языке реализовывать автомат? Имеется в виду что вам будет проще найти материалы с примерами на c/c#python и т.д. а портировать в js не хитрое. Ничего сильно специфичного все же в них нету...
p.s. юнит тесты не относятся к bdd. вы путаете с tdd либо вообще не знаете что к чему. В этом случае советую почитать какую литературу соответствующую.
Если вы планируете разрабатывать на Си/Си++ или же какие-то средства разработки то да, стоит. А так боюсь вам ничего не поможет. Всегда полезно знать как все устроено на уровень ниже, например php разработчикам стоит знать как примерно работает то, на чем они пишут. Так же .net разработчики по хорошему интересуются в какого вида байткод потом конвертится их программа, что бы проще было найти узкие места... Ну суть вы поняли.
десятки тысяч просмотров в сутки это не так уж и много, если подумать. Но вообще грамотнее было бы в базе в таком формате хранить только лог, а на текущий день собирать в кэш с периодическим переносом данных в базу.
$scope.$parent
не надо так делать. по хорошему ваш код не должен вообще ничего знать о том, что есть в Scope помимо того что вы явно туда добавляете. Ни к каким $parent обращаться не нужно.
То что вы делаете через два контроллера на самом деле можно объединить в один контроллер, или же вынести в третий более высокого уровня.