maasayanのブックマーク (228)

  • どのレイヤー(層)でトランザクションを実装すべきか

    このように、層ごとに関心事の分離を行うことで、保守性の高い(変更容易性や再利用性等)アプリケーションを実現できます。 しかし、「トランザクション」においてはどうでしょうか。 トランザクションはビジネス領域においても、技術領域においても関心事がある内容です。 そういう曖昧なものは「ひとまず usecase 層に入れてしまえ」という方針になりがちです。 ですが、DB 固有の知識を usecase 層の関心事にしてしまっては、関心事の分離をするメリットが得られません。 そのため、関心事の分離を実現しつつトランザクション実装をする方法を模索してみました。 前提 1. クリーンアーキテクチャを採用している(オニオンアーキテクチャやレイヤードアーキテクチャも含む) そもそもビジネス知識と技術知識を分離していないアーキテクチャを採用している場合、メリットは得られません。 そのため、オニオンアーキテクチャ

    どのレイヤー(層)でトランザクションを実装すべきか
  • 要件定義、基本設計、詳細設計の流れを総復習

    はじめに 📘 この記事は ラクス Advent Calendar 2023 の7日目の記事になります。 要件定義から基設計、さらに実装や保守運用に至るまでの一貫した経験を何度か積んできましたが、毎回 「要件定義って具体的に何の項目が必要だっけ?」 「基設計との違いって何だったっけ?」 「基設計と詳細設計の区別って?」 といった疑問が頭をよぎってきました。 そんなわけで、これまでの経験を振り返りつつ、開発プロセスについて1からまとめていくことで頭の中の大掃除を行なっていきたいと思います🧹 この記事の対象者 🎯 開発プロセスについて学びたい方 要件定義の基を学びたい人 要件定義と基設計の違いがわからない人 一緒に開発プロセスについて復習したい方 前提 記事中の一部(特に要件定義や基設計、詳細設計のサンプル)を自動生成で作成してます。一貫性の無い内容があるかも知れませんが、あく

    要件定義、基本設計、詳細設計の流れを総復習
  • データベースを勉強したいあなたに送る技術書17冊(+11冊1講義7link)

    これはなに ども、レバテック開発部のもりたです。最近めっちゃ元気!! 今回は『データベースについて勉強したいあなたに送る技術書17冊(+11冊1講義7link)』として、もりたがここ半年くらいでわーっと集めたデータベース周りの書籍(とか)を紹介していきます。アプリケーションって結局はデータベースみたいなところがあると思うんですが、おれは長いことデータベースをどう学んだら良いのか分かりませんでした。同じような気持ちを抱えているITエンジニアの人もいると思うので、学習ロードマップと合わせて紹介していきます。 なお具体的な対象読者は業務でなんとなくSQL書いてるけど、ウィンドウ関数とか言われると分からんな……くらいの人です。 扱う領域と扱わない領域 扱う領域としてはだいたい以下 再入門 SQL 内部構造 論理設計 周辺知識 データベース理論 その他高度なもの モデリング、NoSQL、分散データ

    データベースを勉強したいあなたに送る技術書17冊(+11冊1講義7link)
    maasayan
    maasayan 2024/02/15
  • ファーストクラスコレクションのPythonでの実装例を見て考えたこと - nikkie-ftnextの日記

    はじめに 京都リサーチパークにて開催のYAPC::Kyotoでノベルティを受け取りし参加者の1人、nikkieです。 読書会駆動でミノ駆動(『良いコード/悪いコードで学ぶ設計入門』)を読んでいます。 7章ではファーストクラスコレクションが紹介されます。 Pythonで実装する上で参考になりそうな先駆者の例が見つかりました。 それを見て考えたことをアウトプットします。 目次 はじめに 目次 ファーストクラスコレクション Pythonでファーストクラスコレクション、先駆者による例 なるほどと思った点 dataclassにする 変更提案したい点 1-1. appendの返り値はNoneなのです 1-2. ファーストクラスコレクションが持つコレクションは変更しないほうがいいのではないか 2. as_listメソッドが返すのはtuple 提案実装 終わりに ファーストクラスコレクション ファースト

    ファーストクラスコレクションのPythonでの実装例を見て考えたこと - nikkie-ftnextの日記
  • 「現場で役立つシステム設計の原則」サンプルコードをPythonで書く - 肉球でキーボード

    はじめに 現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法~ のJavaで書かれたサンプルコードをPythonで書いてみました。 書はシステム設計の名著として有名で、コード・システムを綺麗に維持し続けるためのテクニックが、オブジェクト指向プログラミングの思想に基づいてまとめられています。 記事では具体的なコードの書き方に関する部分だけ扱い、Pythonで書く場合はどうすればいいのかに注目します。 書の中では実際の現場での設計方法や、コード設計の背景にあるドメインモデルなどの概念も紹介されていますが、記事では触れません。 より設計について学びたい方は、書を読むことをお勧めします。 文中コード:https://github.com/nsakki55/system-architecture-principles-python 1章 点在してるロジックを

    「現場で役立つシステム設計の原則」サンプルコードをPythonで書く - 肉球でキーボード
  • Cloud Run で作るサーバーレス アーキテクチャ 23 連発 - これのときはこう!

    2023年は「Cloud Run を触って覚える」をテーマとした ひとりアドベントカレンダー を開催しており、Cloud Run のさまざまな機能や Cloud Run でよく使う構成などをご紹介しています。 最終日、25日目は Cloud Run を中心としたサーバーレス アーキテクチャをいくつか紹介します。2023年にちなんで23個のアーキテクチャを用意しました。 Cloud Run の概要は「gihyo.jp」で解説していますので、こちらもぜひご覧ください。 Web アプリケーション + API の 3-Tier 構成 (SPA) Web アプリケーション + API の 3-Tier 構成 (SPA) SPA (Single Page Application) がフロントになり、バックエンドの API サーバーとして Cloud Run を使用するアーキテクチャです。SPA は N

    Cloud Run で作るサーバーレス アーキテクチャ 23 連発 - これのときはこう!
  • 【永久保存版】シェルスクリプト完全攻略ガイド - Qiita

    シェルスクリプトの世界へようこそ! シェルスクリプトって何? シェルスクリプトは普段 Bash などのシェルで実行しているコマンドを並べて、まとめて実行できるようにしたものです。ファイルのバックアップ、ログファイルの解析、システムのセットアップなど、ターミナルで行っていた一連の作業をまとめてシェルスクリプトに記述することで、シェルスクリプトを実行するだけで自動的に一連の作業を終わらせることができるようになります。また、シェルスクリプトはファイルに保存することになるため、再利用するのも簡単になります。 シェルスクリプトで使うコマンドの多くは UNIX コマンドになると思います。そのため、シェルスクリプトを書く際は UNIX コマンドについてある程度の知識があることが前提となってきます。以下の記事などを参考に UNIX コマンドについても学んでおくことをオススメします。 シェルスクリプトはいつ

    【永久保存版】シェルスクリプト完全攻略ガイド - Qiita
  • メモリの使い方の理解はプログラマのたしなみ…??😰 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに プログラミング学習を始めて1年経過しました。しかし、今までオブジェクト指向の概念から目を背けてきた結果、現在エンジニアとして苦労しているので、書籍「オブジェクト指向でなぜつくるのか」にて学習中です。 その中で、以下のような章がありました。 「メモリの仕組みの理解はプログラマのたしなみ」 これを見て、自分は今までそんなこと意識していなかったのと強く感じたので、今回はこの書籍で書かれていた、一般的なプログラムの動作環境としての最低限の知識を整理しました。 プログラムが動く仕組みを理解する上で重要な概念 コンパイラ方式とインタプリタ

    メモリの使い方の理解はプログラマのたしなみ…??😰 - Qiita
  • Linuxでの調査時に高頻度で使用してきたコマンドまとめ - Qiita

    この記事について この記事は、Linux上でコマンドをそこそこ実行してきた私が独断と偏見でよく使う5大コマンドをまとめたものです。 痒い所に手が届くような内容になることを願って記します…。 コマンドたち ①netstat -anp | grep "Listen " 実現できること LISTENしているポートを確認できます。 アプリケーションやミドルウェアに接続できない場合のトラブルシュートに使用できます。 使用方法 ポートの状況を調べたいサーバ上でコマンドを打つだけです。 127.0.0.53:53や:::80の箇所: LISTENしているIPアドレスとポート 0.0.0.0:*や:::*の箇所:    接続する側のIPアドレスとポート このような状況ではSSL設定したはずなのに、443ポートが開いていないぞというような形で調査ができます。 $ netstat -anp | grep "L

    Linuxでの調査時に高頻度で使用してきたコマンドまとめ - Qiita
  • 【超入門】GPT Builderの使い方!【GPTs / ChatGPT】

    はじめまして、ますみです! 先日のOpenAI社の初めてのカンファレンスである「OpenAI Dev Day 2023」で発表されたGPT Builderがついに利用可能になりました! 上記の発表会にて、「自分で作ったGPTを公開して、たくさん他の人に利用されると、その利用量に応じて、収益がもらえる」という話は非常に話題を呼びました。 そこで、おそらく多くの方が「自分のGPTを作って、収益化したい!」「どうやって自分のGPTを作るのか知りたい!」と気になっている方が多いと思います! そこで、この記事では、自分のGPTを作るためのツールである「GPT Builderの使い方(始め方)」を徹底解説します! もしも自社のGPT開発の外注や相談をしたい方は、記事末尾のGoogleフォームよりお問い合わせいただければ、お力になります! また、「ChatGPT」や「OpenAI Dev Day」につい

    【超入門】GPT Builderの使い方!【GPTs / ChatGPT】
  • MyGPTsで簡単にカスタムGPTのbotを作って公開する方法

    Assitants APIより簡単なMyGPTs ChatGPTの待望のアップデートがされました(順次アップデートしているようですね)。 それにともない、話題になっていた自分専用のChatGPTが作れるMyGPTsが使えるようになっていました。 すでに使えるようになっていたAssistants APIと似ているというか、多分Assistants APIをWebのUIでプロンプトで作れたり、作ったアシスタントを他の人に手軽に公開できるようにしたのがMyGPTsなのではないかなと思います。 追記:GPTsとAssistants APIの違いは、以下の比較表が分かりやすかったです。 MyGPTsでのアシスタントの作り方 最初に注意(個人情報) 作る前に注意事項です。MyGPTsはデフォルト設定だと、公開すると一緒に請求情報をもとに、名を公開します(恐ろしいデフォルト設定…)。 オプションで以下

    MyGPTsで簡単にカスタムGPTのbotを作って公開する方法
  • My GPTsを使ってドキュメント読まれない問題を解決する

    My GPTsが順次利用可能に! 先日、openAIのDevDayで情報が公開されたMy GPTsが昨日から順次利用可能になっています。 筆者にGPTアカウントでも利用可能となったため、色々と弄り倒して遊んでみました。 その中で、これは大きく体験を変えるなと思った事例があったので、今回はその内容をご紹介します。 頑張って書いたドキュメント、読まれていますか? 話は全く変わりますが、皆さん仕事でドキュメントは読まれていますでしょうか?また、自分が書いたドキュメントは組織内で活用されていますでしょうか? 特に、エンジニアの皆さんであれば、自分が作ったコード資産であったり、プログラムのドキュメントを作成したりというのは、日々の業務として取り組まれている方も多いのではないかと思います。 私はコードを書くのは好きなのですが、ドキュメントを書くのが結構苦手で、いつも面倒くさいなあ…と思いながら書いてい

    My GPTsを使ってドキュメント読まれない問題を解決する
  • 【Cursor】次世代AIコードエディタで業務効率化!使い方や料金、特徴を徹底解説 | WEEL

    皆さんは「Cursor」というAIツールをご存じでしょうか? Cursorは、プログラミング関連の業務全般を自動化できるAIツールです。Cursorを活用すれば、コードを自動で生成できるのはもちろん、チャットで質問したりエラーを自動で修正したりもできるんです! 記事では、Cursorの概要や料金体系、主な機能の使い方などについて詳しく解説します。 また記事の最後では、プログラミング知識ゼロの筆者が実際にCursorでコードを生成してみた様子も紹介します!ぜひ最後までご覧いただき、興味のある方はお手元のPCでCursorを試してみてください! Cursorとは?どんなAI? 参考:https://www.cursor.com/ja Cursorは、プログラミング関連の業務全般を自動化できるAIツールです。 Cursorの主な特徴は、以下の3点です。 VSCodeをフォーク:プログラミング専

  • [Cursor] AIで変わる新しいエディタ - Qiita

    Cursorは、AIを活用した革新的なコードエディタとなります。 主な特長 VSCodeベース: Cursorは、人気の高いVSCodeを基にしています。VSCodeの操作に慣れている方なら、すぐに使いこなせるはずです。 ChatGPT内蔵: AIの力でコードに関する質問やアドバイスが得られます。Ctrl + Shift + Lでチャットエリアを開いて、AIに質問しましょう。 AIによるコード生成・編集: Ctrl + KでAIを活用し、コードの生成や編集が可能です。編集したいコードを選択してCtrl + K、簡単な指示を入力するだけです。 対話型デバッグ: バグがある時に役立ちます。AIが問題の解決策を教えてくれるので、デバッグがスムーズに進みます。 ドキュメント活用: @記号を使用して特定のライブラリやフレームワークの情報をAIに参照させることができます。ドキュメントのURLを入力する

    [Cursor] AIで変わる新しいエディタ - Qiita
  • Cloud Function とデフォルトでついている権限についてメモ

  • 今日から始めるDocker入門(必要性を理解してから動かす) - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Dockerとは おそらく、仕組みを言葉で表現されても良く分からないと思うので、wikipediaを引用させていただきます 後述で必要性や歴史を記載しますので、そこで実感してもらえればなと思っています Docker(ドッカー[4])は、コンテナ仮想化を用いてアプリケーションを開発・配置・実行するためのオープンプラットフォームである Dockerはコンテナ仮想化を用いたOSレベルの仮想化によりアプリケーションを開発・実行環境から隔離し、アプリケーションの素早い提供を可能にする。かつその環境自体をアプリケーションと同じようにコード(イメージ

    今日から始めるDocker入門(必要性を理解してから動かす) - Qiita
  • エンジニアに読んで欲しい技術書90選 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに タイトル通り、読んで欲しい(圧)技術書をたくさん集めてみました。自身の担当から外れる領域に関しては、会社の人に協力を仰ぎ、編集しました。「何を読めばいいかわからない」、「次の読むを探したい」などのように考えている方の参考になればと思います。 また、大きく、 ・新米エンジニア ・脱新米エンジニア と分けてまとめたので、参考にしてみてください。 技術書のススメ 技術書の紹介の前に、技術書で得られるものについて説明したいと思います。全然読み飛ばしてもらって大丈夫です。この章からの紹介を行なっていきます。 技術書は体系的な構成とな

    エンジニアに読んで欲しい技術書90選 - Qiita
  • その例外、いつキャッチするの?

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

    その例外、いつキャッチするの?
  • Google Cloudで理解するサーバーレス・アーキテクチャ - G-gen Tech Blog

    当記事は みずほリサーチ&テクノロジーズ × G-gen エンジニアコラボレーション企画 で執筆されたものです。 サーバーレス構成ではクラウドサービスのポテンシャルを最大限引き出すことができます。モダンなアプリケーションの設計にはサーバーレスへの理解が必須であり、あらためて整理することにしました。 G-gen の佐々木です。当記事ではクラウドサービスにおける サーバーレス・アーキテクチャ について、Google Cloud のプロダクトを例に解説します。 サーバーレスの概要 サーバーレス・アーキテクチャとは 用語の定義 サーバーレスの特徴 メリットとデメリット 特徴① インフラリソースのプロビジョニング・運用管理が不要 インフラを意識しない 柔軟性は劣る 利用者の責任範囲 特徴② 動的なスケーリング 動的リソース確保とゼロスケール コールドスタート 特徴③ 従量課金制 コストメリット 課金

    Google Cloudで理解するサーバーレス・アーキテクチャ - G-gen Tech Blog
  • しずかなインターネットの技術構成

    こんなWebサービスをリリースしたので、技術的な話をまとめておこうと思います。 元々このサービスは、趣味の延長線のような感じで開発を始めました。競合にあたるnoteはてなブログなどのサービスが確固たる地位を築いているということもあり、「お金にはならないだろうけど、自分の趣味を詰め込んだものにしよう」というゆるい気持ちで開発を続けています(楽しい)。 選定の方針 趣味と言っても文章投稿サービスなので、ユーザーが少数であったとしても長期間運営しなければなりません。そのため、ユーザー数が少なければランニングコストが数千円/月以下、ユーザー数が増えたときは段階的にコストが上がるように選定を行いました。 アプリケーション フルスタックNext.jsアプリケーションをCloud Runにデプロイしています。各APIエンドポイントはNext.jsAPI Routesで生やしています。 Next.js

    しずかなインターネットの技術構成
    maasayan
    maasayan 2023/12/04
    アーキテクチャ