Skip to content

Vol.208

Code readability matters by by the Guardian's internal Digital team permalink

コードの可読性に影響するポイント permalink

可読性はソフトウェア開発において非常に重要な要素となる。この記事では、その目標を達成するためにGuardianで行っている内容について紹介する。

  • コードレビュー
    • GuardianではGithubのPull Requestを使ってコードレビューを行っている
  • コードを簡潔に保つ
    • YAGNIの法則
  • Linterの使用を検討する
    • GuardianではJavaScript用のESLintやScala用のScalaStyleを使用している
  • ドキュメンテーションとしてのテスト
    • テストがコンパイルされるたびに実行され、それがドキュメントとなる
    • Guardianでは、JavaScript用にJestとScala用にはScalaTestを使用している
  • 意味のある変数名と関数名
    • 命名するときには数分考える
    • ロジックを書き直す場合には、変数名も更新が必要がないか確認する

Rendering on the Web By Jason Miller and Addy Osmani permalink

Webでのレンダリングに関して permalink

Webパフォーマンス改善のために、サーバーサイドレンダリングを検討することがあるが、どのような場面で行っていけばよいのかについては議論がある。この記事では、大枠としてレンダリングへのアプローチを深掘りし、まずどういった描画処理が考えられるのか、それぞれの特徴は何か、どういった目的をもって選択を行っていけばよいかについてのヒントを与えてくれる。

https://developers.google.com/web/updates/images/2019/02/rendering-on-the-web/infographic.png

Paying tribute to the web with View Source by DHH permalink

https://m.signalvnoise.com/paying-tribute-to-the-web-with-view-source/

View SourceのあるWebに敬意を払う permalink

Webは誰でも簡単にソースコードを見ることができる。DHH氏がWeb開発のキャリアを出発させたのは、Webサイトのソースコード表示(View Source)であるという。View Sourceは他の開発者がソースコードを理解し勉強することに非常に有用である。彼のBasecampにおいても、HTMLは単純であり、CSSはBEMで記載され、人が読みやすいコードであることを保ち続ける努力を続けている。例え、バンドル化されたソースコードであっても、プロダクションにソースマップを公開し、他の開発者の学習を手助けすることがWebというプラットフォームを成長させるために必要ではないかと訴える。

What can I do for the web? One answer: Protect and promote View Source.

Designing for the web ought to mean making HTML and CSS by DHH permalink

Webをデザインするということは、HTMLとCSS作るということを意味するべき。彼がBasecampの業務を行う中で感じた、Webデザインについての考察。Basecampでは、Webデザイナーは全員が、HTML、CSS、そして必要であれば、JavaScriptやRailsのコードを書き、初回の実装を行っている。Webデザイナは、90年代後半のようにPhotoshopと格闘するのではなく、自分のデザインを動かし、変更でき、デプロイできるようになるのが、現代のWebをデザインするために必要ではないかと問う。

Understanding Service Workers and Caching Strategies permalink

サービスワーカーについての基本を紹介し、特にキャッシング戦略について深掘りする。

  • Cache only
    • 全てのリクエストがキャッシュに送られる
    • サイトがStatic Assetsのみの場合に有効
  • Network only
    • Service Workerがリクエストをネットワークに送る
    • オフライン関係の実装が必要ない場合に有効
  • Cache falling back to network
    • リクエストが成功しなかった場合に、Service Workerがキャシュを要求する
    • オフラインファーストのアプリを作成している場合に有効
  • Network falling back to cache
    • まずネットワークに要求し、成功した場合にはキャッシュに送る
    • キャッシュされているデータよりも、最新のデータの優先度が高い場合に有効
  • Generic fallback
    • まずキャッシュに要求し、失敗した場合にはネットワークに要求、それでも失敗した場合には、フォールバックを表示する

In Brief