タグ

関連タグで絞り込む (905)

タグの絞り込みを解除

programmingに関するclavierのブックマーク (2,003)

  • Agentic Coding 実践ワークショップ

    某所での研修資料です。初学者向け・3~4時間を想定しています。 出張も可能ですので、ご依頼お待ちしております。

    Agentic Coding 実践ワークショップ
  • 人間のためのリーダブルSQL

    読みにくいと感じた SQL の例を作るにあたり、私自身が目にしてきた SQL を例として出しますが特定の個人を非難したいものではないことを最初に書かせてください。 人類全体でより良い SQL を書いてより良いデータ活用をしていこうぜ!と言う趣旨の記事になります。 CHANGE LOG (2025/03/07) total_amount というカラム名が途中から突然 order_total_amount になっていた部分を修正しました (thanks to shirow ozawa) これは何? 私 tenajima が分析用の SQL を書くときに意識していることになります 以前書いた「データ基盤のためのリーダブル SQL」はデータ基盤開発者向けに書きましたが、今回はデータ基盤や dbt のコードではなく一般的な SQL を書く人向けのリーダブル SQL という立ち位置で書きたいと思います

    人間のためのリーダブルSQL
  • AIエージェントのおかげでdbt開発の大部分を自動化した話

    こんにちは、おきゆきです。Ubieでデータ関連業務を担当しています。 この記事では、dbtを利用したデータモデル開発プロセスにおいて、AI搭載エディタであるCursor Editorを活用し、dbt model開発の速度向上にとどまらず、その開発ステップの大部分をAIで自動化した事例について紹介します。 Ubieでは3000以上のdbt modelを運用していますが、事業やプロダクトが拡大するにつれて、dbt model作成のためのファイル規約の遵守、テスト記述、ドキュメント更新、Lightdashに必要なメタデータの定義といった定型的な作業が増加し、開発者の負担となるケースが見られます。SQLロジックの設計や分析といったより質的な業務に集中したい、という思いは多くの開発者が共有するところではないでしょうか。 この課題に対し、Cursor Editor、特にその Agent機能 と Pr

    AIエージェントのおかげでdbt開発の大部分を自動化した話
  • 基本構文に関する問題 - Gopher道場で学ぼう

    はじめに Gophers Japanでは、Gopher道場というGoを体系的に学ぶ場を提供しています。2025年は4月より数年ぶりにオンラインにて開催しています。 2週間に1回のペースで開催しています。次回は2025年5月7日(水)に開催予定ですので、ぜひご参加ください。 稿では、2025年4月23日(水)に開催した基構文の範囲から問題を作ったため、そちらの紹介をします。 問題 ここで紹介する問題は、Gopher道場の講義動画(の音声)や講義資料を元に作成したGPTsに作問してもらったものです。講義で扱った内容を復習でき、単純には解けない問題にしてもらいました。 問題1 以下のプログラムはエラーになります。なぜエラーになるのかを考え、修正してください。

    基本構文に関する問題 - Gopher道場で学ぼう
  • Pythonのパフォーマンス最適化Tips 必須知識 - Qiita

    Pythonコードのパフォーマンス最適化の総合ガイド Pythonは動的型付けのインタープリタ言語として、Cのような静的型付けのコンパイル言語と比較すると、実行速度が遅い場合があります。しかし、特定の技術と戦略を通じて、Pythonコードのパフォーマンスを大幅に向上させることができます。 この記事では、Pythonコードを最適化して、より高速かつ効率的に実行させる方法を探ります。Pythonのtimeitモジュールを利用して、コードの実行時間を正確に測定します。 注意: デフォルトでは、timeitモジュールはコードの実行を100万回繰り返して、測定結果の精度と安定性を確保します。 def print_hi(name): print(f'Hi, {name}') if __name__ == '__main__': # print_hi('leapcell')メソッドを実行する t = t

    Pythonのパフォーマンス最適化Tips 必須知識 - Qiita
  • 関数の多重下請けをやめよう。単一責任の原則と関数の"責任"について

    「多重下請け構造は悪い」、これは世間的にだいぶ浸透してきた考えだと思います。しかし、プログラマは 多重下請けのコードを気づかぬうちに書いてしまうことが多々あります。 なんなら皆さんもついウッカリやってしまっているでしょう。 当然ながらコードベースでも多重下請けは良くありません。今回の記事では、多重下請けコードとは何か、その問題点、回避方法を解説します。 多重下請け構造になってるコードとは? 多重下請け構造になってるコードとは、タスクをたらい回しにしているコードです。 たとえばECサイトで注文するシーンを考えてみます。サーバーの実装はこんな感じです。 def 注文API(): 注文処理(price) 集計DBにログを送る() def 注文処理(price): 決済する(price) 履歴に保存する() def 決済する(price): if キャンペーン期間中だったら: 支払う(price

    関数の多重下請けをやめよう。単一責任の原則と関数の"責任"について
  • ポリモーフィズムが1種類しかないと思ってたエンジニアの備忘録

    この記事は毎週必ず記事がでるテックブログ Loglass Tech Blog Sprint の72週目の記事です! 2年間連続達成まで残り34週となりました! はじめに ソフトウェアエンジニアの福土(@ryoya_cre8or)です。 ふと社内のSlackで「ポリモーフィズムを使っているときに、冗長になるコードをジェネリクスを使うことで綺麗にまとめる事ができる」と呟いたところ、「ジェネリクスもポリモーフィズムの1種だよ」とツッコミをいただき、それを機にポリモーフィズムの概念について整理したいと思っていたので、年末年始にオリャっとまとめちゃいます。 実は共変性・反変性の概念を理解する上でもポリモーフィズムの概念を整理することはすごく良かったので、そこまで記事を書き切りたかったのですが息が足りず... 続きは次回とし記事ではポリモーフィズムが何なのかについてまとめています。 ポリモーフィズム

    ポリモーフィズムが1種類しかないと思ってたエンジニアの備忘録
  • Pythonの非同期処理: これだけは知っておきたい! - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Pythonコルーチンの開発プロセスと新旧コルーチンの深層分析 1. Pythonコルーチンの歴史的進化 Pythonの長い開発の歴史を通じて、コルーチンの実装はいくつかの大きな変更を経てきました。これらの変更を理解することは、Pythonの非同期プログラミングの質をよりよく把握するのに役立ちます。 1.1 初期の探索と基機能の導入 Python 2.5:このバージョンでは、ジェネレータに.send()、.throw()、.close()メソッドが導入されました。これらのメソッドの登場により、ジェネレータは単なるイテレータ以上のもの

    Pythonの非同期処理: これだけは知っておきたい! - Qiita
  • interface、structで書くか、functionで書くか

    始めに この正月に、関数型ドメインモデリングというを読みました。良書でした。 そこで、今までオブジェクトで書いていたコードを関数としてかけないか?という思いつきでこの記事を書いた結果、なんだか関数型とは関係ない感じの記事になってしまいました。ご容赦ください。 ベースとなるサンプルコード まずはオブジェクト指向でよく使う形のサンプルを用意しました。タスク管理のモデルです。簡単のため、エラーなどはあまり返さないようにしています。 package domain import "fmt" type status string const ( StatusPending status = "pending" StatusDoing status = "doing" StatusDone status = "done" ) func NewStatus(s string) (status, erro

    interface、structで書くか、functionで書くか
  • バックエンド出身エンジニアがReact/Next.jsに入門してみた話

    今日からあなたはフロントエンドエンジニアです! え、面接でバックエンド・インフラしかやってなかったって言ったのに!?フロント!?どうしよう 😭 [1] どうも、株式会社カナリーでお部屋探しマーケットプレイスの CANARY を開発している shusann です! エントリーでは、 もしあなたが明日から急にフロントエンドエンジニアを任されることになっても困らないよう、私がこの半年間で何をどうやって学んできたかをシェアすることで道しるべとなれることを目指しています。 これから同じ境遇に立つ人やフロントエンド興味あるけど何から手を付ければいいかわからないようなエンジニアにとって、この記事が参考になれば嬉しいです 😍 とはいえ、エントリーは半自伝的な記事で「ああ、こんなことやってたんだ」という読み物として話半分に読んでいただければ幸いです。 自己紹介 題の前に、半年前の入社当時の自分の状

    バックエンド出身エンジニアがReact/Next.jsに入門してみた話
  • Goのジェネリクス徹底理解

    1. ジェネリクスなしでの開発 ジェネリクスが導入される前に、異なるデータ型をサポートするジェネリック関数を実装するためにいくつかのアプローチがありました。 アプローチ1: 各データ型に対して関数を実装する このアプローチは、極めて冗長なコードと高い保守コストをもたらします。いかなる変更も、すべての関数に対して同じ操作を行う必要があります。さらに、Go言語は同じ名前の関数のオーバーロードをサポートしていないため、外部モジュールからの呼び出しにこれらの関数を公開するのも不便です。 アプローチ2: 最も広い範囲のデータ型を使用する コードの冗長性を避けるために、別の方法は最も広い範囲のデータ型を使用することで、つまりアプローチ2です。典型的な例はmath.Maxで、これは2つの数のうち大きい方を返します。様々なデータ型のデータを比較できるように、math.MaxはGoの数値型の中で最も広い範囲

    Goのジェネリクス徹底理解
  • RealWorld 業務 Rust - Qiita

    RealWorld 業務 Rust 実際に Rust 1.0 の頃から業務で Rust を使ってコードを保守してきてハマった落とし穴についての 知見 恨み言です Rustが素晴らしい言語であるというあたりまえのことにはこの文書では触れません 気が向いたら追加します 開発環境編 ビルドマシンを買ってもらえ ノートパソコンのCPUとメモリでは限界がある CPU 二桁コアのマシンを何人かで共有して使え VSCode の Remote SSH でがんばれ vim でもいいぞ ストレージは可能な限りデカくしろ target はブラックホール 10GB 超はあたりまえ、中には 100GB 超も sccache、 cargo cache 、 cargo sweep などを駆使してがんばれ docker も使うので大容量ストレージだけが正義だ sccache 使用例

    RealWorld 業務 Rust - Qiita
  • 月刊「Rustは低レイヤーで使ってもunsafeだらけになるから意味がない」廃刊のお知らせ

    組込みRustや自作OSなどにおいて、従来言語より高い安全性があるとされているRustは注目される一方、Rustでも低レイヤー分野で頻発するメモリアクセスやインラインアセンブラなどでunsafeブロックが存在が多くなりがちです。 このunsafeブロックが多くなるので、結局Rustでこのような低レイヤー分野を触っても意味がないのでは?安全ではないのでは?という疑問が投げかけられることがしばしばあります。 筆者はTwitterや過去のブログで、組込みRustにおいてのunsafeとの付き合い方について触れていきましたが、内容としては分散していたので今一度この疑問に対するアンサーをまとめることにし、この論争に終止符を打とうと思います。 Rustにおけるunsafeとは そもそもunsafeとは何かというのはThe Rust Programming Languageのドキュメントにも詳しく書かれ

    月刊「Rustは低レイヤーで使ってもunsafeだらけになるから意味がない」廃刊のお知らせ
  • コーディングAI課金するならCodyが断トツ良い話

    Cody とはなんぞや Cody は、VSCode や、JetBrains IDEs、Neovim、Eclipseなどのコードエディタの拡張機能として使えるコーディング補助 AI ツールです。 他の生成 AI コードツールと同様に、AI コード補完とAIチャットがあります。 なぜ Cody がおススメなのか Cody をおすすめする理由は、3 つです! 抜群の機能性 ありえんコスパ オープンソース 一般的なコーディング補助AIとの違いを含めてまとめていきます。 💡 抜群の機能性 インストールが簡単 Cody は、普段使っているコードエディタに拡張機能をインストールするだけで導入が完了します。ブラウザを別途開いて何度もコピペしたり、Cursor のように新しいエディタを導入したりする必要はありません。 チャット機能 コードエディタ内に作成されたチャット欄で、AI とチャットできます。Cod

    コーディングAI課金するならCodyが断トツ良い話
  • コーディング支援AI「GitHub Copilot Chat」が無償ユーザーにも開放【2025年1月24日追記】/「Visual Studio」で一般提供が開始

    コーディング支援AI「GitHub Copilot Chat」が無償ユーザーにも開放【2025年1月24日追記】/「Visual Studio」で一般提供が開始
  • 「リファクタリングの時間」を確保する技術

    はじめに ソフトウェア開発において、リファクタリング、つまりコードの保守性を高める活動は、ソフトウェアの価値を高める上でとても大切ですよね。 しかし、「リファクタリングの時間が確保できない」「リファクタリング実施のための同意が得られない」という話を耳にすることがあります。 リファクタリングは「絶対やった方がいいのは感覚としてはわかっている、でもその必要性ををうまく伝えられない」となりがちな性質があるのです。 この記事では、リファクタリングの時間を確保するために、どんなことを考え、何をステークホルダーに伝え、具体的にどのようなタイミングで実施していくといいのか、について解説します。 ポイントまとめ リファクタリング時間確保のポイントを端的に説明すると、以下の通りになります。 リターンとコストを明らかにする 複数の実施パターンを選択肢として持ち、柔軟に選べるようにする。 その中でも、日頃の小さ

    「リファクタリングの時間」を確保する技術
  • iPadでもバリバリプログラミングできる。そう、VSCodeならね。 - Qiita

    はじめに こんにちは!SmartHRで働いている@pyayyです。 先日、何とは無しにiPad用のMagic Keyboardを買いました。 SmartHRが提供するタイピングゲーム人労打もプレイできちゃいます。 キーの打鍵感やトラックパッドの使用感等、MacBookのそれに近く気に入ってはいます。 が、特に物書きではないので長文を書く機会が少なく、このままではせっかくのキーボードを活用できず勿体なさを感じてしまいますね。 iPadをプログラミングに使いたい 物書きではありませんが、一応職業プログラマなのでiPadをプログラミングに使うことができればキーボードを活用できる気がします。 ざっと調べた感じでは、Appleが提供しているSwift Playgrounds以外にiPad単体でプログラミングをすることは難しそうでした。 Swiftも楽しそうなので別途楽しんでみようとは思いますが、私は

  • コードレビューでよくお願いする、コメントの追加のパターン7選

    同僚が書いた Go初学者へのコードレビューでよくあったコメント20選 では、Go初学者へのコードレビューでよくあったコメント20選を紹介しました。 今回は私が コードレビューでよくお願いするコメント追加のお願い について紹介します。 前提:コメントを書いて欲しいわけ コードレビューでコメントを書いて欲しい理由は以下の通りです。 プロダクト、サービスの持続可能な開発を支えるため 人が入れ替わっても開発の迷いを可能な限り減らすため 具体的なコメントの追加パターン ①変数やパラメーターの説明を書く コードを書く人にとっては必要があって構造体や変数を定義しているので自明ですが、第三者からすると解釈に悩むことがあります。 そのため誰が見ても自明でしょうという変数以外については注釈をいれます。 たとえば、User 構造体における ID は自明(どのような採番ルールか?みたいな疑問は出るが、ID を入力

    コードレビューでよくお願いする、コメントの追加のパターン7選
  • 爆伸び中のGoライブラリhuma

    はじめに 2024年に入り、Go言語の世界で急速に注目を集めているWebフレームワーク「huma」をご存知でしょうか?humaはGoでのAPI開発を革新する新しいライブラリで、そのスター数は驚異的なスピードで増加しています。記事では、humaの魅力とその使い方、そしてサンプルコードを通じてその実力を探っていきます。 huma公式リポジトリ 公式ドキュメント humaの良さ GoからOpenAPI 3.1を生成可能 humaはPythonFastAPIに強く影響を受けて開発されたライブラリです。FastAPI同様、YAMLファイルを書くことなく、Goのコードから直接OpenAPIYAMLを生成できます。これにより、APIの設計と実装がシームレスに統合され、開発効率が大幅に向上します。(スキーマファストかコードファストかの議論は別問題) GoでコードからOpenAPIを生成するライブラリ

    爆伸び中のGoライブラリhuma
  • GASによるWebアプリの作り方 - Qiita

    はじめに Google Apps Script (GAS) は HTML Service という機能を使って AppsScript関数 を呼び出せる Webアプリ を作ることができます。 この記事では HTML Service を使ってGASで Webアプリ を作る方法をまとめたものです。 Webアプリの作り方 Webアプリを表示する まずはシンプルなWebページを表示してみましょう。 新規または既存のプロジェクトを開く 新規または既存のGASのスクリプトプロジェクトを開いてください。 サーバサイドの処理を定義 GASで以下のようなサーバサイドの処理を書きます。

    GASによるWebアプリの作り方 - Qiita