Category:

「実践ドメイン駆動設計」から学ぶDDDの実装入門の読了メモ

これは ドメイン駆動設計 Advent Calendar 2020 の16日目の記事です。 「実践ドメイン駆動設計」から学ぶDDDの実装入門 を輪読会で読了したので、内容を箇条書きでメモしておきます。 個人的解釈を多分に含むため、導入する際には実際に書籍を読んで判断してもらえればと思います。 1. 「DDDへの誘い」〜ドメイン駆動設計のメリットと始め方〜 DDDとは DDDとは 「高品質」のソフトウェアを設計する手法 「高品質」とは、ビジネス的にも成功していること言うこと 「事業を理解し、チームの知識を一つにまとめること」を重視し、「ユビキタス言語」というチーム内の共通語でプログラムを実装する DDDのメリット プログラマとドメインエキスパートが「共通言語」で視点を合わせて会話する=>顧客視点に繋がる チームで業務知識を共有し、理想像を追求できる 「設計=コード」を実現し、実装時の課 Continue Reading

Posted On :

pyppeteerでファイルをダウンロード

昨日、puppeteerでファイルをダウンロードする という記事を書いたのですが、puppeteerのpythonに移植した pyppeteer で同じようにファイルダウンロードをやってみました。 pyppeteer自体の使い方は以前記事を書いてるので、そちらをご覧ください。 pyppeteerの使い方 実装 puppeteerで試した中で一番筋が良さそうだった「ダウンロードのrequestをキャプチャして、同じ内容で別途requestを送信する」という方法を実装してみました。 from typing import Union, List, Dict import asyncio from uuid import uuid4 from mimetypes import guess_extension from pyppeteer.launcher import launch from py Continue Reading

Posted On :
Category:

puppeteerでファイルをダウンロード

この記事は Node.js Advent Calendar 2020 の2日目の記事です。 puppeteer でファイルダウンロードする方法はこちらの issue がまだopenなことからも分かるように、すんなり実現できる公式の方法はなさそうです。 とはいっても、スクレイピングをしてて、ファイルダウンロードしたいケースはあるわけで、実際に試してみようと思います。 前準備 とりあえず、puppeteerをインストールします。puppeteer以外に必要なライブラリは、個別に追記しています。 npm install puppeteer –save 実行方法 サンプルソースを適当な名前のファイル(たとえばsample.js)にコピペしてnodeコマンドで実行するだけで、実際に動かすことができます。 node sample.js ファイルをダウンロードする 方法1【△】: 単純にブラウザのファ Continue Reading

Posted On :

Webブラウザ上でニコニコ動画風にコメントを表示

コロナの影響で、リモートでの勉強会が増えてきましたが、プレゼン中に反応が少なくて寂しいなぁと感じることがあります。 でも意外にチャットは盛り上がってることが多いので、画面共有しているブラウザ上にニコニコ動画風にメッセージをアニメーション表示する機能を作ってみることにしました。 やりたいこと プレゼンターが会議URLを発行する 参加者は会議URLからコメントを入力する プレゼンターのWebブラウザ上に、参加者のコメントがニコニコ動画風にアニメーション表示される アーキテクチャ 検討の結果、以下の技術を採用することにしました。 ブラウザ上でコメント常時受付(フロント、プレゼンター側) => WebSocket(socket.io) 任意のページ上にコメント表示(フロント、プレゼンター側) => ブックマークレット(良いものができたらChrome拡張化して公開) コメント常時受付(サ Continue Reading

Posted On :
Category:

GitLab-CIのTips

GitLab CIのTips的なものを記載していきます。 環境(stg / prd)毎に異なるレジストリにpushする 実際の運用では、stagingとproductionのDockerイメージを、異なるレジストリで管理することもあると思います。そのようなケースではEnvironment scopeを使うと良いと思います。 まず、以下のイメージのように同名のカスタム変数を異なるEnvironment scope(stg / prd)で登録します。 その上で、.gitlab-ci.ymlを以下のようにします。 元々のbuildの内容は.buildとしてテンプレート化する build_stgとbuild_prdを新たに作って.buildをextendする タグ名$CI_COMMIT_TAGのパターンマッチで、x.y.zの形式なら環境名をprdとし、それ以外なら環境名をstgとする(それにより読 Continue Reading

Posted On :
Category:

GitLab CI + kaniko でDockerイメージをビルド

業務ではGITリポジトリとしてGitLabを使ってるのですが、ローカルPCでDockerイメージを作成する運用だと ローカルの変更が混じってしまう可能性がある イメージを作成するタイミングがあいまいだし、作成忘れがあったりする などの問題があり微妙だったので、GitLabにタグ(1.5.2など)をプッシュしたタイミングで、自動的にDockerイメージを作成してGCRにビルドさせることにしました。 少し前に 会社のブログ で kaniko を使うケースを紹介してくれていたので、やってみることにしました。 GitLabでDockerイメージをビルドする方法の候補 改めてGitLabの ドキュメント を見てみると、以下のように書いてあります。 There are three methods to enable the use of docker build and docker run duri Continue Reading

Posted On :