1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

完走カレンダーAdvent Calendar 2024

Day 13

Qiita のトレンド記事を要約してまとめたモノ(さぼり)

Posted at

【開発効率爆上がり】すべてのエンジニアが必ず見るべき16のウェブサイト

この記事は、エンジニアやデザイナーの日常業務を効率化するための便利なWebサイト16個を紹介している。UIデザインのリソース(UIverse, CSS Stock, Mobbin, UI Pocket, I/O3000, bookma!, shots.so)、開発支援ツール(LambdaTest, TinyWow, Dev Docs, JSON GRID, Ping Test, Postman, 個人情報テストジェネレーター, TM - WebTools, ダミー画像生成ツール)など、多様なサイトが網羅されており、それぞれの特徴と使い方が簡潔に説明されている。 これらのツールを活用することで、開発速度の向上と質の改善が期待できる。

【個人開発】嘘のポケポケのカードを作れるサービスを作った【コード全公開】

エンジニアのれとるときゃりー(@retoruto_carry)が、4日間で開発した「うそポケ画像メーカー」を紹介する記事です。 ユーザーは好きな画像とテキストを入力して、偽のポケモンカードを作成、ダウンロード・共有できます。 ランダムパック機能も搭載。Remix、Supabase、Cloudflare Pagesを用いたほぼ無料での運用を実現しており、その開発過程や使用技術、デザインについても詳細に説明されています。 開発のきっかけは、ポケモンのパック開封動画が面白く、それを再現したいと思ったことでした。

ユーザーの立場でしかできない技術アウトプットとは?

本記事は、AWSなどクラウドサービスのユーザーによる技術解説が、ベンダー発信の情報よりも有益な場合が多いことを主張している。ユーザー発信のメリットとして、(1)等身大の言葉で分かりやすく、実際の利用状況を伝えられる、(2)忖度なくデメリットや競合比較など赤裸々な情報を共有できる、(3)ポジショントークがなく、自由に楽しく話せる、という3点を挙げている。公式ドキュメントを補完するユーザー発信の重要性を強調し、ベンダーとユーザー双方にとってWin-Winの関係を築けると結論付けている。

10年のエンジニア人生を振り返り、その中で本当に大切だと思ったもの

この記事は、IT未経験から10年間エンジニアとして働いてきた著者が、自身のキャリアを振り返り、大切だと感じた10個の点をまとめたものです。 具体的には、目的意識を持つこと、本質を掴むこと、継続すること、やらないことを決めること、記録を残すこと、フィードバックをもらうこと、他人に期待しないこと、常に謙虚でいること、悪口を言わないこと、そして認知してもらうことの重要性を、自身の経験を交えながら解説しています。 成功のためには、単なる表面的な知識ではなく深い理解と継続的な努力、そして周囲との良好な関係構築が不可欠であると主張しています。

【初心者必見】Python中級者になるためのテクニック29選

この記事は、Python中級者になるための29個のテクニックを重要度別に解説したテックブログ記事です。 具体的には、リスト内包表記や辞書内包表記、破壊的・非破壊的メソッド、列挙型、型ヒント、dataclassitertools、スライス操作、map関数、lambda関数、zip関数、setdefaultdefaultdict*args**kwargs、デコレータ、ジェネレータ、コンテキストマネージャといった高度な構文や機能、さらにeval関数とexec関数、クロージャ、カスタム例外の作成、docstringの書き方、ウォルラス演算子、Ellipsis、typing.Protocolを使ったダックタイピングといった、効率的で保守性の高いコードを書くためのテクニックが網羅されています。 各テクニックには、具体的なコード例と解説が掲載されています。

FigmaでAWS構成図作りたいよね???総集編

この記事は、AWS公式が提供するFigmaのAWSアーキテクチャアイコンを使って構成図を作成する方法を解説したものです。 FigmaのUIに戸惑う初心者向けに、アイコンの検索方法、テキストの追加、グルーピング、矢印の描画、整列などの基本操作を、具体的な手順とともに説明しています。 Figmaのメリットとしてプラグインの豊富さ、1px単位での移動の精度、白黒両方の背景に対応したアイコンを挙げ、デメリットとして矢印の自動追従機能の欠如(プラグインで補完可能)とUIへの慣れが必要な点を指摘しています。

