タグ

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

タグの絞り込みを解除

programmingとProgrammingに関するzaki1010のブックマーク (790)

  • ケント・ベック氏講演録:『グッドハートの法則は楽観的すぎた〜開発生産性の罠と未来〜』 - jgeem

    #共有する 開発生産性カンファレンス https://dev-productivity-con.findy-code.io/2025 2025/07/03 Keynote: 開発生産性測定のトレードオフ 「グッドハートの法則」はもっと悲観的に捉えるべきだった はじめに:25年ぶりの来日と生産性への問題意識 25年ぶりに来日しました。かつて『エクストリーム・プログラミング(XP)』のが日の書店に平積みされているのを見て、とても嬉しかったことを覚えています。(サインしようとして店員に怪しまれ、逃げたという面白いエピソードもありましたが。) 今日は「開発生産性」について話します。より多く、より早く作れば生産性は向上するのでしょうか?ドイツには「物事を良くしようとして、かえって悪化する」という趣旨の言葉がありますが、まさにそれが生産性の議論で起きています。特にAIの登場は、この問題をさらに悪化

    ケント・ベック氏講演録:『グッドハートの法則は楽観的すぎた〜開発生産性の罠と未来〜』 - jgeem
  • バリデーション解体新書 - kawasima

    バリデーション解体新書 2025/4/8に開催した #アーキ部 『バリデーション解体新書』の内容を編集したものです。 バリデーションとは何か? 広義には、 何らかの処理を実施するにあたって、入力データが想定する条件を満たすかを検証する行為 と言える。 この定義で、アプリケーションのどこでバリデーションをしているのかを考えると、以下のように各層にそれが見られる。 このように実装される場所が散らばるので、「バリデーション」や「入力チェック」を分類して開発ガイドラインを作ることが多い。 例えば、大規模Java開発向けのTERASOLUNA開発ガイドラインを見てみると、 ユーザーが入力した値が不正かどうかを検証することは必須である。 入力値の検証は大きく分けて、 1. 長さや形式など、文脈によらず入力値だけを見て、それが妥当かどうかを判定できる検証 2. システムの状態によって入力値が妥当かどうか

    バリデーション解体新書 - kawasima
  • Mermaid | Diagramming and charting tool

    MermaidDiagramming and charting toolJavaScript based diagramming and charting tool that renders Markdown-inspired text definitions to create and modify diagrams dynamically.

  • Haystack

    Haystack’s AI pinpoints the best order to review your diffs so you can jump straight into reviewing. No more puzzling over complex pull requests! Haystack’s AI pinpoints the best order to review your diffs so you can jump straight into reviewing. No more puzzling over complex pull requests!

    Haystack
  • リレーショナル・データベースの世界

    序文 私の仕事は、DBエンジニアです。といっても別に望んでデータベースの世界へきたわけではなく、当初、私はこの分野が面白くありませんでした。「Web系は花形、データベースは日陰」という言葉も囁かれていました。今でも囁かれているかもしれません。 ですが、しばらくデータベースを触っているうちに、私はこの世界にとても興味深いテーマが多くあることを知りました。なぜもっと早く気づかなかったのか、後悔することしきりです。 もちろん、自分の不明が最大の原因ですが、この世界に足を踏み入れた当時、先生も、導きの書となる入門書もなかったことも事実です。 今でこそバイブルと仰ぐ『プログラマのためのSQL 第2版』も新入社員には敷居が高すぎました (2015年2月追記:その後、自分で第4版を訳出できたのだから、 人生は何があるか分からないものです)。 そこで、です。このサイトの目的は、データベースの世界に足を踏み

  • プログラミングの原則:構造化テキストを文字列結合で作らない、置換でいじらない - Uzabase for Engineers

    こんにちは、ソーシャル経済メディア「NewsPicks」のむとうです。 先日から『Ghost of Tsushima』の開発者が書いた『ルールズ・オブ・プログラミング』というをちょっとずつ読み進めていて、プログラミング熱が高まっています。このは大きな指針を示すだけで具体の話をするものではないのですが、読み物として面白いので私も似たようなことをやってみたくなりました。 何年もこういう仕事をしているとバグが入るパターンというのが見えてきます。そしてだいたいどこに行っても何の仕事でも似たようなことをすることになるのですが、今回の話もその一つです。 構造化テキストを文字列結合で作らない、置換でいじらないというのはこれだけみると何のことか分かりづらいかも知れませんがSaaS Product Team セキュアコーディングの啓蒙 第2回 (SQL インジェクション編)の内容とある面では同じ話です。

    プログラミングの原則:構造化テキストを文字列結合で作らない、置換でいじらない - Uzabase for Engineers
  • "レガシー"と言われないためのJavaScript再入門

    追記: 10/11 ハテブでバズっているようで、色々指摘があったので追記 getElement*は動作が早いのでIDやクラス名が自明の場合はgetElement*を使う方がいいと言う意見もあり、また、ページの表示で大量に呼び出されるわけではないからボトルネックにはならないと言う意見もある。 getElement*で返されるオブジェクトは動的な変化に対応しており、querySelector*は動的な変化に対応していないため、場合によってはgetElement*を使うといい。このサイトで遊んでみよう。 https://ja.javascript.info/searching-elements-dom#ref-263 for await ... ofは非推奨なので Promise.allを現代的な書き方にした 顧客先のブラウザが古い場合も考慮して、あえてレガシーな書き方もする場合があるらしい。現

    "レガシー"と言われないためのJavaScript再入門
  • 最小限のコードで動く最も汚いコードから始める

    最小限のコードで動く最も汚いコードから始める コードを書く際の重要な要点は、読みやすく他人に理解される「良いコード」を書くことです。しかし、完璧を目指して最初から書こうとすると行き詰まります。代わりに、荒削りながらも動くコードを作成し、徐々にリファクタリングして完成度を高めます。型エラーやリントエラーを無視しても構わないので、まずは動くものを作成しましょう。それからリファクタリングして「良いコード」を作成できます。 コードを書くときに最も大切なことってなんだろう?聡明な読者諸君ならご存知だろうが、コードは書く時間よりも読む時間のほうが長い。だから他人に読まれることを意識して、読みやすい「良いコード」を書かなくっちゃならない。コンポーネントは適切な粒度で分割されていて、適切な名前がつけられている。型システムに安全性だって守られてるし、最新のなんとかアーキテクチャにも準拠している。素晴らしいコ

    最小限のコードで動く最も汚いコードから始める
  • コードレビューにラベルを付けるだけでチームの心理的安全性を高めた話

    この記事ではハコベルの開発チームが心理的安全性の向上を目的に採用した、プルリクエスト (マージリクエスト) コメントにラベルを付ける手法についてご紹介します。 ※ この記事に記載の内容は当時の情報です。最新の状況を反映していない可能性があるため、ご了承ください。 背景 プルリクエストをレビューする時、レビュアーとして上から目線になってしまい相手を傷つけないか緊張したり、ちょっとした確認のつもりで書いたコメントが修正必須と捉えられてしまったりした経験はないでしょうか。 来、ピアレビューは対等な関係であるはずなのに、レビューする側の方が上になってしまいお互いに恐縮してしまいがちです。「勘だと怪しいけど間違っていたら怖いから言えないな」や、「将来的に辛くなりそうな実装だけどわざわざ指摘するほどでもないな」など荒波を立てずにApproveしてしまい、積極的なレビューが交わされなくなります。 この

    コードレビューにラベルを付けるだけでチームの心理的安全性を高めた話
  • なぜmapやreduceやfilterなのか〜前編|こわくない関数型プログラミング

    のように、式を変形してから代入するというテクニックが使えます。 もちろんこの式変形はxとyがどんな実数のときでも成り立ち、特定の値だとうまく行かない、なんてバグはありません。 割り算を含むような式では、「0で割るのは未定義」といったアサーション条件もきっちり定義されています。 数学で習ったたくさんの式たちは、どれをどう組み合わせてもバグがないのです。 プログラミングをしていて、たくさん作ったクラスやメソッドのどれをどう組み合わせてもバグがない状態なんて、ちょっと考えられませんよね。 バグの少ないプログラムを書きたい こんなことを考えてみましょう。 バグのない関数の組み合わせだけで全部の処理が書けるだろうか? 「関数の組み合わせ」と言うのは、 関数Aの返り値を関数Bの引数として渡す という意味です。四則演算もれっきとした関数です。Scalaなんかでは"+"とか"-"もちゃんと標準ライブラリの

    なぜmapやreduceやfilterなのか〜前編|こわくない関数型プログラミング
  • Rustで作るテトリス風ゲーム入門

    書では落ち物パズルゲームとして有名なテトリス風ゲームの開発を通してRust言語を学ぶことを目的としています。 テトリスを知らない方でも問題なく読み進めることができます。 先ずは理解しやすいコードでシンプルな落ちものパズルゲームを実装し、後にリファクタリングや機能追加、自動化をしていく流れで構成されています。 テトリスにも様々な種類がありますが書ではCUIでワールドルールを参考にして完成を目指します。

    Rustで作るテトリス風ゲーム入門
  • Pythonではじめる音のプログラミング -コンピュータミュージックの信号処理- | Ohmsha

    ・音のプログラミングが音響楽の基からわかる! ・音の信号処理もていねいに解説! ・打楽器・管楽器・弦楽器・鍵盤楽器の音が手もとで作れる! ・ソースコードはWebからダウンロード可能! 書は、コンピュータで音作りをしてみたい方に向けた、サウンドプログラミングの入門書です。音作りに興味があるけど何からはじめたらという初心者のために音響の基から解説をはじめ、コンピュータでの音の考え方、音を加工するディジタル信号処理の基礎をていねいに説明し、シンセサイザ、エフェクタの音作りなどを解説します。さらに、さまざまな音響合成のテクニックとともに、その具体例として、ゼロから楽器音をつくり出すフルスクラッチ合成のレシピを紹介します。サウンドプログラミングの言語には、音データの読み書きはもちろん、波形、周波数特性、そしてスペクトログラムの描画も簡単に行える、Pythonを採用しています。 Pythonを使

    Pythonではじめる音のプログラミング -コンピュータミュージックの信号処理- | Ohmsha
  • 「良いコード」を書くために意識している17のTips まとめ

    この記事について 私はWeb基盤を提供している企業でWebアプリケーションエンジニアをしています。 インフラや顧客基盤など複数のバックエンドAPIが動いており、それらを結合したアグリゲーション(BFF)の作成とフロントエンドの実装を担当することが多いです。 言語はTypeScriptとC#を選択する事が多く、フロントエンドではReact.jsとVue.jsを使用しています。これらをコンテキストとして私が「良いコード」を書くために日頃意識しているTipsを投稿していきます。 やらないこと インデントを揃える、命名基礎、アクセス修飾子などの基礎的な内容は割愛しています。 コードはTypeScriptで書いています。ですが特定の言語に特化した内容にはしていません。 プログミング全般に掛かかった内容であり、フロントエンドやバックエンドなど特定のレイヤーに特化した内容にはしていません。 良いコードと

    「良いコード」を書くために意識している17のTips まとめ
  • ソフトウェアテスト入門 / 2022-08-30 software testing

    ■参考 ・JSTQB ソフトウェアテスト教科書 JSTQB Foundation 第4版 シラバス2018対応 ・

    ソフトウェアテスト入門 / 2022-08-30 software testing
  • OAuthの言葉周りを整理する

    OAuthの仕組みとToken認証周りの言葉はいつまで経ってもはっきり理解できないものの一つでした。 しかし最近ようやく理解できるようになってきたのでとりあえずそれぞれの言葉の指すものや定義をここで整理してみようと思います。 リフレッシュトークン リフレッシュトークンとは アクセストークンの有効期限が切れたときに、認可サーバーにアクセストークンの更新リクエスト認証をするためのトークン。 OAuth自体はリフレッシュトークンがなくとも実装できるが、リフレッシュトークンはOAuthをより便利にするためのもの。 一般的に有効期限は長い。 ないとどうなるのか アクセストークンの期限が切れたらその度にSNS認証のあのログイン画面に飛ばされてメアドとパスワードの入力が必要になる。 セキュリティに関すること 有効期限が長くても安全性に問題がないと考えられる理由としては、アクセストークンの期限切れ時にしか

    OAuthの言葉周りを整理する
  • 非同期処理を使いこなそう ! -第 2 回 非同期処理と同期処理の処理構造 - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS

    皆さんこんにちは。プロフェッショナルサービス部のデジタルトランスフォーメーションチームでマネージャーをしています堀場です。 さて、いきなりですが、先日、ふと、頭に思い浮かんだ単語があります。それがこちら。 「機能」「情報」「連絡」「手順」「時間」・・・ 25 年以上前に覚えた単語がふと出てきたわけで・・・・この後、何が続くかご存知でしょうか ? 答えは、「論理」「暗号」です。 これは、モジュール強度 (または凝集度) の段階を表すもので「暗号」は凝集度が低く「機能」がもっとも高いと定義されています。なぜ、思い出したのかは謎です。ちなみに、10 年前の資料ですが IPA が提供している IT 人材育成用の汎用コンテンツ の 講義ノート に簡単な解説がありましたので興味がある方は読んでみてください。 凝集度が高いほど、堅牢性、信頼性、再利用性が高く、コードの読みやすさなどの点で好ましく、凝集

    非同期処理を使いこなそう ! -第 2 回 非同期処理と同期処理の処理構造 - builders.flash☆ - 変化を求めるデベロッパーを応援するウェブマガジン | AWS
  • ゴーファーくんと辿るプログラミング言語の歴史/history-of-programming-languages-with-gopher

    若手向けに開催した勉強会の資料です。 一般的なアプリケーション開発をターゲットに、主要言語と歴史を解説しています。

    ゴーファーくんと辿るプログラミング言語の歴史/history-of-programming-languages-with-gopher
  • リリース手法多すぎワロタァ B/G、カナリア、機能フラグ、ダークローンチ、A/Bテスト、、など - Qiita

    この記事でCloudWatch Evidentlyについて調べていると、「機能フラグ」や「A/Bテスト」などインフラエンジニアには若干聞き慣れないリリース用語が出てきました。 アジャイル開発やCI/CDの台頭に伴い多数出現したこれらのリリース戦略用語をまとめて整理してみることにします。 インフラエンジニアやSREと呼ばれるロールの方々も、リリース戦略を知っておくとCI/CD環境の構築やIaC、はたまたミドルウェアのバージョンアップなどで役立つと思います。 以下ウェブサイトを参考に、各用語を「デプロイ戦略」と「テスト戦略」の大きく2つに分けて紹介します。 デプロイ戦略 従来型のデプロイ(インプレースデプロイ) システム番環境が一種類のみ存在し、新バージョンの資材デプロイによって旧バージョンの資材を上書いてしまうパターンです。 環境の設計や管理、維持コストをシンプルに抑えられるメリットがあり

    リリース手法多すぎワロタァ B/G、カナリア、機能フラグ、ダークローンチ、A/Bテスト、、など - Qiita
  • マルチスレッド、排他制御ってなに? - Qiita

    ##はじめに 特に組み込み系開発者なら超絶便利でよく利用するので、ドはまりして必死の調査により理屈を覚えた人も多数いるであろうマルチスレッドプログラミング。今回は件について出来るだけかみ砕いて説明したいと思います。 記事の主題は以下となります。 プロセス/スレッドってなに? 排他制御ってなんで必要なの? その他注意点や排他を減らす手段の紹介 ##プロセス/スレッドってなに? ###プロセス: main関数で動くプログラム 以前ライブラリの説明をした際に、プログラムはmain関数や使用するデータによって実現すると記載させてもらいました。このプログラムを実行すると、このプログラムの情報が全てメモリ上に展開され、利用されます。この展開された情報をひとまとめにしてプロセスと呼んでいます。 実行されたプログラムのことをプロセスと呼ぶので、例えば同じプログラムを2回実行すると、2つのプロセスが出来る

    マルチスレッド、排他制御ってなに? - Qiita
  • 非同期処理考察1 - ReactでAPIを叩くまでの道 - 川獺の外部記憶

    今回はReactまで至りません。多分3回分ぐらい書いてやっと届くと思います…。 エントリを書いている時点で、私はC#のasync/awaitキーワード以降の思想を理解していません。理解する過程を残すことに意味があると思うので敢えてこの状態から書きます。 内容に不正確な点が混じるかもしれませんので、怪しいと思ったら鵜呑みにしないでググってください。もし間違っていたらコメントいただけると幸いです。 後述する通り、題材が題材だけに正確なことを書ける自信が全くありません。 お約束ですが、当にすべてを説明しようとするとが一冊書けてしまうのでC#での実装を例に実用の範囲で書きます。建前は備忘録ですので。 動機 理解の流れ 非同期処理とは 非同期処理の概要 - マルチスレッド(1、2の思想) 実装サンプル 次回:非同期処理と排他制御 動機 ReactAPIサーバと通信する上で、一般にはredux

    非同期処理考察1 - ReactでAPIを叩くまでの道 - 川獺の外部記憶