亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目次
プロジェクトウォレスとは何ですか?
コマンドラインインターフェイス
Constyble Code Checker
アナライザ
レポーター
CSSの複雑さを分析します
CSSセレクターループの複雑さ
ルールセットあたりの宣言の數(shù)(結(jié)束)
ソースコード行の數(shù)
ルールごとの選択者の平均數(shù)
Project Wallaceを使用することの収穫
ホームページ ウェブフロントエンド CSSチュートリアル CSSの品質(zhì)と複雑さを監(jiān)視するスタックを探して

CSSの品質(zhì)と複雑さを監(jiān)視するスタックを探して

Apr 18, 2025 am 11:22 AM

CSSの品質(zhì)と複雑さを監(jiān)視するスタックを探して

多くの開発者は、CSSコードベースを維持する方法について書いていますが、コードベースの品質(zhì)を測定する方法について書く人はほとんどいません。もちろん、StylelintやCSSLINTなどの優(yōu)れたコードチェックツールがありますが、マイクロレベルでのエラーのみを防ぐことができます。間違ったカラー表記を使用し、Autoprefixerが既に使用されているときにベンダープレフィックスを追加し、一貫性のない方法でセレクターを書き込みます...など。

私たちは常に、CSSの書き込み方法を改善する方法を探しています:OOCSS、BEM、SMACSS、ITCSS、実用的な最初、その他。しかし、他の開発コミュニティは、単純なコードチェックツールからSonarqubeやPHP Mess Detectorなどのツールに進(jìn)化したようですが、CSSコミュニティには淺いLintルールよりも詳細(xì)なチェックツールがまだありません。これを行うために、CSSの品質(zhì)をチェックして実施するためのツールのセットであるProject Wallaceを作成しました。

プロジェクトウォレスとは何ですか?

Projectの中心にあるWallaceは、コマンドラインインターフェイス、コードインスペクター、アナライザー、レポーターなどのツールのセットです。

これらのツールの簡単な概要を次に示します。

コマンドラインインターフェイス

これにより、コマンドラインでCSS分析を?qū)g行し、提供するCSSの統(tǒng)計(jì)を取得できます。

Constyble Code Checker

これは、CSS専用に設(shè)計(jì)されたコードチェッカーです。ウォレスによって生成された分析結(jié)果に基づいて、超えてはならないしきい値を設(shè)定できます。たとえば、単一のCSSルールには10を超えるセレクターを含めるべきではないか、平均セレクターの複雑さが3を超えてはなりません。

アナライザ

その名前が示すように抽出CSS:WebページからすべてのCSSを抽出して、分析のためにProjectWallace.comに送信できるようにします。

レポーター

抽出CSSのすべての分析結(jié)果はProjectWallace.comに送信され、ダッシュボードにはすべてのデータのレポートが含まれています。 CSSの統(tǒng)計(jì)に似ていますが、より多くのメトリックを追跡し、時(shí)間の経過とともにストアの結(jié)果を追跡し、ダッシュボードに表示します。また、2つの時(shí)點(diǎn)と他の多くの機(jī)能の違いも示しています。

CSSの複雑さを分析します

CSSの複雑さに関する記事はあまりありませんが、ハリー?ロバーツ(CSSwizardry)が書いた1つは感銘を受けました。ポイントは、各CSSセレクターが基本的にIFステートメントの束であるということです。これは、コンピューターサイエンスコースを受講するときに手動で計(jì)算しなければならなかった方法のループの複雑さを思い出させます。ハリーの記事は、CSSセレクターの複雑さを計(jì)算するモジュールを書くことができるため、私にとって非常に理にかなっています - もちろん、それは複雑さの観點(diǎn)からはまったく異なる質(zhì)問であるため、特異性と混同しないことです。

基本的に、CSSの複雑さは多くの形で來ることがありますが、コードベースをレビューするときに私が最も注意を払うことのいくつかを以下に示します。

CSSセレクターループの複雑さ

