WINDOWS PLATFORMSの無料ハックの支払い割引アプリTHE SUNSET

Monday, 17 February 2020

The Sunset cheats

 

 

iPhone、Android、またはWindowsデバイスでWhatsAppが更新されていることを確認する時間 WhatsAppはセキュリティバグに見舞われており、ハッカーが電話に応答しなくても、音声通話で電話を引き継ぐ可能性があります。 写真:Chesnot / Getty Images ユーザーは、応答するかどうかにかかわらず、ハッカーが電話をかけるだけで電話を引き継ぐことができるセキュリティバグのため、WhatsAppスマートフォンアプリをすぐに更新するように促されています。 何が起きたの? Facebookが所有する人気のあるメッセージングサービスに脆弱性が発見され、ハッカーが感染したWhatsApp音声通話を通じてスパイウェアをインストールできるようになりました。 このスパイウェアは、通話、テキスト、その他のデータをトロールし、電話のカメラとマイクを有効にして、その他の悪意のある活動を実行できます。 どの電話が影響しますか? WhatsAppまたはWhatsApp Businessアプリのいずれかを実行している電話が影響を受ける可能性があります。写真:サミュエル・ギブス/ガーディアン Facebookによると、AppleのiPhone(iOS)、Android電話、Windows Phone、Tizenデバイスなど、WhatsAppまたはWhatsApp Businessがインストールされているすべてのブランドの携帯電話が影響を受けます。 WhatsAppは、世界中で150億人が使用しています。 攻撃の背後にいるのは誰ですか? Financial Timesによると、イスラエルのサイバーインテリジェンス企業NSO Groupがスパイウェアを開発しました。ユーザーは電話に出る必要さえなく、ログから隠されていることが多かった、と同紙は述べた。 影響を受けましたか? 見張られた人の数はまだわかっていません。英国に拠点を置く人権弁護士やアムネスティ・インターナショナルの研究者など、いくつかのターゲットが特定されています。 WhatsAppの音声通話を受信して​​いないか、不明な相手からの通話を切断していない場合は、おそらく標的にされていないでしょう。ただし、弁護士になったり、デリケートな業界で働いたり、WhatsAppを使用したりする場合は、個人的なやり取りであっても、特に警戒する必要があります。 自分を守るために何をする必要がありますか? Facebookは、ユーザーを保護するためにサーバー側の変更を実装し、月曜日にさまざまなスマートフォンのWhatsAppバージョンの更新を発表しました。 iPhone、Google PlayなどのAndroidデバイスのApple App Store、Windows PhoneのMicrosoft Store、TizenデバイスのGalaxy App Storeで、手動で更新を確認することを強くお勧めします。 それに失敗した場合、携帯電話からWhatsAppをアンインストールすると、攻撃から保護されます。 最新バージョンを使用しているかどうかを確認するにはどうすればよいですか? WhatsApp Androidアプリのバージョン情報。写真:サミュエル・ギブス/ガーディアン WhatsAppのサイトには、Androidアプリの最新バージョンがリストされています。 WhatsAppアイコンを長押しして[アプリ情報]を選択するか、スマートフォンの設定でアプリのリストを見つけると、Androidスマートフォンにインストールされているアプリのバージョン番号を確認できます。 ただし、携帯電話に組み込まれているアプリストアから関連するすべてのアプリの更新プログラムをインストールするだけで、アプリの最新の署名および検証済みバージョンを使用することができます。 携帯電話はどうですか? アプリを最新の状態に保つことは、ハッキングやデータ盗難から身を守るために重要ですが、携帯電話のオペレーティングシステムも同様に重要です。 常に最新バージョンのiOSまたはAndroidをインストールし、ソフトウェアの更新でサポートされなくなった電話を使用する前によく考えてください。 ほとんどのiPhoneは、5年間を超えるソフトウェアサポートを受けています。 Androidデバイスはメーカーに依存しており、GoogleのPixelスマートフォンがゴールドスタンダードであり、少なくとも3年間、毎月のセキュリティアップデートとAndroidバージョンのアップデートを受け取ります。 ソフトウェアサポートがなぜそれほど重要なのですか? 脆弱性は常に発見されており、それぞれがハッカーの装甲に追加され、多くの場合、それらはデバイスを乗っ取りデータを盗むために創造的な方法で組み合わされます。 ほとんどのセキュリティホールはソフトウェアメーカーによって修正されますが、実際にソフトウェアの修正を受け取った場合にのみ保護されます。ほとんどのユーザーにとって、問題を自分で解決するためにできることは何もありません。つまり、デバイスの開発者またはメーカーから受けるソフトウェアサポートに完全に依存しています。 ソフトウェアが古くなればなるほど、脆弱性の影響が大きくなり、サイバー犯罪者からのリスクが高まります。 私のコンピューターはどうですか? Windows 10 PC上のWindowsアップデート。写真:サミュエル・ギブス/ガーディアン デスクトップ、ラップトップ、またはタブレットコンピューターを最新の状態に保つことも同様に重要です。通常、コンピューターのソフトウェアサポートライフサイクルは、スマートフォンよりもはるかに長くなります。 定期的なWindowsまたはMac OSの更新は煩わしい場合がありますが、それらはあなたの安全にとっても重要です。車を定期的にメンテナンスして道路上で安全に保つように、コンピューター、電話、またはその他のインターネットに接続されたデバイスは、毎日あなたを安全に保つために同じ注意を払う必要があります。
https://cleanuri.com/2rYzYG