「いつ終わる?」から「何パーセントで終わる?」でコミュニケーションするアジャイルプロジェクトマネジメント

本記事は、ソフトウェアプロジェクトの納期予測における不確実性を確率分布を用いて捉え、より現実的な計画とコミュニケーションを可能にする手法を紹介している。 従来の確定的な納期提示ではなく、「確率的にいつ完了するか」をモンテカルロシミュレーションを用いたWebツールで可視化することで、見積もり(予測)、コミットメント(約束)、ターゲット(ビジネス目標)の3点を明確に区別し、ステークホルダー間の認識のずれを減らすことを提案している。 特に、チームのベロシティ安定化とスコープクリープの管理が予測精度向上に重要であり、リスク因子チェックリストを用いたリスク管理、経験主義に基づいた継続的改善プロセスも強調している。 ツールは過去データの蓄積により予測精度を高め、リスクを考慮した現実的な計画立案を支援する。

ジェイソン記念日なのでJSON_TABLEを試してみる

この記事は、PostgreSQL 17.2 を使用してQiita APIから取得したJSONデータをデータベースに保存し、検索する際の効率について検証したものです。 ->>演算子と@>演算子を用いたJSONデータの検索方法を比較し、@>演算子とGIN indexを組み合わせることで、JSONデータの検索パフォーマンスを大幅に向上できることを実証しました。 indexなしでのJSON検索は通常の検索より遅く、@>演算子とGIN indexを使用することで、通常の検索と同等、もしくはそれ以上の速度を実現できることを示しています。

新入社員がJavaSilverとJavaGoldを取るまで

新卒エンジニアがJava Silver、Gold資格取得のための学習方法を紹介する記事。専門学校卒業後、Javaの知識に不安を感じ、資格取得を目標に学習開始。1ヶ月半でSilver、さらに1ヶ月半でGoldを取得。学習方法は「徹底攻略Java SE問題集(黒本)」を繰り返し解き、解説を理解すること。分からなければ動画解説も活用。章ごとに理解を深め、間違えた問題はマークし、最終的に全ての解答を暗記するまで繰り返す。Silverは比較的容易で楽しく学習できた一方、Goldは解説が長く苦痛だったと述べている。黒本をマスターすれば合格は可能と結論付けている。

PydanticのLLMエージェントフレームワーク「PydanticAI」を使ってみた

この記事は、PythonのデータバリデーションフレームワークPydantic開発チームが公開した新しいAIエージェントフレームワーク「PydanticAI」を紹介している。PydanticAIは、FastAPIのように生成AIを用いたアプリケーション開発を容易にするフレームワークで、OpenAI、Gemini、Groqなどのモデルに対応し、型安全性や依存性注入システムを備える。シンプルな記述でシステムプロンプト、ツール、依存性注入などを活用でき、テストや評価も容易だが、対応モデルは少ないなど発展途上な部分もある。記事では、具体的なコード例を通して、Agentの使用方法、システムプロンプト、Function Tools、型安全性、構造化レスポンス、ストリーミングレスポンス、依存性注入、テスト方法などを解説している。

以下、要約内容をより詳細に記述します。

PydanticAIの概要:

  • Pydantic開発チームによる新しいAIエージェントフレームワーク。
  • 生成AIを用いたアプリケーション開発を容易にすることを目指す。
  • OpenAI、Gemini、Groqなどの複数のLLMをサポート。
  • 型安全性を重視した設計で、MypyやPyrightとの連携が可能。
  • 依存性注入システムにより、モジュール間の結合度を低く保ち、テストや再利用性を向上させる。
  • システムプロンプト、Function Tools(関数呼び出し)による柔軟なエージェント構築が可能。
  • Pydanticによる構造化レスポンスのバリデーションとストリーミングレスポンスに対応。
  • LLMアプリケーションのテスト(ユニットテスト、評価)を容易にする機能を提供。