セレクターの各部分は、ブラウザが別のIFステートメントを?qū)g行する必要があることを意味します。より長いセレクターは、より短いセレクターよりも複雑です。デバッグは困難であり、ブラウザの解析はより遅く、カバーするのが難しいです。

 <code>.my-selector {} /* 1 個(gè)標(biāo)識符*/ .my #super [complex^="selector"] > with ~ many :identifiers {} /* 6 個(gè)標(biāo)識符*/</code>

ルールセットあたりの宣言の數(shù)(結(jié)束)

多くの宣言を含むルールセットは、少數(shù)の宣言を含むルールセットよりも複雑です。 TailwindやTachyonsなどの機(jī)能的なCSSフレームワークの人気は、CSS自體の相対的な「シンプルさ」に起因する可能性があります。

 <code>/* 1 條規(guī)則,1 個(gè)聲明=> 內(nèi)聚性= 1 */ .text-center { text-align: center; } /* 1 條規(guī)則,8 個(gè)聲明=> 內(nèi)聚性= (1 / 8) = 0.125 */ .button { background-color: blue; color: white; padding: 1em; border: 1px solid; display: inline-block; font-size: normal; font-weight: bold; text-decoration: none; }</code>

ソースコード行の數(shù)

コードが多いほど、複雑さが増えます。コードの各行は維持されるため、レポートに含まれています。

ルールごとの選択者の平均數(shù)

通常、ルールには1つのセレクターが含まれますが、時(shí)にはそれ以上が含まれます。これにより、CSSの一部を削除することが困難になり、より複雑になります。

これらのメトリックはすべて、Project Wallaceがツールセットで使用するCSS複雑さコードチェッカーであるConstybleを使用してコードチェックできます。メトリックのベースラインを定義した後、Constybleをインストールして構(gòu)成ファイルを設(shè)定するだけです。 Constyble ReadMeから直接抽出した構(gòu)成ファイルの例を次に示します。

 <code>{ // 不要超過4095 個(gè)選擇器,否則IE9 將刪除任何后續(xù)規(guī)則"selectors.total": 4095, // 我們不需要ID 選擇器"selectors.id.total": 0, // 如果出現(xiàn)除這些顏色之外的任何其他顏色,則報(bào)告錯(cuò)誤! "values.colors.unique": ["#fff", "#000"] }</code>

最良の部分は、Constybleが最終的なCSSで実行されることです。そのため、SASS、Less、PostCSS、または使用するその他のプリプロセッサからのすべての前処理作業(yè)の後にのみ操作を?qū)g行します。これにより、セレクターの総數(shù)または平均セレクターの複雑さをスマートチェックすることができます。どのコードインスペクターと同様に、ビルドステップの一部として使用でき、問題が発生した場合、ビルドは失敗します。

Project Wallaceを使用することの収穫