過去2年間、AirbnbはReact Nativeを使用してモバイルプラットフォームの開発を加速させてきました。 React NativeはFacebookによって開発されたオープンソースフレームワークで、JavaScript開発者がWeb、Android、iOS開発環境で動作する使い慣れたReactコンポーネントを作成できるようにします。 最近、Gabriel Pealは、ネイティブモバイル開発ツールを支持して、2019年までにReact Nativeから移行するというAirbnbの決定を概説する記事を書きました。 Gabrielと話し合い、Airbnbでのモバイル開発の歴史、React Nativeの紹介、その利点と欠点、そして最終的にAirbnbがReact Nativeからの移行を決定した理由について説明しました。 Airbnbは元々、モバイルプラットフォームでトラフィックが増加している単なるWebサイトでした。 2012年までに、エンジニアリングチームは、モバイルユーザーベースの要求をサポートするために、追加のリソースをモバイルプラットフォームに投資する必要があることを認識しました。チームは4年間、専用のモバイル開発者リソースとインフラストラクチャを備えたiOSおよびAndroidアプリケーションを構築しました。 しかし、2016年までに、これまでの状況はモバイルにシフトしていたため、開発チームは需要に対応できませんでした。モバイル開発者に必要な才能と、ほとんどの開発者がWebでトレーニングを受けていないため、いくつかのチームがクロスプラットフォームソリューションを検討し始めました。 AirbnbのWebフロントエンドはReactで構築されており、Airbnbの大多数の開発者はこの人気のあるWebフレームワークに慣れています。 2016年、FacebookはiOSおよびAndroidアプリで内部的に使用した後、React Nativeを開始しました。チームの少数の開発者は、これを既存のWeb開発チームを活用してモバイルアプリケーションの開発を支援する優れた方法と考えました。数か月後、テストパイロットアプリの準備が整ったAirbnbは、React Nativeを使用してiOSおよびAndroidネイティブアプリケーションをサポートする最初のコンポーネントセットを発売しました。 React Nativeは、モバイルアプリケーションの開発サイクルを急速に増加させ、80万行のモバイルコードベースのインフラストラクチャの開発、サポート、提供にさらなる投資が行われました。 明らかに、Airbnb向けのReact Nativeの最大の利点は、迅速な開発とプラットフォームにとらわれないことでした。 React Nativeを使用すると、Airbnbはエンジニアの開発チーム全体を活用して、モバイルアプリケーションの構築とサポートを支援できます。これは、モバイルやウェブのバックグラウンドに関係なく、将来の採用も訓練できることを意味しました。また、1つのリポジトリを3つのプラットフォームに展開できるため、コードベースが無駄になりません。しかし、これらの利点には課題も伴います。 Pealは、React Nativeを使用する(または使用しない)というアドバイスを規範とすることなく、React Nativeを使用することを決定する際に以下の考慮事項を提供します。 0対1は大きな投資です よくある誤解は、AirbnbがReact Nativeの使用を決定したときに、完全な切り替えを行ったことです。これは真実ではないだけでなく、今日まで、React Nativeコードはコードベースと開発者のリソースの15〜20%しか占めていません。これは会社にとって大多数のプラットフォームではありませんでした。その一部は、モバイルプラットフォーム用のコンポーネントの最初のセットでさえ可能にするための莫大な初期費用でした。 React Nativeはフレームワークであり、モバイル開発を大幅に簡素化しますが、特に既存のコードベースがある場合、立ち上げて実行するのは簡単ではありません。 React Nativeを既存のモバイルコードベースに統合するために、かなりの時間とエネルギーを費やすことを期待してください。 開発者はネイティブコードを記述する必要があります React Nativeは、APIが2つのプラットフォーム間を明確にブリッジする単純なアプリケーションに最適です。 Airbnbモバイルアプリの初期の頃、このプラットフォームは、モバイルアプリケーション内のよりシンプルなツールの優れたアクセラレーターでした。最終的に、APIは希望どおりに動作しないため、必要な調整を行うためにネイティブライブラリに飛び込む必要があります。 ネイティブブリッジを記述する必要がある例には、ネットワークスタック、実験、国際化、ディープリンク、ナビゲーション、高度なマップ機能などがあります。 JavaScript開発者を雇ってReact Nativeプロジェクトで作業する場合、機能のギャップを埋めるためにネイティブコードを記述する必要があることを期待してください。 地雷に注意してください Pealは、「地雷、または追跡と再現が非常に難しいコードの相互作用について警告します。 1つの例では、特定の携帯電話でReact Nativeコンポーネントがすべて白にレンダリングされます。このバグは信頼性が低いだけでなく、追跡が困難でした。 解決策は、Android用の標準のReact Native画像レンダリングライブラリであるFrescoの初期化をオフにすることでした。今日まで、エンジニアはこれがバグを修正した理由をまだ理解していません。 Airbnbが地雷にぶつかり、一見単純なタスクを数週間のバグハントに変える可能性がある場合、あなたもそうすることを期待してください。 投資は終わりがなく遅い 多くのチームは、React Nativeを使用して小さなモバイルアプリケーションのプロトタイプを作成し、すぐにすべての問題を解決できると信じています。しかし、すべてのオープンソースソフトウェアと同様に、プラットフォームは日々発見される新しいバグや問題で絶えず変化しています。 React Nativeエコシステムの不安定な景観をサポートするための継続的な投資を期待します。 1つの例には、Airbnbのエンジニアが製品の目標に合わせてできるだけ早くReact Nativeフレームワークにアクセスしたいパッチが含まれていました。残念ながら、React Nativeの開発ライフサイクルでは、4週間に1回だけリリースがプッシュされます。修正のタイミングを間違えた場合、React Nativeフレームワークで変更が採用されるまで、ほぼ1か月待つ必要があります。 Airbnbの開発のスピードでは、彼らはそのリスクを負う余裕がありませんでした。 最終的には、欠点が利点を上回り、Airbnbは再考を余儀なくされ、最終的にReact Native開発から撤退しました。サポートは年末まで続きますが、Airbnbは2019年初頭までにReact Nativeプロジェクトの積極的な開発を中止する予定です。 まだモバイルアプリケーションのネイティブファースト開発の価値で販売されていない場合でも、React Native以外のクロスプラットフォームの代替があります。 Flutterは、React Nativeに対するGoogleの回答であり、以前はSoftware Engineering Dailyで取り上げられています(以前のショーについてはこちらとこちらをご覧ください)。 XamarinはMicrosoftのReact Nativeのバージョンであり、さらにWindows携帯電話もサポートしています。 両方のフレームワークはクロスプラットフォームですが、上記で概説したものと同様の問題を見つけることができます。さらに、両方のフレームワークは、それぞれGoogleおよびMicrosoft内での採用率が比較的低くなっています。最終的に、クロスプラットフォームフレームワークは単純な問題の大半を解決しますが、より複雑なものは、最終的には特定のモバイルデバイスのネイティブプラットフォームに頼る必要があります。 エピソードの転写 [前書き] [0:00:00。 3] JM:React Nativeを使用すると、開発者はモバイルプラットフォーム間でフロントエンドコードを再利用できます。 React Nativeで記述されたユーザーインターフェイスコンポーネントは、iOSとAndroidの両方のコードベースで使用できます。 React Nativeはコードの再利用を可能にするため、iOSとAndroidのフロントエンドロジックを完全に分離したチームで再作成する必要があるモデルとは対照的に、開発者の時間を節約できます。 React NativeはFacebookで作成されました。 Facebook自体はモバイル開発にReact Nativeを使用しており、オープンソースのReact Nativeリポジトリに大きく貢献しています。 2016年、Airbnbはモバイルコードベースの大部分でReact Nativeの使用を開始しました。次の2年間で、Airbnbは、クロスプラットフォームJavaScriptベースのシステムを採用することの利点と欠点を認識しました。 2年後、Airbnbのエンジニアリング管理チームは、React Nativeの使用をやめるという結論に達しました。 Gabriel PealはAirbnbのエンジニアで、React Nativeからの移行の決定の一部でした。 Gabrielは、AirbnbのReact Nativeのバックストーリーを提供するブログ投稿を書き、ショーに参加して決定の詳細を説明しました。このエピソードにはたくさんのことがあります。私にとってはとても良いもので、React Nativeの長所と短所に多くの色を与えています。明確にするために、これはReact Nativeに反対するショーではありません。 Airbnbには非常に具体的なユースケースがあり、巨大な会社であるため、React Nativeを使用すべきではないと言っているわけではありません。実際、React Nativeの利点について多くのショーを行ってきましたが、信じられないほどのプラットフォームだと思います。それは素晴らしいショーであり、物語の両面を提供します。 始める前に、クリエイティブオペレーションリーダーを採用しています。優れたコミュニケーターである場合は、クリエイティブオペレーションの求人情報をご覧ください。 これは、コーディングブートキャンプを卒業したばかりの人や、技術に精通している芸術のバックグラウンドを持つ人にとって素晴らしい仕事です。あなたが創造的であり、エンジニアリングについてもっと学びたい、そしてあなたが優れた労働倫理を持っているなら、それをチェックしてください。 [スポンサーメッセージ] [0:02:27。 6] JM:クラウドコンピューティングは高価になる可能性があります。クラウドインフラストラクチャに多すぎるお金をかけている場合は、DoIT Internationalをご覧ください。 DoIT Internationalは、スタートアップがGoogle CloudとAWS全体でワークロードのコストを最適化できるよう支援するため、スタートアップは新しいソフトウェアの構築により多くの時間を費やし、コストを削減する時間を短縮できます。 DoIT Internationalは、クライアントがコストを最適化するのを支援します。クラウドの請求額が1か月あたり1万ドルを超える場合は、That's Thisアセスメントにアクセスして、無料のコスト最適化評価を取得できます。リスナーに無料で提供しています。通常、彼らはこの査定に5,000ドルを請求しますが、DoIT Internationalは毎月10,000ドル以上の費用でショーのリスナーに無料で提供しています。 会社の規模が大きい場合、1万ドルを費やしているかどうかわからない場合は、1万ドルを費やしている可能性が高いので、財務部門の他の人に聞いてみてください。 DoIT Internationalは、クラウドエンジニアリングと最適化の専門家で構成される会社です。コミットメントの使用、インスタンスの特定、適切なサイズ設定、独自の購入手法を使用することで、インフラストラクチャをより効率的に実行できます。これは非常にドメイン固有のように思えるので、その観点からは、これらの手法を実装する方法を理解するのに役立つチームを雇うことは理にかなっています。 DoIT Internationalは、より効率的なコードの作成を支援し、より効率的なインフラストラクチャの構築を支援します。また、彼らが書いた独自のカスタムソフトウェアも持っています。これは、Google Cloudの完全なコスト最適化プラットフォームであり、DoIT Internationalが構築できるものを確認したい場合は無料のサービスです。 DoIT Internationalは、クラウドコスト最適化の専門家です。 1万ドル以上を費やしている場合は、クラウド導入でどれだけのお金を節約できるかを調べて、無料の評価を受けることができます。 [インタビュー] [0:04:51。 1] JM:Gabriel PealはAirbnbのソフトウェアエンジニアであり、AirbnbのReact Nativeに関するブログ投稿のライターです。 Gabriel、Software Engineering Dailyへようこそ。 [0:05:01。 0] GP:私をお迎えいただきありがとうございます。 [0:05:02。 3] JM:Airbnbは過去2年間、モバイルアプリの開発にReact Nativeを使用しています。 AirbnbでReact Nativeのストーリーを最初からやり直したいと思います。 React NativeがAirbnbに参加する前に、モバイルアプリはどのように開発されましたか? [0:05:20。 9] GP:ああ。これは興味深いものです。 Airbnbのモバイルの初期の時代に戻ると、2012年の頃に実際に始まりました。その時点で、モバイルはかなり若く、私たちはただのWebサイトであり、時間の経過とともにモバイルアプリを持つことの重要性を認識しました。リスティングを予約するだけでなく、旅行者にも利用できます。旅行するときは、携帯電話さえあれば十分だからです。本当に良いモバイル体験をすることが私たちにとって本当に重要でした。 2012年、2013年は、モバイルアプリの初期段階の構築を開始した時期であり、その後、各プラットフォームで約15人のチームに成長しました。 2016年半ばのAndroidとiOS。その時点で、モバイルトラフィックが大量に流入し始めています。私たちのモバイル使用は屋根を通り抜けていましたが、それは非常に重要なものとして、ビジネスのこのごくわずかな部分からのものでした。その後、チームは、自分の機能がモバイル、Android、iOSで機能することを確認するよう奨励されました。各プラットフォームに15人いるため、文字通り、必要なものを構築するのに十分な人員がいませんでした。 [0:06:28。 0] JM:それは、React Nativeの背後にある全体的なアイデアであったチーム構造の問題です。ReactNativeは、さまざまなチーム内でのコミュニケーションの集中化を可能にする再利用可能なコンポーネントを提供します。コンポーネントを設計し、AndroidとiOSおよびWebの間で移植可能にすることができます。それが正しく理解できれば、それがReact Nativeの目標でした。 React Nativeがリリースされたとき、「ああ、それが私たちの問題です。 」 [0:06:59。 7] GP:はい。 Reactについて考えるとき、人々が取る2つの類似した、しかし異なるマントラがあると思います。Reactパラダイムを学習し、JavaScript、JSX、およびエコシステムを学習し、任意のプラットフォームで作成できるマントラはどこでも学習できます。その後、一度書くだけで、どこでも実行できます。文字通り一度コードを書くと、複数のプラットフォームで実行されます。 React Nativeのこの特定の範囲では、実際には両方のほんの一部であり、それらが異なる理由を理解し、最も価値を引き出しようとしているものを理解することが重要です。 Airbnbの初期段階では、約15人のAndroidエンジニアと15人のiOSエンジニアがいましたが、おそらくReactを知っている100人以上の人がいたためです。私たちのウェブサイト全体がReactであり、Reactでウェブサイトを書き換えるのに非常に成功しています。また、多くのインフラストラクチャとライブラリを構築し、Reactのエコシステムを活用しています。 これは、既存のネイティブインフラストラクチャを構築する機会であると考えましたが、Reactを知っている人々がモバイルに貢献できるようにします。それは、モバイルでのWebからの学習です。そうは言っても、React Nativeは実際にはReactであるため、Reactのフォークではなく、Reactのクローンではなく、実際に携帯電話で実行されていることが明らかになります。そのため、文字通り多くのコードを共有でき、多くの同じライブラリを活用できます。 Reduxなど、Reactコミュニティの他の多くの業界標準ライブラリを使用しています。 組織上の課題がいくつかあり、実際にWebとモバイル間でコードを共有し始めていますが、コードを直接共有するか、同じ人がWebとモバイルで一度機能を書くようにすることで、再利用できるため、コードを共有できる可能性があります彼らの多くの思考プロセス。 [0:08:58。 1] JM:React Nativeを使い始めたとき、それを少し試しただけでしたか、それともやろうと決心しましたか。ReactNativeでオールインしましょう。 [0:09:13。 0] GP:誰に尋ねるかによります。これは、実際には、React Nativeで抱えていた、より議論の多い組織上の課題の1つです。本質的に実験として開始されました。エンジニアリングの世界では、これをすべてエンジニアリングの問題のように扱うことが本当に重要だと思います。長所と短所があり、リスクを軽減し、スムーズで安定したロールアウトを実現するために、完全なセット、またはできる限り多くの長所と短所を理解することが非常に重要です。それは本当に重要です。 実験のように始まった。基本的に2人のエンジニアがいました。 Leland RichardsonとSpike Brehmは、非常に経験豊富なリアクションエンジニアであり、私のようなモバイルの一部の人々や他の数人と協力して、モバイルで製品を開発しました。両方とも予約の変更だと思っていました。これが、React Nativeで初めて立ち上げたものです。 2016年7月に構築を開始し、10月にローンチしました。そのプロセスでは、実験、国際化、ディープリンク、ナビゲーション、設計言語、その他多くのことなど、多くのものを構築する必要がありました。 その後、2016年11月に体験を開始しました。これにより、Airbnbで滞在する場所に加えて、街で何かすることができます。この特定のチームには多くのWebリソースがあり、起動前に必要なものを実際に構築するのに十分なモバイルリソースがありませんでした。これは、React Nativeにとって非常に重要な瞬間になりました。特に、本当に重要で非常に目立つ発売のために最初の製品を発売する前に、そのチームは製品のReact Nativeに全面的に取り組むことにしました。 チャンスがありました。さまざまな方法がありました。確かに痛みはありませんでした。戸外に出るのは多忙だったと思います。やらなければならない作業が多く、長い時間がかかりましたが、その日の終わりにはローンチしました。時間通りに起動しました。バグなしで起動しませんでしたが、時間通りに起動し、その時点で起動するためにエンジニアを他のチームから引き離さずに機能セットの構築を完了できなかったでしょう。ただ1つのチームがこの方向に追いやられ、React Nativeの採用が非常に早く劇的に加速するという興味深いケースになりました。 [0:11:44。 7] JM:わかりました。だから、正しく理解できているかどうか見てみましょう。 React Nativeが登場し、Airbnbモバイル開発のさまざまなチームが次のように述べています。これをいじってみましょう。それを試してみましょう、いくつかのことをやってみましょう、国際化など。それから、経験は私たちが構築しようとしている機能として発表され、経験チームは非常に合理的な決定を下します。モバイルリソースが少なくなりました。それでは、React Nativeでオールインできるかどうか見てみましょう。しばらく様子を見てみましょう。 」彼らはReact Nativeとオールインしました。 時間通りに出荷します。彼らは他のチームから人々を引き離さなければなりませんでしたが、うまく出荷されたようです。これまでに物事を正しく理解していますか? [0:12:29。 5] GP:起動しました。すべてのローンチには、完璧でスムーズでバグのないローンチがいくつかあります。これは他のローンチのようなものではありませんでしたが、外に出て、人々はそれを使用でき、人々は予約できました。ある意味では、彼らは彼らの目標に到達することができました。 [0:12:46。 3] JM:いくつかあったと感じます。経験が構築されたとき、またはリリースされたときに、「ああ、いいえ。ここに何か問題があります。 」 [0:12:58。 2] GP:正確に理解することは本当に重要だと思います。ええ、もう少し詳しく説明します。 React Nativeは、React Nativeを既存のコードベースに追加する場合です。特に、既存のものと同様に、独自のインフラストラクチャを備えたより大きなものである場合は、その相互作用がどのようになるかを考えることが非常に重要ですまた、再構築、再構築、または橋渡しを行う必要がある組織インフラストラクチャ。この特定の状況では、まるで猫とマウスのゲームのようでした。画面を構築するために、ネットワークスタックを活用したい、できるようにしたい、ということが重要でした。私たちは実験を行い、すべての国際化は国際化パイプラインを通過する必要があります。他のオプションはありません。実際に製品を出荷する場合は、事前にその作業を行う必要があります。 React Nativeの場合、0から1を取得するために行わなければならない膨大な作業がありました。つまり、私たちがただ上にタックして、1つの画面を分離して書いて出荷することはできませんでした。それは単純に–それは決して良い経験ではなかったでしょうし、それを使うことを選んだチームを苦しめたでしょう。 この特定のケースでは、すべてが非常に迅速に行われていたため、React Nativeのために特に困難になったものの組み合わせがあったと思いますが、単に巨大な新しいプラットフォームに取り組んでいて、信じられないほどのことがあったからです行わなければならなかった作業量、そして場合によってはほんの数時間でした。 [0:14:27。 2] JM:あなたと私はショーの前にどのように話していたのか、今あなたが注目している主なものはAndroidインフラストラクチャであり、Androidアプリで80,000行のコードのようなことを言った。 [0:14:36。 5] GP:800、000。 [0:14:37。 3] JM:800、000。わかりました。 iOS側には比例するものがあると確信しています。800、000行のAndroidアプリの管理を中心に構築されたインフラストラクチャの量を想像すると、800でなかったと確信しています。エクスペリエンスを立ち上げていたときに000行前に戻りましたが、おそらく非常に素晴らしいことです。必要なビルドツール、またはReact Nativeを動作させるためにモバイルアプリに配置する必要があるその他のサポートインフラストラクチャの導入について考えます。この新しいハイブリッドプラットフォームで機能を出荷するために必要な組織の再構成。 あなたは潜在的に多くの奇妙な、あるいは奇妙ではないが、新しいタイプの技術的負債を被っている可能性があります。 [0:15:28。 2] GP:ああ。そして、それらのものも同様に永久に維持する必要があります。あなたの会社が実験プラットフォームV2またはAPI V3を発表したとき、またはグラフの展開を開始し、休息からグラフQLに移行するとき、React Nativeを常に最新の状態に保つために誰かが常にそこにいなければなりません。後ろに。 [0:15:46。 4] JM:経験が始まり、あなたがそうだったとき、あなたはあなたがこの新しい技術的な負債を被ったという認識を持っていたと思います、あなたの頭には何が起こっていましたか?私はこれを持ち出す必要があると思っていましたか、それともReact Nativeを再考する必要がありますか、それとも何を考えていましたか?プッシュする必要があります。ReactNativeを機能させるために多くのサポートを提供する必要があります。その時点でReact Nativeに夢中になりましたか?それについて緊張し始めていますか? [0:16:15。 9] GP:検討することが重要です。このような特別な質問です。ReactNativeについて私が言いたいのは、信じられないほど分極化したトピックであり、それを回避する方法がないということです。多くの企業が使用することを選択し、使用しないことを選択していますが、ほとんどすべての場合、組織内には非常にプロのReact Nativeおよび/または一般的にクロスプラットフォームであり、非常に反対しています。あなたが聞く答えは、あなたが尋ねる人に基づいて途方もなく変わるでしょう。 個人的な観点から、React Nativeが私たちが選んだクロスプラットフォームフレームワークである理由を理解しました。ここにある既存のインフラストラクチャと人材を活用できるのは非常に理にかなっています。そうは言っても、React Nativeでファームを賭けた経験は大きなリスクだったと思います。 React Nativeにジャンプして、すぐにすべてを実行した結果、製品の品質を犠牲にしなければならない特定の側面があったと思います。 私は製品に深く関心を持っている人です。そのため、スムーズである必要があり、応答性があり、使用するのがすばらしいと感じている必要があります。 Nativeでそれを達成できるので、React Nativeで実際に達成できないと感じたら心配になります。それはReact Nativeで言われていることですが、驚くべきことに、ほとんどの人が考えているよりもそのバーに近づくことができました。 私は他の数人のエンジニアと緊密に連携し、NativeとReact Native画面間で動作する共有要素の移行、Reactで標準的でiOSでも動作するAPIなどを取得しました。このようなことは、十分な努力をすれば、React Nativeに関連する技術的課題のほとんどを実際に克服できることを示すと思います。私たちが発見したことの1つは、どれだけの労力が必要になるかを理解することは、いくつかの理由で非常に難しいことであるということです。 大きな理由の1つは、React Nativeが本質的に1つのプラットフォームではないことです。実際には3つのプラットフォームが1つにまとめられています。 React Nativeで作業している場合、ほとんどの場合、React LandのJavaScriptに住んでいますが、AndroidおよびiOSでボンネットの下で実行されていることを忘れることはできません。または、適切に何かをするために各プラットフォームのニュアンスを掘り下げて理解する必要があります。 そのため、1つのプラットフォームで作業している場合、そのプラットフォームを徹底的に学習できるという課題が生じます。あなたはそれの専門家になることができ、どこで突くべきか、どこで生産するべきか、そしてそれをさせるためにどこを探すべきかを正確に理解することができます。私は、3つのプラットフォームで同時に効果的にそれを行うことができるエンジニアに会ったことがありません。 これらの最後の5%または10%の一部を取得するには、プラットフォームの明示的かつ複雑な知識が必要になることがあります。ReactNativeで効果的にそれを行うことは本当に難しい問題であり、それに対する簡単な答えはまだわかりません。結局のところ、3つのプラットフォームを理解する必要があります。 [0:19:28。 4] JM:私たちは皆、夢の仕事を探しています。インターネットのおかげで、理想的な仕事とのマッチングが簡単になりました。 Vetteryは、優秀な求職者と刺激的な企業をつなぐオンライン採用市場です。あなたがベテリーに審査され受け入れられたら、企業はあなたが高品質の候補者であることを知っているので、あなたに直接連絡します。 Vetteryのマッチングアルゴリズムは、スキル、経験、好みのある人材を探している採用マネージャーにプロファイルを表示します。あなたは吟味されており、あなたは非常に有能な候補者であるため、あなたの好みに合ったものを見つけることができるはずです。 Vetteryをチェックして応募するには、詳細をご覧ください。 Vetteryは求職者に完全に無料です。新興企業から大企業まで、Vetteryと提携しており、あなたのプロフィールに直接アクセスできる4,000の成長企業があります。すべての業界にフルタイムの仕事、契約の役割、さまざまな技術的な役割のリモートジョブリストがあり、Vetteryから仕事を受け入れるとサインアップして500ドルのボーナスを得ることができます。 今日から新しいキャリアパスを始めましょう。 4,000社の企業のネットワークに接続し、Vetteryのソフトウェアエンジニアリングデイリーの新しいスポンサーに感謝します。 [インタビュー継続] [0:21:12。 0] JM:わかりました。それで、React Nativeで、かなり基本的なアプリベースの対話を行う場合、React Nativeがほとんどの面倒を見てくれるので、 JavaScriptの土地にとどまり、私が聞いたことから、React Nativeはかなり基本的な相互作用があれば、そのために非常に優れています。本当に複雑な相互作用、または高度なパフォーマンスを必要とする何かに到達したら、ネイティブコードを掘り下げる必要があるかもしれません。 React Nativeは、このJavaScriptブリッジを備えたこのJavaScriptランドにあり、iOSでObjective-Cコード、Swiftコード、またはAndroidでJavaコードを実際に記述する必要がある場合があります。 したがって、定期的にダックダウンする必要がある場合、非常に厄介であることがわかります。なぜなら、理解するのに役立つのに、なぜ持っているだけではうまくいかないのか、React Nativeのエンジニアがたくさんいるからです。開発の大部分をJavaScriptで行います。その後、時折、iOSの専門家にフラグを立てて、低レベルの機能について支援を求めなければなりません。 iOSコード、Swiftコード、またはObjective-Cコードにあなたが期待したよりも頻繁に掘り下げる必要がありますか?それは何が起こったのですか? [0:22:24。 6] JM:答えは少し複雑だと思います。 React NativeのエンジニアがAndroidまたはiOSのエンジニアに助けを求める必要がある場合があるという質問の最初の部分に答えると思います。その2つの部分があります。 1つは、問題がどこにあるかを正確に理解することです。 React Nativeでは、多くの感動的な作品があります。反応するプラットフォームがあり、反応する JavaScriptのネイティブなもの、ネイティブへの橋渡し、JavaとObjective-Cのネイティブな実装、そしてレイアウトなどを処理するヨガやJavaScriptランタイム自体などのネイティブライブラリがあります。 React Nativeの世界にはさらに多くのブラックボックスがあります。何かがそのように振る舞う理由を常に正確に特定するのが簡単だった場合、それができると主張することができると思います。さまざまな状況が発生する可能性があるため、何かが発生する非常に多くの状況に遭遇しました。 もちろん、JavaScript側に1つのデバッグ環境があり、Android iOS側に別のデバッグ環境があります。問題がレイアウトに何らかの関係がある場合、またはヨガでレイアウトのパフォーマンスの問題がある場合、それをデバッグするのは悪夢になる可能性があります。これらは、ネイティブではあまり頻繁に遭遇しない状況です。 [0:23:50。 9] JM:わかりました。開発したツールについて少し話しましょう。 React NativeはAndroidアプリとiOSアプリの両方の中心的な部分になったので、デバッグなどを支援するため、ビルド時間などを支援するためにどのツールを含める必要があったのか、他にどのような問題があるのか​​わかりませんライブラリまたはツールレベルで解決する必要があります。どのような標準化を実施する必要がありましたか? [0:24:19。 6] GP:ああ。各プラットフォームにかなり複雑なビルド、Gradleファイル、iOSビルドファイルがあり、watchmanを使用してJavaScriptの変更を監視し、バンドルをローカルでビルドする方法を知っていました。 React NativeのJavaScriptバンドルをリポジトリにチェックインしません。かなり大きいため、分割バンドルに分割され、頻繁に変更されるため、リポジトリにコミットするのは非常に多くなります。変更されるたびに、各人のコンピューターで実行中に生成されます。 その上にインフラストラクチャを構築し、そのためにキャッシュが機能することを確認する必要がありました。ネイティブコンポーネントを持つReact Nativeライブラリの処理方法には、いくつかの問題があります。 iOSでは、CocoaPodsをiOSで使用し、次にいくつかの奇妙なsimリンクを実行する必要があるため、少し複雑になります。ここで、いくつかのCocoaPodソースをノードモジュールにsimリンクします。そして、Android側では、少なくとも、またはAndroidコミュニティの多くがGradleの使用に慣れているため、少々イライラしています。彼らはGradleを使用し、ほとんどのライブラリをMavenに公開しているので、Gradleファイルに1行のコードを追加するだけで、一般的に非常にうまく機能します。 多くのReact Nativeライブラリでは、ノードモジュールからこのソースをリンクする必要があります。ノードモジュールをインストールし、NPMをインストールします。その後、Gradleファイルでそのソースへのリンクを作成する必要があります。これは、他のすべてに反する場合はかなり非定型で非標準です。実際に内部のMavenリポジトリを作成するか、ライブラリを取得してから内部で再公開する必要がありました。それが原因で、さまざまな痛みやオーバーヘッドが発生し、予期しないランダムな場所が発生しました。 [0:26:03。7] JM:ビルド時間とデバッグに対するこれらの変更の組織的な結果はどうでしたか?それは製品開発全体にどのように影響しましたか?また、ここで時間を教えていただけますか?経験が開始された後、React Nativeは引き続きトップクラスの市民でしたか、それともあなたは疑問を持ち始めていましたか? もう少しコンテキストを教えてください。 [0:26:29。 7] GP:ええ、React Nativeが私たちのモバイル開発で果たした役割の大きさを声に出すことが重要だと思います。これは、コミュニティの間で大きな誤解があったと思うものです。経験を開始した時点では、それは私たちにとって非常に重要な開始であったため、ほとんどの経験はReact Nativeであり、当時のReact Nativeには他にあまりありませんでした。その時点でのエンジニアリング作業の約20%に相当します。 その後、いくつかの経験が安定しました。それほど激しいものではありませんでしたが、その後、他のいくつかのチームがそれを強化しました。時間が経つにつれて、React Nativeに常時取り組んでいるモバイルエンジニアの約15%に相当する人々のかなり安定したコホートが見つかりました。それ以上成長することはありませんでした。どういうわけか、外部でReact Nativeについて話しているにせよ、私たちが100%React Nativeであるか、NativeからReact Nativeに移行しているという誤解が、何らかの形で業界の考えになったと思います。実際、それは私たちが並行して続けたものです。それは説明します–再び、約15%を占めました。 インフラストラクチャの面では、2017年にReact Nativeインフラストラクチャでフルタイムで働いている私とLeland Richardsonがいました。これは、純粋にインフラストラクチャに焦点を合わせたAndroidとiOSのエンジニアとほぼ同数です。合計約6人に加えて、ネイティブビルドとCIで作業する約2人または3人。それ以上のことはありませんでした。 全体的に中規模の努力ですが、それ以上のことは確かではありません。 [0:28:09。 7] JM:組織にどのような影響を与えましたか? React Nativeの影響について、組織的にどのように感じていますか? [0:28:18。 8] GP:それはあなたが尋ねる人次第だと思う。 React Nativeを使用しないことにしたチームの場合、 実際、ほとんど影響はなかったと思います。 JavaScriptアセットをローカルでビルドするなど、先ほど述べたように、必要に応じてたまにクリーンビルドを1分または2、3分追加することがあります。それを少し速くするためにできることはあると思います。 それがおそらく-それが彼らがReact Nativeに対処しなければならなかった程度の大部分でした。それから、基本的にReact Nativeに100ドルを投資した他のチームがいました。彼らがそれに取り組み始めたときから、私たちが彼らと協力して離れるまで、彼らはAndroidやiOSのエンジニアを一人雇う必要はありませんでした。そうは言っても、そうではありませんでした。つまり、ネイティブ、Android、またはiOSで仕事をしたことがないということではありません。 これらのエンジニアの多くは、いずれかのプラットフォームである程度の経験がありましたが、Lelandと私がReact Nativeインフラストラクチャでフルタイムで働いた理由の一部は、かなりの量のサポートを提供したことです。他のチームが混乱したとき、動けなくなったとき、またはネイティブの作業を行う必要があるときに、他のチームが利用できるようにしました。 人々-チームごとに異なるインセンティブや利害関係者がいるため、これは組織的に困難になる可能性があります。このような世界では、橋を架けたり、助けたりする準備ができているチームがある場合、デバッグ、またはメンターシップを提供する場合、そのチーム-そのチームのインセンティブの一部を調整する必要があることを理解することは本当に重要です。そのチームは、その時間に直接、ほぼランダムに投資できるように調整する必要があります。それを必要とするかもしれない他のチームのための時間。支援チーム間の理解は、組織が理解する必要があるものです。さもなければ、あるチームが本質的に別のチームのために慈善活動を行っており、フラストレーションがたまるか、最悪の場合はresしなければなりません本質的に別のチームのために無料で仕事をします。 [0:30:15。 7] JM:わかりました。 React Nativeからの移行について説明する前に、React Nativeが素晴らしいプロジェクトだと思うことにも注意してください。 20、50、またはReactでのショーをやったことがあります-間違いなく50ではありませんが、React Nativeで多くのショーをやったことがあり、素晴らしい製品、プロジェクトだと思います。本当にエキサイティングです。すべての会社がAirbnbではないため、AirbnbでReact Nativeからの移行に関するこのブログ投稿を公開したように、すべての人がReact Nativeから移行する必要があるわけではありません。 Airbnbは本当に大きな会社です。80万行のコードがあります。また、ちなみに、Airbnbにはテクノロジーで最も大きな堀の1つがある非常にユニークなビジネス状況にあります。あなたは今、私が思うに、ビジネスの観点から、または技術の観点から、大きな堀を持っています。Airbnbはまさに「私たちの家を整頓し、非常にまっすぐに進めましょう。 」 つまり、ビジネスとモデルは非常に優れているので、「エンジニアリング側で退屈なことができれば、ビジネスは本当にうまくいくでしょう。 「あなたがここで何をしていたのか、あなたがしなければならなかったことを言っているのではありません。あなたは確かにそのように行き、良いビジネスをすることができます。スケールだけで、それ自体が空想である以外、エンジニアリングレベルで空想的なことを実際に行う必要はありません。 [0:31:31。 7] GP:それに同意するかどうかわかりません。 [0:31:33。 2] JM:本当に。はい。 [0:31:34。つまり、ビジネスは順調に進んでおり、それは常に素晴らしいことです。私たちにとっては、多くの企業が非常にデザイン重視であった以上に、私たちはそうだと思います。この会社の共同設立者はデザイナーです。本当に信じられないほどの体験を作成する能力は、AirbnbのDNAの最初からの核となっています。 React Nativeから離れるという決定は、製品の目標を達成したか、製品の目標を達成しなかったか、またはそれらを達成する能力の直接的な結果でさえありませんでした。それは単に実用性の問題でした。 つまり、ブログ投稿シリーズのようにできるだけ詳しく説明しようとしましたが、技術的および組織的にいくつかの課題があり、それから得られた利益はもはや価値がないと思います投資。私とインフラストラクチャー側のLelandの両方、そして製品エンジニアに取り組んでいる人たちに基づいて、Nativeをさらに良くする機会がたくさんあることを見ました。 同時に、React Nativeは実際にはかなり順調に進んでおり、非常に優れたチームが存在したチームは、それを非常に効果的かつ有利に使用できたと思います。インフラストラクチャを維持するためのオーバーヘッド、それ自体を維持するオーバーヘッド、およびそれらの人々の機会費用は、ネイティブ、AndroidおよびiOSに直接作業を貢献するなど、価値がありませんでした。 AndroidとiOSのリソースが再び増えたため、実際には、ビルド時間、非常に多くのオープンソースライブラリなど、両方の重要な改善が見られます。 Androidで作業していて、まもなく登場するものにとても興奮しています。実際、その原則のいくつかは、React Nativeでうまく機能するものに触発されました。 繰り返しますが、簡単な道に落ち着くということではありません。機会費用が非常に高かったというだけの問題だと思います。それは非常に分極化した主題であり、React Nativeが15を超える道はありませんでしたここでモバイルの%または20%。 [0:33:31。 7] JM:そう。はい。私は黙ってこの質問をするでしょうReact NativeからSunset React Nativeに移行し、純粋にネイティブなモバイルプラットフォームに移行することに決めたとき、ビルドとエンジニアリングがどのように変化し、どのように速く移動するのか、あなたの予測はどうでしたか? [0:33:55。 5] GP:ああ。これが廃止されると判断した時点で、約2人のエンジニアがインフラストラクチャに行き、再びモバイルエンジニアの約15%がいました。リーランドと私は座って、それを使用しているすべてのチームを見てから、ロードマッピングのためにいくつかの作業を行い、将来どのチームがそれを使用し始めるか、どのような新しい機会が開かれるかを見つけましたにぴったり。その成長の可能性は見えませんでした。 クロスプラットフォームとAndroid iOSの両方についてですが、Webとモバイル間のコード共有などを行うための堅牢なインフラストラクチャを構築し、コードプッシュに関するインフラストラクチャも構築します。これについてはまだ説明していませんが、空気の更新、それらのすべては、その使用に基づいて非常に活用されています。モバイル製品全体で大幅な使用がなければ、投資を正当化することはできません。実際のところ、モバイルの15%または20%をはるかに超える可能性が実際にないという事実に帰着しました。 [0:35:02。 1] JM:15%、モバイルコードベースの20%、ということですか? [0:35:05。 2] GP:モバイルコードベース。ReactNativeとAndroidまたはiOSに貢献しているエンジニアの数。 [0:35:09。 3] JM:わかりました。これを行うことを決めたとき、または提案したとき、それは同様に分裂的でしたか、またはその時点で、人々は発生したコストを組織的に認識していましたか? [0:35:23。 7] GP:期待したほどスムーズに進んだと思います。 確かに、私が言ったように、React Nativeを実際に活用したチームがいくつかありました。彼らは効果的にオールインし、React Nativeを知っていた人たちとAndroidおよびiOSのエンジニアを犠牲にして適切にチームにリソースを提供していました。少し手間がかかり、追加のリソースと実践的なメンターシップを提供しました。実際には、これらの機能の一部をネイティブで書き直すための直接的な助けを提供しました。結局のところ、風景が彼らに概説された後、それは本当にそれだけだと思います-それはほとんどのチームにとってかなり理解可能な決定であり、それから本当にそれに依存した最後の数人にとって。彼らはかなり早く理解し、それ以来あまりプッシュバックはなかったと思います。 [0:36:09。 8] JM:ところで、React Nativeを使用している場合、AndroidやiOSでネイティブコードに組み込む必要があることは何ですか?どのくらいの頻度でそれをしなければなりませんか? [0:36:21。 9] GP:構築するものによって異なりますが、私たちが橋渡ししたもののいくつかはインフラストラクチャ側にあり、ネットワーキングスタック、実験、国際化、ディープリンク、ナビゲーションなどがありました。次に、製品コード側では、ジオフェンシング、マップ、ビデオビュー、ロットなどのようなものでした。 これらのケースの一部、これらのケースの一部はビューのラッピングですが、非常に複雑になる場合があります。ビデオと地図の例を見てみましょう。非常に複雑ですそれらには多くの機能があります。ハードウェアに依存する場合もあります。iOSでReact Nativeのテストを開始し、それを書いてすべてが見栄えがよく、Androidにアクセスしてもまったく同じように動作しない場合は、イライラすることがあります。 これは非常にイライラする状況です。ReactNativeの重要な点は、両方のプラットフォームで動作するはずだということです。私たちは非常に頻繁に発見し、React Nativeマップの場合、それは私たち自身のライブラリの1つであり、より良いジョブメンテナンスを行うことができたと思いますが、そのためには信じられないほどの時間とエネルギーがかかり、非常に複雑です製品。 React Native Nativeライブラリの1つのプラットフォームまたは別のプラットフォームにバグがあることがわかった場合、非常にイライラし、非常に一般的です。 React Nativeのこれらのライブラリの多くは、エンジニア、または3つのプラットフォームのうち1つまたは2つに精通しているエンジニアが作成したものの、そのうちの1つが遅れていることがわかりました。これは予想されることですよね?あなたのエンジニアがオープンソースのライブラリを作成している場合、3つのプラットフォームすべてで完璧なコードを作成するにはどうすればよいでしょうか?これらのユニコーンエンジニアは、単に世界に存在しないだけです。 その結果、少なくとも1つのプラットフォームで重大なコード品質の問題があることがわかります。それは、物事が良いものであり、場合によっては社内で構築されたものであり、サードパーティのライブラリにあるものである場合の例です。 [0:38:11。 3] JM:どのようにしたのですか?状況が濃いとき、持っていたとき、または大規模なReact Nativeインフラストラクチャがまだあると思いますが、リリースにどのように影響しますか? [0:38:20。 1] GP:ほとんどの場合、React Nativeは純粋なリリースプロセスでした。 React Nativeは大きな影響を与えませんでした。アプリと一緒にバンドルを出荷しましたが、アプリの存続期間中および野生の間に更新しませんでした。 React Nativeのライフタイムの終わりに向かって、私たちはそのReact Nativeバンドルを1年にわたって更新できるコードプッシュインフラストラクチャに取り組んでいました。実際にはかなり遠くにあり、ホットフィックスやチェリーピックから主要な問題の修正、最終的には継続的な展開が可能な世界を最終的に実現できる世界に至るまでのいくつかの段階を含む展開計画がありました。モバイルで。 それは信じられないほどの世界です。レビュープロセスでは、ネイティブアプリでは不可能です。それは美しい約束ですが、技術的にだけでなく、組織的にもそこに到達するには多くの作業が必要でした。いつアプリを個別にリリースし、バンドルを継続的に更新するかを理解するには、考慮すべきことがたくさんあります。自動ロールバックと最小バージョンなどで多くの方法でそれを保護する必要があります。同じネイティブAPIを使用していることを確認するため、つまり、すべてを横断して新しいバンドルをテストすることはできません。アプリのバージョンを手動で送信する場合、QAプロセスを介して送信することはできないため、これらの問題のいくつかについて事前に検討する必要がありました。 コミュニティはこの問題に取り組み続け、React Nativeが可能にするものだと思います。これは非常にクールだと思います。そこに着きませんでしたまた、リリースプロセスでは、実際のクラッシュを理解できるようにする必要がありました。 JavaScriptはそれ自体でクラッシュし、ネイティブでJSC例外としてバブルアップするため、実際のクラッシュを確実にキャッチするために、追加のクラッシュ終了リンクを追加する必要がありました。これをバグスナッグにアップロードしました。これはクラッシュ分析に使用し、ソースマップも適切にアップロードされるようにします。 かなりの努力が必要でした。実際、バグの手掛かりを使って、ネイティブのものに加えてJavaScriptソースマップをサポートし、すべてが起動し、新しい機会をもたらしたことを確認する必要がありました。失敗する独自のインフラストラクチャ。 React Nativeのクラッシュを通常のブログのスナッグクラッシュに接続し、適切にソースマップされた配線の一部で、1回または2回のリリースがあったと思います。そこに作品を移動します。 ネイティブで見たよりも、そこで見たよりも多くの不安定性が見られました。そこにいるAndroidエンジニアに加えて、これに共感できるかもしれませんが、Androidの特定のバージョンまたは特定の地域でランダムにクラッシュする非常に多くのランダムなOEMデバイスに巻き込まれています。私たちはまだこの本当に厄介なクラッシュに対処しています。特定のバージョンのソフトウェア上の約6つか8つの異なるSamsungデバイスでのみ発生し、これらのデバイスを購入し続けます。これらのROMでカスタムフラッシュしているため、特定のデバイスで特に発生するクラッシュを再現できません。 1つまたは2つだけでなく、React Nativeを立ち上げて以来、これらの非常に不明瞭なネイティブライブラリの読み込みとReactの途中で数万または数十万の個別のクラッシュを蓄積している可能性があります。 Lollipop、Samsung、またはHuaweiのネイティブユーザーは、それを修正する方法を理解する方法を麻痺しているだけです。 [0:41:47。 7] JM:Test Collabは、現在の問題マネージャーとすぐに統合できる最新のテスト管理ソリューションです。すべての開発チームにとって、ソフトウェアの品質をチェックする必要がありますが、テストは複雑です。テストするためのさまざまな機能があり、さまざまな構成、ブラウザ、プラットフォームがあります。その問題をどのように解決しますか?そこで、Test Collabが登場します。TestCollabは、ソフトウェアテスターと開発者の間のコラボレーションを可能にします。テスターがテストを実行中のワンクリックバグレポート、テストケースでのコラボレーション、テスト実行、テスト自動化の統合、時間追跡などの素晴らしい機能を提供します。 また、詳細なテスト計画を立てることができるため、プラットフォームやブラウザ、構成、またはアプリケーション内の変数を構成し、品質保証のためにこれらのタスクをチーム間で簡単に分割できます。チームが実行する手動テストはすべて記録され、分析のために自動的に保存されるため、多くのQAメトリックとインテリジェントなレポートを使用して、テストケースの合格と不合格の数を確認できます。 非常に柔軟に使用でき、開発サイクルに適合します。それをチェックしてください それは [0:43:26。 8] JM:デバッグプロセス、ツールについてお話ししましたが、バグプロセスは困難です。含める必要があるツールの量は困難な場合があり、その多くのためにJavaScriptを記述しなければならないという事実は、チーム構造を変更し、コミュニケーションを変更し、他の微妙な問題やあなたがしなければならない変更を変更しますあなたがReact Nativeを採用したという事実によるモバイルアプリケーションを書くプロセス? [0:43:55。 7] GP:なるほど。良い例を挙げましょう。 Androidや他のカップルの例を見てみましょう。 Androidがあります。 Androidでは、この独特なことを実行して、バックグラウンドでアプリのプロセスを時々殺し、解析レベルのバンドルにいくつかの状態を保存してから、実際にアプリを新しいプロセスで復元して、より速く感じるようにします。製品ページのIDなどを保存し、それを使用して再取得することができます。また、バックスタックなどを再作成し、総合的に再作成します。これにより、アプリが強制終了されても、そうではないように感じられます。 これは本当にクールで、このような微妙なことがインタラクティブな時間の改善に役立ち、ユーザーを元の場所に戻すことができ、ユーザーエクスペリエンスが向上します。 React Native側では、状態を保存するためにReduxを使用していました。 Reduxは、宇宙に浮かぶJavaScriptオブジェクトに過ぎません。これをこの解析レベルバンドルに確実に保持する方法はありません。いくつかの異なるオプションについて考えました。たとえば、どの部分を永続化してそれらのみを永続化するかを特定したり、特定のものを永続化可能としてマークしたりすることができますが、実際には理解していない反応エンジニアがいますAndroidを十分に理解し、適切な場所を知ることは悪夢です。 あるものだけを保持し、他のものを保持しない場合、状態が半分しか復元されていないという非常に壊れた状況で自動的に実際に巻き取ることはできますが、意味のないこの非論理的な状態です。残念なことに、私たちはただ頼りにしなければなりませんでした-私たちが別のプロセスにいたかどうかを判断するために少しハックし、React Nativeのアクティビティをすべて終了しました。基本的に、そのような動作をすべて吹き飛ばしました。それは本当に残念であり、それに対する良い解決策は聞いていません。それは一つのことでした。 もう1つ非常に注意が必要だったのは、テキスト入力とスクロール可能な画面の処理方法を考え出すことでした。確認するために必要なことの1つは、キーボードの上部にあるテキスト入力に触れた場合、その画面をスクロールしてテキスト入力を表示する必要があることです。これは非常に注意が必要です。 iOSにより、少し簡単になります。キーボードが1つあり、それを処理する方法が1つあり、iOSで多かれ少なかれそれを動作させることができます。 次に、Androidで開始します。トップレベルのオプションが2つあります。場合によっては、基本的にAndroidでアクティビティを設定する必要があり、キーボードがポップアップしたときにどうするかを指示します。何もしないように指示することも、キーボードのスペースを空けるためにウィンドウのサイズを変更するように指示することもできます。 1年以上前にこれをやったので、詳細を覚えようとしましたが、おそらくAndroidとiOSのウィンドウを理解し、キーボードが立ち上がっているタイミングを理解し、Androidで任意の数の異なるキーボードを使用し、画面の左右に分割するキーボードを使用できます。フローティングキーボードを使用できます。また、Androidでのキーボードの動作方法にはさまざまな設定があり、さまざまな高さの自動-修正行と追加のパディングなど。 ログインとパスワード、または他のフォームのようなフォーム付きの画面のような単純なもので、テキスト入力フィールドがあり、キーボードで正しいことを確認するために、突然2週間かかりますそれが起こることを期待しています。 [0:47:06。 5] JM:Sunsetting React Nativeのロードマップは何ですか?このテクノロジーからチームを移行するためのあなたの計画は何ですか? [0:47:15。 7] GP:会社の残りの部分を発表する前に。 React Nativeで作業しているすべてのチームのエンジニアリングマネージャーと話し合い、その影響を理解していただきました。その後、スプレッドシートが内部に作成され、すべてのReact Nativeプロジェクトとその所有者、およびそこから離れるプロセスがあります。 Android側でもっと話せるようになりました。それは私がよりよく知っていることですが、チームは非常に協力的であり、とても感謝していると思います。このように、彼らは皆、AndroidとiOSから離れていくリソースを持っていることを確認しています。 大まかに言って、2018年まで、そして2019年まではReact Nativeのサポートを基本的に維持することに同意しました。基本的には、「ねえ、これを本当に早く投げました。現在のロードマップをランダム化したくないので、少なくとも1年または1年半の間、ロードマップが壊れないようにします。その後、インフラストラクチャの維持にそれほど労力をかけることはないので、実際にそこから離れ始める必要があります。 」それは物事の片側でした。 Android側の反対側では、この機会を利用してReact Nativeから離れましたが、Kotlinを採用するなどのことも行いました。 2018年だけで、Kotlinの新しいコードの約0〜80%になりました。この機会を利用して、Reactの機能的なリアクティブな性質のいくつかの最高の側面を取り入れ、基本的に既に行っている多くの一般的なことのいくつかを活用するこの本当に素晴らしいAndroid Kotlinライブラリまたはフレームワークを構築しましたこれらのパターンのいくつかは非常に優れたフレームワークにまとめられており、どちらも迅速に開発できますが、React Nativeに慣れている人にとっては、似たような概念を持っているので馴染みがあります。 [0:48:55。 4] JM:React Nativeに関して人々に何かアドバイスはありますか? React Nativeの使用対象者React Nativeを使用すべきではないのは誰ですか?特定の戦略的決定について話したいだけかもしれませんが、このテクノロジーを吟味するのを手伝ってもらえますか? [0:49:14。 3] GP:ああ。これは黄金の質問です。ReactNativeを使用する必要がありますか?具体的な説明は拒否します。ReactNativeを使用するか、使用しないでください。しかし、これは私が言うことです。まず、React Nativeを実行しても、ネイティブ、Android、またはiOSを実行する必要がなくなることはありません。明示的にそれを行う必要がある人を雇わない限り、React Nativeを行う場合は、何をしているのかに応じてAndroidまたはiOSにかなり頻繁にジャンプする必要があることに注意してください。 2つ目は、React Nativeが機能するとき、驚くべきことです。 React Nativeで非常に良い経験をしたチームが2つあり、生産性と移動速度がチャート外であることがわかりました。実際に確実に動作するホットモジュールのリロードと同様に、コードを1行記述するだけで、AndroidとiOSに1〜2秒で表示されます。これは本当に素晴らしいことだと思います。結局、これが地雷と呼ばれるものです。 すべてが順調に泳いでいる、そしてあなたは小さな地雷を打った。例を挙げましょう。特定の携帯電話で、特にピクセルがこの点で特に注目に値する場合がありましたが、ランダムに大きな変更を加えたとは感じませんでした。 10回程度のうち、すべてのReact Native画面が白くレンダリングされます。彼らは決してレンダリングしませんでした、そして私たちは理由を知りませんでした。すべてがうまく見えた。初期化中、JavaScriptにヒットしていましたが、画面に表示されないだけでした。 私たちはそれを確実に再現しようとして、何が起こっているのかを考えて髪を引き出していました。何が起こっているのかを把握しようとして、複数のエンジニアが落ち着いた週を言った後、フレスコの初期化を削除したことがわかりました。 Frescoは、ネットワークから画像を読み込むためのReact Nativeの画像読み込みライブラリです。 Airbnbでは、基本的に同様のライブラリであるGlideを使用していますが、Glideを使用する代わりに、常にGlideを使用しているため、React Nativeで独自の画像ビューで画像タグをラップしました。 React Nativeライブラリには、すぐにフレスコ画が含まれているため、それを含めました。その初期化を削除するだけで、特定の携帯電話でランダムにReact Nativeがレンダリングされない画面が発生しました。今日まで、接続が何であったかはまったくわかりません。複数のエンジニアが突然この作業をやり直す方法を見つけようとして1週間を費やさなければなりませんでした。これらはリリースブロッカーであり、画面は単にレンダリングされていなかったので、これは本当に悪いことです。 私が言及したキーボードのような他の問題、私はあなたが「ああ、それは単なる単純なフォーム」のようなものだと思う、そしてあなたは1時間でフォームのコンポーネントを書き、それから上にスクロールさせるために2週間を費やすキーボード。そのようなことは私たちにとって本当に難しいものでした。なぜなら、どれくらい時間がかかるかを予測するのが本当に難しくなるか、あきらめることになりますし、技術的にはあなたが望むことをすることができても、それは努力の量ですその地雷を解決する方法を見つけ出すことは投資の価値がありません。 これに対する答えはありません。チームのようなチームは、これが事実であることを認識する必要があるだけだと思います。多くの場合、チームはプロトタイプを作成し、プロトタイプは非常にうまく機能し、「素晴らしい。 React Nativeはこれまでで最高のものです。そして、彼らが生産準備完了までの最後の10%または15%を受け入れようとするとすぐに、これらすべての問題に遭遇します。 私が言いたいもう一つのことは、非常に重要なことです。ReactNativeには、インフラストラクチャに対する多大な継続的な投資が必要です。例を挙げましょう。 AirbnbではReact Nativeのフォークを維持しています。これを行いたくはありませんが、状況の実用性について説明します。私たちは本当に、画面のアクセシビリティを改善したかったのです。これは多くの例の1つにすぎませんが、React Nativeのアクセシビリティサポートは不足しています。これは、すべてが素晴らしいと思う別のケースです。「ああ、私はそれをアクセスしやすくします。すべてのAPIはAndroidとiOSに存在しますが、React Nativeを通じて完全に組み込まれているわけではありません[聞こえない0:53:09。 2]および表示システム。したがって、最終的に自分で構築する必要があります。 」 私たちは先に進み、自分でそれを構築しましたが、その変更はReact Nativeコアに入れなければなりませんでした。もちろん、React Nativeはオープンソースプラットフォームであり、Facebookリポジトリにアクセスし、プルリクエストを作成し、承認して、マージすることもできますが、その後は数週間待たなければなりません。次のリリースに進み、そのアップデートをローカルで実行します。そのための所要時間は、おそらく6週間以上であり、さらに多くの追加時間です。時にはそれを自分のフォークにチェリーピッキングすることと並行して行います。今それが起こります。フォークにいくつかのコミットがあります。実際、2年間でその数は約50、50の個々のコミットに増加しました。繰り返しますが、この状況は好きではありません。 React Nativeを元に戻したいのですが、作業を完了する必要がある場合は、特定の方法で処理する必要があります。これで、新しいReact Nativeのアップグレード(毎月1回)が行われるたびに、ツリーの最上部で手動で50個のコミットをチェリーピックする必要があります。 もちろん、React Nativeは非常に高速で進行しているため、非常に頻繁にマージの競合が発生するか、場合によっては小さなものですが、ファイル全体が変更されることもあります。ファイル全体が欠落しているか、ライブラリ全体が完全にあなたの下から根こそぎにされています。あなたは基本的に動けなくなるこの状況で終わります。 React Nativeの周り、46歳になりました。この時点では、AirbnbでReact Nativeを二度とアップグレードすることはできません。 これは良い状況ではありません。ReactNativeに多額の投資をすれば、非常に簡単に誤って自分自身を見つけることができます。時々、個々のチームがReact Nativeが彼らにとって良いと考えていると聞いたことがありますが、その影響がどのようなものであり、継続的なメンテナンスがどのようになるのかを全体的に見てみる必要があります。多くの人がそうだと思います。 [0:55:00。 8] JM:最後の質問です。Flutterについていくつかのショーを行いました。フラッターはかなりクールです。あなたがそれを見る機会があったかどうかはわかりません。 Airbnbまたはその他のクロスプラットフォームフレームワークの可能性についてどう思いますか? [0:55:17。 3] GP:はい。多くの人がこれを求めてきました。奇妙なことに、私は、十分な理由のあるFlutterが非常に人気があると感じています。 Xamarinの人々は自分のフレームワークにとても情熱を傾けているので、公にそれを愛しているだけで、皆さんに嫌気がさします。何らかの理由で、それはXamarinで顕著でした。 フラッターやその他のフレームワークについては、コミュニティがこの問題を解決しようとしているのは素晴らしいことだと思いますか? AndroidとiOSで同じことを書いていると、毎年何十億ドルも無駄になっていると思います。 [0:55:49。 2] JM:完全に無駄になりました。 [0:55:50。 4] GP:ええ、正確に。文字通り、あなたは同じものを書き込もうとしているのですが、それらの違いがどこで突然違うのかを理解しようとしているのなら。これは本当の問題だと思うし、人々が解決しようと努力しているのは素晴らしいことだと思う。人々は本当にフラッターを楽しんでいるようだと思います。技術的な問題を解決したとしても、パフォーマンスが良くなり、IDEが良くなり、あなたが好きな言語であり、同じ組織を多く持っていることを理解することは本当に重要だと思います問題。 さらに、少なくともReactを選択した理由はすべて失われます。Reactを書いている人がたくさんいます。 React Nativeを開始した時点では、おそらくAndroidとiOSを合わせた人よりも3倍多くの人がReactとJavaScriptを使用していました。それは本当に重要なポイントだと思います。 Reactであることは非常に有益です。何かが機能しないときは、Googleでそれを見つけて、Stack Overflowの答えを見つけることができるからです。何千ものスターが機能するGithubオープンソースプロジェクトを見つけることができます。これらは信じられないほど重要なポイントだと思います。そして、Flutterに行くことでその多くを失います。 言うつもりはありません。GoogleがFlutterへの投資を完全に停止するとは言いませんが、GoogleはFlutterへの投資を停止するリスクがあると思います。 FacebookがReact Nativeで持っているよりもひらひらしています。 Facebookには、そうでないとしても数十個、おそらくReact Nativeを使用する社内チームのこの時点で数百個あることを知っています。 [0:57:21。 0] JM:存在。 [0:57:22。彼らのアプリは巨大です。まだアプリ全体の大きな割合ではないかもしれませんが、彼らは引き続きアプリに投資しなければならず、コミュニティは明らかにアプリにたくさん投資しています。それは本当に重要です。また、Facebookの一部は、React Nativeに対して行っているいくつかの改善点について、公開時にすぐに非常に優れたブログ投稿を公開したと思います。 ネイティブとReact Nativeの間で同期コードを簡単に記述できるようになります。それはニッチな場合にのみ役立つかもしれませんが、初めてReact NativeからNativeにビューを適切にラップ、リサイクル、UIコレクションビューできるなど、いくつかの非常に重要なことを可能にします。それは絶対に巨大であり、2つの間の最大の問題点の1つを解決します。 また、すべてがラップ可能であるという事実は、l Flutterとはかなり大きな違いだと思います。たとえば、Android用のLottieを作成しました。 React Nativeで動作させるのは簡単です。 1時間で、ラッパーを作成し、それを機能させることができます。 Flutterのような独自のビューシステムで動作させるには、実際に独自のレンダラーを再度作成する必要があります。それは例えば地雷である可能性があり、将来起こる可能性があります。 それを総合的に検討することは本当に重要であり、あなたは何をしますか-それはいくつかの問題を解決するかもしれません。 他の人を紹介し、React Nativeと同じ問題をたくさん共有するでしょう。 Airbnb側では、インフラストラクチャとReactの専門知識により、React Nativeに特に投資したと思います。コストプラットフォームを実現するための今のショットだったと思います。 Flutter、Xamarin、またはこれらのクロスプラットフォームフレームワークをすぐに採用する予定はありません。確かに、少なくともReact Nativeが実際にコードベースから外れるまではそうではありません。 [0:59:09。 0] JM:わかりました。ガブリエル、ショーに来てくれてありがとう。これは本当に興味深く、有益なトピックでした。人々はあなたの記事に本当に反応し、そこに多くの価値を見出したと思います。あなたがそれについて喜んで話してくれたことは素晴らしいことだと思います。それは明らかにあなたが言ったように、分裂的で扱いにくい主題です。つまり、結局のところ、私たちはすべてものを構築しようとしているだけであり、少なくとも部屋のエンジニアだけで、ものを構築する方法に関する情報を共有しようとしているだけです。ベンダーはそうではないかもしれませんが、CEOはそうでない場合があります。 エンジニアから、より速く、より効率的にものを構築する方法を知りたいと思います。あなたの記事は、React Nativeを使用することの長所と短所をよりよく理解するのに役立つと思います。記事を書いてくれてありがとう、そしてそれについて議論するためにショーに来てくれてありがとう。 [0:59:59。 6] GP:どうもありがとう。いつも楽しみです。 [インタビュー終了] [1:00:04。 5] JM:今日のSoftware Engineering Dailyのエピソードは、クラウドスケールのインフラストラクチャとアプリケーションの監視プラットフォームであるDatadogが後援しています。 Datadogは、緊密に統合された1つのプラットフォームでダッシュボード、アラートアプリケーションパフォーマンスの監視、およびログ管理を提供するため、エンドツーエンドの可視性をすばやく得ることができます。 AWSとシームレスに統合されるため、EC2、RDS、ECS、および他のすべてのAWSサービスの監視を数分で開始できます。 主要な指標を視覚化し、アラートを設定して異常を特定し、チームと協力して問題のトラブルシューティングと修正を迅速に行います。今日から14日間の無料トライアルを開始して、自分で試してみてください。このポッドキャストのリスナーには、無料のDatadog Tシャツも贈られます。 datadogにアクセスして、ファジーで快適なTシャツを入手してください。 [END]
https://tinyuid.com/1lwMNN

