技術の悪党ウーバーが、スタッフに将来のルール(つまりコーディングルール)を遵守させるためのツールを作成した

Table of Contents

技術の悪党ウーバーが、スタッフに将来のルール(つまりコーディングルール)を遵守させるためのツールを作成した

人事規定を無視し、交通規制に抵抗し、その他の法律を曲げているという驚くべき評判にもかかわらず、タクシー業界の天敵であるウーバーは、規範をクリーンに保ち、規則に従うことに熱心である。

乗車アプリ業界で働く開発者たちは、コードの品質を強化するために NEAL と呼ばれるソフトウェア分析ツールを作成し、オープンソース プロジェクトとしてリリースしました。

NEAL は「Not Exactly A Linter」の略称で、追加の説明が必要になるかもしれません。

リンターとは、ソースコードにスタイルエラー、明らかなプログラミングバグ、その他の欠陥がないかチェックするソフトウェアです。この用語は、1978年にベル研究所のスティーブン・C・ジョンソンがC言語のコードを検査するために作成したLintというプログラムに由来しています。

もちろん、コンパイラも問題をチェックしますが、エラーをフラグ付けすることに加えて、リンターはコードのプログラミング言語内では合法である非効率性や文体の異常を探します。

リンターはカスタム ルールをサポートしている場合があり、これによりユーザー定義の構造を検索できます。ほとんどは特定のプログラミング言語で動作するように設計されていますが、いくつかのリンター (例: coala) は複数の言語をサポートしています。

警察

警察をブロック:Uberアプリは「ゴーストカー」で警察を欺き、運転手の逮捕を阻止した

続きを読む

これがNEALの要点です。UberのソフトウェアエンジニアであるTadeu Zagallo氏は本日のブログ記事で、このプロジェクトを「エンジニアが独自の構文ベースのルールを記述できる、言語に依存しないオープンソースツール」と説明しています。

Uber は NEAL を使用して、Swift コードが企業仕様を満たしていることを確認しています。

ザガロ氏の説明によると、Uber のモバイル アプリ コードの変更のレビューには時間がかかる可能性がある。同社には世界各地に 12 以上のエンジニアリング チームがあるからだ。

NEAL を使用すると、Uber 開発者はコード レビュー プロセスをより自動化し、一貫性を高めることができます。

その結果、コード テストの信頼性が向上し、大量のマシン コードを生成する言語構造を防ぐことでバイナリ サイズを制限できるようになり、コードの制限とフローを強制できるようになります。

NEALはSwiftプログラミング言語に加え、Pythonも標準でサポートしています。他の言語をサポートするように拡張することも可能ですが、それはご自身で行ってください。®

Discover More