Project Wallaceをしばらく使用した後、複雑さを追跡するのに最適であることがわかりました。主にこの目的に使用されていますが、CSSの検査官が検査されないコードをチェックしているため、CSSのコード検査官が見つからない可能性のある微妙なエラーを見つける良い方法でもあります。ここに私が見つけたいくつかの興味深いことがあります:

  • スプリント中にサイトの一貫性のない色を修正する必要があるユーザーストーリーの數(shù)を數(shù)えるのを停止しました。數(shù)年前からプロジェクトがあり、人々は會社に出入りしています。これは、ウェブサイト上のすべてのブランド色を間違えたことの秘密です。幸いなことに、私たちは、クライアントのブランドが新しいプロジェクトで非常に正確であることを証明することができたため、ConstybleとProject Wallaceを?qū)g裝して利害関係者の認(rèn)識を得ました。 Constybleは、スタイルガイドにない色を追加することを防ぎます。
  • 私は、以前の雇用主が働いているプロジェクトにProject Wallace Webhooksをインストールしました。プロジェクトに新しいCSSを追加するたびに、CSSをProjectWallace.comに送信し、プロジェクトのダッシュボードにすぐに表示されます。これにより、特定のセレクターまたはメディアクエリがCSSに追加されたときに簡単に見つけることができます。
  • 今年初めにCSS-Tricksの再設(shè)計(jì)は、複雑さとファイルサイズが大幅に低下することを意味しました。再設(shè)計(jì)は素晴らしく、分析できます。舞臺裏の狀況を詳しく見て、著者がどのようにCSSを変えたかを把握する機(jī)會が與えられます。どのセクションがサイトで機(jī)能しないか、どの新しいセクションが適用されないかを知ることで、CSSがどれだけ速く成長しているかを知ることができます。
  • オランダに拠點(diǎn)を置く大規(guī)模な國際企業(yè)は、かつてCSSファイルに4095を超えるセレクターを持っていました。彼らは積極的に新興市場を開発していることを知っており、Internet Explorer 8をサポートする必要があります。IE9は4095セレクターの後にすべてのCSSを読み取るのを停止するため、CSSのほとんどは古いIEブラウザーには適用されません。私は彼らにメールを送信し、彼らは問題を確認(rèn)し、CSSを2つのファイルに分割することですぐにそれを修正しました。
  • GitLabは現(xiàn)在、70を超えるユニークなフォントサイズを使用しています。彼らのタイポグラフィは複雑であると確信していますが、これは少し野心的すぎるようです。たぶんそれは一部のサードパーティのCSSのためですが、判斷するのは難しいです。
  • 他の開発者からプロジェクトを継承するとき、私はCSS分析結(jié)果をレビューして、プロジェクトの困難を理解します。彼らは大量にそれを使用していますか!重要ですか?平均ルールセットサイズは理解しやすいですか、それともルールあたり20以上の宣言を追加しますか?平均セレクターの長さはどれくらいで、カバーするのは難しいですか? .complex-selector-override \ [class \] [class] ... [class]に頼らないのはいいことです。
  • ズームアウトが効果的であるかどうかを確認(rèn)する巧妙なトリックは、コードのライン番號インジケーターが1以下でないかどうかを確認(rèn)することです。CSSの縮小は、すべてのCSSが1行に配置されるため、コードの行の數(shù)は1に等しい必要があります。
  • 私の他のプロジェクトで常に起こったことは、縮小しなかったことでした。 Project Wallaceの違いが、#aaaaの代わりに#aaaaaのように多くの色が突然書かれていることを示すまで、私は知りません。これ自體は悪いことではありませんが、同時(shí)に非常に多くの色で起こり、何かが間違っていたに違いありません。簡単な調(diào)査で、私が縮小することを間違えたことが示されました。
  • Stackoverflowには、白い色を書くための4つのユニークな方法があります。これは必ずしも悪いことではありませんが、CSSの模倣プログラムが設(shè)計(jì)システムで破損または矛盾していることの兆候である可能性があります。
  • Facebook.comは、CSSに650以上のユニークな色を持っています。壊れた設(shè)計(jì)システムも可能性のように聞こえ始めています。
  • 私の以前の雇用主からのプロジェクトは、入力[type =チェックボックス]を示しています。綿密な検査の後、このセレクターは別の入力にネストされた入力を見つけることがわかりました。これはHTMLでは不可能であり、CSSでコンマを忘れてしまったに違いないと思います。これについて警告するコードチェッカーはありません。
  • CSSの前処理者に巣を作るのはクールですが、@media(max-width:670px)や(max-width:670px)のような間違ったものを引き起こす可能性があります

プロジェクトウォレスにとって、これは氷山の一角にすぎません。 CSSの分析を開始すると、學(xué)習(xí)して発見することがさらにあります。自分の統(tǒng)計(jì)だけでなく、他の人がしていることも見てください。

Constyble構(gòu)成を、経験の少ない開発者との會話のトピックとして使用して、複雑なCSSブロックに基づいて構(gòu)築できない理由を説明しました。他の開発者と議論することで、特定のCSS作成方法を回避または宣伝する必要がある理由は、知識を転送するのに役立ちます。また、足を地面に保つのにも役立ちます。助けたいだけのPHP開発者に説明しなければならないことで、私が何年もやったことは、なぜ私が自分のやり方で物事をしているのかを考え直しました。

