タグ

errorに関するmanabouのブックマーク (105)

  • エラーや非同期処理をより安全に扱うための TypeScript ライブラリ Effect-TS

    TypeScript の型システムを活用して、番のアプリケーションにおける実用的な問題を解決することを目指しています。Effect-TS は、以下のような特徴を備えています。 並行性(concurrency):Fiber ベースの並行モデルにより、高いスケーラビリティと低レイテンシを実現 コンポーザビリティ(composability):小さく再利用可能なパーツを組み合わせることで、メンテナンス性、可読性、柔軟性の高いソフトウェアを構築する リソースの安全な管理(resource-safety):処理が失敗したとしても、安全にリソースを開放する 型安全性(type-safety):TypeScript の型システムを活用した型推論と型安全性に焦点を当てている エラー処理(error handling):構造化された信頼性の高い方法でエラーを処理する 非同期性(asynchronicity

    エラーや非同期処理をより安全に扱うための TypeScript ライブラリ Effect-TS
  • Ruby Parser開発日誌 (18) - Rearchitect Ripper - かねこにっき

    Rubyのparserを語る上で忘れてはいけない存在としてRipperというライブラリがあります。 RipperはRubyのコードを構文解析するためのライブラリとしてirbやrdocなどで長く使われてきました。 一方でBug #10436のように長い間未解決のバグがあったり、Bug #18988のようにパーサーと挙動が異なる箇所があったりと完璧でない部分があります。 今回Ripperのアーキテクチャを見直すことでRipperの抱えている問題を解決することができたので、この記事で紹介したいと思います。 関連するPRとticketはそれぞれ以下のとおりです。 github.com bugs.ruby-lang.org Ripperとは RipperはRubyのパーサーライブラリです。入力されたコードに対応するS式を返すRipper.sexpを使ったことがある人もいるのではないでしょうか。 Ri

    Ruby Parser開発日誌 (18) - Rearchitect Ripper - かねこにっき
  • レガシーシステムをDockerコンテナ化する場合に直面した4つの壁 - RAKUS Developers Blog | ラクス エンジニアブログ

    こんにちは。 株式会社ラクスで先行技術検証をしたり、ビジネス部門向けに技術情報を提供する取り組みを行っている「技術推進課」という部署に所属している鈴木(@moomooya)です。 ラクスの開発部ではこれまで社内で利用していなかった技術要素を自社の開発に適合するか検証し、ビジネス要求に対して迅速に応えられるようにそなえる 「技術推進プロジェクト」というプロジェクトがあります。 このプロジェクトで「WEBアプリケーションのDockerコンテナ移行」にまつわる検証を進めているので、その中間報告を共有しようかと思います。 検証での想定環境 CIに不必要な部分は後回し 既存アプリでコンテナ化の障害になった部分 OSコマンドを利用している ミドルウェアとの密結合 オンライン系とバッチ系の密結合 ひとまず目指す状態 プロセス相乗りの影響 ログが複数出力される まとめ 続きの記事も書きました。 tech

    レガシーシステムをDockerコンテナ化する場合に直面した4つの壁 - RAKUS Developers Blog | ラクス エンジニアブログ
  • エラーメッセージ | コンテンツ | SmartHR Design System

    アプリケーション内に表示するエラーメッセージの作成に関するガイドラインです。 エラーメッセージのライティングは、基的にライティングスタイル、用字用語に準拠します。 そのほか、エラーメッセージ特有の気をつけるべきポイントを記載しています。 適用範囲アプリケーションを操作してエラーが発生したときに表示するメッセージすべてです。 ここでは、以下の場合について説明します。 バックグラウンド処理画面FlashMessageエラーメッセージの基的な考え方エラーメッセージを表示する目的は、ユーザーがメッセージを見て問題を解決でき、次の操作に進める状態にすることです。 この状態を実現できないエラーメッセージだった場合、ユーザーの戸惑いや不安につながります。 ユーザーが問題を解決できる対処方法を明示した内容にすることを考えます。 エラーメッセージの基的な要素どのエラーメッセージであっても、含める情報の

    エラーメッセージ | コンテンツ | SmartHR Design System
  • データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし

    こんにちは、id:shallow1729です。最近はインフラ寄りなお仕事をよくやっていますがこれまでにいくつかデータ移行やデータ基盤構築などのバッチ処理のお仕事をしてきました。以前にも一度そういった経験を元に記事を書いたのですが、MySQLやシステムに関する知識が以前よりも増えた今もう一度書き直したいなと思いました。 なので今回はバッチ処理を書く時のテクニック2022版という感じです。今の仕事の関係でMySQLrailsを前提にしている話が多いですが、おそらく他のデータベースを使っている人にも役に立つ話が多いのではないかと思います。ただ、今回の記事は経験に基づくものが多く、あまりよくないアイデアもあるかもしれません。改善点や間違いなどあればご指摘ください。 冪等性を持つように 冪等性とは端的に言えばある操作を複数回実行しても一回しか実行しなかった時と同じ結果になる性質の事です。長時間かか

    データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし
  • loggingについて話そう - Qiita

    この記事は Let’s talk about logging の翻訳です。 Nate Finch による Go Forum への投稿で始まったスレッド を見てこの記事を書くことにしました。 この記事は Go を対象にしていますが、あなたのいままでのやり方を振り返ってみたら、同じ考え方がより広く適用できると思います。 なんでこんなに足りないの? 訳注: "Why no Love?" を、「(愛されてないから)機能が足りない」というニュアンスで解釈しましたが、自信が無いです。 Golog パッケージ はレベル付きのロギングを提供していません。なので手動で debug, info, warn, error のようなプレフィックスを書く必要があります。 また、 Go はパッケージごとにログの出力レベルを制御する方法も提供していません。 比較対象としてサードパーティーのロギングライブラリを見て

    loggingについて話そう - Qiita
  • 「次から気をつけます」に対抗する、反省文よりは効果が上がる再発防止、学びの機会 - Qiita

    再発防止策を書くのは難しい。 良い再発防止策 良い再発防止策について、順位付けするとしたら、 その種類の問題について二度と意識することがなくなる解決策 その種類の問題を開発時に自動的に検知することができる解決策 その種類の問題が発生しても自動的に復旧することができる解決策 その種類の問題が発生しても影響が局所化される、フールプルーフ、フェールセーフになる解決策 と言うのは意識したいと思いつつ、やはり難しい。 再発防止はむずかしい 障害の再発防止策は、 メカニズム ツール ルール チェックリスト の順番に検討せよ。と言われても、急いで書けなんて言われると「次回からは複数人でチェックします。」とか「チェック項目を追加します。」とかいう徹底できなそうな「反省文」になってしまう。 まさにこの有名な...。 **「なぜミスを繰り返すのか」「どうすればミスを防げるのか」を真剣に考えていないことがミス

    「次から気をつけます」に対抗する、反省文よりは効果が上がる再発防止、学びの機会 - Qiita
  • AWS Lambda の Error Processor サンプルアプリケーション - AWS Lambda

    翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。 AWS LambdaError Processor サンプルアプリケーション Error Processor サンプルアプリケーションは、 を使用して Amazon CloudWatch Logs サブスクリプション からのイベントAWS Lambdaを処理する方法を示しています。 CloudWatch Logs を使用すると、ログエントリがパターンに一致するときに Lambda 関数を呼び出すことができます。このアプリケーションのサブスクリプションは、ERROR という単語を含むエントリの関数のロググループをモニタリングします。レスポンスとして、プロセッサ Lambda 関数が呼び出されます。プロセッサ関数は、エラーの原因となったリクエストのフルログストリー

  • 明日から使える実践エラーハンドリング

    class: center, middle # 明日から使える<br/><strong>実践</strong><br/>エラーハンドリング Scala関西Summit 2018 11/10 --- class: left, middle ## 自己紹介 * 中村 学(Nakamura Manabu) * [@gakuzzzz](https://twitter.com/gakuzzzz) * Tech to Value 代表取締役 * Opt Technologies 技術顧問 <img src="../images/opt_logo_1.jpg" alt="Opt Technologies" width="450" style="margin-left: 0px" /> * F-CODE CTO <img src="../images/f-code_logo.png" alt="f-cod

  • 「エラーする人は自分を信じすぎでは?」ヒューマンエラーの勉強で得た、「気をつける」は対策ではないという考え方

    S U Z U@旅パッキングand客力の磨き方 @suzukyuin ヒューマンエラーの勉強をすると「気をつける」は対策ではありませんと、教え込まれるので。全てのものにフールプルーフ&フェールセーフをするようになるので、エラーが減ります。 エラーする人は自分を信じすぎでは?って思ってる。 2020-06-18 21:21:45 S U Z U@旅パッキングand客力の磨き方 @suzukyuin 得にルーティーンで決まってることの途中でイレギュラートラップ(例えば話しかけられる、電話かかってくるとか途中の流れをインターセプトされる状況)が起きると、全部スッこ抜けて大事故につながるエラーを起こすので、そう出来ない仕組みを作るとかね。 とにかく「人は間違える」って思うの大事 2020-06-18 21:24:36 S U Z U@旅パッキングand客力の磨き方 @suzukyuin とんでもな

    「エラーする人は自分を信じすぎでは?」ヒューマンエラーの勉強で得た、「気をつける」は対策ではないという考え方
  • ペパボ トラブルシュート伝 - node プロセスの general protection fault を追う - abort(3) の意外な実装 - Pepabo Tech Portal

    セキュリティ対策室の伊藤洋也 @hiboma です。 業務中に、Haconiwa コンテナ で動くとある node プロセスが general protection fault ( 一般保護違反! ) を起こしてdmesg にログを残す現象を調べ、問題解決にあたっていました。その際の痕跡をまとめなおして記したエントリになります。 エントリの概要 エントリでは、以下のような内容を扱います。 Haconiwa コンテナの node プロセスが general protection fault を起こしている ライブラリ関数 abort(3) の概要 abort(3) がプロセスを停止する方法の検証 node プロセスが abort(3) を呼び出すケース glibc x86系の abort(3) 実装が HLT 命令を呼び出し、general protection fault を起こすこと

    ペパボ トラブルシュート伝 - node プロセスの general protection fault を追う - abort(3) の意外な実装 - Pepabo Tech Portal
  • Go Tips 連載5: エラーコードベースの例外ハンドリングの実装+morikuni/failureサンプル | フューチャー技術ブログ

    概要TIG DX所属の多賀です。最近は設計をしつつ Go も触れて引き続き楽しく仕事してます。 今回は、errors package を一部利用して、エラーコードベースのエラーハンドリング処理を実装しました。また、morikuni/failure を利用した実装への書き換えも試してみています。 エラーコードベースの例外ハンドリングについて前提としてGoで書かれた HTTP APIサーバーに対してのエラーハンドリングについて記載します。 エラーコードベースの例外ハンドリングについてですが、アプリケーションで発生するエラーを事前にラベリングしてコード化し、コードをもとにエラーハンドリングを実施することとします。発生時の運用対応や影響について、事前に一覧で整理することで、運用負荷を下げる意味があると考えています。(補足: Futureではメッセージコードと呼称することが多いですが、一般的な命名で

    Go Tips 連載5: エラーコードベースの例外ハンドリングの実装+morikuni/failureサンプル | フューチャー技術ブログ
  • メインフレームの異常処理 - Qiita

    はじめに この記事では、メインフレームでは異常時の処理でどのようなことをやっているのか、また、Linuxの異常処理との違いなどについて話してみようと思います。 この記事を書くに至った直接的なきっかけは、とある人からリクエストがあったからです。が、日ごろからメインフレームの異常処理の考え方については、PCサーバーやクラウドによるシステムがメジャーになった現代であっても、参考になることは多いと感じていてはいました。 筆者は今でこそLinux Kernel周りの仕事をしていますが、20年ぐらい前のころはメインフレームのOS開発部隊に配属されていて、メインフレームのとあるコプロセッサのドライバを書いたりしていました。この際、その異常処理における考え方を体験する機会が多々あり、当時のその経験が20年後の現在でも大いに役にたっていると感じていたからです。 そもそもメインフレームは、これまで長年にわたっ

    メインフレームの異常処理 - Qiita
  • なんでもかんでも「バグ」ってひとくくりにしないで - Qiita

    はじめに プログラマがソフトウェアを作るとユーザがつきます。ユーザがそのソフトウェアを使っていて何らかの問題が発生すると「このソフトはバグってる、直して!」と言われることがままあります。それに対して「いや、仕様だから」と突っぱねられることがあります。その後お互いの意見が「バグだ!」「いいや仕様だ!」と平行線になってお互いモヤモヤのまま終わるというのはよくある話です。 なぜこういうことが起きるかというと、原因の一つは「問題」イコール「バグ」という短絡的な考え方です。とくにソフトウェアを作ったり使ったりした経験が浅い人がこうなる傾向があると推測しています。このようない違いは「要件」「仕様」と「実装」という言葉の意味を理解していればある程度解決できます。書はこれらの用語について実例を挙げて簡単に紹介します。 注意点 記事では要件や仕様を定義することが前提となっていますが、とくにユーザと開発

    なんでもかんでも「バグ」ってひとくくりにしないで - Qiita
  • エラーメッセージはフォームのどこに表示するべきか

    UX Movementの著者および設立者です。ユーザー体験のデザインスキルの開発を手助けしてよりユーザーフレンドリーな世界のために、このブログを創設しました。 フォームのどこにエラーメッセージを配置していますか? ユーザーの期待する場所にエラーメッセージが置かれていないと、ユーザーはフォーム入力を完了できなくなってしまうかもしれません。 フォーム入力を間違えたら、ユーザーはそれを修正して送信し直すために、なにが間違っていたのかを理解する必要があります。フォームを完了しようと思っていたとしても、それがあまりにも大変であればユーザーは心変わりしてしまうでしょう。 フォームの上か、フィールドのインラインか エラーメッセージの配置場所でもっとも一般的なのは、「フォームの上」と、「エラーのあるフィールドのインライン」という2箇所です。どちらの配置場所が、ユーザーにとってより直感的でしょうか? 調査に

    エラーメッセージはフォームのどこに表示するべきか
  • 死んだCSSを見つける方法 - Qiita

    使われてないCSSであればツールで見つけられますが、そうではなく、"実質的に"使われてないCSSを見つけるにはどうすればよいでしょうか。 という問題にスマートな解決方法を記載している記事を見つけたので訳してみます。 以下はFinding Dead CSSの日語訳です。 Finding Dead CSS 私が今週開いていたパフォーマンスワークショップで、Webサイト上で死んだCSSを見つけるテクニックが頭をよぎりました。 今、故意に『未使用CSS ( unused CSS ) 』ではなく『死んだCSS ( dead CSS ) 』というフレーズを使いましたが、これは以下のようなシナリオを想定して使いました。 数十人規模の多数のチームが開発している、数十万行のコードを含む、長期にわたって運用されている大規模なプロジェクトがあるとしましょう。 そこには既に使われていないCSSがあるだけではなく

    死んだCSSを見つける方法 - Qiita
  • EPYCマシンの検証 (1)- SEGV問題の発生有無 - Cybozu Inside Out | サイボウズエンジニアのブログ

    はじめに 技術顧問のsatです。サイボウズはAMDの最新サーバ用プロセッサEPYCを搭載したマシンを最近購入しました。EPYCは各種技術サイトのベンチマークにおいて優れた性能を示しているにもかかわらず、同プロセッサを搭載する製品が少ないこともあり、現物についての情報をあまり見かけないのが現状です。そんなEPYCマシンに対するサイボウズによる様々な検証について、数回に分けて連載形式でお伝えしたいと思います。 SEGV問題 EPYCと同じマイクロアーキテクチャを採用したPC用プロセッサRyzenには、いわゆる「SEGV問題」という問題が存在しました。第一回では、この問題が手元のEPYCにおいても発生するかどうかを確認した結果についてお伝えします。筆者は幸か不幸か私用PC(Ryzen1800x)においてSEGV問題に遭遇して複数個体を検証しましたので、今回はその経験に基づいて検証をしました。 事

    EPYCマシンの検証 (1)- SEGV問題の発生有無 - Cybozu Inside Out | サイボウズエンジニアのブログ
  • ユーザのブラウザで起きた JavaScript のエラーを収集する - Qiita

    なぜエラーを収集するのか バグ探し バグを見つけて潰していくため ユーザからのバグ報告の補助 ユーザに報告の負担をかけないため エラーを取得する 取得タイミング window.onerror Promise のエラー フレームワーク毎の特定のタイミング window.onerror window.onerror にメソッドを登録しておくことでエラー発生時にそのメソッドが呼ばれる。try-catch でハンドリングしていないエラーが流れてくる。

    ユーザのブラウザで起きた JavaScript のエラーを収集する - Qiita
  • C#のエラーハンドリング実装あれこれ - Qiita

    この記事はC# Advent Calendar 2017の19日目の記事です。 18日目は@usamik26さんの「Moq : Mocking Framework for .NET - Qiita」でした。 C#におけるエラーハンドリング C#は2002年に.NET Frameworkとともにバージョン1.0がリリースされ1、既に15年ほどの歴史があり、2017年12月19日現在はバージョン7.2まで進化しています2。その歴史の中では、当然言語機能も増え、エラーハンドリングのやり方も徐々に種類が増えてきました。 そこで、C#に置けるエラーハンドリングの実装を一度ここで整理し、特徴をまとめてみます。 免責事項 このリストはもちろん完全ではありません。誤字脱字から認識の齟齬、他にもこんなやりかたがあるよ、特徴にこんなものがあるよ、などありましたら、遠慮なく編集リクエストやコメントにてお知らせく

    C#のエラーハンドリング実装あれこれ - Qiita
  • メモリのビット反転エラーとセキュリティの話|Rui Ueyama

    ハードウェアのエラーでメモリの内容が化けてしまうことが稀にある。大抵のDRAMエラーはせいぜいプログラムがクラッシュする結果になるだけだが、データ破壊になることもありえるし、悪意のある使い方をすればセキュリティ破りに使うこともできてしまう。ここではメモリエラーとセキュリティの話をしようと思う。 メモリのエラー率は意外なほど高い。データセンターで大規模なマシン群を対象に実際に観測したところ、1年間に1回以上のエラーが発生したDIMMモジュールは全体の8%にのぼったそうだ。DIMM 1枚に数百億個のメモリセルが実装されているといっても、このエラー率はちょっとびっくりするくらい大きな数字ではないだろうか? サーバでは普通はエラー訂正付きのDIMMを使うので1ビットのエラーは問題にならないが、エラー訂正のないコンシューマ機器ではこれは実際的な問題になりえる。 メモリエラーを利用したセキュリティ破り

    メモリのビット反転エラーとセキュリティの話|Rui Ueyama