記事の内容:

記事では、PydanticAIの基本的な使用方法から、高度な機能まで、コード例を交えながら解説している。具体的には、以下の内容が含まれる。

  • インストールと基本的なAgentの使い方: 簡単なHelloWorld例でAgentの基本的な動作を示している。
  • システムプロンプト: デコレータを用いた動的なシステムプロンプトの設定方法。
  • Function Tools: @agent.tool@agent.tool_plainデコレータを使ったツール定義とFunction Callingの例。
  • 型安全性: deps_typeresult_typeを使った型チェックによるエラー防止の例。
  • Pydanticモデルを使った構造化レスポンス: PydanticのBaseModelを用いた構造化レスポンスの例。
  • ストリーミング構造化レスポンス: ストリーミングレスポンスにおけるTypedDictの使用例。
  • 依存性注入: deps_typeを使った依存関係の注入とNewsAPI連携の例。
  • テストと評価: TestModelFunctionModelAgent.overrideALLOW_MODEL_REQUESTS=Falseを使ったユニットテストと、LangCheckを用いた回答品質評価の例。

結論:

PydanticAIはシンプルで型安全なLLMアプリケーション開発を可能にする有望なフレームワークだが、まだ発展途上であり、対応モデル数やLLMエコシステムとの連携においては、既存フレームワークに劣る部分もある。 しかし、今後の発展によっては、特にマルチエージェントシステムにおいて強力なツールとなる可能性を秘めている。

【必見】新卒1年目が読んで役に立ったドキュメントまとめ

新卒エンジニアが今年役に立った技術ドキュメントを紹介している。内容は、PHPUnitを使った単体テスト入門、SQLの基本から応用までを網羅したデータベース構築解説、ファイルアップロードの仕組み、Git入門、そしてAWSサービスの概要解説の5つ。いずれも初心者向けに分かりやすく書かれており、実践的な内容が豊富だと評価している。

「1億ドルコーチ」を読んで。~最高のコーチングから得る仕事術~

この記事は、「1億ドルコーチ」というビル・キャンベルのコーチングに関する書籍の紹介記事である。著者は同書から得た3つの実践的な仕事術を紹介している。1つ目は会議前に資料を読み、質問を準備することで会議の効率を高める方法。2つ目は会議前後のわずかな時間を使ってチームメンバーと雑談し、良好な人間関係を築く方法。3つ目は、相手の成功を称賛することで、安全な環境を醸成する方法である。著者はこれらの方法を実践し、成果を上げていると述べている。

タイピングでチョコ1個分のカロリー消費!? 1日の運動量を可視化してみた

この記事は、タイピングによるカロリー消費量を検証したものです。Pythonでタイピング回数を計測するアプリを作成し、6日間分のデータから平均19538回/日という結果を得ました。心拍数を用いた計算により、タイピング1回あたりの消費カロリーを約0.001kcalと算出し、1日のタイピングによる総消費カロリーを約26kcalと推定しました。これはチョコレート1個分、または散歩10分分に相当する量です。

9歳娘「パパ、具体じゃなくインターフェースに依存して?」

この記事は、人工臓器の例えを用いて、ソフトウェア開発における疎結合の重要性を説明するテックブログです。 最初に、独自規格の人工臓器に依存した結果、メーカー倒産で交換不能になったという夢を語り、具体的なメール通知機能の開発において、メール送信ライブラリに直接依存する設計(密結合)の課題を指摘します。 その後、NotificationInterfaceというインターフェースを定義し、メール、LINE通知など様々な通知方法をこのインターフェースに準拠させることで、依存性の注入を用いて通知方法の容易な切り替えを実現する(疎結合)設計に改善します。 この例を通して、疎結合な設計が変更への対応コストを削減し、テスト容易性も向上することを示しています。

新人が考える「リーダー」とは

