並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 1137件

新着順 人気順

readonlyの検索結果1 - 40 件 / 1137件

  • スーパーマリオのジャンプのアルゴリズム - Qiita

    先日、気持ちのいいジャンプを目指してというQiitaの記事を見かけました。記事中では、マリオのジャンプについても触れられています。マリオというと、マリオブラザースやスーパーマリオブラザース等々、色々あるのですが、これはおそらくスーパーマリオブラザースの事だと思われます。ジャンプアクションゲームといったらスーマリですね。 そのマリオのジャンプの仕組みは「マリオの速度ベクトルを保存しておいて座標を計算するんじゃなくて~」と書かれていて、別サイトのブログへのリンクが張られています。 マリオのジャンプ実装法とVerlet積分 ただ、この記述については不正確であるという別のブログもあったりします。 マリオの完コピvol.28 ジャンプの解析と修正 ホントのところはどうなんでしょうか?世界で最も有名なゲームのジャンプがどのように処理されているのか気になったので調べてみることにしました。 原典にあたる

      スーパーマリオのジャンプのアルゴリズム - Qiita
    • なぜ今シェルスクリプトを学ぶのか・シェルスクリプトのTips - 理系学生日記

      会社の中でシェルスクリプトについての話をすることにしたので、このエントリはそのためのものです。 個人的な好みとかもいろいろ入ってしまっているので、そのあたりは取捨選択してください。 なぜ今シェルスクリプトを学ぶのか 公開されているSRE本をマルっとPDF化する SpotBugsのViolationレポートをMerge Requestのコメント投稿する ぼくの互換性についての考え方 何で書くか シェルスクリプトをうまく書くには ShellCheckを使う バッドパターンとその修正 line-by-lineの処理が多い lsを使う ls /directory | grep mystring ls | grep -v 'log$' lsの結果をループさせる 良いシェルスクリプトを書くためのTIPS set -euする 文字列は基本的にクオートする 局所変数にはlocalを使う 定数は読み取り専用

        なぜ今シェルスクリプトを学ぶのか・シェルスクリプトのTips - 理系学生日記
      • Google TypeScript Style Guide

        // Good: choose between two options as appropriate (see below). import * as ng from '@angular/core'; import {Foo} from './foo'; // Only when needed: default imports. import Button from 'Button'; // Sometimes needed to import libraries for their side effects: import 'jasmine'; import '@polymer/paper-button'; Import paths TypeScript code must use paths to import other TypeScript code. Paths may be r

        • オブジェクト指向プログラミング -- 1兆ドル規模の大失敗

          CodeIQのブログより。🤔 なぜ、OOPから移行する時なのか Ilya Suzdalnitski OOPは、多くの人にコンピューターサイエンスの重要資産と考えられています。コード構成(code organization)に対する究極のソリューション。すべての問題の終焉。私たちのプログラムを書くための唯一の本当の方法。自分自身をプログラムするという真なる唯一神から私たちに授けられました… それまでは、そうではなく、抽象化の負担、そして無差別に共有されるミュータブルなオブジェクトの複雑なグラフによって、人々は屈し始めています。現実世界の問題を解決するのではなく、「抽象化」と「デザインパターン」について考えるのに貴重な時間と頭脳が費やされています。 非常に著名なソフトウェアエンジニアを含め、多くの人々がオブジェクト指向プログラミングを批判してきました。驚くことに、OOP自身の発明者でさえ、今

            オブジェクト指向プログラミング -- 1兆ドル規模の大失敗
          • ソースコードで理解するクリーンアーキテクチャ - Sansan Tech Blog

            はじめに こんにちは。プロダクト開発部の荒川です。 これまで最年少を謳っていましたが、ついに新卒の子にその座を奪われてしまいました。とても残念です。 さて今回のテーマは、皆さんお馴染みクリーンアーキテクチャ(Clean Architecture)です。 クリーンアーキテクチャは一時期流行し、その流れに乗って私もある程度の理解はしていました。 しかし、それはあくまでも感覚的な理解であって、他人に説明や良さを語れるレベルまで自分の中で落としこめていませんでした。 そこでより具体性のあるソースコードを読み込むことで、アーキテクチャへの理解を深めたいと思います。 クリーンアーキテクチャとは? クリーンアーキテクチャの定義や解説に関しては、ネット上にいくらでも公開されているので、このエントリでは詳しく話しません。 私自身が勉強に使った書籍やサイトを記事末尾の「参照」に掲載しているので、そちらを参考に

              ソースコードで理解するクリーンアーキテクチャ - Sansan Tech Blog
            • IAM ロールの PassRole と AssumeRole をもう二度と忘れないために絵を描いてみた | DevelopersIO

              コンバンハ、千葉(幸)です。 皆さんは、 PassRole と AssumeRole についてきちんと理解ができていますか?どちらも IAM ロールに関するものですね。 私はカラダ(ボディ)の調子がいい時は思い出せるのですが、雨が降っている日や、ちょっと疲れて気を抜いた時にはすぐ分からなくなってしまいます。 ということで、イメージとして脳に刻み付けることによって忘れられなくしてやろうと思いました。 そこで出来上がったのが以下です。 間違えました。以下です。 あ、でもやっぱり忘れづらいのはこちらかもしれませんね。 どうですか?もう忘れられなくなりましたね? 先にまとめ IAM ロールには以下ポリシーを設定できる アイデンティティベースポリシー Permissions boundary 信頼ポリシー AWS リソースに IAM ロールを引き渡す際には PassRole の権限が必要 PassR

                IAM ロールの PassRole と AssumeRole をもう二度と忘れないために絵を描いてみた | DevelopersIO
              • プロを目指す人のためのTypeScript 本の感想 #ブルーベリー本

                自分も教える事が多いので、読み手にどういう風に学んでほしいか、自分がどういう風に伝えるべきか、という視点で読んだ。 1章・イントロダクション そもそもTypeScript とはなにかみたいな話。 コンパイルエラーが出ている状態ではプログラムが完成したとは言えません。 力強い コンパイルエラーをただ避けるのではなく、利用する気持ち で TypeScript プログラミングに臨みましょう。 初心者に型違反の向き合い方を諭す話。IDEの補助になるとか。 TS年表で取り上げてるのが特徴的。exactOptionalProperty を取り上げてたり。 TSの型はランタイムに影響しない、という話を何度も解説している。これは初心者の誤解がとても多いので、必要だと思う。何度いっても、伝わって欲しい人に伝わらないのだが… enum や namespace については意図的に解説しない。過去のTS独自路線だ

                  プロを目指す人のためのTypeScript 本の感想 #ブルーベリー本
                • 【C#】C# の async/await は実際にどうやって動いているか。 - ねののお庭。

                  はじめに 登壇版 Taskの本質 C# のイテレータ async/await Compiler Transform ExecutionContext builder.Start() の重要性 IAsyncStateMachine.MoveNext おわりに はじめに C#er は呼吸するように使っている async/await。 そんな async/await について、先日 Stephen Toub 氏 (.NET の中の人。中心人物の一人。) が How Async/Await Really Works in C# という非常に面白い記事を投稿していました。 この記事では Stephen 氏の記事をベースに、C# において async/await は実際どうやって動いてるの?というお話をしていきます。 以前に C#での非同期メソッドの分析。 という翻訳記事を書いたのですが、元になった記

                    【C#】C# の async/await は実際にどうやって動いているか。 - ねののお庭。
                  • WSLのLinuxからとある危険なコマンドを実行してしまった人の末路…

                    毎日卒論 @pu__Ne Windowsから1.5TBが吹っ飛んだ件で報告なのですが、E:やF:はreadonlyにしてあり、RecuvaやTestDiskなどのツールである程度復元できそうです ただ、十分な空き容量のある記憶装置を今持っていない上に買うお金もないので、しばらくこのままにしておきます 情報をくれた方はありがとうございました pic.twitter.com/2Ti6gClfxL 2019-10-07 20:00:02

                      WSLのLinuxからとある危険なコマンドを実行してしまった人の末路…
                    • プロを目指す人のためのTypeScript入門 安全なコードの書き方から高度な型の使い方まで

                      2022年4月22日紙版発売 2022年4月19日電子版発売 鈴木僚太 著 B5変形判/424ページ 定価3,278円(本体2,980円+税10%) ISBN 978-4-297-12747-3 Gihyo Direct Amazon 楽天ブックス ヨドバシ.com 電子版 Gihyo Digital Publishing Amazon Kindle ブックライブ 楽天kobo honto 本書のサポートページサンプルファイルのダウンロードや正誤表など この本の概要 TypeScriptは,JavaScriptに静的型付けの機能を加えたオープンソースのプログラミング言語です。本書では,根幹となるJavaScriptの仕様・機能とともに,TypeScript独自の仕様・機能を解説します。TypeScriptの基礎知識はこれ一冊だけで学べます。 静的型付き言語は世にいくつもありますが,Type

                        プロを目指す人のためのTypeScript入門 安全なコードの書き方から高度な型の使い方まで
                      • 秒間3万リクエストをkubernetesでさばく - Gunosy Tech Blog

                        こんにちは!スタンディングデスクを導入して快適な開発環境と運動不足の両方を解消できるようになったのではと感じている、広告技術部のUT@mocyutoです。 今回は半年ほどEKSを運用して秒間3万リクエストのトラフィックをさばくほどになりました。 秒間3万は広告システムだと割とあるとは思いますが、kubernetesでも運用できているので紹介しようと思います。 対象のEKSで構築したサービスは広告の配信サーバです。 広告配信サーバの要件として、まず50ms以内にレスポンスを返さなければいけません。 構築したk8sのレスポンスタイムの99パーセンタイルは10msほどで返せています。 以下は必要最小限のクラスタの構成図です。 全体像 API 弊社のサーバサイドはほぼGoで作られているので、例に漏れずGoで作られています。 pod構成はAPI、fluentd、envoyの サイドカーパターン です

                          秒間3万リクエストをkubernetesでさばく - Gunosy Tech Blog
                        • Windows Subsystem for Linux 2(WSL 2)をセットアップしてみた | DevelopersIO

                          しばたです。 先日新しい開発機(Windows 10)が会社より支給されたのでデータ移行と環境の再セットアップをしています。 せっかくの機会ですのでOSを最新のWindows 10 May 2020 Update (2004)に更新し、Windows Subsystem for Linux (以後WSL) 環境を最新のWSL 2にしたのでその際の手順をここに記録しておきます。 手順 公式な手順はDocsにばっちり記載されています。 基本的にはこの手順を参照すれば問題ありません。 やってみた それでは早速やっていきます。 0. 前提条件 WSL 2を利用するには現在最新のWindows 10であるWindows 10 May 2020 Update (Ver.2004、ビルド19041)以降である必要があります。 古いWindows 10を利用している場合はまずアップグレードが必要となります

                            Windows Subsystem for Linux 2(WSL 2)をセットアップしてみた | DevelopersIO
                          • 社内で実施している「10分勉強会」のご紹介

                            マナリンクCTOの名人です。 2022年3月頃から社内で実施している「10分勉強会」という取り組みと、実際の内容についてざっくり紹介していきます。 10分勉強会の目的 10分勉強会の目的は以下のとおりです。 すぐに実務で使えるかは分からないけど、知っておいて損はないことを先に学ぶ機会を作る 実務にて学んだことで、他のメンバーにも知ってほしいと思ったことを共有する機会を作る 前者については、たとえば「新しいバージョンのPHPについて調べてみた」といった、すぐには役立たないがいずれ使うであろう知識が挙げられます。後者については、たとえば「ある施策の実装をきっかけにCSSの◯◯プロパティについて学びなおした」といった例が挙げられます。 (ちょっとあまり上手な図解ではない気がしますが)学習機会の必要性について図解してみました。 エンジニアがある施策Aを実装するには、最低限これさえ分かっていたら実装

                              社内で実施している「10分勉強会」のご紹介
                            • どのようにTypeScriptを使うのか - uhyo/blog

                              現在、TypeScriptの重要性は、フロントエンド開発を中心としてますます増すばかりであります。それだけに、TypeScriptをどのように使うべきかという問題については多様な意見が見られます。 これまで筆者はTypeScriptの使い方に、特にコンパイラオプションの使い方について意見を散発的に発信してきましたが、このたび記事にまとめました。この記事では、特に次のような意見に対しての反対意見を述べます。 厳しいコンパイラオプションは型パズル愛好者のためのものであり、普通の人は細かいことを気にせず緩い設定でよい。熟練のJavaScript使いにはTypeScriptは必要ない。例え話最近はTypeScriptを補助輪に例えたりするのが流行っていますので、この記事でも例え話をしてみます。筆者の考えでは、TypeScriptというのは例えるならば料理人が使う包丁のようなものです。コンパイラオプ

                                どのようにTypeScriptを使うのか - uhyo/blog
                              • GitHub ActionsにおけるStep/Job/Workflow設計論

                                この記事について GitHub Actionsには、以下3つの実行単位が存在します。 Workflow Job Step パイプラインを組む中で出てくる複数個の処理を、1つの実行単位でまとめてしまうか、それとも分割するのかというのは悩むポイントかと思います。 一つのstepのrunフィールドにコマンドを詰め込む?それともstepを分けた方がいい? 一つのJobの中のstepとして記述した方がいい?それとも別のJobに定義した方がいい? 一つのWorkflowの中にJobをたくさん定義する?それともWorkflowを別にする? この記事では、Workflow・Job・Stepそれぞれの性質を踏まえた上で、ベストな処理単位の選び方を考察します。 使用する環境・バージョン GitHub Actions: 2022/5/15時点での機能をもとに考察 読者に要求する前提知識 GitHub Actio

                                  GitHub ActionsにおけるStep/Job/Workflow設計論
                                • フロントエンド初心者がGatsbyでブログを作り直した話 - As a Futurist...

                                  フロントエンド初心者が無事に Hugo のブログを Gatsby で一から作り直すことができた。その振り返り。 歴史 インターネットを小中学生(もはや 25 年以上前)に触り初めた頃に、HTML で文章の構造を作り CSS でデザインする、ということができるのを知って感動したけど、結局自分には何かが合わなくてそれを突き詰めることができなかった。というか、それを知ったが故にテーブルレイアウトとかがどうしても気に入らず、かといって CSS は float が難しすぎて、結局ウェブサイトを作る、という根本的な営みをずっと避けてきてしまった。 時は過ぎ、Wordpress の様なブログエンジンや Hugo の様な仕組みがあったおかげでブログを初めて続けることはできた。13 年前にレンタルサーバに Wordpress を置いて始めたこのブログも 9 年前には VPS での Wordpress 運用に

                                    フロントエンド初心者がGatsbyでブログを作り直した話 - As a Futurist...
                                  • こわくないTypeScript〜Mapped TypeもConditional Typeも使いこなせ〜 - uhyo/blog

                                    TypeScriptの型システムは、ユニオン型を始めとする様々な機能を持っているのが特徴的です。 その中でも、mapped typesとconditional typesは高度な機能として知られています。 ところが、その機能の膨大さゆえ、全てを使いこなす必要はない、TypeScriptの複雑な機能を無闇に使うべきではないという言説はたびたび現れます。 そのときに槍玉に上がりやすいのがmapped typesとconditional typesなのです。 筆者は、これらの機能は使えるだけ使い倒すべきであるという考えを持っています。 主張の根幹には、高度な型を使えばより正確にインターフェースを記述することができること、そして正確なインターフェースは使いやすさや正確な型推論結果に貢献することがあります。 正確なインターフェースや型推論結果は、コードの理解速度や開発効率を促進します。 これらは型シ

                                      こわくないTypeScript〜Mapped TypeもConditional Typeも使いこなせ〜 - uhyo/blog
                                    • 値オブジェクト(Value Object)は3種類ある - パンダのプログラミングブログ

                                      Value Object(値オブジェクト)は3種類あった Value Object(値オブジェクト) の意義と使い所がわからなかった。そこで調べてみたらなんと3種類あった。面白かったのでその調査過程を紹介する。 なお、現在では DDD の意味での Value Object がメインであること、またこれは自転車置き場の議論であり、DDD Quickly の Value Object の章を読む方が有意義であることを先に記しておく。 1. Data Transfer Object 1つ目は、Data Transfer Object(DTO)の意味だ。これは PoEAA に少しだけだけ出てくる。かつてのJava界隈の一部では(?)DTOのことを Value Object と呼んでいた。だが、現代では Value Object と DTO は別物として定着している。PoEAA は2000年代前半に

                                        値オブジェクト(Value Object)は3種類ある - パンダのプログラミングブログ
                                      • 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...
                                        • note 社の AWS 権限設計の変遷を辿る|かとうかずや | kakato

                                          いつの世も人々は権限設計に苦しめられている。そうは思いませぬか。 ご多分にもれず、ぼくも note に入ってからというもの AWS の権限設計をどうしてやろうかと、あれこれ思い悩みまくった人間でした。 組織が変われば権限も変わる。誰が何をしたいのかなんてとても把握しきれないし、かといって全員に Administrator を割り振るような豪胆さも持ち合わせておらず。組織再編が繰り返される中で、なんとか運用に耐えうる設計を考え、実装しようと試みた内容をまとめたのがこの note です。 note 社における AWS 権限設計の変遷と、その結果生まれた自動で AWS の権限を払い出す仕組みについて書いていきます。 ※この記事はnote株式会社 Advent Calendar 2022 の 25 目の記事です。 注意事項つらつらと書き連ねていたら 12,000 字超の大作 note となってしま

                                            note 社の AWS 権限設計の変遷を辿る|かとうかずや | kakato
                                          • イベントループと TypeScript の型から理解する非同期処理

                                            この本は、ブルーベリー本の 8 章からインスパイアされて、 TS の型が示す情報から Promise というものを理解してみる、というアプローチで書いたJSの非同期処理の解説です。 これらの資料と合わせて読むことを推奨します。 JSのイベントループのイメージを掴む JSでは中々意識することが少ないですが、正しく理解するには OS レベルのスレッドの視点で考え始める必要があります。 ブラウザや Node.js では一つのスクリプト実行単位を1つのスレッドに割り当てます。それをメインスレッドと呼んだり、ブラウザだったら UI スレッドと呼んだりします。 例えばブラウザでは、これは秒間60回、つまり 16.6ms ごとにループを呼び出します。(node だったらこれがもっと短いです) 仮に setTimeout の実装がなかったとして、それ相当の擬似コードを書くのを試みます。 let handl

                                              イベントループと TypeScript の型から理解する非同期処理
                                            • git-notesでコミットにメモをつける - アジャイルSEの憂鬱

                                              2020年に「コミットログは良くならない」というのを悟ったので、現実的な解決案である「git-notesでメモを残す」について記事を書いておきます。 前回の記事 sinsoku.hatenablog.com git-notes 詳細は git notes --help を読んでください。 概要は以下の通りです。 コミットログとは別にメモを残せる コミットはそのままなのでshaは変わらない shaが変わらないのでCIの再実行が起きない 他人のコミットにメモをつけられる 他人に作業を依頼する必要がない メモもリモートにプッシュできる 過去のコミットにメモを残せる 使い方 メモを書く git notes edit <sha> でメモを書くと、git log のときに一緒に表示される。 $ git notes edit d2cdf0b $ git log -1 d2cdf0b commit d2c

                                                git-notesでコミットにメモをつける - アジャイルSEの憂鬱
                                              • TypeScriptの異常系表現のいい感じの落とし所 | DevelopersIO

                                                みなさんTypeScriptでサーバアプリケーション(Node.js)のロジックを書く時に、異常系の表現をどのようにされていますでしょうか?ここでいう異常系とは、仕様上想定される異常のことです。準正常系と言ったりもするかと思います。 私はJavaScriptの延長でTypeScriptをはじめたので、最初は null や undefined を返したり throw を用いるやり方をしていましたが、次第にTypeScriptが持つ型を生かし、できるだけ型安全に異常系を表現したいと考えるようになりました。そして試行錯誤した結果、いい感じの落とし所に落ち着いたので、その内容についてお伝えしたいと思います。 また記事の後半では、異常系の型を実装する中でハマった点についてもお伝えしたいと思います。 TypeScriptの異常系表現について 1. nullやundefinedを返す 冒頭でも述べたよう

                                                  TypeScriptの異常系表現のいい感じの落とし所 | DevelopersIO
                                                • はてなブログの DB を RDS for MySQL 8.0 にアップグレードした話 - Hatena Developer Blog

                                                  この記事は、はてなエンジニア Advent Calendar 2023の2024年1月17日の記事です。 はてなエンジニア Advent Calendar 2023 - Hatena Developer Blog id:hagihala です。先日、はてなブログの DB を RDS for MySQL 5.7 から 8.0 へアップグレードしたので、工夫した点などを共有します。 Aurora MySQL 3.x にしなかった理由 MySQL 5.7 -> 8.0 で対応した変更点 character set や collation のデフォルトが変更される explicit_defaults_for_timestamp がデフォルトで有効になる SQL mode の変更 デフォルトの認証プラグインが caching_sha2_password になり、 mysql_native_passw

                                                    はてなブログの DB を RDS for MySQL 8.0 にアップグレードした話 - Hatena Developer Blog
                                                  • Mackerel のフロントエンド "React化" プロジェクトを支える技術と設計 - Hatena Developer Blog

                                                    こんにちは, Mackerel 開発チーム アプリケーションエンジニアの id:susisu です. 現在 Mackerel では, Web コンソール画面の開発に使用しているフレームワークを, これまで使用してきた AngularJS から React へ移行することを中心とした, フロントエンド開発の刷新プロジェクトを行っています. このプロジェクトの立ち上げについては以前 Hatena Engineer Seminar で発表しましたが, そこでは時間の都合もあり, 技術的側面についてはあまり深く掘り下げることは出来ませんでした. ということでこの記事では, より技術的な面にフォーカスしてプロジェクトの内容をご紹介できればと思います. "React化" プロジェクトについて Mackerel の開発は 2014 年ごろから始まりましたが, フロントエンドのフレームワークとしては当初か

                                                      Mackerel のフロントエンド "React化" プロジェクトを支える技術と設計 - Hatena Developer Blog
                                                    • GitHub ActionsでAWSの永続的なクレデンシャルを渡すことなくIAM Roleが利用できるようになったようです | DevelopersIO

                                                      GitHub ActionsでAWSの永続的なクレデンシャルを渡すことなくIAM Roleが利用できるようになったようです アクセスキー、撲滅してますか? ナカヤマです。 目黒方面より、以下のような福音が聞こえてきました。 何がどのくらい最高かと言いますと! GitHub Actions に AWS クレデンシャルを直接渡さずに IAM ロールが使えるようになることがまず最高で! クレデンシャル直渡しを回避するためだけの Self-hosted runner が必要なくなるところも最高です!!✨✨✨ https://t.co/IUQmfzkIB0 — Tori Hara (@toricls) September 15, 2021 元ネタはこちら。 Ok I blogged about it. That's how excited I am. 1. Deploy this CFN templ

                                                        GitHub ActionsでAWSの永続的なクレデンシャルを渡すことなくIAM Roleが利用できるようになったようです | DevelopersIO
                                                      • 💣Webフロントエンドにおける関数型「風」プログラミングに関する個人的まとめ - Qiita

                                                        ここ数年の流れについて 技術的側面 Webフロントエンド(ほぼTypeScript&React界隈)において、オブジェクト指向(厳密に言うとクラスの利用)から脱却する流れがあります。原因は以下の2点。 クラスの継承の問題点が(IT業界全体に)広く定着したこと JS/TSの進化、Reactの進化、関数型言語の考え方などの影響により、クラスを用いてデータと関数群を紐づけるメリットが薄くなったこと 現状、設計レベル(実務的にはどの関数を纏めてモジュール化するのか、モジュール同士をどう繋ぎ合わせるのか、フォルダ割りどうするのか等)のノウハウがまだ固まっておらず、既存の設計論はそれなりに有効です。 コミュニティ的側面(政治) これらの流れはWebフロントエンドの中でもTypeScript&Reactの界隈が主導しており、そのノウハウは長年絶対視されてきたオブジェクト指向を解体するような内容であったた

                                                          💣Webフロントエンドにおける関数型「風」プログラミングに関する個人的まとめ - Qiita
                                                        • ドメイン駆動設計(DDD)を整理

                                                          またクラスを利用していないため、オブジェクト指向の特性「継承」「カプセル化」「ポリモーフィズム」は利用していません。この部分が厳密なドメイン駆動設計(DDD)のニュアンスと異なるので「風味」という言葉を使っています。 全体概要と用語の整理 まず初めにドメイン駆動設計の全体の概要と出てくる用語について紹介します。 自分は言葉を理解しないとコードの理解に落とし込めなかったので詳しく解説をしていきます。 各用語の具体的な実装は後の章で紹介します。 すべての用語において理解しやすいように「ユーザー管理システムを実装する」例を用いて解説を入れています。(解説の都合で書籍とは異なる例を採用しています) ドメイン駆動設計とは ドメイン駆動設計はその名の通り、「ドメインの知識」に焦点をあてた設計方法 「ドメイン」とは、ソフトウェア開発におけるプログラムを適応する対象となる領域 ドメインについて ドメイン駆

                                                            ドメイン駆動設計(DDD)を整理
                                                          • GoogleフォームとGASを使って利便性高くセキュアな共有ドライブ運用を作る

                                                            注意事項 かなり高度なGASの使い方なのである程度GWS(Googleフォームやスプレッドシート)やGASをわかってる方前提で書いていますので結構省略しているとこも多いです。 あと作った後に手順を書いているのでなにか抜け漏れあったらごめんなさい。 まだ作ってみただけで実際に運用はしてないのでテスト等も不十分かも。運用してからまた追記します。 コードは直接スクリプトエディタでサクッと作ったサンプルです、実際はローカルでLintかけたりするのでインデントおかしかったりしても許してください。 背景 GWSを使う際にマイドライブで外部共有可能にするとやりたい放題なのでセキュアな環境とは言い難くなる。 また組織のファイルをマイドライブにおいてしまうとファイルオーナーが退職したときの扱いに困る。上長に移管したり、退職者アカウントに移管するのが一般的かと思うが、移管するということはマイドライブのファイル

                                                              GoogleフォームとGASを使って利便性高くセキュアな共有ドライブ運用を作る
                                                            • Terraform の CI を AWS CodeBuild から GitHub Actions + tfaction に移行しました - スタディサプリ Product Team Blog

                                                              こんにちは。 SRE の @suzuki-shunsuke です。 Terraform の CI を AWS CodeBuild (以下 CodeBuild) から GitHub Actions + tfaction に移行した話を紹介します。 これまでの Terraform Workflow (CodeBuild) 弊プロダクトの Terraform の CI に関しては過去の記事でも何度か紹介していますが、 元々 CodeBuild 上で CI を実行していました。 かつては CircleCI 上で実行していましたが、 CodeBuild に移行しました。 blog.studysapuri.jp CodeBuild に移行した理由は大きく 2 つありました。 Security 永続的な Access Key を発行することなく AWS のリソースを管理できる GCP に関しても Wor

                                                                Terraform の CI を AWS CodeBuild から GitHub Actions + tfaction に移行しました - スタディサプリ Product Team Blog
                                                              • neue cc - async/awaitのキャンセル処理やタイムアウトを効率的に扱うためのパターン&プラクティス

                                                                async/awaitの鬼門の一つとして、適切なキャンセル処理が挙げられます。別に基本的にはそんな難しいことではなく、CancellationTokenSourceを作る、CanellationTokenを渡す、OperationCanceledExceptionをハンドリングする。というだけの話です。けれど、Tokenに手動でコールバックをRegisterしたときとか、渡す口が空いてないものに無理やりなんとかするときとか、タイムアウトに使った場合の始末とか、ちょっと気の利いた処理をしたいような場面もあり、そうした時にどうすれば良いのか悩むこともあります。 こういうのはパターンと対応さえ覚えてしまえばいい話でもあるので、今回はAlterNatsの実装時に直面したパターンから、「外部キャンセル・タイムアウト・大元のDispose」が複合された状況での処理の記述方法と、適切な例外処理、そして最

                                                                • ChatGPT APIをUnityから動かす。|ねぎぽよし

                                                                  こんにちは。 先日AIエージェント開発の技術解説記事を書いて「今後ChatGPTライクのAPIが出てきた瞬間に進化すると思う」という話をしたのですが… まさか3日後にChatGPT APIが出てくるとは思いませんでした。 というわけで今回はUnityからChatGPT APIを叩く方法について書いてみます。 先日の記事で用いたGPT-3のTextCompletionAPIよりも(Langchainなどを使わず)カスタマイズ無しで実際のAI利用シーンに活用できそうな印象を受けました。 具体的には… 応答速度が早い(応答の文章の長さによりますが、手元の環境では1~3秒で返ってきました) AI側の応答の前提条件の設定ができる。(キャラクターの性格や語尾など) (過去のプロンプトや生成結果を次のプロンプトに引き継ぐような実装をすることで)会話の文脈を考慮した応答をすることができる。 という特徴があ

                                                                    ChatGPT APIをUnityから動かす。|ねぎぽよし
                                                                  • GCPでSagaパターン実装

                                                                    概要 メディアやコミュニティ系のアプリケーション開発を中心に行っていたが、最近会社で決済系のシステムを扱うようになったこともあり、複数のサービス間がある中でどう結果整合性を担保するかについて学んでいた。 そこで学んだ複数サービス間での整合性を保つための手法として分散Sagaパターンがあり、実際にCloud RunとCloud PubSubで実装をしてみた。 複数サービスでの整合性 複数サービスでの整合性の問題 一般的にシステムを複数サービスに分けることによって、サービスを効率的に利用することや開発チームを分けることや小さくデプロイが可能など多くのメリットが挙げられる。 しかし、複数サービスにしたときの1つの問題として、データの整合性を取ることが難しくなることが挙げられる。 例えば、1つのDBのシステムに対してデータのWriteをアトミックに行う場合はDBのトランザクション等を使うことによっ

                                                                      GCPでSagaパターン実装
                                                                    • データライフサイクルとトレードオフ | フューチャー技術ブログ

                                                                      ソフトウェアの中身を大きく2つに分解すると、プログラムとデータに分かれます。コードコンプリートやA Philosophy of Software Designなど、評判の良いソフトウェア設計の本はいくつかありますが、それらはどれもプログラムの説明がメインでデータのライフサイクルについての説明はなかったと思います。しかし、データの表現にもいくつもの方針があって、それによるトレードオフがあるな、というのはもやもやと考えていたので、その考えをまとめて文章にしてみました。 データといっても、処理中の短期間の間では変わらない、いわゆるマスターデータ的なデータです。ジャーナルというか、トランザクション的なデータはここでは触れません。 この記事では、それぞれのトレードオフについて考えていきます。 即値(リテラル) 定数 コマンドライン引数 環境変数 設定ファイル ダウンロードコンテンツ オンラインデータ

                                                                        データライフサイクルとトレードオフ | フューチャー技術ブログ
                                                                      • Chromium にコントリビュートするための周辺知識 | blog.jxck.io

                                                                        Intro Chromium にコントリビュートするためには、ソースコードを理解する以外にも、もろもろ必要な周辺知識がある。 ドキュメントはかなり整備されている方ではあるが、そのドキュメントにたどり着くのが難しい場合もある。 レビュアーなどが親切に教えてくれるものをローカルにメモしているが、それも散らばってきたため、ここにまとめることにする。 まずは初期状態で公開するが、どんどん更新していき、長くなっても分割しないで追記を繰り返そうと考えている。 関連サイト 始めて取り組もうとすると、まずどこを見ればわからないところから始まる。 似たようないくつかのサイトがあり、使い分けがされているからだ。 code search https://source.chromium.org/chromium/chromium/src コードをインタラクティブに検索するためのサイト Workspace 風の U

                                                                          Chromium にコントリビュートするための周辺知識 | blog.jxck.io
                                                                        • Playwrightを使ったE2Eテストを導入した話 - Uzabase for Engineers

                                                                          はじめに こんにちは。ソーシャル経済メディア「NewsPicks」の QA/SET チームの海老澤です。 先日 弊社で E2E テスト実行するために Playwright を導入したため紹介させてください。 E2Eテストとは E2Eテスト(エンドツーエンドテスト)とは、ソフトウェア開発におけるテスト手法の一つで、アプリケーションが実際の運用環境と同様の条件下で正しく動作することを確認するためのテストです。 システムの開始点から終了点までを通じて、ユーザーの視点でアプリケーションのフローを追い、機能全体が連携して期待通りに動くかを検証します。具体的には、ユーザーが行うであろう一連の操作をシミュレートして、データがシステムを通じて適切に流れるかや、最終的なアウトプットが正しいかどうかを確認します。E2Eテストにより、部分的な単体テストや統合テストでは見逃されがちな問題を発見することができます。

                                                                            Playwrightを使ったE2Eテストを導入した話 - Uzabase for Engineers
                                                                          • Spring Boot 3の新機能を使ってみよう! 2からアップグレードする手順、Observability機能、ネイティブイメージ化|ハイクラス転職・求人情報サイト AMBI(アンビ)

                                                                            ハイクラス求人TOPIT記事一覧Spring Boot 3の新機能を使ってみよう! 2からアップグレードする手順、Observability機能、ネイティブイメージ化 Spring Boot 3の新機能を使ってみよう! 2からアップグレードする手順、Observability機能、ネイティブイメージ化 Javaの開発フレームワークであるSpringの最新バージョンとして、Spring Boot 3が2022年11月にリリースされました。この記事ではSpring Boot 2で書かれたサンプルコードをSpring Boot 3にアップグレードしながら、考慮点や新機能を体感していただきます。ヴイエムウェア株式会社の星野真知さんによる解説です。 Javaのエコシステム、その中でも世界で一番の人気を誇るのが(JetBrains社の調査によると)Spring FrameworkおよびSpring B

                                                                              Spring Boot 3の新機能を使ってみよう! 2からアップグレードする手順、Observability機能、ネイティブイメージ化|ハイクラス転職・求人情報サイト AMBI(アンビ)
                                                                            • Unity でリアルタイムにリップシンクを行うプラグインを作り直してみた - 凹みTips

                                                                              はじめに Unity でリップシンクを行う手段としては、事前にデータを作るものからリアルタイムに解析するものまで色々あります。本ブログでも以前、自分で作ったり Oculus 製のものを解説したりしました。 tips.hecomi.com tips.hecomi.com 前者の記事で自分が 7 年程前に作ったものは様々な依存(外部ライブラリやツールなど)が多く扱いづらいものでした。そこで今回これらの依存を廃してリップシンク単機能に絞り、またもう少しナウい実装にして uLipSync という名前で作り直してみました。 Job と Burst コンパイラを利用して処理を裏に回しつつ高速化 Unity のパッケージ以外の依存を排除 本エントリでは使い方をちょっとした解説を交えて紹介したいと思います。 追記(2021/02/27) 新しいバージョンの説明を書きました。 tips.hecomi.com

                                                                                Unity でリアルタイムにリップシンクを行うプラグインを作り直してみた - 凹みTips
                                                                              • 型パズルを理解しTypeScript中級者になる8のポイント - 弁護士ドットコム株式会社 Creators’ blog

                                                                                この記事は、弁護士ドットコム株式会社の Advent Calendar 2023 の 22 日目の記事です。 前日は @et_tei さんの「FireHOL で公開されているブラックリストからの接続 Akamai でブロックする」でした。 こんにちは。税理士ドットコム事業部の @komtaki です。 数年間 TypeScript を業務で使っていたのですが、型パズルの Type Challenges をやってようやく TypeScript の本質を理解していないことに気づきました。 この記事では Type Challenges を通して、私のような型パズルが難しいと感じる人のために型パズルを理解するための言語機能と使い方を 8 つのポイントでまとめます。 この 8 つのポイントを理解すれば、いろんな型パズルが理解できるようになるはずです。 Type Challenges とは TypeS

                                                                                  型パズルを理解しTypeScript中級者になる8のポイント - 弁護士ドットコム株式会社 Creators’ blog
                                                                                • AWS SSOを図解してみた | DevelopersIO

                                                                                  AWS SSOのコンソール画面を触ってると、「んん??どういうこっちゃ??‍♂️」みたいに混乱することありませんか?画面に沿ってなんとなく設定はできたけど、どういう仕組みになっているかわからないというか… すみません、うまく言語化できていない自覚があるんですが、以下のような点がモヤモヤしています。 ユーザー&グループ、アカウント、アクセス権限セット各概念の関係性がわからない いや、俺はそもそもアクセス権限セットがどういうものなのか理解していないのでは?(モヤモヤ?) 今回はこのモヤモヤを解消するために、SSOの概念を図解していきたいと思います。SSOコンソール上での以下各操作によってどういうリソースが作成され、それぞれがどう動作するのかまとめます。 初期状態(SSO有効化前) SSOを有効化する ユーザーやグループを作成する アクセス権限セットを作成する アカウントにユーザー・グループを割

                                                                                    AWS SSOを図解してみた | DevelopersIO