Entendiendo el estilo de codificación en Angularjs

Encontré diferentes estilos de codificación usando Angularjs y me hizo pensar cuál era la ventaja y la desventaja de cada estilo de codificación.

p.ej. Declaración de controladores:

Estilo # 1

angular.module('mainCtrl', []);
function MainCrl($scope, $rootScope) {}

Estilo # 2

angular.module('mainCtrl',[])
.controller('MainCtrl', function($scope, $rootScope)) { ... });

Estilo # 3

angular.module('mainCtrl',[])
.controller('MainCtrl', ['$scope', '$rootScope', function(scope, rootScope)) { ... }]);

Por lo tanto, el estilo # 3 es algo así como usar un alias, ¿tiene un efecto usar un alias cuando va a escribir un script de prueba (prueba de unidad)? Solo quiero tener una mejor comprensión y el enfoque correcto al usar Angularjs Framework.

Por favor, comparta sus pensamientos sobre esto. ¡Gracias!

Respuestas a la pregunta(2)

Su respuesta a la pregunta