私の目標(biāo)は、CSSで正しいか間違っているかを誰かに伝えることではなく、あなたとあなたの同僚に役立つものを確認(rèn)できるようにツールを作成することです。 Project Wallaceは、私たちが書いているCSSを理解するのに役立つためにここにいます。

以上がCSSの品質(zhì)と複雑さを監(jiān)視するスタックを探しての詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國語 Web サイトの他の関連記事を參照してください。

このウェブサイトの聲明
この記事の內(nèi)容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰屬します。このサイトは、それに相當(dāng)する法的責(zé)任を負(fù)いません。盜作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡(luò)ください。

ホットAIツール

Undress AI Tool

Undress AI Tool

脫衣畫像を無料で

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

寫真から衣服を削除するオンライン AI ツール。

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中國語版

SublimeText3 中國語版

中國語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ロードスピナーとアニメーションを作成するためのCSSチュートリアル ロードスピナーとアニメーションを作成するためのCSSチュートリアル Jul 07, 2025 am 12:07 AM

CSSロード回転子を作成するには3つの方法があります。1。境界の基本回転子を使用して、HTMLとCSSを介してシンプルなアニメーションを?qū)g現(xiàn)します。 2。複數(shù)のポイントのカスタム回転子を使用して、異なる遅延時(shí)間を経てジャンプ効果を?qū)g現(xiàn)します。 3.ボタンに回転子を追加し、JavaScriptを介してクラスを切り替えて、読み込みステータスを表示します。各アプローチは、ユーザーエクスペリエンスを向上させるために、色、サイズ、アクセシビリティ、パフォーマンスの最適化などのデザインの詳細(xì)の重要性を強(qiáng)調(diào)しています。

CSSブラウザの互換性の問題とプレフィックスに対処します CSSブラウザの互換性の問題とプレフィックスに対処します Jul 07, 2025 am 01:44 AM

CSSブラウザの互換性とプレフィックスの問題に対処するには、ブラウザサポートの違いを理解し、ベンダーのプレフィックスを合理的に使用する必要があります。 1. FlexBoxやグリッドのサポート、位置:粘著性の無効、アニメーションのパフォーマンスなどの一般的な問題を理解することは異なります。 2. CANIUSE確認(rèn)機(jī)能サポートステータスを確認(rèn)します。 3. -webkit-、-moz-、-ms-、-o-およびその他のメーカーのプレフィックスを正しく使用します。 4.自動的にプレフィックスを追加するためにAutoprefixerを使用することをお勧めします。 5. PostCSSをインストールし、ターゲットブラウザを指定するようにBrowserSlistを構(gòu)成します。 6.建設(shè)中の互換性を自動的に処理します。 7. Modernizr検出機(jī)能は、古いプロジェクトに使用できます。 8.すべてのブラウザの一貫性を追求する必要はありません、

ディスプレイの違いは何ですか:インライン、ディスプレイ:ブロック、ディスプレイ:インラインブロック? ディスプレイの違いは何ですか:インライン、ディスプレイ:ブロック、ディスプレイ:インラインブロック? Jul 11, 2025 am 03:25 AM

Themaindifferencesbetweendisplay:インライン、ブロック、およびinline-blockinhtml/cssarelayoutbehavior、spaceusage、andstylingcontrol.1.inlineelementsflowwithtext、notstartonnewlines、nagrorewidth/height、height、andonlyhorizo??ntalpadddddddddddddddding

CSSクリップパスでカスタムシェイプを作成します CSSクリップパスでカスタムシェイプを作成します Jul 09, 2025 am 01:29 AM

CSSのクリップパス屬性を作物要素に使用して、寫真やSVGに依存することなく、三角形、円形ノッチ、ポリゴンなどのカスタム形狀になります。その利點(diǎn)には、次のものが含まれます。1。円、楕円、ポリゴンなどのさまざまな基本的な形狀をサポートします。 2。レスポンシブ調(diào)整とモバイル端子に適応可能。 3.アニメーションが簡単で、HoverまたはJavaScriptと組み合わせて動的効果を?qū)g現(xiàn)できます。 4.レイアウトフローには影響せず、ディスプレイエリアのみを収穫します。一般的な使用法は、円形のクリップパス:円(50pxatcenter)および三角クリップパス:ポリゴン(50%0%、100 0%、0 0%)などです。知らせ

