16.8K Views
September 30, 23
スライド概要
2023-09-30
Geeks Who Drink in Okayama 私の推しを聞いてくれ!edition
LT資料です。
※タイトルはイメージです。
人類はまだPowerShellの 便利さに気付いていない。 Geeks Who Drink in Okayama 私の推しを聞いてくれ!edition 2023-09-30 @nabe_yu_ jp
自己紹介 ● 𝕏 @nabe_yu_ jp ● SIer@岡山のプログラマ ○ Backlog大好き😊 ● 休日の過ごし方 ○ フェリー旅 ○ 農業
私の推し → PowerShell
PowerShell - Microsoftが開発したタスク自動化ソリューション - コマンドラインシェル - スクリプト言語 - 構成管理フレームワーク - 2006年に登場 - コマンドプロンプトの実質後継
PowerShell…?🙄 Windowsの話でしょ?
クロスプラットフォーム対応 Windows派以外の方もぜひお試しを!
目次 ● ● ● PowerShellと私の出会い ○ Windowsに泣いた新入社員時代 ○ 勉強会とSlackチャンネルで普及活動 推しポイント ○ .NETオブジェクトとパイプライン ○ 豊富なコマンドレット ○ 快適な開発環境 活用事例 ○ Backlog APIで問合せを管理する ○ Pixelaで写真の撮影枚数を可視化する
目次 ● ● ● PowerShellと私の出会い ○ Windowsに泣いた新入社員時代 ○ 勉強会とSlackチャンネルで普及活動 推しポイント ○ .NETオブジェクトとパイプライン ○ 豊富なコマンドレット ○ 快適な開発環境 活用事例 ○ Backlog APIで問合せを管理する ○ Pixelaで写真の撮影枚数を可視化する
Windowsに立ち向かう - 学生時代はUbuntuとbash/Pythonを4年間 - 入社後はクライアントもサーバもWindows系 - batなにもわからない・・・😱😱😱 - 標準搭載の装備で戦うしかない - PowerShellやってみよう! - オープンセミナー岡山で「ラストマン戦略」を聞いた - まずはチーム内で一番詳しくなろう!
1年くらい使っていると普及したくなってきた - 既存の文化に新しいものを入れるのはかなり難しい - 新人研修で「PowerShellについて」の勉強会をやってみた - まずは存在を知ってもらうところから - 社内チャットに#powershellチャンネルを作ってみた - 利用事例の紹介や質問受付 - 騒いでいるとベテランの先輩がノッてくれた
目次 ● ● ● PowerShellと私の出会い ○ Windowsに泣いた新入社員時代 ○ 勉強会とSlackチャンネルで普及活動 推しポイント ○ .NETオブジェクトとパイプライン ○ 豊富なコマンドレット ○ 快適な開発環境 活用事例 ○ Backlog APIで問合せを管理する ○ Pixelaで写真の撮影枚数を可視化する
文字列じゃなくてオブジェクトです lsの結果 (正確にはGet-ChildItem)
文字列じゃなくてオブジェクトです ● ls | gmの結果 (正確にはGet-ChildItem | Get-Member ) ● lsの結果はSystem.IO.DirectoryInfo型で返ってくる!
パイプラインでデータを流す - パイプラインで処理結果を繋げる - フィルタや繰り返しと処理を組み合わせると大体何でもできる - ForEach-Object { } : % { } - Where-Object { } : ? { } $_ は自動変数
豊富なコマンドレット - コマンドレットとは - PowerShellでオブジェクトを操作する単一機能のコマンド - 動詞と名詞をダッシュで区切った名前の形式(慣れます) - 標準で129個用意されている - 実はこの標準コマンドレットが結構便利なのです - もちろん自作もできるし、ModuleをImportできる
豊富なコマンドレット - ConvertFrom-Json/ConvertTo-Json (CSVもある) - Select-String (grep相当) - Sort-Object - Group-Object (SQLっぽい集計もできる) - Get-Content / Out-File (テキストファイル読み書き) - Invoke-RestMethod / Invoke-WebRequest (HTTP) それぞれ色々なオプションがある(-Tab補完で選ぶ)
意外と快適な開発環境 - VSCodeでスクリプトを書ける(拡張機能) - C#ほどではないがIntelliSenseが効く - Windows Terminalもよい - PSReadLineでfish風のオートサジェストもできる - スクリプトのパラメータを駆使するとオプション付きCLIツールも
目次 ● ● ● PowerShellと私の出会い ○ Windowsに泣いた新入社員時代 ○ 勉強会とSlackチャンネルで普及活動 推しポイント ○ .NETオブジェクトとパイプライン ○ 豊富なコマンドレット ○ 快適な開発環境 活用事例 ○ Backlog APIで問合せを管理する ○ Pixelaで写真の撮影枚数を可視化する
Backlog APIで問合せを管理する - 問合せをBacklogに集約して登録している - 「対応できる人が対応」していると属人化、負荷集中が発生 - 思い切ってランダムに担当者を振ってみる ?! - 負荷分散だけでなく、チーム内の暗黙知をはっきりさせるきっかけに [GET] 課題一覧 Windowsタスク スケジューラ 定期実行 ※Webhookを使えない環境のため 負荷をかけない間隔でポーリングしています。 問合せ監視 bot.ps1 Backlog [PATCH] 課題(担当者) [POST] 課題コメント 確認済み 課題.txt 担当者をリストから ランダムに選んで更新します。
Pixelaで写真の撮影枚数を可視化する - 旅先で写真を撮るのが趣味 - カメラから取り込んで、いい感じに整理して撮影枚数を可視化したい - 一連のフローをPowerShellで自動化する(CLI / WebAPIで制御可能) exiftool.exe PowerShell yyyy-MM-dd Pixela PixelaにPOST [POST] 日付、枚数
Pixelaで写真の撮影枚数を可視化する Pixelaで撮った写真の枚数を可視化する - nabe-yu
まとめ ● PowerShellは知名度が低いがとても便利 ● グルー言語として。素早くアイデアを形にできる ● 半径5m以内から普及活動をやっていく
まとめ ● PowerShellは知名度が低いがとても便利 ● グルー言語として。素早くアイデアを形にできる ● 半径5m以内から普及活動をやっていく 人類はまだPowerShellの 便利さに気付いていない。