この記事は、新卒の筆者が自身の経験を通して考察した「リーダー像」について述べています。学生時代の経験から、従来の「能力が高い」「チームを盛り上げる」といったリーダー像に疑問を抱き、「決断し、その責任を果たす人」こそが真のリーダーであると結論づけています。 高い技術力や業務知識はリーダーにとって有利ですが、必須ではなく、リーダーの本質は「決断」と「責任」にあると主張しています。 タスク管理やチーム運営は重要な要素ですが、それらはリーダーの「タスク」であり、本質ではないと強調しています。

JiraとGitHubを連携!PBIとSBIを自動でIssue化する方法

この記事は、JiraとGitHubをJira Automationを使って連携し、タスク管理の効率化を図る方法を解説しています。Jiraでタスク(PBI)またはサブタスク(SBI)を作成すると、GitHubに自動的にIssueまたはSub-Issueが作成され、Jiraの課題にGitHub Issueの情報が紐付けられます。これにより、手動での二重管理や情報分断による非効率性を解消し、開発チームの生産性向上に繋げることが目的です。具体的には、Jira Automationのトリガー、条件、アクションを設定することで、GitHub APIを用いてIssueの作成とJiraへの情報反映を自動化します。必要なものはAtlassianアカウント、GitHubアカウント、GitHub for Jiraアプリ、Personal Access Tokenです。

難しいことを忘れてAPI周辺知識をシンプルに学ぶ

この記事は、API、CRUD、HTTPメソッドの関係を初心者向けに解説しています。APIは異なるプログラム間でデータや情報をやり取りするための「接続部分」であり、「APIを叩く」とは、その接続部分を通じてデータのやり取りを行うことです。このやり取りにはHTTPメソッド(GET, POST, PUT/PATCH, DELETE)が使われ、データベースのデータ作成、取得、更新、削除(CRUD)操作に対応します。 例として、服の整理を依頼する親子を挙げ、CRUD操作を分かりやすく説明しています。最後に、API実装は異なるプログラム間でデータのやり取りができるよう環境を整えることだと説明しています。

新卒が初めての現場で必要だと思ったこと

この記事は、入社9ヶ月目のエンジニアが、仕事で効率的に成果を出すために重要だと感じた4つの点をまとめたものです。 それは、1. 日々のタスクの計画と時間管理、2. わからないことは早めに質問する(質問内容を整理して相手に分かりやすく伝える)、3. 重要なことはメモを取る(媒体を使い分ける)、4. 定期的な報連相(具体的な進捗状況を伝える)です。 著者はこれらの実践が難しいことも認めつつ、一つずつ改善していく努力を続けると述べています。

Java学習ツールを作ってみる

この記事は、Javaの基礎を学ぶためのクイズアプリをSwingを用いて作成したことを説明しています。10問のJavaに関する穴埋め問題が出題され、ユーザーは解答を入力し、正解数をスコアとして表示されます。正解・不正解の判定、次の問題への遷移、全問終了後のスコア表示といった機能が実装されています。コード例と簡単なコードの説明が含まれています。

社内オフィスの無線安定化のためにやったこと

一休.comは新しいオフィス移転後、無線LANの接続不安定、音声通話品質低下、通信速度低下といった問題に直面した。解決策として、以下の3点を実施した。

  1. 無線チャネル/帯域の調整: 高密度なAP環境のため、チャネルボンディングとトライラジオ機能を無効化し、5GHz帯で20MHz帯域幅を使用することでチャネル数を増やし、電波干渉を軽減した。

  2. 送信レートの調整: 管理フレームの送信レートを2.4GHz帯を6Mbps、5GHz帯を12Mbpsに調整することで、通信オーバヘッドを削減した。

  3. 高速ローミング機能の有効化: 802.11rは不具合のため採用せず、OKC(Opportunistic Key Caching)を採用することで、スムーズなローミングを実現し、場所移動時の通信不安定を解消した。

これらの対策により、無線LANの安定性が大幅に向上した。しかし、無線LANのトラブルシューティングは難易度が高く、パケットキャプチャなどの専門知識が必要であると結論付けている。