スタイリングは、CSSとは異なるリンクを訪問しました スタイリングは、CSSとは異なるリンクを訪問しました Jul 11, 2025 am 03:26 AM

アクセスしたリンクのスタイルを設(shè)定すると、特にコンテンツ集約型のWebサイトでユーザーエクスペリエンスを向上させることができ、ユーザーがより良いナビゲートを支援します。 1。CSSを使用してください:訪問した擬似クラスは、色の変化などの訪問されたリンクのスタイルを定義します。 2。ブラウザは、プライバシーの制限により、いくつかの屬性の変更のみを許可することに注意してください。 3.突然の狀態(tài)を避けるために、色の選択は全體的なスタイルと調(diào)整する必要があります。 4.モバイル端子はこの効果を表示しない場合があり、アイコン補(bǔ)助ロゴなどの他の視覚的なプロンプトと組み合わせることをお勧めします。

CSSを使用して応答性のある畫像を作成する方法は? CSSを使用して応答性のある畫像を作成する方法は? Jul 15, 2025 am 01:10 AM

CSSを使用してレスポンシブ畫像を作成するには、主に次の方法で達(dá)成できます。1。最大幅を使用してください:100%と高さ:自動化して、割合を維持しながら畫像がコンテナ幅に適応できるようにします。 2。HTMLのSRCSETおよびサイズの屬性を使用して、異なる畫面に適合した畫像ソースをインテリジェントにロードします。 3.オブジェクトフィットとオブジェクトポジションを使用して、畫像のトリミングとフォーカスディスプレイを制御します。一緒に、これらの方法により、畫像がさまざまなデバイスで明確かつ美しく表示されるようになります。

一般的なCSSブラウザの矛盾とは何ですか? 一般的なCSSブラウザの矛盾とは何ですか? Jul 26, 2025 am 07:04 AM

さまざまなブラウザのCSS解析に違いがあるため、主にデフォルトのスタイルの違い、ボックスモデルの計(jì)算方法、フレックスボックスおよびグリッドレイアウトサポートレベル、および特定のCSS屬性の一貫性のない動作を含む一貫性のないディスプレイ効果が得られます。 1.デフォルトのスタイル処理は一貫性がありません。解決策は、cssresetまたはremormize.cssを使用して初期スタイルを統(tǒng)合することです。 2。IEの古いバージョンのボックスモデル計(jì)算方法は異なります。 Box-Sizing:Border-Boxを統(tǒng)一された方法で使用することをお勧めします。 3. FlexBoxとグリッドは、エッジの場合や古いバージョンでは異なる機(jī)能を示します。より多くのテストを行い、Autoprefixerを使用します。 4.一部のCSS屬性の動作は一貫性がありません。 Caniuseは相談して格下げする必要があります。

CSSユニットの分解:PX、EM、REM、VW、VH比較 CSSユニットの分解:PX、EM、REM、VW、VH比較 Jul 08, 2025 am 02:16 AM

CSSユニットの選択は、設(shè)計(jì)要件と応答性の要件に依存します。 1.PXは固定サイズに使用され、正確な制御に適していますが、弾力性の欠如に適しています。 2.EMは相対単位であり、親要素の影響によって簡単に引き起こされますが、REMはルート要素に基づいてより安定しており、グローバルなスケーリングに適しています。 3.VW/VHは、レスポンシブデザインに適したビューポートサイズに基づいていますが、極端な畫面の下でのパフォーマンスに注意を払う必要があります。 4.選択するときは、応答性の調(diào)整、要素階層関係、ビューポートの依存関係に基づいて決定する必要があります。合理的な使用は、レイアウトの柔軟性とメンテナンスを改善できます。

See all articles