Pythonプロジェクトの環境構築
インストール
Python
$ brew install python $ which python3 /opt/homebrew/bin/python3 $ python3 -V Python 3.13.3
Poetry
$ curl -sSL https://install.python-poetry.org | python3 -
プロジェクト作成
$ mkdir test
$ cd test
$ poetry new poetry-demo
$ tree
.
└── poetry-demo
├── README.md
├── pyproject.toml
├── src
│ └── poetry_demo
│ └── __init__.py
└── tests
└── __init__.py
5 directories, 4 files
pyprojet.toml確認
[project]
name = "poetry-demo"
version = "0.1.0"
description = ""
authors = [
{name = "ユーザ名",email = "メールアドレス"}
]
readme = "README.md"
requires-python = ">=3.11"
dependencies = [
]
[tool.poetry]
packages = [{include = "poetry_demo", from = "src"}]
[build-system]
requires = ["poetry-core>=2.0.0,<3.0.0"]
build-backend = "poetry.core.masonry.api"
pyproject.toml の変更1
(追記)以下の手順は、poetry new 実行時にflatオプションを指定することで対応不要。
$ poetry new poetry-demo --flat
次のような構造にしたい(flat layoutと呼ばれるらしい)
$ tree
.
├── README.md
├── pyproject.toml
├── src
│ └── __init__.py
└── tests
└── __init__.py
packagesを以下の設定に変更
[tool.poetry]
packages = [{include = "src"}]
pyproject.toml の変更2
Python環境(.venvフォルダ)をプロジェクトのルートディレクトリに作成し、現在のプロジェクトのみに適用する。
$ poetry config virtualenvs.in-project true --local
poetry.toml が作成される
[virtualenvs] in-project = true
参考
CDK環境構築
前提
- OS: MacOS
- npmがインストール済
AWS CLIインストール
curl "https://awscli.amazonaws.com/AWSCLIV2.pkg" -o "AWSCLIV2.pkg" sudo installer -pkg AWSCLIV2.pkg -target /
config設定
$ aws configure --profile userprod AWS Access Key ID [None]: **** AWS Secret Access Key [None]: **** Default region name [None]: ap-northeast-1 Default output format [None]: json $ aws configure --profile default AWS Access Key ID [None]: **** AWS Secret Access Key [None]: **** Default region name [None]: ap-northeast-1 Default output format [None]: json
確認
aws s3 ls
CDKインストール
npm install -g aws-cdk cdk --version
プロジェクト作成
mkdir test && cd test cdk init app --language typescript
中身の確認
tree -L 2フォルダ全体
. ├── README.md ├── bin │ └── test.ts ├── cdk.json ├── jest.config.js ├── lib │ └── test-stack.ts ├── node_modules │ ├── @ampproject │ ├── @aws-cdk │ ├── @babel .......(省略) │ ├── yargs │ ├── yargs-parser │ ├── yn │ └── yocto-queue ├── package-lock.json ├── package.json ├── test │ └── test.test.ts └── tsconfig.json 224 directories, 12 files
- package.json typescript、jestまでセットアップしてくれる。とても便利。
{
"name": "test",
"version": "0.1.0",
"bin": {
"test": "bin/test.js"
},
"scripts": {
"build": "tsc",
"watch": "tsc -w",
"test": "jest",
"cdk": "cdk"
},
"devDependencies": {
"@types/jest": "^29.5.14",
"@types/node": "22.7.9",
"jest": "^29.7.0",
"ts-jest": "^29.2.5",
"aws-cdk": "2.1007.0",
"ts-node": "^10.9.2",
"typescript": "~5.6.3"
},
"dependencies": {
"aws-cdk-lib": "2.186.0",
"constructs": "^10.0.0"
}
}
デプロイ
cdk bootstrap
cdk deploy TestStack
参考
Node.js 環境構築
インストール
1. Homebrew
Homebrew — The Missing Package Manager for macOS (or Linux)
※ Homebrewを利用してインストールした場合、デフォルトでユーザフォルダにインストールされないため、Nodeのライブラリ等はvoltaやnvmを利用することを推奨。
2. volta
- 他の選択肢: nvm
- 注意点: pnpmサポートは実験段階にあるとのこと
3. Node.js
4. npm
- 他の選択肢: pnpm, yarn, burn
※ yarnはv2以降のCICDビルドが大変そうなので不採用
CICD (GitHub Actions)
- volta
GitHub - volta-cli/action: GitHub Action to Setup Volta
- pnpm
参考記事
【完全比較】npm vs pnpm vs Yarn vs Bun、最強のパッケージマネージャーはどれだ? #Node.js - Qiita
要件定義に入る前にやること
直近の仕事で色々と大変だった(現在進行中)ので記録しておく。
立場としては、1次受けのベンダー(2次受けのベンダーに要件定義や開発を発注)を想定している。
顧客向けにやること
- 既存業務の整理
- 現在、顧客がどのような業務を行なっていて、(既存システムがある場合は)誰がいつどのような目的でどの機能を利用しているか。
- 上記のことが、業務フローとして整理されているとベストである。
- 既存システムの仕様理解
- 既存システムの仕様書やマニュアルがある場合は、それを元にシステムの仕様を理解する。
- もし、存在しない場合は、QAを通して不明点を早めにクリアにしておく必要がある。
ベンダー向けにやること
- 見積依頼内容の整理と見積書の確認
- 契約形態
- 順委任か請負か
- 契約期間
- 期間はいつからいつまでか。発注が遅れた場合はどうするか等。
- 前提条件
- どのような条件をもとに見積を行うか。開発を行うにあたり特定のパッケージを使うことが前提になっているか等。
- 作業範囲
- 顧客との打ち合わせに参加するか、要件定義のどの範囲を担当するのか、進捗管理をやるのか等の作業範囲について。
- 契約形態
- 次工程の準備
- 実際の要件定義の進め方に関して、ベンダーと事前にすり合わせを行っておく必要がある。
- 要件定義を進めるにあたり、どのようなインプットを必要としているか、そのイメージは合っているか。
- どのタスクでどのようなアウトプットができるか。アウトプットはどのようなイメージか。
- WBSの各タスクの進め方はどのように進めるか。こちら側に依頼する作業は何かあるか。
- コミュニケーションのルール
- QAや課題をどのように管理するか。
- 実際の要件定義の進め方に関して、ベンダーと事前にすり合わせを行っておく必要がある。
AtCoder用のツール利用方法
online-judge-tools、atcoder-cli のインストール
$ pip3 install online-judge-tools $ yarn global add atcoder-cli
online-judge-toolsとの連携確認
$ acc check-oj > online-judge-tools is available. found at:
online-judge-tools、atcoder-cli へのログイン
$ acc login > Username: *** > Login: *** $ oj login https://atcoder.jp/ > Username: *** > Login: ***
入出力サンプルのインストール
URLが「https://atcoder.jp/contests/practice/」の場合
acc new practice or acc add practive
入出力サンプルの実行(javascriptの場合)
$ pwd /Users/xxxx/atcoder/practice/a $ touch code.js # ファイルを編集する $ oj t -c "node ./code.js" -d ./tests/ [INFO] online-judge-tools 11.5.1 (+ online-judge-api-client 10.10.1) [INFO] 2 cases found [INFO] sample-1 [INFO] time: 0.404934 sec [SUCCESS] AC [INFO] sample-2 [INFO] time: 0.236824 sec [SUCCESS] AC [INFO] slowest: 0.404934 sec (for sample-1) [SUCCESS] test success: 2 cases
参考
最近買った本(2020年7月〜2020年9月)
ひとつひとつを腰を据えてもうすこししっかりと学びたい気もする。 理解した部分とそうでない部分、読み直すときにわかるようにもっと詳細にメモしておこう。
2020年9月
9/13 下記を購入
状況: 未読9/5 下記を購入
状況: 全体をさらっと読んだ
2020年8月
8/14 下記を購入
状況: 全体をさらっと読んだ
- 作者:池田 聡
- 発売日: 2018/01/17
- メディア: 単行本(ソフトカバー)
8/14 下記を購入
状況: 導入部分のみ読む(Chapter 1〜3あたり)
ドメイン駆動設計入門 ボトムアップでわかる! ドメイン駆動設計の基本
- 作者:成瀬 允宣
- 発売日: 2020/02/13
- メディア: 単行本(ソフトカバー)
2020年7月
7/13 下記を購入

