タグ

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

タグの絞り込みを解除

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

  • 基本構文に関する問題 - 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が断トツ良い話

    概要 開発者向けの AI ツールは数多くありますが、その中で「Cody」は 無名ながらも知る人ぞ知る優れたプロダクトです。私が普段いるAI技術者コミュニティでは密かに絶大な支持を集めていますが、SNSなどでの一般的な知名度はほとんどないため、ここで紹介します。 Cody は無料プランが圧倒的に強い他、課金プランも、GitHub Copilot、Cursor、ChatGPT と比較して機能性で大きく抜きん出ています。私はすでに半年課金愛用していて、おそらく来年も愛用するでしょう。 Cody とはなんぞや Cody くんは、VSCode や、JetBrains IDEs、Neovim、Eclipseなどのコードエディタの拡張機能として使えるコーディング補助 AI ツールです。 他の生成 AI コードツールと同様に、AI コード補完とAIチャットがあります。 なぜ Cody がおススメなのか C

    コーディングAI課金するならCodyが断トツ良い話
  • コーディング支援AI「GitHub Copilot Chat」が無償ユーザーにも開放、新しいホームも/「Visual Studio」や「Visual Studio Code」も対応済み

    コーディング支援AI「GitHub Copilot Chat」が無償ユーザーにも開放、新しいホームも/「Visual Studio」や「Visual Studio Code」も対応済み
  • 「リファクタリングの時間」を確保する技術

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

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

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに こんにちは!SmartHRで働いている@pyayyです。 先日、何とは無しにiPad用のMagic Keyboardを買いました。 SmartHRが提供するタイピングゲーム人労打もプレイできちゃいます。 キーの打鍵感やトラックパッドの使用感等、MacBookのそれに近く気に入ってはいます。 が、特に物書きではないので長文を書く機会が少なく、このままではせっかくのキーボードを活用できず勿体なさを感じてしまいますね。 iPadをプログラミングに使いたい 物書きではありませんが、一応職業プログラマなのでiPadをプログラミングに使う

  • コードレビューでよくお願いする、コメントの追加のパターン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
  • Go初学者へのコードレビューでよくあったコメント20選

    はじめに こんにちは、ソーシャルベッティング事業海外ベッティング事業部の山崎です。 記事では、Effective GoGoogle のスタイルガイド、Code Review Commentsといった公式資料、Future Architectの記事などを参考に、Go を初めて触る開発者を対象にした汎用的なレビューコメントの 20 選を紹介します。 大きく以下の4つのセクションに分けました 言語仕様に関わる内容 標準パッケージの使い方 エラーの扱い方 単体テスト Linter の活用について 可能な限り lint で自動化して人の手が加わる前に静的解析でできればベターです。 特にこの記事で紹介するような汎用的なコメントについてはいくつか反映できる lint もあると認知しております。 そのような設定の lint config サンプルをまとめようとも思いましたが、実際に運用まで至って

    Go初学者へのコードレビューでよくあったコメント20選
  • 消耗せずに「良いコード」とはなにかを考える

    次の記事が最近公開されたので、読んでみました。 結論としては、例えば同著者の「良いコード/悪いコードで学ぶ設計入門」という書籍と比較すると、だいぶ受け入れやすい主張になっていると感じました。(以前の書籍についてのコメント記事へのリンク) ところで、私は「良いコード」についての議論や指摘や検討を積極的にやったほうがよいと思っていますが、主に「消耗しない」という観点でこの記事についていくつかの構造理解やテクニックの部分で補足できそうだったので、以下補足していきます。 ざっくりとした主張でいうと、 トレードオフに見える部分は学習・教育で解決できるケースも多くある 品質特性への還元が難しいがコードの良し悪しを定める概念がある Webアプリにおいても再利用性は必要だし、モバイルアプリでも再利用性を求めて失敗することがある 再利用性というよりは、現実に即した概念の線をどこで引くかのバランスを大事にする

    消耗せずに「良いコード」とはなにかを考える
  • Webアプリを作って収益化する、僕の個人開発ルーティン

    独学で個人開発を始めて5年が経ちました。これまでには収益化に成功したサービスもあれば、鳴かず飛ばずでお蔵入りになったサービスも数多くあります。それらの経験から、成功したサービスはなぜ上手くいったのか、マーケティングや収益化において押さえておくべきことは何か、その要点が少しずつ見えるようになりました。 今回は私が開発〜集客〜収益化を行うプロセスと、各工程で気をつけているポイントを順を追って書き出してみます。上手く言語化できているか分かりませんが、暖かい目でお付き合いください。 収益化した3つのサービス 私はこれまでにWebサービスを20個以上開発しており、現在はポモドーロタイマー(月間100万ユーザー)やYouTubeのループ再生ツール(月間10万ユーザー)などを運営し、そこからの収入で生活しています。 基海外向けのBtoCで、以下のようなツール系が中心です: 収益化済みサービス: Po

    Webアプリを作って収益化する、僕の個人開発ルーティン