Branded Type ベストプラクティス 検索
この記事は、TypeScriptにおけるBranded Typeのベストプラクティスについて解説したものです。著者は、unique symbol
を用いた方法を推奨しています。これは、プリミティブ型(例えばstring
)に独自のシンボルを付与することで、型レベルでの識別を可能にする手法です。 unique symbol
を使用することで、型チェックにおける正確性を高め、ランタイムでの不正な値の利用を防ぎます。 他の方法(文字列リテラルを使用する方法など)は型安全性の観点から劣ると指摘しており、unique symbol
によるカプセル化の重要性を強調しています。 また、declare const
を用いたシンボルの宣言方法についても触れていますが、著者はどちらの方法でも良いと考えています。 最終的には、unique symbol
を用いたBranded Typeの作成方法と、その理由が詳細に説明されています。
リーダー1年目の懺悔
この記事は、チームリーダー1年目の著者が、経験を通して学んだマネジメントの反省と改善点を記したものである。 具体的には、チャットでの指示、フラットな関係性、優しい指摘、お願いベースの作業依頼といった初期のやり方が非効率で部下の成長を阻害していたと気づき、「リーダーの仮面」という書籍を参考に、指示の明確化、上司と部下の関係性の意識、指示の言い切り方などを改善したという内容。 さらに、著者は「いい人」になりすぎない、部下の成長を待つ、部下と競争しない、マネジメントを優先する、辞めないことを気にしすぎない、といった5つのポイントを今後の課題として挙げている。
shutdownシステムアカウントが見事に本番サーバを停止させた
著者は、若い頃に本番DBサーバで su - shutdown
コマンドを実行し、予期せずサーバをシャットダウンさせた経験を記している。shutdown
ユーザーアカウントがログイン時にシャットダウンコマンドを実行するよう設定されていたことが原因だった。この経験から、本番環境での操作は事前に検証環境で確認するなど、慎重に行うべきだと結論付けている。
あなたはいくつ解けますか?データベース分野を徹底解説 【基本情報・応用情報】
この記事は、基本情報技術者試験と応用情報技術者試験のデータベース分野を網羅的に解説したテックブログ記事である。正規化、同時実行制御(ロック)、SQL、トランザクション、キー、ER図、3層スキーマ、制約、インデックス、実行計画と統計情報、リポジトリ、データウェアハウス、データマイニング、NoSQLといったデータベースに関する重要な概念を、図解を用いて分かりやすく説明している。各概念の説明に加え、それぞれの単元に関する試験問題とその解説も掲載されている。特に同時実行制御と正規化については、詳細な図解と解説で丁寧に説明されている。 学習サイトの紹介や参考書籍の案内も含まれている。
WPMLを使って日本語サイトを英語化
この記事は、非エンジニアの著者がWordPressプラグインWPMLを使って企業ウェブサイトを英語化した経験を紹介しています。WPMLの機能(多言語対応、SEO最適化、翻訳管理、自動翻訳機能、テーマ/プラグインとの互換性)と、導入における注意点(コスト、サーバー負荷、互換性確認)、そしてWPML使用時に遭遇した問題とその解決策(カスタムフィールドの翻訳対象設定、画像URLの対応、HTMLタグ処理)を具体例と共に解説しています。 特にWPMLの柔軟性と「String Translation」機能の有用性を強調し、多言語化におけるURL構造の重要性も指摘しています。最後に、WPMLを用いれば技術者でなくても多言語サイト構築が可能であると結論づけています。
VSCode×Pythonのおすすめ拡張機能・設定集【完全保存版】
この記事は、VS CodeでPython開発をする際に、効率化のために導入すべき拡張機能と設定を紹介しています。
拡張機能:
-
Ruff: Linter、formatter、import sorterを統合した高速なツール。設定は
ruff.toml
で行う。 -
Mypy Type Checker: 型チェックを行う。
settings.json
で厳しさの調整が可能。 -
Pytest: テストツール。
Python Test Explorer
拡張機能と併用推奨。 - autoDocstring: docstring自動生成。
- Code Spell Checker: スペルミス検出。
- GitLens: Git履歴の可視化。
- Error Lens: エラー表示の強化。
- indent-rainbow: インデントの視覚化。
- Trailing Spaces: 余計なスペースの可視化。
- Blockman: ネストされたコードブロックの強調表示。
- TODO Highlight: TODO/FIXMEの強調表示。
- vscode-icons: ファイルアイコン表示。
- Rainbow CSV: CSVファイルの視覚化。
- Edit CSV: CSVファイルの簡易編集。
- Markdown Preview Enhanced: Markdownプレビュー強化。
VS Code設定:
- カラースキーマ(GitHub Theme、Ayu、Noctisなど)とフォント(Source Han Code JP、PlemolJP、UDEV Gothic 35JPDOCなど)のカスタマイズ。
- キャレットの点滅/移動アニメーションの設定。
- エクスプローラーのインデントサイズ/ガイドの設定。
- ウィンドウタイトル、インデントガイドの表示/非表示。
- カーソルスタイルの設定。
要約すると、この記事はVS CodeでPython開発の生産性を向上させるための、厳選された拡張機能と設定方法を具体的に解説したものです。 特にRuffの導入が強く推奨されています。
[Next.js] PokeAPIでポケモンBMIクイズ作ってみた
このテックブログ記事は、Next.js 15とPokeAPIを用いて作成された、初代ポケモン151匹のBMIクイズを紹介している。PokeAPIからポケモンのデータを取得し、身長と体重からBMIを計算、2匹のポケモンを比較してBMIの高い方を当てるクイズ形式になっている。記事ではクイズのURLと、ポケモンデータ取得方法、Next.jsでの実装例(pokemon.ts
とpage.tsx
ファイルの概要)が示されている。
ペアプロが嫌すぎて会社を退職した話
この記事は、著者が前職で100%ペアプロを強制された経験から、ペアプロのアンチパターンとその改善策を記したものです。強制的なペアプロにより、生産性や数値指標は向上したものの、著者はエンジニアとしての楽しさや個性を失い、精神的な負担から退職せざるを得ませんでした。 著者は、ペアプロは適材適所で、短時間で行うべきであり、ソロプロを否定するべきではないと主張しています。 現職では、ソロプロをメインに、必要に応じてスポットでペアプロを行うことで、生産性とメンタルヘルスの両立を実現しています。 最後に、ペアプロ導入を検討するチームには、メンバーの性格や感情を考慮し、ゼロイチではなく柔軟な導入を推奨しています。
おすすめのVSCode拡張機能3選
この記事は、VSCodeの便利な拡張機能3つを紹介する。1つ目は「Japanese Language Pack for Visual Studio Code」で、VSCodeの表示言語を日本語化する。2つ目は「Prettier - Code formatter」で、コードを自動整形する。保存時に自動実行する設定方法も解説している。3つ目は「IntelliCode」で、コンテキストに基づいた高度なコード補完を提供する。 いずれも設定方法は簡潔に説明されている。
Google Vision AIでレシートスキャンに挑戦!Kotlin × Quarkusでアプリを作ってみた
この記事は、Google Cloud Vision AI、Firestore、Quarkus、Kotlinを用いてレシートの店舗名、金額、購入日を読み取りFirestoreに保存するアプリ開発について記述している。 著者は、業務の合間にアプリ開発を通して技術的な楽しさを再確認し、自身の消費状況を把握することを目的とした。開発過程では、レシート情報の正確な抽出、GCPのロール設定、画像サイズ、レシートフォーマットの多様性といった課題に直面したものの、基本的な機能は実現している。今後の課題として、商品リストの抽出精度の向上とレシートフォーマットへの対応強化が挙げられている。
GitHubActionsを用いたS3へのコンテンツデプロイ
このテックブログは、GitHub Actionsを用いてGitHubリポジトリへのプッシュをトリガーに、S3バケットへ静的ウェブサイトのコンテンツ(HTML、CSSファイル)をアップロードするワークフローを構築した過程を説明しています。 AWS CLIとGitHub Actionsを利用し、IAMユーザーのアクセスキーをGitHub Secretsに設定することで認証を実現しています。ワークフローはdevelop
ブランチへのプッシュで実行され、aws s3 sync
コマンドでファイルの同期と削除を行います。 セキュリティ面ではIAMロールの使用が推奨されていますが、今回は簡略化のためアクセスキーを使用しています。
知見0の娘っちがYouTubeで「生成AI副業」をやってみた結果
生成AIを用いた音楽副業に挑戦した娘(AI経験なし)の1年間をまとめた記事。Suno.ai、ChatGPT、Stable Diffusionなどを使い、昭和・平成J-POP風の楽曲をYouTubeに投稿。最初は収益0だったが、動画形式変更、リブランディング、プロンプトエンジニアリングの改善、視聴者からのフィードバックを活かすことで、チャンネル登録者数5000人、月収ディズニーランド40回分を達成。副業としての成功と、ビジネススキル向上を経験した。ただし、著作権や確定申告、金銭感覚への影響に注意が必要と強調している。
新卒が業務を通して感じたこと・学んだこと
新卒1年目の塩谷氏は、業務における3つの苦労(質問の仕方、作業の認識齟齬、言葉遣い)と、それらから得た3つの学び(話す内容の言語化、フィードバックの活用、実践経験の重要性)を報告している。 質問や報告においては明確さを心がけ、フィードバックを積極的に受け入れ、実践を通して改善していくことの重要性を強調している。
新卒一年目が考える、情報系専門学校を卒業してためになったこと3選
この記事は、IT企業で働く著者が専門学校での経験が社会人生活でいかに役立っているかを3つのポイントで解説したテックブログである。
要約:
著者は、専門学校で学んだチーム開発、資格取得、問題解決のスキルが、現在の仕事に活かされていると述べている。チーム開発ではプロジェクトの進め方や効率的な開発方法を学び、資格取得ではIT基礎知識と自信、そして問題解決能力を養ったという。特に、困難な問題に直面した際の冷静な分析や周囲への協力を重視する姿勢は、社会人になってからも役立っていると結論付けている。 専門学校での経験は、努力する人にとって大きな可能性を秘めていると締めくくっている。
ポインタとは
この記事は、プログラミングにおけるポインタの基礎概念を解説しています。ガベージコレクションを持つ言語ではメモリ管理を意識しにくい一方、低レイヤー開発や大規模データ処理ではメモリ管理の理解が重要になります。ポインタはメモリアドレスを保持し、そのアドレスを通じてデータにアクセスする仕組みです。ポインタを使うことで、データのコピーを減らし効率的なデータ受け渡しを実現、データの共有と変更を容易にし、動的なメモリ管理が可能になります。C言語の例を用いて&
演算子(アドレス取得)、*
演算子(値取得)を説明し、関数ポインタや文字列処理など、ポインタの具体的な活用例も紹介しています。 ポインタの理解はメモリ効率化や高度なプログラミングに役立つと結論付けています。
Googleが提唱する「Core Web Vitals」とは?SEOで重要な3つの指標を分かりやすく解説!
この記事は、Googleが提唱するWebサイトのユーザー体験(UX)評価指標「Core Web Vitals」について解説している。Core Web Vitalsは、LCP(読み込み速度)、INP(応答速度)、CLS(レイアウトの安定性)の3つの指標から構成され、Google Search Console、PageSpeed Insights、Lighthouseといったツールで計測できる。これらの指標は検索順位に影響するため、UX改善とSEO対策に重要であり、数値目標と合わせてサイト全体のユーザビリティも考慮すべきだと結論付けている。
MS謹製のanything to Markdownライブラリ: markitdownを試す&PRを出してみた件
この記事は、様々なファイル形式をMarkdownに変換するライブラリ「MarkItDown」を紹介し、実際にPull Requestを送信する過程を解説しています。MarkItDownはPDF、PowerPoint、Word、Excelなど幅広いファイルに対応しており、LLMへのデータ供給やGit Actionsでの利用に便利であると説明されています。著者は、pptxファイルのチャートのMarkdown変換が未実装である点に着目し、それを実装したPull Requestを送信しました。 記事では、Pull Requestを送信する手順やテスト実行方法も具体的に示されています。
NEC印西データセンターで AWSとOracle Cloud マルチクラウド L3高速低レイテンシ接続してみてみた
本記事は、NEC印西データセンターを利用したAWS Direct ConnectとOracle Cloud Infrastructure FastConnectによるマルチクラウド/ハイブリッドクラウド閉域接続の構築手順と検証結果を詳細に解説している。NEC印西データセンターはAWS、Azure、Oracleの3大パブリッククラウドへの接続拠点を備える。記事では、冗長構成のLACP、BGP ECMPを用いた接続設定、AWSとOCI側での具体的な設定手順(仮想プライベートゲートウェイ、仮想インターフェース作成など)、Ciscoルータを用いたオンプレミス側の設定、そして各クラウド環境とオンプレミス環境間の接続確認(ping、SSH、Netperf)の結果を提示している。 検証の結果、AWS、OCI、オンプレミス間の相互接続が正常に動作することを確認した。
人の視線移動から考える、ボタン内のアイコンは左右どちらに配置すべきか
この記事は、ボタンUIにおけるアイコンの配置(特にテキストとの左右関係)について、人間の視線移動と文化的な背景(言語による書字方向)から考察している。左から右に読む文化圏では、アイコンをテキストの左側に配置することで、視線の自然な流れに沿って直感的に理解しやすくなる一方、右向き矢印など進行方向を示すアイコンは右側に配置することで効果的であると説明している。 要約すると、ボタンUIのデザインにおいて、ユーザーの視線移動を考慮したアイコン配置が重要であり、それは言語や文化に依存することを論じている。
Pleasanter の怖い話!
このテックブログ記事は、ローコード開発プラットフォームPleasanterにおいて、スクリプトとサーバスクリプトのパフォーマンスの違いを解説しています。 著者は、パフォーマンス問題に遭遇した経験から、特にAPI利用時のサーバスクリプトの優位性を検証しています。 検証の結果、サーバスクリプトはクライアントとサーバ間の通信回数を削減することで、スクリプトに比べて処理速度が大幅に速いことを示しました。 そのため、Pleasanterでの開発では、パフォーマンスを考慮し、可能な限りサーバスクリプトの使用を推奨しています。
Laravelプロジェクトに導入予定の便利ツールをご紹介!
この記事は、Laravelプロジェクトの開発生産性向上のため、PHPStan、Pint、Huskyの3つのツールを導入しようとした際の課題と解決策を紹介している。
- PHPStan: 静的解析ツール。既存コードのエラーが多いため、ベースライン機能を用いて新規コードのエラーに絞り込むことで導入を進める。
-
Pint: コーディングスタイルチェックツール。既存コードへの全面適用は困難なため、
pint.json
でルールを段階的に適用していく。 - Husky: gitフックツール。PHPStanとPintをgit commit時に実行し、エラーを検出する。
導入にあたっては、既存コードの膨大なエラーへの対処が主要な課題であり、段階的な導入とエラー無視機能の活用が解決策として提案されている。 既存コードへの適用は時間と労力を要するため、部分的な適用と段階的なリリースが推奨されている。
データ分析をやってみるぞ~その一~
この記事は、著者がRからPythonとMySQLを用いたデータ分析環境に移行する過程を記したものです。Windows環境へのMySQL 8.0のインストール手順を詳細に解説しており、インストーラーを用いたインストール、各種設定(パスワード設定含む)、そしてMySQL ShellとMySQL Workbenchの起動までを、スクリーンショットと共に説明しています。インストール過程では英語表記への対応や、手順の不明瞭さといった課題に直面したことも記されています。 次の記事ではMySQLの操作について扱う予定です。
初めてデータベースを触る方向けのデータベース豆知識 🫛
このテックブログ記事は、データベースの基礎概念を解説している。データとデータベースの違い、データベースの主要な特徴(リアルタイムアクセス、継続的変化、同時共有、内容による参照)、データベース設計の3段階(概念設計、論理設計、物理設計)、スキーマの定義と使用方法、データベース管理システム(DBMS)とその機能(DDL、DML、DCL)、データベースモデリング(ERモデル、リレーションモデル)、そしてトランザクション管理とACID特性について説明している。 具体例としてSQL文を用いたテーブル作成、データ操作、アクセス権限管理などが示されている。
コードレビューの必須ガイド:要チェックポイント41選
この記事は、Pythonコードのコードレビューチェックシートを提供するテックブログ記事です。初心者からベテランまでを対象に、コーディング規約遵守、コードの可読性と保守性、安全なコーディング、最適化とパフォーマンス、テスト、APIレビューの7つの観点から、具体的なチェックポイントと改善例を示しています。 各項目には詳細な説明とコード例、参考資料が添えられています。
他部門連携のすゝめ 〜 そのときCSはこう考えている 〜
この記事は、Schoo Swingのカスタマーサクセス(CS)担当者が、開発チームとの円滑なコミュニケーションを目指し、CSの仕事内容と開発チームへの要望を解説している。具体的には、顧客からの要望拒否時(「NO」を伝える時)と障害発生時の2つの場面を例に、CSがどのような情報を必要とし、どのようなコミュニケーションを望んでいるかを説明している。顧客への丁寧な説明には開発チームからの詳細な情報提供が不可欠であり、障害発生時には迅速な情報共有と進捗報告が重要だと強調している。最終的に、CSと開発チーム間の情報共有と相互理解によって、顧客へのサービス提供と問題解決の効率化が期待できるとしている。
英語が苦手な私がオフショア開発に挑んだ話
5年目のエンジニアが、インドのオフショア企業と約1年間かけて行った新規会員基盤構築プロジェクトの経験をまとめた記事である。言語・文化の違い、ビジネスロジックの共有、双方向コミュニケーションの不足といった課題に直面したが、インドへの1週間滞在とワークショップ実施によって解決を図った。ワークショップではアイスブレイク、ビジネスロジックと目標の共有(インセプションデッキ等を用いた)、成果物作成とチーム間レビューを実施。その結果、合意形成の効率化、双方向コミュニケーションの強化、独創的なアイデアの創出、信頼関係構築に成功し、プロジェクトを成功に導いた。 ワークショップの有効性を示唆し、国内チームにも応用できるとしている。
【AWS】初心者必見!複雑なポリシー類を簡単にまとめてみた!
AWSのアクセス管理ポリシーを6種類に分類し、その違いと優先順位を解説した記事である。アイデンティティベースポリシー(ユーザー/ロールに付与)、リソースベースポリシー(リソースに付与)、アクセス許可の境界、Organization SCP(組織全体のサービス制限)、Organization RCP(組織全体の特定リソースアクセス制限)、セッションポリシーのそれぞれの特徴と使い分けが説明されている。優先順位は、上からセッションポリシー、リソースベースポリシー、アイデンティティベースポリシー、Organization SCP/RCPの順で、明示的な拒否が許可を上書きする。
ブラウザがちょっとドキドキ!脆弱性体験 XSS攻撃やってみた
この記事は、意図的に脆弱性を仕込んだWebアプリケーション「DVWA」を用いたセキュリティ学習を解説している。DVWAは、SQLインジェクション、XSSなど様々な脆弱性を包含し、セキュリティレベルをHigh、Medium、Lowで切り替えられる。記事では、反射型XSS攻撃を例に、攻撃の手法、発生原因、対策を具体的に説明し、DVWAを用いた実践的な手順を示している。 最終的に、入力値の適切な処理がセキュリティ強化に重要であると結論付けている。
大学生の息子が授業の課題に生成AIを利用したと言うので、どなんものか聞いてみて、やってみた
この記事は、著者の大学生息子がプログラミング課題に生成AI(Code Copilot)を使用したことをきっかけに、プログラミング教育における生成AI利用の意義について考察したものである。文部科学省のガイドラインを参照し、生成AIがブレインストーミングやコード補助として有効である一方、出力の検証や技術的限界の理解も重要だと結論づけている。著者は実際にMicrosoft Copilotを用いて元号・西暦変換アプリを作成し、生成AIの有用性と限界を体験。生成AIは強力なツールだが、誤りや倫理的な問題への配慮、そして学習者の主体性を維持することが重要だと主張している。最終的に、生成AIは便利なツールだが、思考能力の低下や格差拡大のリスクも孕んでいるため、その利用には慎重なアプローチが必要だと結論付けている。
「The Arcade」を使ってゲーム感覚でGoogle Cloudを学ぼう
Google Cloudの学習プラットフォーム「The Arcade」を紹介する記事である。The Arcadeは「Google Cloud Skills Boost」のハンズオンラボ教材を利用し、月次・トリビア・スキルバッジの3種類のチャレンジをクリアすることでポイントを獲得、景品と交換できるシステム。無料のハンズオンラボも多く、初心者から上級者まで、楽しみながらGoogle Cloudスキルを習得できる。