Llama 3.2 3B Instruct を使って Slack を「賢く検索」するアプリを作ろうとしてみた話(タイトル詐欺)

この記事は、Llama 3.2を用いてSlackのメッセージ検索を自動化するアプリ開発の試みについて記している。著者は、ユーザーの質問からチャンネル名、ユーザー名、キーワード、日付などの検索キーワードを抽出する部分を実装した。Llama 3.2にユーザーの質問と、JSON形式で出力するよう指示するプロンプトを与え、必要な情報をJSON形式で取得することを目指している。 しかし、完全なアプリの完成には至っておらず、Slack APIとの連携や、取得したメッセージからの回答生成といった部分は未実装である。また、記事では、LLMにおける一般的なJSON形式の役割についても簡単に説明している。

マイクロサービスアーキテクチャの理想と現実

本記事は、マイクロサービスアーキテクチャ導入における理想と現実のギャップ、およびその対策について解説している。理想はサービス間の結合度が低く、柔軟な管理が可能なアーキテクチャだが、実際は分散モノリス化しやすい。

主な問題点と対策:

  • サービス分割: 不適切な基準(ドメイン、機能の混在)による密結合化、または過剰な分割によるコスト増加。対策は、初期段階で明確な分割基準を定め、最初は大きな単位で分割し、必要に応じて分割する。
  • 共通化・標準化: 過度な共通化は柔軟性を阻害する。最小限の範囲に留め、組織形態や開発手法に合わせた戦略をとる。
  • チーム分割: サービスとチームの対応が不適切、またはチーム規模の不均衡。対策は、1サービス1チームを原則とし、サービス規模とチーム規模のバランスを保つ。
  • デプロイ単位: サービス間の結合度が高く、複数サービスの一括デプロイを余儀なくされる。対策はサービス間の結合度を下げ、イベント駆動アーキテクチャなどを導入する。

やってはいけないこと:

  • 目的のない導入
  • 新規開発への導入
  • 小規模システムへの導入
  • 部分的な導入

要約すると、マイクロサービスアーキテクチャは万能ではなく、導入には綿密な計画と適切な対策が必要であると主張している。

【タスク処理のコツ】 "難しそう" "終わらなそう"の対処法

この記事は、入社3年目のエンジニアが抱える「難しいタスク」と「大量のタスク」への対処法を紹介している。

難しいタスクへの対処法:

  1. タスク分解: 複雑なタスクを、簡単に思える小さな作業に分解する。
  2. 簡単なタスクから着手: 分解したタスクの中で、最も着手しやすいものから始めることで、モチベーションを維持する。

大量のタスクへの対処法:

  1. 作業計画の立案: タスクの全体量を把握し、各タスクの予測時間と着手順序を決め、スケジュールを作成する。
  2. 計画の見直し: 計画通りに進まない場合は、上司に相談する。

要約すると、複雑なタスクは細分化し、大量のタスクは計画的に処理することで、効率的に作業を進める方法が紹介されている。 著者は、これらの方法によって定時退勤を目指している。

🌟星占い10万年でブラウザの限界を越える🌟

この記事は、10万年分の星占いアプリを開発した過程を記したテックブログです。 ブラウザのDOMスクロール上限を超えるため、ミニマップとメインスクロールエリアを組み合わせた独自の仮想スクロールを実装し、コンテンツはposition: stickyで固定しています。星占いの内容は、名前、星座、日付からメルセンヌ・ツイスターを用いて生成した擬似乱数を基にしています。開発にはReact 19とKuma UIを使用していますが、Kuma UIは一部機能に制限があることを指摘しています。

9歳娘「パパのコンポーネント、条件だらけで大変だね!」

Reactで商品表示コンポーネントを作成する過程で、表示内容の追加要望(説明文、割引率、カート追加ボタン、ボタンのvariant)に都度propsを追加していくと、propsが肥大化し、JSXが条件分岐だらけで保守性が悪くなった。そこで、コンポジションを採用し、ProductCardコンポーネントをヘッダー、ボディ、フッターのスロットをReactNodeで受け取るシンプルな構造に変更することで、各ページに必要な要素を柔軟に組み込み、保守性の高いコードを実現した。 具体的には、headerSlot, bodySlot, footerSlotのプロパティにReactコンポーネントを渡すことで、表示内容をカスタマイズ可能にした。