HackerOneプラットフォームは、独自の倫理的ハッカーの1人によってハッキングされました ゲッティ 2019年8月に、6人のハッキングする億万長者がHackerOneバグ報奨金プラットフォームで小金を稼いだことを報告しました。合計で、50万人以上の強力なハッカーコミュニティのメンバーに、7,500万ドル(5,700万ポンド)を超える賞金が支払われました。 HackerOneは、脆弱性を探している倫理的なハッカーと、ゼネラルモーターズ、ゴールドマンサックス、グーグル、マイクロソフト、ツイッター、さらには米国国防総省を含む組織との間の導管として機能します。 。プラットフォームに登録されたハッカーの1人が少し「ゲレンデ外」になり、代わりにHackerOneをハッキングしたことが明らかになりました。その結果、そのハッカーには20,000ドル(15,250ポンド)が支払われました。 HackerOneによる。 この珍しい「ハックベンチャー」がどのように展開したかを以下に示します。 HackerOneはどのようにハッキングされたのですか?ハッカーは誰ですか? ハッカー、およびhaxta4ok00という名前のHackerOneコミュニティメンバーは、11月24日にバグバウンティプラットフォームにレポートを投稿しました。「@ securityおよびその他のプログラムのすべてのレポートを読むことができます。」非常に心配なことを明らかにします。つまり、HackerOneセキュリティアナリストのアカウントにアクセスし、その結果、機密情報を読み取ることができたということです。 11月25日、HackerOneの共同創設者であるJobert Abmaは、haxta4ok00への応答として、攻撃者が脆弱性を悪用するための認証特権を必要とせず、「高い」Common Vulnerability Scoring System(CVSS)評価を保持していることを確認しました。 セキュリティに関してはよくあることですが、重要なのは細部です。ここでの細かい点は、HackerOneのセキュリティアナリストが、バグバウンティプログラムへの提出に関してハッカーと通信している間にURLをカットアンドペーストしたことです。ちょっと技術的なことを言うと、実際には、ユーザーの操作なしでデータを転送できるコマンドラインツールとして使用されるクライアントURL(cURL)でした。とにかく、そのcURLにはスタッフメンバーのセッションCookieの詳細が含まれていました。この一時的なCookieファイルは、ブラウザーが閉じられると消去されるため、ユーザーは新しいページまたはセクションごとに認証することなくサイト内を移動できます。また、haxta4ok00は、認証を提供せずに、ログインしたHackerOneアナリストがアクセスできるのと同じレコードを表示できることも意味していました。そのセッションCookieは、侵害レポートが作成されてから2時間後に取り消されたため、アカウントへの新しい不正アクセスはブロックされました。 11月26日、HackerOneは従業員とアナリストのセッションに制限を追加し、発信元のIPアドレスからのみアクセスできるようにして、将来同様のインシデントを軽減しました。 倫理的なハッキングプラットフォームへの違反のセキュリティへの影響 HackerOneによる内部調査では、haxta4ok00による悪意の証拠はなく、ハッカーは侵害中に取得したすべてのデータを削除したと結論付けましたが、結果は非常に大きかった可能性があります。ハッカーが悪意を持っていた場合、潜在的に、大企業のセキュリティ脆弱性にアクセスできた可能性があります。これらの脆弱性は、その時点で修正および開示されていなければ、ダークマーケットを使用して販売するゼロデイブローカーにとって貴重なアイテムになります。米国国防総省がHackerOneの顧客であることを考えると、影響は単純な金銭的価値を超えた可能性があります。 HackerOneのレポートによると、「複数のオブジェクトの機密情報が公開されました」が、「データアクセスはHackerOne Security Analystのアクセスに限定され、HackerOneの顧客ベース全体をカバーしていません」 HackerOneの広報担当者はBBCに、「HackerOneプログラムの影響を受けるのは5%未満であり、これらのプログラムは報告を受けてから24時間以内に連絡を受けた」と語った。 HackerOneハッカーハックのセキュリティエキスパートビュー Tripwireの上級セキュリティ研究者であるCraig Young氏は、「私はHackerOneの対応を称賛していますが、BugCrowdやHackerOneのようなマネージド脆弱性レポートサービスを使用することで、組織がとる明確なリスクを思い出させます」と述べています。ヤングが述べたように、統合は必然的に「intelligence報機関、さらには犯罪者でさえ、兵器庫を埋めるための非常に魅力的な攻撃ターゲット」になります。 ImmuniWebのCEOであるIlia Kolochenkoは、「HackerOneによって発表されたセキュリティ対策の一部が基本的かつ不可欠な性質であるため、これまで実施されていなかったのは驚くべきことだ」と語った。 「事件の迅速かつ透明な開示」は、彼が言った「他の人への称賛に値する例として機能し、人間が最も弱いリンクであることをもう一度思い出させる」
https://cleanuri.com/5mwrwJ