>Программистам, не знакомым с JS, надо читать учебники, а не код.
Программистам знакомым с JS понятна конструкция !function.
Это все словоблудие, не о том речь. Я Вам привел пример когда способ, который Вам нравится вызовет ошибку.
>Второй способ лучше (на мой взгляд), так как в нем явно понятно, что вы хотите сделать, а первый поставит незнакомого с ним человека в тупик. Зачем там отрицание? Что автор хотел этим сказать? Согласен с jsHint, это плохо.
Второй способ точно также в тупик программистов не знакомых с JS.! здесь для того же что и (), превращаем declaration в expression. Можно использовать ~. Не суть. Если думаете что второй способ лучше, сравните:
var a = 5
!function(args) {
"use strict";
// blah blah blah
}(args);
и
var a = 5
!function(args) {
"use strict";
// blah blah blah
}(args);
Use-case: разворачиваем продакшн сервер, загружаем фикстуры, пользователи добавляют какие-то данные. Через какое-то время разработчик добавляет новую сущность в БД и пишет фикстуры для этой сущности (данные которые должны быть и на машинах разработчиков и на продакшне и на стейдже). При обновлении продакшна на новую версию новые фикстуры добавляются, старые данные остаются.
Проблема в том что в проекте есть пачка фикстур, которые не проверяют существование записей в БД перед загрузкой. Про этот момент вообще в документации о фикстурах ничего не написано. Видимо придется рефакторить существующие фикстуры.
Идея использовать миграции для загрузки фикстур была, но быстро от нее отказались, т.к. миграции во второй доктрине совсем не предназначены для этого.