Ruby

 Computer >> コンピューター >  >> プログラミング >> Ruby
  1. Rubyのニューラルネットワーク:それほど怖くない紹介

    この投稿では、ニューラルネットワークの基本と、Rubyを利用してそれらを実装する方法を学びます。人工知能とディープラーニングに興味があるが、開始方法がわからない場合は、この投稿が最適です。重要な概念を強調するために、簡単な例を見ていきます。 Rubyを使用して多層ニューラルネットワークを作成することはほとんどありませんが、単純さと読みやすさのために、何が起こっているのかを理解するための優れた方法です。まず、一歩下がって、どうやってここにたどり着いたかを見てみましょう。 映画ExMachniaの静止画。写真クレジット Ex Machinaは2014年に公開された映画です。Googleでタ

  2. メモ化によるレールの高速化

    アプリケーションを開発するとき、実行速度が遅いメソッドがあることがよくあります。おそらく、データベースにクエリを実行するか、外部サービスにアクセスする必要があります。どちらの場合も、速度が低下する可能性があります。そのデータが必要になるたびにメソッドを呼び出してオーバーヘッドを受け入れることもできますが、パフォーマンスが懸念される場合は、いくつかのオプションがあります。 1つは、データを変数に割り当てて再利用できるため、プロセスが高速化されます。可能な解決策ではありますが、その変数を手動で管理することはすぐに面倒になる可能性があります。 しかし、代わりに、この「遅い作業」を実行するメソ

  3. Rubyでの選択ソートを理解する

    注:これは、Rubyを使用したさまざまな並べ替えアルゴリズムを紹介するシリーズのパート2です。パート1ではバブルソートについて説明しました。 この投稿では、Rubyを使用して選択ソートアルゴリズムを実装する方法について説明します。選択ソートは、インプレース比較ソートアルゴリズムです。これは、ソートされたアイテムが元のアイテムと同じストレージを占有することを意味します。先に進む前に、データセットが小さい(つまり、10〜20要素)場合を除いて、選択ソートアルゴリズムは実際には一般的に使用されないことに注意することが重要です。ただし、自転車の前に三輪車に乗る方法を学ぶのと同じように、学習して理

  4. Rubyでの通貨計算

    お金は、通貨に関係なく、浮動小数点数のように見えます。しかし、通貨にフロートを使用するのは間違いです。 浮動小数点数(したがって、floatオブジェクト)は、定義上、ネイティブアーキテクチャの特徴である倍精度浮動小数点表現を利用する不正確な実数です。不正確な数字は会計士を不幸にします。 この記事では、RubyとRailsでお金のデータを処理するために利用できるオプションに対処するのに役立ついくつかの簡単な例を紹介します。 フロートとは何ですか? すでに述べたように、 float オブジェクトの算術は異なります。これが不正確な数値である主な理由です。特に、Ruby(ほとんどの言語と同様)

  5. Test-Commit-Revert:Rubyでレガシーコードをテストするための便利なワークフロー

    それは私たち全員に起こります。ソフトウェアプロジェクトが成長するにつれて、コードベースの一部は、包括的なテストスイートなしで本番環境に移行します。数か月後に同じコード領域をもう一度見ると、理解するのが難しい場合があります。さらに悪いことに、バグがある可能性があり、どこから修正を開始すればよいかわかりません。 テストなしでコードを変更することは大きな課題です。プロセスで何かを壊すかどうかはわかりません。すべてを手動でチェックすることは、せいぜい間違いを犯しがちです。通常、それは不可能です。 この種のコードの処理は、開発者として実行する最も一般的なタスクの1つであり、以前の記事で説明した特性テ

  6. Railsでのビューキャッシングについて知りたいことすべて

    キャッシングとは、コードの結果を保存して、後ですばやく取得できるようにすることを意味する一般的な用語です。これにより、たとえば、データベースに何度もアクセスして、めったに変更されないデータを取得することを回避できます。一般的な概念はすべてのタイプのキャッシングで同じですが、Railsは、キャッシュしようとしているものに応じてさまざまな支援を提供します。 Rails開発者の場合、キャッシングの一般的な形式には、メモ化、低レベルのキャッシング(両方ともこのキャッシングシリーズの前の部分で説明)、およびビューキャッシングが含まれます。これらについてはここで説明します。 RubyonRailsがビ

  7. Rubyでのプログラミング言語の構築:パーサー

    Githubのフルソース Stoffleプログラミング言語の完全な実装は、GitHubで入手できます。このリファレンス実装には、コードを読みやすくするためのコメントがたくさんあります。バグを見つけたり質問がある場合は、遠慮なく問題を開いてください。 このブログ投稿では、完全にRubyで構築されたおもちゃのプログラミング言語であるStoffleのパーサーを実装します。このプロジェクトの詳細については、このシリーズの最初の部分をご覧ください。 パーサーを最初から作成することで、予期しない洞察と知識が得られました。この経験は個人によって異なると思いますが、この記事を読んだ後は、次の少なくとも

  8. Rubyでのマージソートの調査

    これは、Rubyを使用したさまざまなソートアルゴリズムの実装を検討するシリーズのパート3です。パート1ではバブルソートについて説明し、パート2では選択ソートについて説明しました。 このシリーズの以前の投稿で説明したように、データの並べ替え方法を理解することは、ソフトウェアエンジニアのツールキットの不可欠な部分です。幸い、Rubyのようなほとんどの高級言語には、配列のソートに効率的な組み込みメソッドがすでに組み込まれています。たとえば、.sortを呼び出す場合 アレイでは、内部でクイックソートを使用しています。この投稿では、クイックソートと同様のアルゴリズム(マージソート)を学習します。これ

  9. GoでのWeb開発:ミドルウェア、テンプレート、データベースなど

    このシリーズの前回の記事では、Go net / httpについて広範な議論を行いました。 パッケージと、本番環境に対応したWebアプリケーションでの使用方法。主にルーティングの側面とその他の癖や http.ServeMuxの機能に焦点を当てました。 タイプ。 この記事では、 ServeMuxに関するディスカッションを締めくくります。 デフォルトのルーターを使用してミドルウェア機能を実装する方法を示し、Goを使用してWebサービスを開発するときに役立つ他の標準ライブラリパッケージを紹介します。 Goのミドルウェア 多くのまたはすべてのHTTPリクエストに対して実行する必要のある共有機能を設

  10. ApacheJMeterを使用してRailsアプリの負荷テストを行う

    ソフトウェアをエンドユーザーにリリースする前に、さまざまな種類のテストを実行して、アプリケーションにバグがなく、ビジネス要件を満たしていることを確認します。多くのテストを行っていますが、ユーザーが実際に使用しない限り、ソフトウェアが安定していることを確認することはできません。エンドユーザーがアプリケーションの使用を開始した後、次の理由のいくつかにより、さまざまな原因でアプリケーションが期待どおりに動作しなくなる可能性があります。 ユーザーの行動は予測できない場合があります; ユーザーはさまざまな場所に分散しています。 多数のユーザーが同時にアプリケーションを使用している可能性があります。

  11. RubyでのAWSLambda関数の構築、テスト、デプロイ

    ソフトウェアの開発は難しい場合がありますが、それを維持することははるかに困難です。メンテナンスには、ソフトウェアパッチとサーバーメンテナンスが含まれます。この投稿では、サーバーの管理と保守に焦点を当てます。 従来、サーバーはオンプレミスでした。つまり、物理ハードウェアを購入して保守していました。クラウドコンピューティングでは、これらのサーバーを物理的に所有する必要がなくなりました。 2006年にAmazonがAWSを開始し、EC2サービスを導入したとき、現代のクラウドコンピューティングの時代が始まりました。このタイプのサービスでは、物理サーバーを保守したり、物理ハードウェアをアップグレードし

  12. ActiveRecordがデータベースへの不必要なトリップを回避するためにキャッシュを使用する方法

    キャッシュを説明する一般的な方法は、後ですばやく取得できるように、コードの結果を保存することです。場合によっては、これは、後で再計算する必要がないように、計算された値を格納することを意味します。ただし、計算を実行せずにデータをメモリに保持するだけでデータをキャッシュして、ハードドライブからの読み取りやネットワーク要求の実行を回避することもできます。 この後者の形式は、データベースが別のサーバーで実行されることが多いActiveRecordに特に関係があります。したがって、クエリが再度実行されるときにデータベースサーバーにかかる負荷は言うまでもなく、すべての要求でネットワークトラフィックのオー

  13. 一意のIDのないデータベースのActiveRecord

    時々、独特の状況や私たちの制御できないものが、非常に非正統的な要件につながることがあります。最近、レコードのデータベースIDに依存せずにActiveRecordを使用する必要があるという経験がありました。誰かが同じことを考えているなら、私は別の方法を見つけることを強くお勧めします!しかし、話の残りの部分に移りましょう。 決定がなされました。小さいデータベース(構造内のクローンであるがデータ内のクローンではない)をマージする必要がありました。チームがデータベースレコードをあるデータベースから別のデータベースにコピーして貼り付けるスクリプトに最後の仕上げをしているときに、私はプロジェクトに参加し

  14. Rubyのコードローダー:Zeitwerkを理解する

    Rubyのコードローダー-Zeitwerkを理解する Zeitwerkを使用すると、クラスとモジュールがどこでも利用できることを知って、プログラミングを合理化できます。 コードローダーとは何ですか? コードローダーを使用すると、開発者はclassesを定義できます。 およびmodules さまざまなファイルやフォルダにまたがって、明示的に要求することなくコードベース全体でそれらを使用します。 Railsは、コードローダーを使用するソフトウェアの良い例です。 Railsでのプログラミングには、明示的なrequireは必要ありません。 コントローラで使用する前にモデルをロードするための呼び出し

  15. LoggerとLogrageを使用してRubyにログインする

    Rubyでのログの操作 ロギングは、アプリケーションが通常対処する主要なタスクの1つです。ログは、たとえば、必要なときに使用されます アプリ内で何が起こっているかを確認します それらを監視する、または 特定のデータの指標を収集します。 新しいプログラミング言語を学ぶとき、情報を記録するための最初の明白な選択は、ネイティブメカニズムです。通常、それは簡単で、文書化されており、コミュニティ全体に広く行き渡っています。 ログデータは、使用している会社、ビジネス、アプリケーションの種類によって大きく異なります。したがって、あなたとあなたのチームが選択したロギングソリューションがその全体的な使

  16. RubyのSOLID設計原則

    すべてのソフトウェアアプリケーションは時間とともに変化します。ソフトウェアに加えられた変更は、予期しないカスケードの問題を引き起こす可能性があります。ただし、変更しないソフトウェアは構築できないため、変更は避けられません。ソフトウェア要件は、ソフトウェアの成長とともに変化し続けます。私たちにできることは、変更に対して回復力のある方法でソフトウェアを設計することです。ソフトウェアを適切に設計することは、最初は時間と労力を要する可能性がありますが、長期的には時間と労力を節約します。緊密に結合されたソフトウェアは壊れやすく、変更によって何が起こるかを予測することはできません。設計が不十分なソフトウェ

  17. どちらが最速ですか? ERB vs. HAML vs. Slim

    この記事では、最も人気のある3つのRubyテンプレートエンジンであるERB(デフォルトのエンジン)、HAML、SLIMのパフォーマンスをテストおよび分析します。 ベンチマークとは、ビジネスプロセスとパフォーマンスメトリックを業界のベストプラクティスや他社のベストプラクティスと比較することです。一方、負荷テストは、システムに需要を与え、その応答を測定するプロセスです。 私たちの目標は、Rubyコードの実行に使用された時間を測定および報告するためのメソッドを提供するRubyベンチマークモジュールを少し調べることです。いくつかのインラインテンプレートを作成し、それらをテストに対して実行し、3つの

  18. 複雑な正規表現を単純なパーサーに置き換える

    告白時間:正規表現を扱うのは特に好きではありません。私はいつもそれらを使用していますが、/^foo.*$/よりも複雑なものは何でも 立ち止まって考える必要があります。 \A(?=\w{6,10}\z)(?=[^a-z]*[a-z])(?=(?:[^A-Z]*[A-Z]){3}) 一見すると、グーグルで数分かかり、不幸になります。これは、Rubyを読むこととはかなり異なります。 興味がある場合は、上記の例は、正規表現の先読みに関するこの記事から抜粋したものです。 状況 Honeybadgerでは、現在検索UIの改善に取り組んでいます。多くの検索システムと同様に、私たちのシステムは単純

  19. Sidekiqをきれいにスケーリングする

    今年の初めに、専用サーバーホスティング施設からAWSに移行しましたが、移行できてとてもうれしく思います。そうすることでサーバーをいじる時間を減らすことができるので、たくさんの自動化が整っていることを嬉しく思います。 :)この投稿では、処理を行うエラー通知の量が変更されたときにインフラストラクチャで何が起こるかについて説明します。 スケーリング方法 私たちの処理パイプラインは、私たちにとって堅実なSidekiqに大きく依存しています。パイプラインでの作業の大部分は、自動スケーリンググループに属するインスタンスによって処理されます。 Sidekiqbacklogが増加すると、CloudWatch

  20. 例外クラスへのコンテキストの追加

    最近、 honeybadgerのバージョン3.2を出荷しました。 RubyGem。エラーレポートにコンテキストを簡単に追加できるようにする新機能が含まれています。 tl; dr ラーテル gemは、#to_honeybadger_contextの定義をサポートするようになりました 任意の例外クラスのメソッド。その例外のインスタンスが発生してHoneybadgerに報告されると、そのコンテキストはエラーレポートに自動的に含まれます: class MyError < StandardError attr_reader :custom_attribute def initial

Total 560 -コンピューター  FirstPage PreviousPage NextPage LastPage CurrentPage:22/28  20-コンピューター/Page Goto:1 16 17 18 19 20 21 22 23 24 25 26 27 28