ペアプロが嫌すぎて会社を退職した話
この記事は、著者が前職で100%ペアプログラミングを強制された経験から、ペアプログラミングのアンチパターンと改善策について述べている。
**アンチパターン:**100%ペアプロの強制、ソロプロ禁止の雰囲気、フロー効率の過剰重視。
**結果:**開発生産性とデプロイ頻度は向上したが、エンジニアの楽しさや個性が抑制され、精神的負担が大きくなり、最終的に退職に至った。
**学び:**ペアプロとソロプロは適材適所で使い分けるべきであり、長時間のペアプロはマイクロマネジメントになりかねない。ペアプロを拒否するのも開発者の権利である。
**改善策:**現職では、プルリクエストのレビューで手戻りが発生しそうになった時や、コード製造の30%完了時などにスポット的にペアプロを行う。タスクサイズを小さくすることで、デイリーでの異常検知やプルリクエストサイズの縮小を実現し、スムーズな開発フローを構築している。
**結論:**ペアプログラミングは万能ではなく、状況に合わせて柔軟に導入すべきであり、「ソロプロは悪、ペアプロは最高」という二元論は危険である。
リーダー1年目の懺悔
この記事は、開発チームリーダー1年目の著者が、経験を通して学んだこと、反省点をまとめたものである。 突然リーダーに任命された著者は、当初、チャットでの指示、フラットな関係性、優しい指摘、お願いベースの指示などを行っていたが、それが非効率で部下の成長を阻害していることに気付いた。 「リーダーの仮面」という書籍を参考に、指示方法を明確化し、上司と部下の関係性を意識した指示、断定的な指示へと改善を試みている。 さらに、良い人になりすぎない、部下の成長を待つ、部下と競争しない、マネジメントを優先する、辞めないことを気にしすぎない、という5つのポイントを意識し、リーダーとしての成長を目指している。
【2024年末最新】AWS 学習におすすめの技術書 厳選12冊(初級者から上級者まで)
この記事は、AWSに関する12冊の技術書を初心者から上級者までレベル別に紹介している。入門、インフラ、開発、特定サービスの4つのカテゴリに分け、各カテゴリでおすすめ書籍を1~3冊ずつ挙げている。選定基準はAmazonランキング、書店での目立つ配置、出版年(2019年以降)、読みやすさ(図解の多さ、文字サイズ)、サイズ感など。 特に「AWSの仕組みとサービスがたった1日でよくわかる」「AWS運用入門」「AWSで実現するモダンアプリケーション入門」の3冊をそれぞれカテゴリのおすすめとして強く推している。 記事では各書籍の内容、構成、Amazonレビュー、価格などを詳細に紹介している。
Schooエンジニアのリスキリング体験記 〜 大学院卒業見込み
Schooエンジニアの福嶋氏は、働きながら産業技術大学院大学の情報系大学院に通い、間もなく卒業する。本記事では、大学院進学の理由、大学院選びの基準、学んだ内容、両立の苦労と成果、今後の展望を記している。進学理由はエンジニアスキル向上と体系的な知識習得のため。大学院は専門実践教育訓練給付金活用、働きやすい時間割、学びたい内容が揃っていた点が決め手。コンピュータサイエンス、ソフトウェア工学、システム開発、マーケティングなどを学び、PBL形式の開発プロジェクトにも参加。両立は大変だったが、専門知識の向上、人脈拡大、新たな学びへの興味という成果を得た。今後は学びの発信を増やし、さらなる学習に挑戦したいとしている。
【保存版】フロントエンド初心者がまず読むべき資料まとめ【2024年最新】
この記事は、2024年時点のフロントエンド開発に必要な知識と学習リソースを初心者向けにまとめたものです。HTML、CSS、JavaScriptといった基礎に加え、React、Vue.js、Next.jsなどのフレームワーク、React Router、Redux、Axiosなどのライブラリ、Webpack、Viteなどのビルドツール、そしてテスト手法、SEO、サイトパフォーマンスの最適化、さらにはAI支援ツール(ChatGPT、GitHub Copilot、v0など)の活用方法まで、幅広いトピックを網羅し、それぞれの項目に学習に役立つ資料へのリンクが多数掲載されています。 加えて、学習ロードマップや学習方法についても言及しており、初心者から中上級者まで、フロントエンド開発の学習を始める、もしくはスキルアップを目指すエンジニアにとって非常に有益な情報が提供されています。
shutdownシステムアカウントが見事に本番サーバを停止させた
著者は、過去に本番DBサーバでshutdown
というユーザーアカウントにsuコマンドを使ってログインしたところ、そのアカウントがログイン時に自動的にシャットダウンコマンドを実行する設定になっており、本番サーバが停止するという事故を起こした。この経験から、本番環境での操作は事前に検証環境で確認するなど、慎重に行うべきだと結論づけている。
自宅でJavaの勉強をするために、Eclipseで環境構築してみた
この記事は、Windows11環境でEclipseを用いたJava開発環境構築の手順を解説したものです。Eclipse 2024のダウンロードとインストール、HelloWorldプログラムの実行、そしてJDK23のインストールと環境変数確認までの手順を、詳細なスクリーンショットと共に説明しています。 JDKのインストール方法の違いについても言及しています。 記事の目的は、Java学習を始める人のための環境構築の助けとなることです。
Helmを「完全に理解した」
この記事は、新卒2年目のエンジニアが、KubernetesのオーケストレーションツールであるHelmを学習し、GKE上で簡単なアプリケーションをデプロイするまでの過程を記したものです。HelmがKubernetesのマニフェストファイル作成の手間を省き、helm install
コマンドで簡単に環境構築できることを説明し、具体的な手順として、Helmチャートの作成、values.yamlとtemplatesディレクトリの使用方法、GKEへのデプロイ、kubectlによる確認などを解説しています。 ただし、Kubernetes自体はまだ理解できていないと筆者は述べており、Helmの理解も表面的なものであることを最後に謙虚に述べています。
[Next.js] PokeAPIでポケモンBMIクイズ作ってみた
このテックブログ記事は、Next.js 15 を使用して作成された、初代ポケモン151匹のBMIをクイズ形式で出題するWebアプリケーションについて解説しています。PokeAPIからポケモンのデータを取得し、身長と体重からBMIを計算、2匹のポケモンのBMIを比較するクイズを作成しています。 pokemon.ts
ファイルでPokeAPIへのアクセスとBMI計算を行い、page.tsx
ファイルでクイズのUIを実装しています。
生成AI初心者がDifyを使って占い&性格診断botを作ってみた
この記事は、生成AI初心者である著者が、ノーコードAIアプリ開発プラットフォーム「Dify」を使って占い&性格診断ボットを作成した体験記です。飲み会での動物診断をヒントに、MBTI診断なども含めた多機能なボットを目指し、DifyのSaaS版とAWS環境構築版の両方で開発を試みました。SaaS版では無料プランを利用し、プロンプトの調整に試行錯誤しながら機能を実装。AWS版ではワークショップを参考に環境構築し、より高度なプロンプトで博多弁による診断結果とゲーム提案まで実現しました。 結論として、手軽に試したいならSaaS版、高度な機能やカスタマイズを求めるならAWS環境構築版が推奨されています。 Difyのプロンプト生成機能が初心者にとって便利であることも強調されています。
djangoでUniqueViolationの例外エラーを取得する
Djangoで一意制約違反(UniqueViolation)が発生した場合の例外処理について解説した記事です。 Djangoでは、UniqueViolationを直接except
で捕捉できないため、IntegrityError
を捕捉し、その原因(__cause__
)がUniqueViolation
かどうかをisinstance
で判定することで、UniqueViolation時の処理を実行する必要があると説明しています。
初心者向けAWSの社内研修の実現に向けて
堀チームはAWS初心者向け社内研修で、VPC、EC2、RDS、ELB、IAMを用いたサーバー・データベース構築を実際に行う研修プログラムを作成した。特に、ELBによる可用性向上とIAMによる詳細なアクセス権限管理の重要性を重点的に解説している。研修では、ELBによる負荷分散と障害発生時の自動フェイルオーバー、IAMによる役割に応じたアクセス制御とMFAによるセキュリティ強化を学ぶ。今後は研修内容の更なるブラッシュアップを行う予定である。
日本語プロンプトでAWS構成図を自動生成!Bedrock AgentsとDiagramsで作るサーバーレス構成図ツール【エラー格闘編】
この記事は、Amazon Bedrock Agentsを使ってDiagramsライブラリでAWS構成図を生成し、Lambda関数で実行してS3に保存するシステム構築の試行錯誤を記したものである。 Bedrock Agentsで生成されたPythonコードは、Code InterpreterやLambdaの単純なカスタムレイヤーではdiagrams
ライブラリとGraphvizの依存関係により実行できなかった。最終的に、GraphvizをインストールしたコンテナLambdaを構築することで、Bedrock AgentsからLambda、S3への一連の処理に成功した。 ただし、システムはまだ不完全で、精度の向上やSlack連携など今後の課題が残されている。
re:Invent2024で新たに発表されたAmazon Kendraの新機能「GenAI index」を試してみる!
この記事は、AWS re:Invent 2024で発表されたAmazon Kendraの新機能「GenAI Index」を試したレポートです。GenAI IndexはRAG(Retrieval Augmented Generation)を容易に実装するための機能で、Amazon Bedrockとの統合により、デジタルアシスタント等の生成AIアプリケーションを簡単に構築できます。日本語への対応はまだのようです。筆者はGenAI Indexを用いてStreamlitアプリにチャットボットを実装し、Bedrockと連携してKendraにインデックスされた情報に基づく回答を得ることに成功しました。精度の比較や料金については今後の検証が必要ですが、RAGシステム構築の選択肢が増えたと結論づけています。
ゼロから始めるIT業界人事生活(Slack連携編)
この記事は、IT業界初心者である著者が、Googleフォームの回答をSlackに連携させるGAS(Google Apps Script)コードを理解しようと奮闘する様子を描いたテックブログである。 コピペで動作するコードを参考にしながら、for
ループ、let
キーワード、変数、条件分岐(if-else
)などのJavaScriptの基本構文を一つずつ調べ、理解を深めていく過程が詳細に記述されている。最終的には、コードの動作原理をある程度理解するに至るものの、プログラミングの難しさ、エンジニアのスキルへの敬意を改めて感じたという結論に至っている。
Branded Type ベストプラクティス 検索
この記事は、TypeScriptにおけるBranded Typeのベストプラクティスを解説するテックブログ記事です。 著者は、unique symbol
を用いた方法を推奨しています。これは、プリミティブ型(例:string)に独自のシンボルをキーとするプロパティを追加することで、型レベルで異なるプリミティブ型を区別し、型安全性を高める手法です。 unique symbol
を用いることで、型定義における「嘘」の範囲をモジュール内に限定し、カプセル化を実現でき、他の手法(文字列リテラルキーを使用する方法など)よりも優れていると主張しています。 ただし、著者はBranded Type自体を必ずしも推奨しているわけではなく、あくまで型システムレベルでの改善策として提示しています。 いくつかのunique symbol
を用いた実装例と、それ以外の方法(文字列リテラルやdeclare const
を用いる方法)も紹介し、それぞれのメリット・デメリットを比較検討しています。
DenoとFreshでお手軽ポケモン図鑑開発
この記事は、DenoとFreshフレームワークを用いてポケモン図鑑Webアプリを開発し、Deno Deployにデプロイする過程を解説したテックブログです。 Freshのサーバーサイドレンダリング(SSR)とIslandsアーキテクチャを活用し、PokeAPIからポケモン情報を取得するAPIを構築しています。トップページ、ポケモン詳細ページ、ポケモン一覧ページを実装し、ページネーションにも対応しています。DenoのシンプルさとFreshの容易さにより、短期間での開発とデプロイを達成できたと結論づけています。
なんでこんなにもWebフレームワークは目まぐるしく変化しているんだろうか
この記事は、Webアプリケーション開発におけるフレームワークの歴史をたどり、各時代の課題と解決策を解説することで、現代のフレームワークの思想や特徴を理解することを目的としたものです。
静的HTMLから始まり、CGI、Javaサーブレット/JSP、Ajax、jQuery、Backbone.js/AngularJS、React/Vue.js、SSR/SSG、Svelte、WebAssemblyといった技術の進化を、それぞれが解決した課題(動的コンテンツ生成、大規模化・保守性、リッチUI、DOM操作の簡略化、フロントロジックの構造化、状態管理・パフォーマンス、初期描画・SEO、高速レンダリング)と合わせて説明しています。 最後に、AIによる開発プロセスの最適化についても触れ、歴史的背景を理解することで、新たな技術への適応力を高められると結論づけています。
Pleasanter の怖い話!
このテックブログ記事は、ローコード開発プラットフォームPleasanterにおけるスクリプトとサーバスクリプトのパフォーマンス比較について解説しています。 著者は、パフォーマンス問題に直面した経験から、特にAPI利用時のパフォーマンス改善策として、サーバスクリプトの使用を推奨しています。 スクリプトはクライアント側で処理され、API実行ごとにサーバとの通信が発生するのに対し、サーバスクリプトはサーバ側で処理され、通信回数が減るため高速に動作します。 検証実験の結果、サーバスクリプトの方が処理速度が約半分になったことが示されています。 したがって、Pleasanterでの開発では、パフォーマンスを考慮し、可能な限りサーバスクリプトを使用することを推奨しています。
Googleが提唱する「Core Web Vitals」とは?SEOで重要な3つの指標を分かりやすく解説!
この記事は、GoogleがWebサイトのユーザーエクスペリエンス(UX)向上のため導入した評価指標「Core Web Vitals」を解説しています。Core Web Vitalsは、LCP(読み込み速度)、INP(応答速度)、CLS(レイアウトの安定性)の3つの指標からなり、それぞれにGoogleによる評価基準が設定されています。これらの指標は、Google Search Console、PageSpeed Insights、Lighthouseなどのツールで計測でき、検索順位にも影響する可能性があります。 記事では各指標の詳細と計測方法、そしてCore Web Vitals改善によるSEO対策の重要性と、UX全体への配慮の必要性を強調しています。
Linuxサーバのセキュリティ監視プラクティス (概要編)
このテックブログ記事は、増加するLinux環境へのランサムウェア攻撃に対抗するため、Splunkを用いたLinuxサーバのセキュリティ監視ベストプラクティスを解説するシリーズの第1回である。本記事では、Linuxセキュリティ監視に有効なログソースとして、auth.log
/secure.log
、auditd、Sysmon for Linuxの3つを取り上げ、それぞれの概要、Splunkへの取り込み方法、ログ量、注意点などを説明している。特にauditdとSysmon for LinuxはMITRE ATT&CKやSplunk Security Contentsで多くの検知ルールに使用されており、重点的に解説されている。 また、auditdとSysmon for Linuxの機能比較として、sudo
コマンド実行のログ記録を例に検証結果を示し、どちらも有効であることを確認している。次回の記事では、auditdとSysmon for Linuxの設定・チューニング方法を解説する予定である。
ハッカソンへの参加が私をどう変えたか 〜ハッカソンで得られること〜
Webデザイナー6年目の筆者は、2024年に3回のハッカソンに参加し、事業会社での開発とは異なる学びを得た。ハッカソンではユーザー視点重視の短時間開発が求められ、「動くもの」を優先する。一方、事業会社ではビジネス視点、品質、費用対効果も重要となる。ハッカソンを通して、取捨選択力、試行錯誤のスピード、全体像把握能力が向上し、「とりあえず作る」ことの重要性を再認識した。事業会社での開発とハッカソンでの開発の両方の姿勢を柔軟に行き来することで、クリエイターとしての視野を広げられると結論付けている。
VSCode×Pythonのおすすめ拡張機能・設定集【完全保存版】
この記事は、VSCodeでPython開発をする際に導入すべき拡張機能と設定を紹介している。
主要な拡張機能:
-
Ruff: Linter、formatter、import sorterを統合した高速なツール。
settings.json
で設定する必要がある。 -
Mypy Type Checker: 型チェックを行う。
settings.json
で厳しさの設定が可能。 - Pytest with Python Test Explorer: テストの実行とデバッグを容易にする。
- autoDocstring: docstringを自動生成する。
- Code Spell Checker: スペルミスを防ぐ。
- GitLens: Git履歴を閲覧しやすくする。
- Error Lens: エラー表示を改善する。
- indent-rainbow: インデントを色分けして視認性を向上させる。
- Trailing Spaces: 空行や末尾の空白を可視化する。
- Blockman: ネストされたコードブロックを強調表示する。
- TODO Highlight: TODOコメントを強調表示する。
- vscode-icons: ファイルアイコンを表示して見やすくする。
- Rainbow CSVとEdit CSV: CSVファイルの編集と視認性を向上させる。
- Markdown Preview Enhanced: Markdownファイルのプレビュー機能を強化する。
VSCodeの設定:
- おすすめのカラーテーマ(GitHub Theme, Ayu, Noctisなど)と、
settings.json
を用いたカスタマイズ方法。 - おすすめのフォント(Source Han Code JP, PlemolJP, UDEV Gothic 35JPDOCなど)。
- カーソル設定、エクスプローラー設定、ウィンドウタイトル、インデントガイド設定など、作業効率を上げるための様々な設定例。
この記事は、初心者から経験者まで、VSCodeでのPython開発効率を向上させるための実践的な情報を提供している。
あなたは多分、Neovim の本当の起動速度を知らない
このテックブログ記事は、Neovimの起動速度計測方法と、その結果の正確性について論じています。nvim --startuptime
オプションやvim-startuptime
プラグインは、--- NVIM STARTED ---
の出力時刻を基に起動速度を計測しますが、これはVimEnter
やUIEnter
イベント、そしてlazy.nvim
で管理されるプラグインの初期化時間を含んでいない可能性があるため、実際の体感速度と異なる可能性が高いと指摘しています。 記事では、ダッシュボードプラグイン(snacks.nvim
やdashboard-nvim
)の表示完了をトリガーに起動時間を計測する独自のスクリプトを提案し、nvim --startuptime
の結果と比較することで、その差を実証しています。さらに、ダッシュボードに表示される起動時間(lazy.nvim
のstartuptime
)も、CPU時間計測であり、UIEnter
イベント時点での値であるため、実際の起動速度とは異なることを明らかにしています。 結論として、より正確なNeovimの起動速度計測には、ダッシュボード表示完了をトリガーとする独自スクリプトを用いるべきだと主張しています。
WACATEに初参加してきた話
この記事は、著者がWACATE2024冬に参加した体験レポートである。 同値分割・境界値分析、ユーザビリティ、リスクベースドテストなど、多様なセッションに参加し、特に品質管理の歴史(日米の比較と性善説・性悪説の対比)、リスクベースドテストの手法、そして学んだことを他者に伝えるためのワークショップが印象的だったと述べている。 日本独自の品質管理への文化的背景や、リスクベースドテストによる効率的なテスト戦略、そして学びを共有することの重要性を改めて認識した点が大きな収穫であったと結論づけている。
【Google Cloud】【小ネタ】メタルギアソリッド(MGS3)にあった昔懐かしのネタをGemini AdvancedのGemを使って再現してみる
この記事は、ゲーム「メタルギアソリッド3」のパラメディックというキャラクターがセーブ後に話す、ゲーム攻略に関係ない雑談を、Gemini Advancedを用いて再現した試みについて記述している。 著者は、特定のプロンプトを用いてGeminiにパラメディックのような会話(セーブ確認、雑談、解説、ユーザー反応への返し)をさせ、ある程度の再現に成功したと結論付けている。 プロンプト作成の難しさも述べられている。
おすすめのVSCode拡張機能3選
この記事は、Visual Studio Code(VSCode)のおすすめ拡張機能3つを紹介するものです。
- Japanese Language Pack for Visual Studio Code: VSCodeの表示言語を日本語化する拡張機能。設定方法は記事中に記載。
- Prettier - Code formatter: コードを自動整形する拡張機能。保存時に自動整形する設定方法が解説されている。
- IntelliCode: コード補完機能を強化する拡張機能。コンテキストに基づいた最適な候補を提示する。
これら3つの拡張機能は、VSCodeの使いやすさや効率性を向上させるのに役立ちます。
アセンブラ言語プログラミングテクニック【基本編】
この記事は、ベテランITエンジニアが、アセンブラ言語と、特に旧式のCPUにおけるプログラミングの苦労と工夫について語ったものです。旧式CPUの制約(レジスタ数、命令セット、クロック速度、乗算・除算命令の欠如)を克服するため、シフト演算を用いた乗算・除算、ループ展開、インデックスインダイレクトモードといった高度な最適化手法が解説されています。これらのテクニックは、現代のプログラミングからは想像しにくい高度なスキルと、限られたリソースの中で効率性を追求する必要性を示しています。
新卒一年目が考える、情報系専門学校を卒業してためになったこと3選
この記事は、IT企業に勤務する著者が専門学校での経験が社会でいかに役立っているかを3点に絞って解説するテックブログである。
- チーム開発: アプリ開発を通してプロジェクト管理(WBS、Gitなど)、進捗管理、問題解決のプロセスを学び、社会人になってからもタスクの必要性を深く理解し、効率的な業務遂行に繋がっている。
- 資格取得: 多くの資格取得を通してIT基礎知識と自信を身につけ、学び続ける習慣を確立。資格取得はあくまで手段であり、目的を見失わないことの重要性を学んだ。
- 問題解決: 開発中のバグ修正を通して、冷静な分析、周囲の協力を得ることの重要性を学び、社会人になってからも問題解決に役立つ思考法を身につけている。
要約すると、専門学校での実践的な学習を通して、ITスキル、問題解決能力、そして主体的な学習姿勢を身につけることができたと主張している。
オンボーディングのアンチパターンを徹底排除!LMの中途入社者サポート
リンクアンドモチベーション(LM)のデザイナーEmiによる、同社の充実した中途オンボーディングプログラムの紹介記事である。 3ヶ月間のプログラムでは、専任のサポート担当、フレームワークの共有、初期プロジェクトへの参加(ペアデザインを含む)、活発なコミュニケーション促進(Slackチャンネル、1on1、ママランチ会等)などを通して、スムーズな組織への適応と早期貢献を支援する。 入社前にオンボーディングの徹底を明言され、新卒並みのサポートに驚いたと述べている。 初期プロジェクトは個人のスキルやチームニーズに合わせた適切な難易度で、組織理解にも繋がる設計になっている。 結果、安心して挑戦できる環境だと結論づけている。