並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 142件

新着順 人気順

errorの検索結果1 - 40 件 / 142件

errorに関するエントリは142件あります。 プログラミングprogramming開発 などが関連タグです。 人気エントリには 『「次から気をつけます」に対抗する、反省文よりは効果が上がる再発防止、学びの機会 - Qiita』などがあります。
  • 「次から気をつけます」に対抗する、反省文よりは効果が上がる再発防止、学びの機会 - Qiita

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

      「次から気をつけます」に対抗する、反省文よりは効果が上がる再発防止、学びの機会 - Qiita
    • 仮想通貨で儲かったら税務調査された|ロンちゃん

      先日税務調査があったため、その内容についてまとめました。 ちなみに私は窓際に片足突っ込んだビジネスハゲのサラリーマンで、 副業がてらシコシコ仮想通貨で稼いでるポメ。 税務署からの通知は突然に 普通に個人の電話に連絡が来ました。 今のスマホは便利です。ご丁寧に○○税務署とディスプレイに表示までしてくれます。 ディスプレイを見た瞬間は心臓が震えました。 2023年暮れにTRBが暴騰してロスカされた時ぐらい震えました。 寝てる間にあんな上がると思わへんで普通。 税務調査の内容について 調査対象は所得税、過去3年分。 仮想通貨利益が多いのでそれ中心に見させてくださいとのこと。 ・仮想通貨取引履歴 ・株取引履歴 ・寄付金受領証明書(ふるさと納税) ・先物等取引履歴 ・銀行の入出金履歴 ・スマホ転売の明細書 調査官に聞きましたが、税務調査のトリガーは仮想通貨の利益だそうです。 確定申告したことある人は

        仮想通貨で儲かったら税務調査された|ロンちゃん
      • フレッツ光の最近の品質の話 - TRY AND ERROR

        NTT東西の提供するFTTHサービス「フレッツ・光ネクスト」では、「IPv6オプション」を利用(IPv6オプションは2012年のある時期以降に新規開通した回線ではデフォルトで利用可能な状態になっている)することにより、NTT東日本、NTT西日本それぞれのエリア内でインターネットを経由しないフレッツIPv6網内折り返し通信が可能であることは、本ブログの読者の多くはご存知かと思います。 IPv6網内折り返し通信は、遅延やパケットロスが極めて少ないことや、PPPoEでのインターネット接続と比較して、スループットが高いこと、ISP契約が不要であることなどにより、安価で高品質なベストエフォートなVPN構築用回線として利用されることがあります。AS59105(HOMENOC)でも、拠点間の回線は Ether over IP トンネルやGREトンネルなどをIPv6網内折り返し通信の上で構築して利用してい

          フレッツ光の最近の品質の話 - TRY AND ERROR
        • データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし

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

            データ変更を伴うバッチ処理を書く時に考慮していること - shallowな暮らし
          • ShellScriptで自動化を楽にしたい時に知っておいても良いこと | sreake.com | 株式会社スリーシェイク

            はじめに こんにちは、皆さん。今日は、シェルスクリプトを使った高度な自動化のベストプラクティスとパターンについて解説します。これらは、ちょっとした知識で実行でき、作業を大幅に効率化できるTipsです。シェルスクリプトは、特にUNIX系システムでの自動化タスクに欠かせないツールです。適切に使用すれば、複雑なタスクを効率的に、そして信頼性高く実行できます。 トイルとは、反復的でマニュアルな作業のことを指します。これには、例えば、手動でのシステムのスケーリングや、エラーのトラブルシューティング、ルーティンなメンテナンス作業などが含まれます。トイルを特定し、それを自動化することで、エンジニアはより創造的なタスクやプロジェクトに焦点を合わせることができます。 トイルを判別する方法としては、以下のような基準が挙げられます: 手作業であること 完全な手作業だけでなく、「あるタスクを自動化するためのスクリ

              ShellScriptで自動化を楽にしたい時に知っておいても良いこと | sreake.com | 株式会社スリーシェイク
            • C言語をマスターしたい人はGCCのバージョン14を使いましょう - pyopyopyo - Linuxとかプログラミングの覚え書き -

              C言語(C++を含む)を習得したい人,ポインタを勉強したい人はgcc-14を使いましょう.難しいところは gcc-14 が丁寧に解説してくれます C言語の難しいところ 例を示します.C言語で記述された,たった6行のソースコードです int main() { int buf[10]; buf[10] = 0; return 0; } このソースコードには問題があります.初見でわかるでしょうか? : : : 問題があるのは buf[10]=0 の部分です.C言語でやりがちなミスですが,これがバグやセキュリティホールの原因になります. C言語が難しい理由は二つあります.この手の問題を見逃しやすい点と,この手の問題を理解することが難しい点の二つです gcc 14 に解説してもらいましょう 上記の6行のソースコードをgcc14を使ってコンパイルしてみます ソースコードのファイル名は test.c と

                C言語をマスターしたい人はGCCのバージョン14を使いましょう - pyopyopyo - Linuxとかプログラミングの覚え書き -
              • いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう! - Qiita

                はじめに [ $? -eq 0 ] や [ $? -ne 0 ] は冗長でデメリットしかありません。非常に多く見かける書き方ですが、1979 年に Bourne シェルが広く公開された時からこのようなコードは必要ありませんでした。実際に当時はこのような書き方は使われておらず、このような書き方をしなければならなかった歴史的な経緯などはありません。これはなぜか広まってしまった良くない書き方です。 優れたコードとは無駄がないシンプルなコードです。丁寧なコードとは無駄な処理を書くことではありません。[ $? -eq 0 ] や [ $? -ne 0 ] は書かないほうが、簡単で読みやすくわかりやすくなります。優れた文法を持つシェルは短いコードで正しく動作し、良い書き方は最短の時間と最小の手間で目的を達成することができます。コマンドのエラー処理を簡潔に書くことができるのが、シェル言語の優れている点の

                  いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう! - Qiita
                • 教科書はなぜ間違えたか?~大航海時代とオスマン帝国|世界史探究の探究

                  ひとまず、以下の二つの記述が、なぜ誤っているかを考えてみて欲しい。 ヨーロッパの人々は、なぜ遠洋に乗り出していったのだろうか (中略) アジア産の香辛料は重宝されたが、東地中海に勢力を拡大していたオスマン帝国を経由して輸入されたため高価であった。 (中略) このため、15~16世紀のヨーロッパ諸国は、ポルトガル・スペインを先頭に大西洋に乗り出し、 山川出版社『詳説世界史』P158(ヨーロッパの海外進出の動機は)オスマン帝国の地中海進出への危機感 東京書籍『世界史探究』P170 ヒント 香辛料交易《紅海ルート》 従来はティグリス川・ユーフラテス川からペルシア湾を経由する交易ルートが主流であったが、10世紀後半以降、アッバース朝の政治的混乱などによって、南方の紅海・ナイル川を経由して海路やアレクサンドリアに至るルートへと主流が変化した。 山川出版社『世界史用語集』P91 1402 バヤジット1

                    教科書はなぜ間違えたか?~大航海時代とオスマン帝国|世界史探究の探究
                  • MySQLで発生し得る思わぬデッドロックと対応方法

                    はじめに この記事は実際の業務で発生した MySQL のデッドロックとそのいくつかの回避方法や対応方法を(テーマは変えて)手元で実行できるコードを用いて解説する記事です。具体的には「トランザクション張っておけば大丈夫」と思ってませんか? バグの温床になる、よくある実装パターンの記事で紹介されている「1on1 チャットサービス」で紹介されているデッドロックとデータベースレイヤでは同じ状況だったのですが、記事で紹介されている方法とは別の方法でデッドロックを回避する必要があったため、同じ状況に遭遇した人の助けになればという思いで記事を書きました。また、こちらの記事が無ければ私自身も現象を理解するのにもっと苦労したと思うので、この場を借りてお礼申し上げます! 出金サービス履歴登録サービスを例に考える コードと説明が https://github.com/shuntagami/withdrawal_

                      MySQLで発生し得る思わぬデッドロックと対応方法
                    • Kindle書籍を短時間でメモに文字起こしをしてNotebookLMで使用する方法|Shin@AI×Webマーケ

                      新しく発表になった、GoogleのAIサービスである「Notebook」を使っているんですが、 - 本のPDFをアップロードする - すると中身が全部左側に出てくる - AIに色々質問ができる - 答えに出てきた部分を左側で読める - 回答をピン留めするとメモとして保存できる。メモを自分で書くこともできる… pic.twitter.com/ogaUG4bYvB — けんすう (@kensuu) June 7, 2024 【AI用に物語思考のPDFを公開します】 AIを使って読書をするとめちゃくちゃに捗るよ、、という話をよくしているんですが「本のPDFがない」という人が多くて。 で、ちょっと試すのにPDFを用意するのって手間だよねえ、と思っているので、、… — けんすう2 (@kensuu) June 10, 2024 AIと対話しながら、自分だけの読書体験を実現する方法があります! Kin

                        Kindle書籍を短時間でメモに文字起こしをしてNotebookLMで使用する方法|Shin@AI×Webマーケ
                      • その例外、いつキャッチするの?

                        はじめに 最近、若手のコードレビューをしていて例外の使い方を教える機会があったので、ブログの方にもまとめたいと思います。今回はバッチ編。オンラインだとまた少し違う観点があると思います。また、言語はJavaを前提していますが考え方は例外機構をもつ言語ならあまり変わりません。 TL;DR 例外は原則キャッチしない。バッチは速やかに殺せ 個別箇所でログを出さずに必要な業務情報はExceptionを入れ子にして乗せる 長いバッチのためにはスキップもやむなし 原則、例外はキャッチしない JavaにはErrorとExceptionが存在し、OutOfMemoryErrorとかプログラム上ではどうしようもないものがエラー、ファイルが存在しない(FileNotFoundException)とかプログラム側でハンドリングするもの、と教科書では習うと思います。なのでException系はキャッチするものと、と

                          その例外、いつキャッチするの?
                        • Chat GPT-4にDDDのドメインモデルを考えさせたら凄かった件

                          株式会社モアで、バックエンド兼インフラエンジニアのrevenue-hackです! DDD(ドメイン駆動設計)でドメインモデル考えますよね? その時にGPT-4にやってもらったらどうなんだろう?とふと思い、実際にユースケースからドメインモデルを作ってもらいました! ↓記事移行しました!↓ AI駆動開発&設計に力を入れていて、 弊社では適宜エンジニアを募集しているので、興味のある方はご連絡ください! 株式会社モア

                            Chat GPT-4にDDDのドメインモデルを考えさせたら凄かった件
                          • ドメインを変えたらサービスが繋がらなくなったと言われた件

                            Intro 弊社で開発しているサービスの、ドメインを変更することになったときの話。 すでに旧ドメインで一部顧客に利用していただいていたため、旧ドメインは破棄せずに新ドメインにリダイレクトさせるようにしました。 DNSの設定やコードをいくらか修正し、リリースをしました。Webアプリを触って画像が表示されたりデータが取得更新できたりと、通常通り使えることを確認して一安心していました。 問題発生 すでに使っていただいていた社外ユーザーから「画像が表示されない」と連絡がありました。 スクリーンショットを見るとたしかに画像が切れてALTテキストが表示されていました。しかし同じ画面を自分のPCで閲覧すると正常に画像が表示されています。 先方のファイアウォールがホワイトリスト制にでもなっているのかと思い、ファイアウォールの設定をご確認くださいと返答しました。ですが「TCP/80(http)とTCP/44

                              ドメインを変えたらサービスが繋がらなくなったと言われた件
                            • 決済チームがテストコードを書く際に気を付けていること - UPSIDER Techblog

                              こんにちは。決済チームでエンジニアとして働いている芦川です。 UPSIDER Tech blog 第2弾として「決済チームがテストコードを書く際に気をつけていること」を紹介しようと思います。 TL;DR 100%のテストカバレッジを目指す テストはブラックボックスを優先して記述、どうしても到達できない場合はホワイトボックス 最初のテストケースは、テスト対象が動作する最も一般的なケースであるべき 私たちは日々大量のコードを書いており、そのシチュエーションは多岐にわたります。 そういった環境において、動作確認からのコード改修のコストを考えた場合、自動テストの有無によって生産性に大きく差が出ることは容易に想像ができます。また、既存のサービスに改修を加えるために、そのサービスの概要を把握したい場合、良いテストコードはドキュメントとして役立ちます。 以前、私はテストコードを一切書かないプロダクトの開

                                決済チームがテストコードを書く際に気を付けていること - UPSIDER Techblog
                              • 【特集】 遠く離れた実家でPCトラブル発生!そんなときは「クイック アシスト」を使って救え

                                  【特集】 遠く離れた実家でPCトラブル発生!そんなときは「クイック アシスト」を使って救え
                                • My new error...

                                  2023 年度の僕のエラーハンドリング について書きたい。 昨日Safe Data Fetching in Modern JavaScriptを読んでいて、fetch に限った話ではないが一家言ある内容だったので書きたくなった。 おそらくやりすぎだとか非効率と言われる点はあると思うので、みんなの一家言も教えて欲しい。 対象は Typescript での サーバー開発想定だが、TS であればクライアント開発にもほとんどに当てはまる話だと思う。 例外のスローではなく Result 型を使う Result は失敗するかもしれないという文脈を与えてくれる型 エラーハンドリングの戦略として例外を投げるのではなく、Result 型を返すやり方がある。 Result 型というのは export type Result<T, E> = Ok<T> | Err<E>; export interface Ok

                                    My new error...
                                  • JavaScriptのES2023・ES2022の新機能まとめ - ICS MEDIA

                                    JavaScriptの仕様であるECMAScriptはEcma Internationalによって定められています。ECMAScript 2015(ES6)の登場以降は、ECMAScript 2016、ECMAScript 2017・・・と、年次で仕様が更新されています。ECMAScript 2022(ES2022)は2022年6月22日のEcma InternationalのGA 123rd meetingにて、ECMAScript 2023(ES2023)は2023年6月27日のGA 125th meetingで承認されました。 ES2022とES2023はすでに多くのブラウザやNode.js環境で利用可能です。本記事では新仕様と使いどころを紹介します。 ES2023 - 配列の非破壊操作 ES2023では配列を非破壊で操作できるメソッドが追加されています。非破壊とは、元の配列を変更せ

                                      JavaScriptのES2023・ES2022の新機能まとめ - ICS MEDIA
                                    • Claude CodeとGitHub Issueを使った全自動開発について

                                      Claude CodeとGitHub Issueを使った全自動開発について注意事項 #現在多数の方に閲覧されていますが、こちらの記事はまだ試験段階であり、改善の余地はたくさんあると考えています。 使用する際は十分ご注意ください。 このコードを使用したことで発生する不利益については、筆者は一切責任を負いません。 ご了承ください。 準備 #wikiは使用しないdocsディレクトリで管理するREADME.mdにプロジェクト概要を書くGitHub Issueのtemplateを作成する.github/ISSUE_TEMPLATE/配下先にIssueを作成しておくdocs/db-schema.md から docs/er.md を作成ログイン画面作成User一覧作成などなどghコマンドをインストールする出先からの実行専用スクリプト #Priority & issue番号で並び替えして最初のissueを

                                      • 【ソフトウェア設計】例外処理を考える

                                        はじめに 最近書いてるソフトウェア設計シリーズです。今回は例外に関して。以前、以下のような記事を書いたのですが、もう少し深堀して書いてみました。 ちなみにソフトウェア設計シリーズは他には以下を書いています。 モジュールになぜ分けるのか? モジュール、依存、そしてカプセル化 モジュールをどう分割するのか? 簡潔さは力なり? 予測可能な振る舞いと簡潔さについて ドキュメントとしてのコメント TL;DR 例外は「原則」キャッチしない 業務例外や必ずハンドリングさせたい例外はOptionalなど戻り値の方が便利 だいたい以下の図が言いたい事のすべて 例外処理とは? 「例外処理(Exception Handling)」は言語に依らず普遍的な関心事です。端的に言えば例外処理は異常やシステムの動作に不備が発生した際の特別な分岐処理です。リカバリやリソースの解放、あるいはユーザへの通知などがありますね。

                                          【ソフトウェア設計】例外処理を考える
                                        • ドメインモデルの完全性と純粋性 - kawasima

                                          ドメインモデルには、完全性と純粋性、そしてアプリケーション性能の3つ全てを同時に満足させることは難しい場合があるという話。

                                            ドメインモデルの完全性と純粋性 - kawasima
                                          • Pythonでリトライ処理を簡単に追加できる「tenacity」を使ってみる | DevelopersIO

                                            import random from tenacity import retry @retry def random_error(): num = random.randint(0, 10) if num > 4: print(f"Error: num={num}") raise Exception("Error!") else: return f"Success: num={num}" print(random_error()) # => # Error: num=9 # Success: num=1

                                              Pythonでリトライ処理を簡単に追加できる「tenacity」を使ってみる | DevelopersIO
                                            • 法令中の誤記を発見して所轄省庁に報告した - puripuri2100が進捗の報告をするようです

                                              要約 現在施行されている法令の中に、存在しない条文を指し示すものなどの誤記を発見したため、関係する省庁に報告しました。 発見した誤記 ※現在確認中で掲載していないものがまだあるため、誤記であることの確認が取れ次第追記します。 存在しない「次項」への参照 国土交通省関係住宅宿泊事業法施行規則(平成二十九年国土交通省令第六十五号)第十六条(https://laws.e-gov.go.jp/law/429M60000800065/#Mp-Ch_2-At_16)中に、「次項」という記述があります(画像赤枠)。 国土交通省関係住宅宿泊事業法施行規則(平成二十九年国土交通省令第六十五号)第十六条中の存在しない「次項」を参照している誤記 しかし、よく見ると第十六条には第二項以降が無く、「次項」が指し示す先が存在しません。 存在しない物を指し示しているため、さしずめNullPointerException

                                                法令中の誤記を発見して所轄省庁に報告した - puripuri2100が進捗の報告をするようです
                                              • TypeScriptのError Handling - mrsekut-p

                                                TypeScript/JavaScriptの言語思想的にはtry/catchを使ってerror handlingをするのが普通

                                                  TypeScriptのError Handling - mrsekut-p
                                                • レガシーシステムをDockerコンテナ化する場合に直面した4つの壁 - RAKUS Developers Blog | ラクス エンジニアブログ

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

                                                    レガシーシステムをDockerコンテナ化する場合に直面した4つの壁 - RAKUS Developers Blog | ラクス エンジニアブログ
                                                  • Loggingモジュールではじめるログ出力入門 / Introduction to Python Logging

                                                    PyCon JP 2021 登壇資料: https://2021.pycon.jp/time-table/?id=272259

                                                      Loggingモジュールではじめるログ出力入門 / Introduction to Python Logging
                                                    • TypeScript エラー処理パターン - Object.create(null)

                                                      M 年前にも N 年後にも人類は同じ話をしている. まとめ エラーの発生方法は throw と return に大別できる throw には簡潔さ, return には明瞭さと型安全性といった特徴がある どちらの方法がより適しているかはプログラムの規模, エラーの種類, ハンドリングの方法などが判断の材料になる 実際にどちらの方法を使うかは上の判断材料と, フレームワークやプロジェクトのコーディング規約なども合わせて複合的に決めるのがよい エラー発生方法の分類 まず前提として, 関数から呼び出し元にエラーを伝える方法は以下の 2 つに大別できます. 逆にこの記事ではこれ以上の具体的な方法についての議論はしません. throw エラーを throw して呼び出し元に伝える方法です. 例えば以下のようなものが当てはまります. throw new Error("...") Promise.rej

                                                        TypeScript エラー処理パターン - Object.create(null)
                                                      • 「どう扱うか」で設計するエラーハンドリング / noren_ts #1

                                                        https://dinii.connpass.com/event/348179/

                                                          「どう扱うか」で設計するエラーハンドリング / noren_ts #1
                                                        • エラーや非同期処理をより安全に扱うための TypeScript ライブラリ Effect-TS

                                                          Effect-TS(正式名称は Effect)は、開発者が複雑なエラーや非同期処理をより安全に開発できるようにすることを目的とした TypeScript ライブラリです。Effect System という概念を取り入れており、Scala や Haskell といった関数型プログラミング言語に影響を受けています。 TypeScript の型システムを活用して、本番のアプリケーションにおける実用的な問題を解決することを目指しています。Effect-TS は、以下のような特徴を備えています。 並行性(concurrency):Fiber ベースの並行モデルにより、高いスケーラビリティと低レイテンシを実現 コンポーザビリティ(composability):小さく再利用可能なパーツを組み合わせることで、メンテナンス性、可読性、柔軟性の高いソフトウェアを構築する リソースの安全な管理(resource

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

                                                            Error handling in Go is a little different than other mainstream programming languages like Java, JavaScript, or Python. Go’s built-in errors don’t contain stack traces, nor do they support conventional try/catch methods to handle them. Instead, errors in Go are just values returned by functions, and they can be treated in much the same way as any other datatype - leading to a surprisingly lightwe

                                                              Effective Error Handling in Golang
                                                            • 「メリハリのある TypeScript」で運用しながら型安全性を高めやすい TypeScript リプレースを行う - Mobile Factory Tech Blog

                                                              こんにちは、21 卒エンジニアの id:d-kimuson です。 モバイルファクトリーでは、最近のプロダクトではフロントエンドに TypeScript を採用していますが、僕がアサインされているプロダクトは歴史が長く JavaScript で書かれていて、今回 TypeScript へのリプレースを行いました。 既存プロダクトの TS リプレースではしっかり型付けすることは難しいので、型チェックオプションを緩くしてリプレースすることが多いと思います。しかし、既存コードからリプレース後のコードまで全て型安全性が担保できなくなってしまうので、後からの strict 化は非常に大変になってしまいます。 今回のリプレースでは、型チェックオプションは緩くしない代わりに @ts-nocheck や @ts-expect-error を使用することで、段階的に型安全性を高めやすい形でリプレースを行いま

                                                                「メリハリのある TypeScript」で運用しながら型安全性を高めやすい TypeScript リプレースを行う - Mobile Factory Tech Blog
                                                              • フロントエンド API コール時のエラーハンドリングを軽く整理(Fetch API・typescript-fetch・TanStack Query) - カミナシ エンジニアブログ

                                                                カミナシのソフトウェアエンジニア佐藤です。カミナシレポートの開発に携わっています。 フロントエンドのエラーは「画面リロードやブラウザ再起動で復旧できる(かもしれない)」「クラッシュしてもユーザーの端末に閉じる」などの理由から、バックエンドよりは精緻に扱われない傾向があると個人的には感じています。 その一方、カミナシレポートは、ノンデスクワーカー向けの不安定なネットワーク環境で利用されることも多々あるアプリです。そのため、デジタルツールに不慣れな方のために精緻なフィードバックが必要とされる、リロードに頼ることが難しいケースがある、などの理由でエラーの扱いにも慎重になる必要があります。 本記事では、カミナシレポートのフロントエンド開発をする中で、 バックエンドの API コール時にエラーが発生する条件とその内容(型・クラス) これらエラーをハンドリングする箇所 について、把握しておきたいと感じ

                                                                  フロントエンド API コール時のエラーハンドリングを軽く整理(Fetch API・typescript-fetch・TanStack Query) - カミナシ エンジニアブログ
                                                                • Goのerrorがスタックトレースを含まない理由 - methaneのブログ

                                                                  Twitterでこんな記事を見かけたので。 zenn.dev ジェネリクスの件もそうですが、Goの言語設計は現実主義なのになにか特別なポリシーによるものだと宗教化されてしまって、ファンには勝手に崇拝されてアンチにはディスられがちだなーと感じます。 Goのエラー処理を改善する実験プロジェクトxerrorsがGo本体のerrorsにマージされた時、 errors.New() はスタックトレースを取得していました。しかしGo 1.13がリリースされる前に削除されました。 削除された理由の1つは、今までの errors.New() のパフォーマンスに依存していたコードの速度が低下しアロケーションが増えることです。 github.com しかし、これが理由だと今まで思ってたのですが、実際にはもう1つより重要な理由がありました。エラーのフォーマットです。エラーに複数のフォーマットを持たせようという提案

                                                                    Goのerrorがスタックトレースを含まない理由 - methaneのブログ
                                                                  • RustでWeb APIを作る際のエラーハンドリング - CADDi Tech Blog

                                                                    TL;DR エラーハンドリングを行う目的 エラーハンドリングが適切に行われているとどう嬉しいか 1. エラーの発生原因が分かる 2. レスポンスステータスを型安全に出し分けることが可能になる どうエラーハンドリングを行うのか 実装方法 エラー型の定義で気を付けるべきポイント なぜanyhowを利用しないのか エラーハンドリングを行う上で持っている課題感 Drawer Growth グループ バックエンドエンジニアの中野です。今回は、私が所属するチームで gRPC API を開発する際に実践している Rust でのエラーハンドリングについて紹介していきます。 TL;DR エラーの発生原因がわかるようにエラー型を定義することが大切。 anyhow は使わずに自前のエラー型を定義して利用する。 エラーハンドリングを行う目的 そもそもなぜエラーハンドリングを行う必要があるのでしょうか。私が所属する

                                                                      RustでWeb APIを作る際のエラーハンドリング - CADDi Tech Blog
                                                                    • Google、訂正不可能なメモリエラーによるクラッシュを回避する「Memory Poisoning Recovery」をGoogle Cloudで提供へ

                                                                      Google、訂正不可能なメモリエラーによるクラッシュを回避する「Memory Poisoning Recovery」をGoogle Cloudで提供へ ずっと安定して稼働していたシステムが、ある日突然エラーでクラッシュ。調べても原因が分からないので、「何らかのノイズや放射線などの影響でメモリエラーが起きたのでは?」という推測を顧客に報告した、なんて経験を持つベテランのITエンジニアは少なくないのではないでしょうか。 実際のところ、2009年のGoogleの調査では同社の本番システムにおいて、1年間で8%以上のDIMMモジュールにメモリエラーが発生していたと報告されています。想像以上にメモリエラーというのは起きているのですね。 ただし、現代のメモリとCPUなどではエラー訂正機能を備えているため、多くのメモリエラーは訂正され、システムの動作に影響を与えないようになっています。 しかし訂正しき

                                                                        Google、訂正不可能なメモリエラーによるクラッシュを回避する「Memory Poisoning Recovery」をGoogle Cloudで提供へ
                                                                      • ニュートンの「第一法則」は300年以上も誤訳されていた! - ナゾロジー

                                                                        ニュートンの「第一法則」は間違って解釈されているなぜ誰も気付かなかったのでしょうか? / Credit:Canva . ナゾロジー編集部ニュートンの運動法則は、古典物理学の基礎を築いた、重要な法則です。 ニュートン以前にも物体の運動についてはガリレオやデカルトなどによって言及されていましたが、ニュートンによってはじめて基本法則としてまとめられました。 ニュートンが考えたのは、この世のすべての運動は、物体に加わる力の合計によって説明できるというものでした。 そして、私たちが中学や高校のときに習うニュートンの第一法則では一般に 「力が働いていない物体は、静止しているか直線運動を続ける」 と解釈されています。 宇宙空間にボールが存在する場合、なにがしかの外力を加えなければボールは静止したままであり、ボールが一定の速度で飛んでいる場合も、外部からの力がなければ永遠にそのままの速度で飛び続けます。

                                                                          ニュートンの「第一法則」は300年以上も誤訳されていた! - ナゾロジー
                                                                        • then() を export した結果www - Object.create(null)

                                                                          Promise と Thenable Promise が ECMAScript の言語仕様に追加されたのは ES2015 ですが, Promise ライクなオブジェクトはそれ以前からも広く使われてきました (jQuery の Deferred など). そういった Promise ライクなオブジェクトとの互換性のため, Promise の仕様は本物の Promise と Promise ライクなオブジェクトを混ぜて使えるようになっています. 具体的には, Promise ライクなオブジェクトは一般に Thenable という共通のインターフェースを持つことになっています. オブジェクトが Thenable であるために必要なのは「then() という名前のメソッドを持っている」という一点のみです. もし Promise を解決 (resolve) するときに使われた値が Thenable

                                                                            then() を export した結果www - Object.create(null)
                                                                          • Golang GenericsでREST APIを作る - Nature Engineering Blog

                                                                            Go 1.18が出てしばらく経ちました。みなさんGenerics使っていますか? @maaashです。 これは Nature Engineering Blog祭 の2日目の記事です。 祭り 最初は歓喜し、mapやfilter的なfor文を少しずつgithub.com/samber/loに切り替えたり、 internalなsliceパッケージを作ってみたり。 ですが心のどこかで欲求不満が蓄積されていくのを感じていました。 使い尽くしていないのでその真価が理解できていなくて物足りないような、 こんなに面白いおもちゃが与えられたのに遊び尽くしていないような感覚です。 Genericsを使ったコードを書きたい!と思いながら日々の業務でREST APIを書いていると、、 あれ、これはかの When To Use Genericsの結論にある: If you find yourself writing

                                                                              Golang GenericsでREST APIを作る - Nature Engineering Blog
                                                                            • Ruby 3.1はエラー表示をちょっと親切にします - クックパッド開発者ブログ

                                                                              こんにちは、ruby-devチームの遠藤(@mametter)です。 Among Usというゲームをやってるのですが、友達が少なくてあまり開催できないのが悩みです。 今日は、Ruby 3.1に導入される予定のerror_highlightという機能を紹介します。 どんな機能? NoMethodErrorが起きたとき、次のような表示が出るようになります。 error_highlightの動作例 どこのメソッド呼び出しで失敗したかが一目瞭然ですね。これだけの機能ですが、使ってみると意外と便利です。 もう少し詳しく この機能が本領を発揮するのは、RailsのparamsやJSONデータの取り扱いなどのときです。 たとえばjson[:articles][:title]みたいなコードを書いて、undefined method '[]' for nil:NilClassという例外が出たとします。 この

                                                                                Ruby 3.1はエラー表示をちょっと親切にします - クックパッド開発者ブログ
                                                                              • オープンソースで話題のBaaS「Supabase」を使ってみた | DevelopersIO

                                                                                その他詳細の料金プランページはこちら 今回はホビー用途となっているFreeプランを使います。無料でプロジェクトを2つ作ることができますが、APIを1週間未使用の場合はデータベースが一時停止となるようで再開する場合はダッシュボードから起動し直す必要があるようです。 サービスへの登録 では、早速Supabaseのサービスに登録を行っていきます。 Supabase.io Supabase.ioへの登録はGitHubアカウントを利用するようです。 「New Project」から新規プロジェクトを作成します。 プロジェクト名とデータベースのパスワード、リージョンを指定します。今回は「Tokyo」リージョンを選択しました。 「Create new project」を押下後、数分待つとプロジェクトが作成されます。 完了後に画面に表示されるProject API keyとURLを後ほど利用するのでメモして

                                                                                  オープンソースで話題のBaaS「Supabase」を使ってみた | DevelopersIO
                                                                                • DDDを実践するためのリポジトリ層の設計(Go言語による例)

                                                                                  The Go gopher was designed by Renée French. Illustrations by tottie. はじめに この記事は、ドメイン駆動設計(DDD)の中核概念である「リポジトリ」についての理解を深めることを目的としています。リポジトリの基本的な役割と重要性を確認し、Go言語での実装の例を紹介します。 前提 リレーショナルデータベースからデータを取得(更新)するアプリケーションを想定しています サンプルコードは Go 言語で書かれています リポジトリとは まずは、リポジトリの定義を確認してみましょう。 リポジトリパターンとは: リポジトリは、データベースから取得したデータを構造体にマッピングし、ドメインオブジェクトにアクセスするためのインターフェースを提供します。 これは、一般的なリポジトリの理解と相違ないですね。次に DDDの文脈で、より詳しい定義をみ

                                                                                    DDDを実践するためのリポジトリ層の設計(Go言語による例)

                                                                                  新着記事