分からない単語の意味をまとめたアウトプット第2弾です。
相変わらず、「そんなことも知らないのか」とひんしゅくを買ってしまいそうな内容ではありますが、1つずつ積み重ねていきたいと思います。
自分用の備忘録として残しておりますので、ご了承ください。
用語集
-
サンドボックス環境
- 実際のシステムから隔離された安全な仮想的な砂場(sandbox)環境の事
- 開発中のアプリを、本番環境に影響を与えずに動作確認を行う用途などで利用される
-
paramiko
- PythonでSSHv2プロトコルを実装した、安全で強力なSSHライブラリ
- 注意点:過去に脆弱性が報告されているため、バージョンを常に最新に保つ必要がある
-
GithubのIssues
- プロジェクトにおける「やることリスト」や「バグ報告」、「新機能のアイディア」を管理する、Github上のスレッド機能
-
awesome-python
- Pythonの優れたフレームワーク、ライブラリ、ツール、書籍などを分野別にまとめた源泉リスト(キュレーションサイト)
- Github上で管理されていて、多岐にわたる高品質なリソースが網羅されており、開発者にとって実用的なリファレンスとなる
-
Pythonライブラリを採用する前に確認する項目こちらの記事から引用
- 公式リポジトリ(npm、PyPI等)で実在を確認する
- 最終更新が直近1年以内か確認する
- GitHubのスター数、Issue数、メンテナの活動を見る
- ライセンスを確認する(GPL系を商用で使うと面倒なことになる)
- package-lock.json や requirements.txt でバージョンを固定する
-
PyPI
- Python Package Index
- Pythonプログラミング言語用の公式パッケージリポジトリ(ソフトウェアの倉庫)
- 公式の配布場所であり、
pipコマンドなどで安全かつ簡単に自動インストールできる
-
uvで依存関係のバージョンを固定
-
uv add requestsを実行すると、仮想環境へのインストールと同時に、pyproject.tomlやuv.lockにバージョン情報が自動的に固定される -
uv add 'requests==version'で、インストール時にバージョンを指定可能。>や<も使用可能。バージョン変更もこのコマンドで行える - パッケージをアップグレードするには、
uv lock --upgrade-package requests
-
-
Rust
- プログラミング言語の一種
- 高いパフォーマンス(高速処理)とメモリ安全性、安全な並行処理を両立させた現代的なシステムプログラミング言語
-
タイポスクワッティング
- (Typosquatting)
- ユーザーがURLを入力する際のスペルミス(タイポ)を悪用し、正規サイトと似たドメインを取得して偽サイトへ誘導するサイバー攻撃
- 広告収入、個人情報の盗難、ウイルス感染などが目的
-
ユニットテスト
- (単体テスト)
- プログラムの最小構成単位(関数、メソッド、クラスなど)が意図通りに動作するかを個別に検証するテスト
- 開発者がコーディング段階で実施し、早期にバグを発見して修正コストを下げる目的がある。
- 一般的に自動化され、CI/CD環境で頻繁に実行される
-
pytest
- Pythonで最も広く使われているユニットテスト用フレームワーク
- 標準ライブラリの
unittestよりも書き方がシンプルで、強力な機能を備えているのが特徴
-
ストーリーボード
- 映像制作の絵コンテや、UX(ユーザーエクスペリエンス)設計においてユーザーの体験(シナリオ)を4~6コマののイラストとメモで時系列に視覚化したもの
- 環境、文脈、接点を明確にし、ペルソナがサービスを利用する一連の流れを描写し、チーム内の認識共有や価値検証に役に立つ
-
ソフトウェア開発プロセス
- ヒアリング、要件定義、設計、開発(コーディング)、テスト、納品、運用・保守の順に進む
- 要件定義・企画:クライアントの要望をヒアリングし、どのような機能を実装するかを明確にする
- 設計:画面や機能の配置を決める「基本設計」と、内部構造を決める「詳細設計」を行う
- 実装・コーディング:設計書に基づいて実際にプログラミングを行う
- テスト:機能が正しく動作するか確認する(単体・結合・総合テスト)
- リリース・納品:開発したソフトウェアを顧客へ引き渡し、利用を開始する
- 運用・保守:リリース後のバグ修正や機能追加、サーバーの監視を行う
- 主に、ウォーターフォール型とアジャイル型の、2つの開発手法がある
-
スクラム開発
- 少人数のチームが「スプリント」と呼ばれる1~4週間の短期間で、計画・設計・実装・テストのサイクルを繰り返す、柔軟なアジャイル開発手法の1つ
- アジャイル開発:顧客のフィードバックを基に機能を少しずつ追加・改善し、変化の激しい環境で高品質なプロダクトを迅速に開発するために用いられる
- スクラムチーム:プロダクトオーナー(方向性)、スクラムマスター(進行)、開発者(実装)の3つの役割がある
- アジャイル開発の代表的な手法として、他にカンバン手法が挙げられる
-
ウォーターフォール開発
- 要件定義から運用までを「滝(Waterfall)」のように上流から下流へ順に進める伝統的なシステム開発手法
- 最初に詳細な計画を立てるため、品質担保や進捗管理が容易で、大規模案件や仕様変更の少ないプロジェクトに適している
-
マルウェア(Malware)
- コンピュータやスマホに不利益をもたらすプログラムの総称
- "malicious"(悪意のある)と"software"(ソフトウェア)を組み合わせた造語
- ウイルスやスパイウェアを含み、情報流出、データ破壊、システム乗っ取りなどの被害を引き起こす
-
Nginx(エンジンエックス)
- 高速性・安定性・低メモリ消費を特徴とする、オープンソースのWebサーバソフトウェア
- Apacheと並び世界的に人気があり、大量の同時接続(高トラフィック)を効率的に処理できる
- リバースプロキシ、ロードバランサ―、キャッシュサーバとして広く採用されている
今日はこれくらいにしたいと思います。