Question [Module] PSAnalysis

Plus d'informations
il y a 8 ans 10 mois #20247 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:[Module] PSAnalysis
Richard Lazaro écrit:

c'est cool d'avoir un retour comme ça.

;-)
J'ai préféré les poster ici, c'est plus rapide pour moi.
Richard Lazaro écrit:

moi j'étais plus sur du mode pompier tout le temps

On apprend aussi dans ce contexte, mais pas les mêmes choses.
Richard Lazaro écrit:

sinon peut être le prefixé avec le prefix du module ?

Je pensais à 'TokenAnalysis' à cause de ceci .
Mais difficile à suivre, 'PS' c'est le premier terme de différenciation qui vient à l'esprit.
Richard Lazaro écrit:

La propriété Childs affiche les dépendances 'Parent/Enfant' et de cela (et en fonction du functionDefinition/Function) je peux déterminer le graphe

Tu fais une différence avec l'imbrication ? Script/fonction Module/Fonction/Fonction interne privé, etc
De prendre en compte les cmdlets de module de base de PS, me semble verbeux. Et les additionnels dépendent de la version de Windows.
On peut être noyé de code, fait attention à ne pas nous noyer de métriques ;-)
Richard Lazaro écrit:

je pense remplacer le 'Get-Command -all' par une exécution d'un nouveau process powershell avec le -NoProfile et la variable de preference positionné sur none.

Ce n'est pas évident, car on ne sait pas si l'auteur(e) s'appuie sur la valeur de cette variable.
Je pense qu'il te faut qq scénarios, pour valider ton idée, avec l'AST une erreur d'analyse peut t'ammener à revoir une partie du code existant.
Enfin, j'ai rencontré ce problème. PS étant dynamique l'analyse du contexte est parfois difficile
A voir si le fichier profile peut être considéré comme une dépendance...
Et je n'ai pas vu d'analyse de fichier manifest, ni de module de type CDXml ( possible dépendance CIM ?), c'est prévu ?
Richard Lazaro écrit:

Alors là, je veux bien que tu me parles un peu plus des visiteurs, c'est une notion que je ne connais pas :)

Qu'a cela ne tienne .

Dans la fonction citée, à la première lecture je me suis dit que le switch t'oblige à modifier la fonction à chaque ajout d'analyse de token.
Alors qu'avec une liste de visiteurs +- découplé de la fonction, l'ajout se fait simplement, de plus ces visiteurs pourrait être externe.
Ta conception de ce traitement est peut être à revoir...

Je n'ai pas encore regardé le code du module PSScriptAnalyzer, il y a peut être des classes intéressantes pour ton projet. Au cas où, il en existe une version V3/V4

[edit]
Correction d'une coquille<br><br>Message édité par: Laurent Dardenne, à: 27/06/15 14:15

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 10 mois #20248 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:[Module] PSAnalysis
Pour la fonction Start-Analysis :
Dans l'aide intégré tu cites ta bal, je te conseille de citer ton projet et de laisser Github gérer le spam, s'il y en a :-)

Ici :
[code:1]
If (![String]::IsNullOrEmpty($PSBoundParameters.ErrorAction)) {
$ErrorActionPreference = $PSBoundParameters.ErrorAction
} Else {
$ErrorActionPreference = 'Stop'
}
[/code:1]
S'il s'agit d'une correction de bug, indique le lien du bug de MSConnect.
Pour le projet Psionic, j'ai indiqué ceci en début de projet :
[code:1]
#bugs PS v2 ( corrigé dans la v3) :
#parameters-initialization : connect.microsoft.com/PowerShell/feedbac...eters-initialization
#Write-Error : connect.microsoft.com/PowerShell/feedbac...doesnt-write-anyting
[/code:1]
Puis dans le code :
[code:1]
if (-not $PSBoundParameters.ContainsKey('Comment'))
{ $Comment=[String]::Empty} #bug v2 : parameters-initialization
[/code:1]
Tu peux aussi inventer ta convention, le plus important étant de donner des indications aux relecteurs de ton code.
Pour :
[code:1]
Process {
Write-Verbose -Message \&quot;$FctName : &lt;Start&gt;\&quot;
Write-Debug -Message \&quot;$FctName : &lt;Start&gt;\&quot;
[/code:1]
C'est redondant, ensuite dans ton traitement je doute(mais je peux me tromper) que le mode Verbose soit utile pour l'utilisateur, mais sa progression oui.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 10 mois #20280 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:[Module] PSAnalysis
Un autre point, les fonctions chargées en dotsource ne sont pas considérées. Je ne sais pas trop comment considérer cela :S

Si le fichier n'existe pas le résultat est $null( AutomationNull), s'il contient des erreurs le résultat est tronqué sans que l'on en soit informé.

J'ai regardé Glee (affichage des dépendances cité précédemment) et je me disais que le nombre de d'imbrication de IF n'est pas a afficher dans le graphe de dépendances. C'est plus une règle de codage à vérifier.

Le résultat de ton analyse me semble être une agrégation d'informations et la structure de données différente selon la vision que l'on souhaite avoir du code.

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 8 ans 10 mois #20303 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:[Module] PSAnalysis
La suite de mes réflexions sur le sujet des dépendances.
Hier je te disais :
Laurent Dardenne écrit:

Le résultat de ton analyse me semble être une agrégation d'informations et la structure de données différente selon la vision que l'on souhaite avoir du code.

En creusant un peu plus, le terme de 'vision' est trop vague, je référençais plutôt le rendu visuelle.

La notion de relation entre les différentes parties constituant un code PS me semble plus précise.

Voilà au moins deux types de relation que je trouve intéressantes :
--Dépend de - Utilisé par (Depends on - Used by)
--Contient - Est contenu dans (Contains - Contained by)

Je voulais te poser la question suivante \&quot;qu'est-ce que tu entends par dépendance ?\&quot;
L'aide d'un dico la rend caduque:

Dépendance : Relation de subordination, de solidarité ou de causalité.
Relation : Rapport, liaison qui existe, est conçu comme existant entre deux choses, deux grandeurs, deux phénomènes.


Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.090 secondes
Propulsé par Kunena