- 作者:アンドリュー・S・タネンバウム,デイビッド・S・ウエザロール
- 発売日: 2017/10/17
- メディア: Kindle版
7/13 下記を購入
状況: 導入部分を読んで難しそうだったので、入門書に切り替え
- 作者:Eric Evans
- 発売日: 2013/11/20
- メディア: Kindle版
7/4 下記を購入
状況: 1,3,4,5章を読んだり、写経したり。
目次: O'Reilly Japan - 初めてのGraphQL
初めてのGraphQL ―Webサービスを作って学ぶ新世代API
- 作者:Eve Porcello,Alex Banks
- 発売日: 2019/11/13
- メディア: 単行本(ソフトカバー)
7/4 下記を購入
状況: 1〜4章,5章(少し),11章(少し)を読んだ。まとめ中。
目次: O'Reilly Japan - プログラミングTypeScriptJavaScriptでつまづいたところは、昔購入した下記で復習(ちょっと内容古い)
プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発
- 作者:Boris Cherny
- 発売日: 2020/03/16
- メディア: 単行本(ソフトカバー)
TypeScriptプロジェクトの作成
package.json生成
$ yarn init
package.jsonのdevDependenciesにtypescript追加
$ yarn add -D typescript
tsconfig.json生成
$ yarn tsc --init
ファイル生成
$ mkdir src
$ cd src
$ touch index.ts
$ echo 'console.log("Hello TypeScript");' > index.ts
コンパイル実行
$ yarn tsc > index.jsが生成
ファイル実行
$ node index.js > Hello TypeScript // 下記も実行できるが、TypeScript構文がある場合はエラーになる $ node index.ts > Hello TypeScript
ディレクトリの中身の表示
$ brew install tree $ tree . ├── node_modules │ └── typescript │ ├── AUTHORS.md │ ├── CODE_OF_CONDUCT.md │ ├── CopyrightNotice.txt │ ├── LICENSE.txt │ ├── README.md │ ├── ThirdPartyNoticeText.txt │ ├── bin │ │ ├── tsc │ │ └── tsserver │ ├── lib(省略) │ └── package.json ├── package.json ├── src │ └── index.ts ├── tsconfig.json └── yarn.lock
コンパイル実行&ファイル実行は、下記のコマンドでも可能(コンパイル後のファイルは生成されない)
yarn add -D ts-node yarn ts-node ./src/index.ts
参考:2章 - TypeScript:全体像

プログラミングTypeScript ―スケールするJavaScriptアプリケーション開発
- 作者:Boris Cherny
- 発売日: 2020/03/16
- メディア: 単行本(ソフトカバー)


