Question [Module] PSAnalysis
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
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:
On apprend aussi dans ce contexte, mais pas les mêmes choses.moi j'étais plus sur du mode pompier tout le temps
Richard Lazaro écrit:
Je pensais à 'TokenAnalysis' à cause de ceci .sinon peut être le prefixé avec le prefix du module ?
Mais difficile à suivre, 'PS' c'est le premier terme de différenciation qui vient à l'esprit.
Richard Lazaro écrit:
Tu fais une différence avec l'imbrication ? Script/fonction Module/Fonction/Fonction interne privé, etcLa propriété Childs affiche les dépendances 'Parent/Enfant' et de cela (et en fonction du functionDefinition/Function) je peux déterminer le graphe
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:
Ce n'est pas évident, car on ne sait pas si l'auteur(e) s'appuie sur la valeur de cette variable.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.
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:
Qu'a cela ne tienne .Alors là, je veux bien que tu me parles un peu plus des visiteurs, c'est une notion que je ne connais pas
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
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 \"$FctName : <Start>\"
Write-Debug -Message \"$FctName : <Start>\"
[/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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
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.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
Hier je te disais :
Laurent Dardenne écrit:
En creusant un peu plus, le terme de 'vision' est trop vague, je référençais plutôt le rendu visuelle.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.
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 \"qu'est-ce que tu entends par dépendance ?\"
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.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Contributions à la communauté
- [Module] PSAnalysis