並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 325件

新着順 人気順

"Static analysis"の検索結果1 - 40 件 / 325件

  • シェルスクリプトを書くときにいつもやるやつを調べた

    bash のシェルスクリプトを書くときに、いつも脳死で以下をやっている。(同僚が整備してくれたものをコピペしている) エディタなり CI で shellcheck をまわす set -euxo pipefail と冒頭に書く こんな感じ #!/bin/bash set -euxo pipefail いつまでもコピペではさすがにアレなので、意味を調べたメモ。 shellcheck koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts イケてない書き方に警告を出してくれる それぞれの警告にはエラーコード割り振られていてとても便利 エラーコードごとに正誤例、解説が書かれているのでわかりやすい SC1000 の例 CI もそうだし、エディタのプラグインも充実 しているのでとりあえず入れておくと良い set

      シェルスクリプトを書くときにいつもやるやつを調べた
    • セキュアにGoを書くための「ガードレール」を置こう - 安全なGoプロダクト開発に向けた持続可能なアプローチ - Flatt Security Blog

      The Go gopher was designed by Renee French. (http://reneefrench.blogspot.com/) The design is licensed under the Creative Commons 3.0 Attributions license. 種々の linter が様々なプロダクトの品質を高めてきた、というのは疑う余地のない事実です。実装の初歩的な問題をエディタ内や CI/CD パイプライン中で機械的に検出できる環境を作れば、開発者はコーディングやコードレビューの邪魔になる些末な問題を早期に頭から追い出し、本質的な問題に集中できます。 また、そのような環境づくり(e.g. linter のルールセットの定義、組織独自のルールの作成、…)は、まさに開発組織のベースラインを定義する作業として捉えることができます。一度誰かが定義

        セキュアにGoを書くための「ガードレール」を置こう - 安全なGoプロダクト開発に向けた持続可能なアプローチ - Flatt Security Blog
      • Testing JavaScript をやってみたら学びがあって良かった話 - Adwaysエンジニアブログ

        こんにちは。リファクタリングが大好きなフロントエンドおじさん梅津です。 自信を持ってリファクタリングするには信頼できる自動テストが必要ですよね。 じゃあ信頼できる自動テストとはなんだろう?どう書いたらいいんだろう?と考えていました。 とくにコンポーネントを含む UI テストに対しての悩みが強かったです。 そんなときに出会ったのが Testing JavaScript です。 この記事ではその Testing JavaScript の紹介をしたいと思います。 Testing JavaScript とは Testing JavaScript は PayPal のエンジニアである Kent C. Dodds によって作成された教材です。 ページを開いてすぐ目に飛び込んでくるテスティングトロフィーが特徴的ですね。 Testing JavaScript では、ここに記されている Static, Un

          Testing JavaScript をやってみたら学びがあって良かった話 - Adwaysエンジニアブログ
        • プロと読み解く Ruby 3.0 NEWS - クックパッド開発者ブログ

          技術部の笹田(ko1)と遠藤(mame)です。クックパッドで Ruby (MRI: Matz Ruby Implementation、いわゆる ruby コマンド) の開発をしています。お金をもらって Ruby を開発しているのでプロの Ruby コミッタです。 本日 12/25 に、ついに Ruby 3.0.0 がリリースされました。一昨年、昨年に続き、今年も Ruby 3.0 の NEWS.md ファイルの解説をします。NEWS ファイルとは何か、は一昨年の記事を見てください(なお Ruby 3.0.0 から、NEWS.md にファイル名を変えました)。 プロと読み解く Ruby 2.6 NEWS ファイル - クックパッド開発者ブログ プロと読み解くRuby 2.7 NEWS - クックパッド開発者ブログ Ruby 3.0 は、Ruby にとってほぼ 8 年ぶりのメジャーバージョンア

            プロと読み解く Ruby 3.0 NEWS - クックパッド開発者ブログ
          • AWS×コンテナで基本的なDevSecOpsアーキテクチャをデザインしたお話 - How elegant the tech world is...!

            はじめに 先日、僕が担当する業務でECS/Fargate利用を前提にDevSecOpsアーキテクチャをデザインし、社内のAWS勉強会にて登壇する機会をいただきました。 本ブログでも内容をかいつまんでご紹介できればと思います。 AWSによらず、コンテナを利用されている方にとって、一つのプラクティス例としてご参考になれば幸いです。 ※コンテナ自体の説明や必要性に関する内容は省略していますm(_ _)m そもそもDevOpsとは? DevSecOpsの導入意義をお伝えするた前に、まず軽くDevOpsの意義をお伝えします。 ※とは言え、この記事をご訪問されている方にとっては「何をいまさら...」な内容かもしれませんし、ググればDevOps自体の情報はたくさん見つかりますので、重要なポイントのみ述べることにします。 DevOpsとは、一言で述べれば、開発チームと運用チームが協力してビジネス価値を高め

              AWS×コンテナで基本的なDevSecOpsアーキテクチャをデザインしたお話 - How elegant the tech world is...!
            • textlint - Linterの作り方

              [fit] textlint - Linterの作り方 自己紹介 Name : azu Twitter : @azu_re Website: Web scratch, JSer.info Book: JavaScript Primer アジェンダ Linterを作る人向けの話 Linterの考え方とアーキテクチャを一致させる 使うものを作ろう、作るために使おう textlint とは 自然言語(日本語や英語など)に対するLinter MarkdownやHTMLなどのマークアップ言語に対応している ビルトインのルールは0 利用できるルールは100以上ある 多くのルールはオフラインで動くので、外部に入力してる内容を送信しない CI/CDに組み込める自然言語のチェッカー(表記揺れ、スペルチェック、誤用、読みやすさのチェックなど) textlint users Translation: Angul

              • Grit

                Grit automatically fixes technical debt by combining static analysis and machine learning to generate pull requests that clean up code and migrate to the latest frameworks.

                  Grit
                • The new wave of Javascript web frameworks

                  The new wave of Javascript web frameworksMake sense of the proliferation of new Javascript web frameworks. A deep dive into the problems at scale and the recent evolution of innovation. IntroductionStaying current in the Javascript ecosystem is not for the faint of heart. It’s challenging for those entering the industry to follow what’s happening amongst the new libraries, frameworks, concepts, an

                    The new wave of Javascript web frameworks
                  • level=0 から始める PHPStan(Larastan) 導入ガイド - Shin x Blog

                    PHP にはアプリケーションを実行せずに静的にコード品質をチェックする静的解析ツールがいくつかあります。有名なところでは、PHPStan や Psalm、Phan、PHPMD などがあります。本エントリでは、まだこうした静的解析ツールを導入していないプロジェクト向けに PHPStan 導入の流れをまとめてみました。 3(4) 行まとめ サンプルコード PHPStan とは 適用方針 Playground PHPStan のインストール Composer Composer(Larastan) Docker 設定ファイルの作成 PHPStan の実行 主なエラー(level=0) baseline ファイルの作成 baseline ファイルの修正 CI での自動実行 GitHub Actions の設定 ブランチ保護ルール さいごに 3(4) 行まとめ composer もしくは Docker

                      level=0 から始める PHPStan(Larastan) 導入ガイド - Shin x Blog
                    • Go公式のlinter、Golintが非推奨になった

                      Goが公式で出していたGolintがdeprecated/frozenしました。 メンテがされていない 2018年から実質的な変更が加わってない Issueも放置されているものが多い golang orgに存在するlinterなのでGoが公式として推奨しているlinterに見える Go が実際には保守されていないプログラムを公式として推奨しているように見えてしまう 開発者は合理的に異なるスタイルを採用したい場合がある Golint単体で特定の警告を無視したりするなどの機能を持っていない ということからattractive nuisance(魅力的な迷惑者)になっているというProposalでした。 Issueの議論を見てもdeprecate/frozenすることに対して否定的な意見は少なく、一年ほど前にapproveされました。(なので「非推奨にしよう」なったの自体は少し前の話です) そし

                        Go公式のlinter、Golintが非推奨になった
                      • Terraformのセキュリティ静的解析 tfsec の導入から始めるAWSセキュリティプラクティス - BASEプロダクトチームブログ

                        こんにちは。BASE BANK 株式会社 Dev Division にて、 Software Developer をしている東口(@hgsgtk)です。 BASE BANK Dev での開発では、クラウドインフラの構成管理に、 Terraform を利用しています。 世の情報をたくさんキュレーションしている CTO の@dmnlkさんに、手軽に CI に組み込めそうなセキュリティチェックツールがあることを教えてもらったので、導入してみました。 CTO氏のキュレーションメディアで紹介された tfsec を早速試して良さそうだったhttps://t.co/bl67dlW2Ub https://t.co/vAkTOVagec— Kazuki Higashiguchi (@hgsgtk) August 21, 2020 このブログの公開日は 2020/10/30 ですので、導入してから約 2 ヶ月

                          Terraformのセキュリティ静的解析 tfsec の導入から始めるAWSセキュリティプラクティス - BASEプロダクトチームブログ
                        • Pythonのコード改善のためのツール5つを試してみた - minus9d's diary

                          Pythonのコードを改善するためのツールについて一通り試してみました。各ツールのインストール方法や使い方については Pythonのスタイルガイドとそれを守るための各種Lint・解析ツール5種まとめ! - Sider Blog に詳細にまとまっているのでおすすめです。 サンプルコード 以下のサンプルコードを対象に、各ツールの出力を確かめてみます。 import time import sys import fractions def func1(varA,varB): '''return sum of a and b''' varC = 42 return (varA + varB) print(func1(fractions.Fraction(1, 2), fractions.Fraction(1, 3))) 3 + 5 sys.exit(0) このスクリプトをsample.pyという名

                            Pythonのコード改善のためのツール5つを試してみた - minus9d's diary
                          • コンテナセキュリティを始めるための無料ツール5つとドキュメント3つの紹介 | DevelopersIO

                            コンテナセキュリティについてなんとなく不安を感じている方に向けた、ドキュメントと無料ツールの紹介です! 「コンテナセキュリティってなんか必要そうやねんけど、実際なにすんの?」 先日、我らがDevelopers.IO Cafeにおいて、クリエーションライン株式会社 (CREATIONLINE, INC.)様と共催で、以下のイベントを開催しました。 あなたのコンテナ運用大丈夫?コンテナセキュリティの考え方と対応策 - connpass 全部で3セッションで構成されているのですが、私の方では、「コンテナセキュリティ関連OSSの紹介」と題して、コンテナセキュリティこれから検討始めようという方に向けて、そのとっかかりに有用なドキュメントと無料ツールを紹介させていただきました。 ドキュメントもツールもどれも有用なものなので、コンテナセキュリティについて不安や必要性を感じている人は、これらの中から実際に

                              コンテナセキュリティを始めるための無料ツール5つとドキュメント3つの紹介 | DevelopersIO
                            • GitHub Actions: Manual triggers with workflow_dispatch

                              July 6, 2020 You can now create workflows that are manually triggered with the new workflow_dispatch event. You will then see a ‘Run workflow’ button on the Actions tab, enabling you to easily trigger a run. You can choose which branch the workflow is run on. In addition, you can optionally specify inputs, which GitHub will present as form elements in the UI. Workflow dispatch inputs are specified

                                GitHub Actions: Manual triggers with workflow_dispatch
                              • What it was like working for GitLab

                                I joined GitLab in October 2015, and left in December 2021 after working there for a little more than six years. While I previously wrote about leaving GitLab to work on Inko, I never discussed what it was like working for GitLab between 2015 and 2021. There are two reasons for this: I was suffering from burnout, and didn't have the energy to revisit the last six years of my life (at that time)I w

                                • 【超待望アップデート】ECRに対する脆弱性スキャン機能が提供されました | DevelopersIO

                                  待望と言って良いアップデートです。ECRのイメージに対する脆弱性スキャン機能がマネージドで提供されました。まずは、皆さんのコンテナワークロードにおけるイメージの脆弱性スキャン実施してみて足元を振り返ってみてはいかがでしょうか? 「俺はこの日を待ち望んでいた…ほんまやで…」 本日、非常に重大なアップデートがECRに舞い降りてきました。なんと、ECRに対するイメージスキャンが実装されたとのことです! Announcing Image Scanning for Amazon ECR コンテナセキュリティを考えるにあたり、一番最初に気をつけておきたい点がそのコンテナイメージで導入したパッケージに対する脆弱性の混入。今まででも、aquasecurity/trivyや、goodwithtech/dockleなど、フリーで利用できる優秀なツールは存在していましたが、それぞれCI/CDパイプラインへの組み

                                    【超待望アップデート】ECRに対する脆弱性スキャン機能が提供されました | DevelopersIO
                                  • Pysa: An open source static analysis tool to detect and prevent security issues in Python code

                                    Pysa: An open source static analysis tool to detect and prevent security issues in Python code Today, we are sharing details about Pysa, an open source static analysis tool we’ve built to detect and prevent security and privacy issues in Python code. Last year, we shared how we built Zoncolan, a static analysis tool that helps us analyze more than 100 million lines of Hack code and has helped engi

                                      Pysa: An open source static analysis tool to detect and prevent security issues in Python code
                                    • バグハント入門 (OSS編) - blog of morioka12

                                      1. 始めに こんにちは、morioka12 です。 本稿では、バグハントの入門として、主に Web アプリケーションの OSS に焦点をおき、脆弱性の発見・報告・CVE ID の取得について紹介します。 1. 始めに 免責事項 想定読者 筆者のバックグラウンド 2. CVE とは 3. 探す対象の選び方 OSS Topic (Type) 特定の条件で絞る バグバウンティの OSS 4. 脆弱性の検証方法 アプローチ方法 5. 脆弱性の報告先 6. 報告書の書き方 CVSS CWE 7. 脆弱性発見から CVE ID の取得までの流れ 注意点 8. バグハント前のスキル準備 過去の CVE ID やレポート Web Security の場合 9. その他 その後のチャレンジ バグバウンティ入門 セキュリティエンジニアを目指す就活生の方へ OSS の開発者の方へ 10. 終わりに 免責事項

                                        バグハント入門 (OSS編) - blog of morioka12
                                      • What I learned from Software Engineering at Google | Swizec Teller

                                        Senior Mindset BookGet promoted, earn a bigger salary, work for top companies Start with a free chapterGet a free chapter from the Senior Engineer Mindset book and a sample audiobook chapter, followed by a Senior Mindset 101 email course. What I learned from Software Engineering at GoogleWhen I first picked up Software Engineering at Google I thought it was another one of those FAANG books full of

                                          What I learned from Software Engineering at Google | Swizec Teller
                                        • PHP Conference Japan 2020 スライドまとめ - Qiita

                                          PHP Conference Japan 2020 Re:born 公式サイト: https://phpcon.php.gr.jp/2020 公式YouTubeチャンネル: https://www.youtube.com/user/PHPConferenceJP 公式ツイッター: https://twitter.com/phpcon 公式Discord: https://twitter.com/phpcon/status/1337547720806989824?s=20 ハッシュタグ: #phpcon #phpcon2020 日時: 2020.12.12 SAT YouTube Live PHP Conference Japan 2020 - Track 1 PHP Conference Japan 2020 - Track 2 PHP Conference Japan 2020 - Tr

                                            PHP Conference Japan 2020 スライドまとめ - Qiita
                                          • Speculation in JavaScriptCore

                                            This post is all about speculative compilation, or just speculation for short, in the context of the JavaScriptCore virtual machine. Speculative compilation is ideal for making dynamic languages, or any language with enough dynamic features, run faster. In this post, we will look at speculation for JavaScript. Historically, this technique or closely related variants has been applied successfully t

                                            • CISSP 勉強ノート

                                              目次の表示 1. 情報セキュリティ環境 1-1. 職業倫理の理解、遵守、推進 職業倫理 (ISC)2 倫理規約 組織の倫理規約 エンロン事件とSOX法の策定 SOC (System and Organization Controls) レポート 1-2. セキュリティ概念の理解と適用 機密性、完全性、可用性 真正性、否認防止、プライバシー、安全性 デューケアとデューデリジェンス 1-3. セキュリティガバナンス原則の評価と適用 セキュリティ機能のビジネス戦略、目標、使命、目的との連携 組織のガバナンスプロセス 組織の役割と責任 1-4. 法的環境 法的環境 契約上の要件、法的要素、業界標準および規制要件 プライバシー保護 プライバシーシールド 忘れられる権利 データポータビリティ データのローカリゼーション 国と地域の例 米国の法律 [追加] サイバー犯罪とデータ侵害 知的財産保護 輸入と

                                                CISSP 勉強ノート
                                              • The End of Programming – Communications of the ACM

                                                The end of classical computer science is coming, and most of us are dinosaurs waiting for the meteor to hit. I came of age in the 1980s, programming personal computers such as the Commodore VIC-20 and Apple ][e at home. Going on to study computer science (CS) in college and ultimately getting a Ph.D. at Berkeley, the bulk of my professional training was rooted in what I will call “classical” CS: p

                                                • Windows Package Manager Preview

                                                  We are thrilled to announce the Windows Package Manager preview! If you’re already familiar with what a package manager is, feel free to skip this paragraph. If you’re still reading, you’re going to love this! A package manager is designed to help you save time and frustration. Essentially, it is a set of software tools that help you automate the process of getting software on your machine. You sp

                                                    Windows Package Manager Preview
                                                  • CommonJS is hurting JavaScript

                                                    JavaScript, the undisputed king of web development, is being sabotaged — not by a rival language or a revolutionary new technology, but by its own baggage from the past. This insidious saboteur is none other than CommonJS, the antique module system that we’ve tolerated for far too long. The rise of CommonJSAbout 15 years after its invention, JavaScript started expanding beyond the browser to the s

                                                      CommonJS is hurting JavaScript
                                                    • GitHub - semgrep/semgrep: Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.

                                                      This repository contains the source code for Semgrep OSS (open-source software). Semgrep OSS is a fast, open-source, static analysis tool for searching code, finding bugs, and enforcing code standards at editor, commit, and CI time. Semgrep is a semantic grep for code: where grep "2" would only match the exact string 2, Semgrep would match x = 1; y = x + 1 when searching for 2. And it does this in

                                                        GitHub - semgrep/semgrep: Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.
                                                      • Elm at Rakuten | Rakuten Engineering Blog

                                                        In our team at Rakuten, we have been using Elm1 in production for almost two years now. This post is about our story, the lessons we learned, and our likes and dislikes. This post is quite long so if you prefer to see an overview, feel free to jump to the index. Everything started in the Berlin branch of Rakuten during the summer of 2017. We were maintaining a medium-size single-page application w

                                                          Elm at Rakuten | Rakuten Engineering Blog
                                                        • M1RACLES: An Apple M1 Vulnerability

                                                          M1RACLES (CVE-2021-30747) is a covert channel vulnerability in the Apple Silicon “M1” chip. Executive Summary A flaw in the design of the Apple Silicon “M1” chip allows any two applications running under an OS to covertly exchange data between them, without using memory, sockets, files, or any other normal operating system features. This works between processes running as different users and under

                                                            M1RACLES: An Apple M1 Vulnerability
                                                          • Webpack 5 release (2020-10-10) | webpack

                                                            Webpack 4 was released in February 2018. Since then we shipped a lot of features without breaking changes. We know that people dislike major changes with breaking changes. Especially with webpack, which people usually only touch twice a year, and the remaining time it "just works". But shipping features without breaking changes also has a cost: We can't do major API or architectural improvements.

                                                              Webpack 5 release (2020-10-10) | webpack
                                                            • How to make an awesome Python package

                                                              If you are like me, every once in a while you write a useful python utility and want to share it with your colleagues. The best way to do this is to make a package: it easy to install and saves from copy-pasting. If you are like me, you might be thinking that creating packages is a real headache. Well, that's not the case anymore. And I am going to prove it with this step-by-step guide. Just three

                                                                How to make an awesome Python package
                                                              • How we built Pingora, the proxy that connects Cloudflare to the Internet

                                                                How we built Pingora, the proxy that connects Cloudflare to the Internet09/14/2022 This post is also available in 简体中文 and 繁體中文. IntroductionToday we are excited to talk about Pingora, a new HTTP proxy we’ve built in-house using Rust that serves over 1 trillion requests a day, boosts our performance, and enables many new features for Cloudflare customers, all while requiring only a third of the CP

                                                                  How we built Pingora, the proxy that connects Cloudflare to the Internet
                                                                • Get Ready For ESM

                                                                  JavaScript Modules will soon be a reality for Node.js package maintainers. Edit: It’s now a reality! This blog post is targeted Node.js package maintainers. At the end of April 2021, Node.js 10 will be end-of-life, which means that package maintainers can target Node.js 12. This Node.js version has full support for JavaScript Modules, also known as ESM. From the left: Addy Osmani, Dave Herman, and

                                                                    Get Ready For ESM
                                                                  • Terraform Security Best Practices

                                                                    Terraform is the de facto tool if you work with infrastructure as code (IaC). Regardless of the resource provider, it allows your organization to work with all of them simultaneously. One unquestionable aspect is Terraform security, since any configuration error can affect the entire infrastructure. In this article we want to explain the benefits of using Terraform, and provide guidance for using

                                                                      Terraform Security Best Practices
                                                                    • GitHub - microsoft/ApplicationInspector: A source code analyzer built for surfacing features of interest and other characteristics to answer the question 'What's in the code?' quickly using static analysis with a json based rules engine. Ideal for scannin

                                                                      Microsoft Application Inspector is a software source code characterization tool that helps identify coding features of first or third party software components based on well-known library/API calls and is helpful in security and non-security use cases. It uses hundreds of rules and regex patterns to surface interesting characteristics of source code to aid in determining what the software is or wh

                                                                        GitHub - microsoft/ApplicationInspector: A source code analyzer built for surfacing features of interest and other characteristics to answer the question 'What's in the code?' quickly using static analysis with a json based rules engine. Ideal for scannin
                                                                      • JSConf JP 2023 公開資料・Xアカウントリンクまとめ

                                                                        2023/11/19(日)で開催された JSConf JP 2023に関する、現時点での公開資料と X アカウントリンクをまとめました。 よろしければご活用ください。 はじめに 登壇者名は敬称略させていただいています。 x アカウントについては、以下のように確認できたものを記載しております。 JSConf JP 公式サイトに記載がある JSConf JP 公式サイトに記載のプロフィールと一致している 当イベントで登壇されることに言及されている スライドに記載されている リンクの間違い等ありましたらコメントいただけると助かります🙏 アーカイブ 本イベントは YouTube で配信されていましたが、執筆時点ではトラック A の動画が非公開になっていました。 アーカイブとして残るのかがわからなかったため、一旦 JSConf JP の YouTube アカウントへのリンクのみ記載にしておきます。

                                                                          JSConf JP 2023 公開資料・Xアカウントリンクまとめ
                                                                        • Interesting Programming Languages

                                                                          Interesting Programming Languages an opinionated collection of programming languages. Created: Feb 19, 2020 by Pradeep Gowda Updated: May 17, 2024 Tagged: programming-language An opinionated collection of programming languages. This is a list of what I consider interesting. Requests to add to this list are welcome, but there is no guarantee I’ll include them. As you can see many mainstream program

                                                                          • How to Fix Slow Code in Ruby

                                                                            Opens in a new windowOpens an external siteOpens an external site in a new window By Jay Lim and Gannon McGibbon At Shopify, we believe in highly aligned, loosely coupled teams to help us move fast. Since we have many teams working independently on a large monolithic Rails application, inefficiencies in code are sometimes inadvertently added to our codebase. Over time, these problems can add up to

                                                                              How to Fix Slow Code in Ruby
                                                                            • EuRuKo 2019 で発表してきました - クックパッド開発者ブログ

                                                                              技術部でフルタイム Ruby コミッタをしている遠藤(@mametter)です。フルタイムで Ruby を開発しています。 先日、オランダのロッテルダムで開催された EuRuKo 2019 で発表してきたので、簡単にレポートします。 EuRuKo とは EuRuKo は、毎年ヨーロッパのどこかで開催されている Ruby のカンファレンスです。 EuRuKo 2019 会場 シングルセッション 世界の Ruby カンファレンスといえば、アメリカの RubyConf 、ヨーロッパの EuRuKo 、日本の RubyKaigi だと勝手に思っていますが、この中で EuRuKo の特徴というと、シングルセッションなことです*1。つまり、発表を聞く会議室は 1 つだけです。どれを聞くか迷わなくていいですね。 必然的に、発表の数は少ないです。YouTube の動画の数を見てみると、RubyConf 2

                                                                                EuRuKo 2019 で発表してきました - クックパッド開発者ブログ
                                                                              • Hypermodern Python

                                                                                Read this article on Medium New Year 2020 marks the end of more than a decade of coexistence of Python 2 and 3. The Python landscape has changed considerably over this period: a host of new tools and best practices now improve the Python developer experience. Their adoption, however, lags behind due to the constraints of legacy support. This article series is a guide to modern Python tooling with

                                                                                • OPA/Regoによる汎用的なGo言語の静的解析

                                                                                  TL; DR Go言語は様々な静的解析ツールがあるが、独自ルールのチェックなどをするには都度ツールを自作する必要がある 1つのツールでより汎用的なチェックができるように、汎用ポリシー言語のRegoでGo言語のAST(抽象構文木)を検査できるようにした 「第一引数に必ずcontext.Contextをとる」というルールをCIでチェックした様子 背景 Go言語では様々な静的解析ツールが提供されており、一般的なベストプラクティスが正しく記述されているか?については既存の静的解析ツールを利用することで概ね必要なチェックをすることができます。例えばセキュアなGoのコーディングをするためのツールとして gosec などがあり、自分も愛用させてもらっています。しかし、ソフトウェア開発におけるコーディング上のルールはベストプラクティスによるものだけでなく、そのソフトウェアやチームに依存したルールというのも

                                                                                    OPA/Regoによる汎用的なGo言語の静的解析