Laravel から一歩先へ。クリーンアーキテクチャによる柔軟な設計パターン

この記事は、Laravelを用いたWebシステム開発において、クリーンアーキテクチャとドメイン駆動設計(DDD)を適用したパッケージ構成と、その実装例を紹介している。 MVCパターンの課題であるFat Controller/Model問題を解決するため、ビジネスロジックをドメイン層に集約し、アプリケーション層でユースケースを実装、プレゼンテーション層とインフラ層を分離する設計を提案している。 具体的には、DTO(Data Transfer Object)や依存性注入、依存性逆転の原則を用いて、各層の責務を明確化し、テスト容易性と保守性を向上させる方法を、コード例と共に解説している。 さらに、認証、ログ出力、トランザクション、参照系処理、非同期処理、エンティティのID生成といった実開発における疑問点とその解決策についても触れている。 Laravelの機能を活かしつつ、フレームワークに依存しない柔軟で拡張性の高いシステム構築を目指す内容である。

うちのアシスタントのしらせ君がすごいので自慢させてください。

この記事は、ローコードプラットフォームn8nを用いて構築されたAIアシスタント「しらせ君」を紹介している。しらせ君は、メール管理、ニュース収集と要約、スケジュール管理、郵便物管理、議事録管理、論文管理、取引先ニュース調査、SNS管理など、多岐にわたる業務を自動化し、著者の業務効率を大幅に向上させている。 Chatbotと異なり、自動化と最小限の指示で動作するのが特徴で、その学習・改善もフィードバックループによって行われている。 費用対効果も高く、月給1万円以下で運用されている点が強調されている。

NRI Hackathon に11年前から参加し続けて学んだこと。2024年は生成AI Cody でした。

筆者は11年連続で参加しているNRIハッカソンに今年も参加。今年は「関係人口」創出をテーマに、静岡県掛川市でハッカソンを実施。 掛川市の現状把握と地域住民との交流を通して、地域にIT教育と就職支援を提供するシステムを生成AI「Cody」を用いて開発した。Codyは、カスタムコマンド作成やコードベースの文脈理解に優れた生成AIツールであり、本システムではプログラミング学習、コード採点、レジュメ生成といった機能を提供。 ハッカソンではCodyを活用した開発手法を学び、Cody技術賞を受賞した。

HTML/CSSのレイアウト手法変遷 〜tableからgridまで〜

この記事は、Webレイアウト手法の歴史をCSS1時代から現代まで概観したものです。

まず、HTML要素をブロックレベルとインラインレベルに分類し、それぞれの特性を説明。次に、歴史を辿り、CSS1時代のtableレイアウト、CSS2/2.1時代のfloatレイアウトとinline-blockレイアウト、そしてCSS3時代のFlexboxレイアウトとGridレイアウトを解説しています。それぞれのレイアウト手法の長所・短所、そしてFlexboxGridの使い分けについても触れられています。IE11のサポート終了により、FlexboxとGridの利用が容易になったことも強調されています。 最終的に、現代のWeb開発ではFlexboxとGridが主要なレイアウト手法であり、理解することでコーディングが容易になることを結論づけています。

フルスタックNext.jsの決定版!? "Payload"で管理画面&WebAPIを自動生成!

Payloadは、Next.jsベースのフルスタックTypeScriptフレームワークで、管理画面、REST/GraphQL API、データベーススキーマを自動生成する。 TypeScriptで型付けされた設定ファイルを用い、MongoDB、PostgreSQL、SQLite、Vercel Postgresに対応。 高度な認証、アクセス制御、フック機能、ライブプレビューなどを備え、ヘッドレスCMSやECサイト構築などに適している。既にデータベースがある場合は向かない。 npm create payload-app でプロジェクト作成が可能。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?