並び順

ブックマーク数

期間指定

  • から
  • まで

241 - 280 件 / 3617件

新着順 人気順

コードの検索結果241 - 280 件 / 3617件

  • 雑に作って、それから作り込んで、最後にテストを書く「テストラスト」開発 - give IT a try

    (この話は最初Twitterに書こうと思ったけど、長くなるのでブログに書くことにしました) 僕はRSpecやMinitestでテストを書くのは得意ですが、常にテストファースト(TDD)で開発するとは限りません。 今業務でやってるタスクはこんなふうに進めてます。 雑に動くものを作る ↓ 見た目をきれいにする&機能を作り込む ↓ テストを書く ↓ リファクタリングする この順番で開発する理由を以下に述べます。 雑に動くものを最初に作る理由 最初は見た目とか、異常系とか、細かい仕様とかを無視して、正常系が一通り動くものを作ります。 これはこれから作ろうとしているものの認識が合っているかどうかをPO(プロダクトオーナー)に確認するためです。 実際に動く画面を見せると「こんな感じでOK」とか「ここはこういうふうにしたい」というフィードバックをもらうことができます。 また、開発者としてもコードを書きな

      雑に作って、それから作り込んで、最後にテストを書く「テストラスト」開発 - give IT a try
    • 良いコード/悪いコードで学ぶ設計入門の感想と注意点

      「良いコード/悪いコードで学ぶ設計入門」という本がとても売れているようです。私の所属している開発チームでも、何人か購入した人がいたので、私も購入して一通り読んでみました。 結果として、いくつかの考えが整理され、私としてはこの本によって考えが深まり、本を読んで考えた事自体は有意義であったと思いました。ただし一方で、あまり知識がない状態で(自分の中での判断軸が無い状態で)この本を読むと、色々と誤解が生まれるのではないか?という事を感じました。 一つの技術書がこれだけ売れるという事はそんなに多くはない事だと思うので、つまり、 その内容が改善されるとその効果は相対的に大きい という事になります。そこで、私が本を読んでいて思ったことや、この本の内容で正しいこと、現在も賛否両論とされること、事実として認識が間違っているであろうこと、この本で触れられていないが設計において大事なこと、などについてまとめて

        良いコード/悪いコードで学ぶ設計入門の感想と注意点
      • 【JTF2020】凡人エンジニアの生存戦略

        【CICD2021】デプロイメントパイプラインの原理原則を再確認する / Confirm Deployment Pipeline Principle

          【JTF2020】凡人エンジニアの生存戦略
        • 仕組みから理解する Git 入門 ~ ひとり開発でも便利 ~

          配信動画はこちら https://www.youtube.com/watch?v=qerW4vBftNA もし良かったらムーザルちゃんねるのチャンネル登録お願いします! https://www.youtube.com/channel/UCLPHXwLp90A5R69Eltxo-sg Twitter でもプログラミングネタをつぶやいているのでフォローお待ちしております。 ムー https://twitter.com/mu_vpoe zaru https://twitter.com/zaru

            仕組みから理解する Git 入門 ~ ひとり開発でも便利 ~
          • 0から始めるNode.jsパフォーマンスチューニング

            近年の Node.js は API のサーバとしてはもちろん、Nuxt.js や Next.js といった SSR や BFF などフロントエンドのためのバックエンド言語としての人気が高まっています。 フロントエンドエンジニアがコンテキストスイッチ少なくバックエンドの整備ができることは非常に大きな利点です。 ですが、フロントエンド(ブラウザ側)とバックエンド(サーバ側)ではパフォーマンスチューニングで見るべき点が大きく違います。 しかし Node.js アプリケーションのパフォーマンスイシューの見つけ方などがまとまっている資料は少ないです。 そこで、本記事ではフロントエンドエンジニアが Node.js でパフォーマンスイシューを見つけ、改善するため自分が普段パフォーマンスチューニングを依頼されているときにみている基礎的なポイトをまとめていきます。 1. 計測ステップlink Node.js

              0から始めるNode.jsパフォーマンスチューニング
            • 状態、結合、複雑性、コード量の順に最適化する - valid,invalid

              There’s No Such Thing as Clean CodeのHacker Newsコメント経由でコードやシステム設計・最適化についての良いコメントを見つけた。どうやらHacker Newsで何度も引用されているらしいが日本語で言及された記事が見つからなかったので取り上げてみる。 コメントは2016年のSandi MetzのThe Wrong Abstractionに関するもので、発言者のcurun1rいわく「私は設計の優先順位をこの順序で学習することで、優れた開発者になれた」。*1 4つの基準と優先順位のガイドライン 状態 > 結合 > 複雑性 > コード量 私は状態 (state)、結合 (coupling)、複雑性 (complexity)、コード量 (code) の順に削減することでコードを最適化する。 コードがよりステートレスになるなら、結合を増やすこともいとわない 結

                状態、結合、複雑性、コード量の順に最適化する - valid,invalid
              • VSCodeでコードを書く時に役立つ設定・テーマ・機能拡張、知っておくと便利なテクニック

                Visual Studio CodeでWeb制作・開発のコードを書く時に役立つ設定・テーマ・機能拡張、知っておくと便利なテクニックを紹介します。 My Web Development VS Code Settings, theme, Extensions, tips and tricks br lampewebdev(@lampewebdev) 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 私がVSCodeを使用している理由 VSCodeのテーマ・アイコン・フォント VSCodeの機能拡張 VSCodeの設定 VSCodeの便利な使い方 私がVSCodeを使用している理由 私はプログラミングを始めて以来、たくさんのエディタやIDEを使ってきました。Eclipse、Netbeans、Notepade ++、Brackets Ed

                  VSCodeでコードを書く時に役立つ設定・テーマ・機能拡張、知っておくと便利なテクニック
                • 「スタートアップだからテストを書かない」は正しいか - An Epicurean

                  スタートアップのCTOクラスの人がたまにそういうことを言っているのを聞くことがあります。もしくは「スピード優先だからテストを書かない」等です。 それは真ではなく、言ってしまえば、未熟だからテストを書「け」ない、のではないでしょうか。ただ、スタートアップという言葉に未熟であるという意味が含まれているのであれば「スタートアップだからテストを書かない」という問は真になるかも知れません。スタートアップは得てして未熟なものだし、それでも良いからです。 テストを書かないというジャッジをするのは構いません。でもそれは、スタートアップだからでもスピード優先だからでもない。自分達が未熟だからで、そこには向き合うべきだと考えます。状況のせいにするのではなく、徹底的に自分ごと化する。それがスタートアップに求められる姿勢です。少なくとも技術のトップが自分たちの技術力に向き合わないのはまずいでしょう。 「スタートア

                    「スタートアップだからテストを書かない」は正しいか - An Epicurean
                  • 何故データサイエンティストになりたかったら、きちんと体系立てて学ばなければならないのか - 渋谷駅前で働くデータサイエンティストのブログ

                    先日、Quora日本語版でこんなやり取りがありました。 基本的にはここで述べた通りの話なのですが、折角なのでブログの方でも記事としてちょっとまとめておこうと思います。題して「何故データサイエンティストになりたかったら、きちんと体系立てて学ばなければならないのか」というお話です。 問題意識としては毎回引き合いに出しているこちらの過去記事で論じられているような「ワナビーデータサイエンティスト」たちをどう導くべきかという議論が以前から各所であり、それらを念頭に置いています。なお毎度のことで恐縮ですが、僕も基本的には独学一本の素人ですので以下の記述に誤りや説明不足の点などあればご指摘くださると幸いです。 一般的なソフトウェア開発と、統計分析や機械学習との違い 統計分析や機械学習を仕事にするなら、その「振る舞い」を体系立てて学ぶ必要がある きちんと体系立てて学ばなかった結果として陥りがちな罠 余談

                      何故データサイエンティストになりたかったら、きちんと体系立てて学ばなければならないのか - 渋谷駅前で働くデータサイエンティストのブログ
                    • プライベートメソッドのテストは書かないもの? - t-wadaのブログ

                      この文章の背景 この文章はプライベートメソッドのテストを書くべきか否かに関する knsmr さんのご質問に対して 2013/03/13 に QA@IT で回答したものです。残念ながらQA@IT のサービス終了(2020/02/28)と共にアクセスできなくなってしまったため、運営を行っていたアイティメディア株式会社様、開発を行っていた永和システムマネジメント様、そして質問をされた knsmr さんに許可とご協力をいただき、当時の回答をサルベージしてブログに転載する運びとなりました。 プライベートメソッドのテストはよく議論になるテーマですので、当時の回答を再編集し、knsmr さんのご質問も含め、ご利用いただきやすいライセンス CC BY(クリエイティブ・コモンズ — 表示 4.0 国際 — CC BY 4.0) で公開いたします。 目次 この文章の背景 目次 knsmr さんのご質問 私の回

                        プライベートメソッドのテストは書かないもの? - t-wadaのブログ
                      • ソフトウェア開発の真の問題点は、コードを書くことではなく、問題の複雑さの管理にある - YAMDAS現更新履歴

                        www.oreilly.com オライリー・メディアのコンテンツ戦略部門のバイスプレジデントであるマイク・ルキダスの文章だが、彼が数週間前、「コードを書くことが問題なのではない。複雑さをコントロールすることが問題なのだ」というツイートを見かけた話から始まる。彼はこれに感心したようで、これから何度も引用すると思うので、誰のツイートか思い出せればいいのにと書いている(ご存じの方は彼にご一報を)。 件のツイートは、プログラミング言語の構文の詳細や API が持つ多くの関数を覚えることは重要じゃなくて、解決しようとしている問題の複雑さを理解し、管理することこそが重要だと言ってるわけですね。 これは皆、覚えがある話だろう。アプリケーションやツールの多くは、最初はシンプルである。しかも、それでやりたいことの80%、いやもしかしたら90%をやれている。でも、それじゃ十分ではないと、バージョン1.1でいく

                          ソフトウェア開発の真の問題点は、コードを書くことではなく、問題の複雑さの管理にある - YAMDAS現更新履歴
                        • JavaScriptはなぜシングルスレッドでも非同期処理ができるのか/Why Can JavaSctipt Invoke Asynchronous in Single Thread?

                          JavaScriptはシングルスレッドであることが知られています。そして、Promiseを用いた非同期処理ができることは周知の事実です。では、なぜシングルスレッドで非同期処理ができるのでしょうか? その点について、非同期処理のための2種類のQueuesについて触れつつ、コードベースでの説明も行います。

                            JavaScriptはなぜシングルスレッドでも非同期処理ができるのか/Why Can JavaSctipt Invoke Asynchronous in Single Thread?
                          • GitHub上に三井住友銀の一部コードが流出、「事実だがセキュリティーに影響せず」

                            三井住友銀行(SMBC)が行内で使っている業務システムのソースコードの一部が流出していたことが2021年1月29日、明らかになった。Twitterなどのソーシャルメディアで、2021年1月28日の夜ごろから流出の可能性が指摘されていた。三井住友銀行が1月29日に事実関係を調査し、行内システムのソースコードの一部と一致したことを確認した。 一部のソースコードが公開されていたのは米ギットハブが運営する「GitHub」。日本在住で三井住友銀行のシステム開発に関係した人物が投稿した可能性が浮上している。三井住友銀行は日経クロステックの取材に対し、「当行が利用しているシステムのソースコードが公開されていたのは事実。顧客情報の流出はなく、セキュリティーに影響を与えるものではないことは確認済み」(広報部)と説明している。 三井住友銀行によれば、公開されていたコードは複数ある事務支援系システムの1つに含ま

                              GitHub上に三井住友銀の一部コードが流出、「事実だがセキュリティーに影響せず」
                            • CSSの中央揃えで、最も万能で信頼できる実装テクニック

                              CSSは進化が早く、中央揃えのテクニックも一昔前のものよりも確実に使いやすくなっています。天地左右の中央に要素を配置する際に、要素の幅や高さが可変だったり、要素の数が増えても対応する最新の実装テクニックを紹介します。 現在主流の5つのテクニックからそれぞれの特徴と最も万能で信頼できるテクニックを評価します。 Centering in CSS by Adam Argyle 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 はじめに 1. Content Center 2. Gentle Flex 3. Autobot 4. Fluffy Center 5. Pop & Plop 中央揃えに最適なテクニック はじめに CSSの中央揃えは、ジョークの対象にもなる悪名高い課題でした。しかし今日ではCSSはすべて進化し、素直にこれらのジョー

                                CSSの中央揃えで、最も万能で信頼できる実装テクニック
                              • JavaScriptのモダンな書き方 - ES2020のオプショナルチェーン、null合体演算子、動的import、globalThis等を解説 - ICS MEDIA

                                JavaScriptのモダンな書き方 - ES2020のオプショナルチェーン、null合体演算子、動的import、globalThis等を解説 JavaScriptの仕様であるECMAScriptは年次で仕様が更新されています。ECMAScript 2020(ES2020)は2020年6月にリリースとなりました。現行のすべてのブラウザでES2020の機能は利用できますが、フロントエンドエンジニアにとって使いこなしたい記法ばかりです。 本記事ではES2020に焦点をあて、JavaScriptの新しい記述方法のメリットと使いどころを解説します。 オプショナルチェーン Optional Chaining(オプショナルチェーンやオプショナルチェーニングと呼ばれています)とは、?.構文を用いてnullやundefinedになりうる値へ安全にアクセスできる仕組みです。 利用シーン nullやunde

                                  JavaScriptのモダンな書き方 - ES2020のオプショナルチェーン、null合体演算子、動的import、globalThis等を解説 - ICS MEDIA
                                • ChatGPT で何が変わったか

                                  2023 年 3 月時点で、自分の開発スタイルがどう変わったかを雑に書いておく。 どんなタイミングで何を聞いているか主に Go と TypeScript や W3C や IETF の仕様について聞く場合はほぼ ChatGPT Plus を利用している。間違いとかはどうせ公式ドキュメントを読めばいいので、正しさは求めておらず、きっかけを求めている。 最近では Cloudflare Workers 上で動く WebAuthn サーバーを実装しているが W3C の WebAuthn を開きつつも、ほぼ ChatGPT に相談しながら実装している。 TypeScript で Uint8Array から ArrayBuffer に変換する方法を聞いたり、証明書について聞いたりと色々。参考までにどんなことを聞いているかを紹介しておきたい。 WebAuthn で送られてくる署名の r と s がたまに

                                    ChatGPT で何が変わったか
                                  • リーダブルテストコード / #vstat

                                    「リーダブルなテストコードについて考えよう ~VeriServe Test Automation Talk No.3~」で使用したスライドです。 https://veriserve-event.connpass.com/event/243280/ 登壇動画はこちらで公開されています。 https://vimeo.com/742517199/e001ac43ac <参考リンク> Twitter https://twitter.com/jnchito Blog https://blog.jnito.com/ Qiita https://qiita.com/jnchito プロを目指す人のためのRuby入門[改訂2版] https://gihyo.jp/book/2021/978-4-297-12437-3 Everyday Rails - RSpecによるRailsテスト入門 https://

                                      リーダブルテストコード / #vstat
                                    • 「やばすぎる」 Javaライブラリ「Log4j」にゼロデイ脆弱性、任意のリモートコードを実行可能 iCloudやSteam、Minecraftなど広範囲のJava製品に影響か

                                      Webセキュリティ製品などを手掛ける米LunaSecの報告によると、Minecraftの他、ゲームプラットフォームのSteamやAppleの「iCloud」もこの脆弱性を持つことが分かっており、影響は広範囲に及ぶと考えられるという。 この脆弱性の影響があるのは、Log4jのバージョン2.0から2.14.1までと当初みられていたが、Log4jのGitHub上の議論では、1.x系も同様の脆弱性を抱えていることが報告されている。対策には、修正済みのバージョンである2.15.0-rc2へのアップデートが推奨されている。 セキュリティニュースサイト「Cyber Kendra」によれば、この脆弱性に対して付与されるCVE番号は「CVE-2021-44228」という。 脆弱性の報告を受け、Twitter上ではITエンジニアたちが続々反応。「やばすぎる」「思っていたよりずっとひどいバグだった」「なぜこんな

                                        「やばすぎる」 Javaライブラリ「Log4j」にゼロデイ脆弱性、任意のリモートコードを実行可能 iCloudやSteam、Minecraftなど広範囲のJava製品に影響か
                                      • 今すぐ始められるOSS活動 - Gunosy Tech Blog

                                        はじめに Github Help Wantedでissueを選ぶ OSSのコントリビュート方法を確認する 実装 既存コードの動作確認 機能実装 プルリクを出す マージされる 最後に はじめに こんにちは。広告技術部のjohnmanjiroです。普段は広告配信のAPIや管理画面を作っています。 今回は最近自分が始めたOSS活動のやり方について紹介しようと思います。 issueを見つけたその日にプルリクを出し、約1週間後にマージされました。 「OSS活動始めたいけど、別に普段使ってる中でバグを見つけたりもしてないし、貢献したい明確なOSSもない、どうしよう🤔」そんなOSS活動未経験者の参考になれば幸いです。 ちなみに自分自身、活動を始めたばかりのペーペーです。 Github Help Wantedでissueを選ぶ OSS活動を始めるにあたって、まずは貢献するissueを選びましょう。iss

                                          今すぐ始められるOSS活動 - Gunosy Tech Blog
                                        • オブジェクト指向はコードを複雑に読みにくくする - きしだのHatena

                                          「オブジェクト指向するとプログラムが読めなくなるから禁止」のような話は昔からあって、新しい技術についてこれない人を揶揄するようなニュアンスで使われていましたが、実際にはこれはオブジェクト指向迷路にうんざりした現場での率直な意見だと思います。 オブジェクト指向は、まじめにやるほどプログラムを読みにくくするという性質をもっています。 ※ 使い方次第というコメントついてますが、だからこそちゃんと性質をしっておく必要があると思います。 オブジェクト指向の代表的な指針を3つあげると次のようなものがあります。 オブジェクト同士の連携としてプログラムを組む 単一責務の原則 インタフェースと実装の分離 まず、オブジェクト同士の連携でプログラムを組むと、コードが飛びまくって追いにくくなります。そして単一責務の原則により、小さいクラスが大量に生成されて、追いにくさがさらにあがっていきます。 ダイクストラ先生が

                                            オブジェクト指向はコードを複雑に読みにくくする - きしだのHatena
                                          • 2023年最新版: HTMLのheadの書き方、head内に記述する要素の総まとめ

                                            HTMLページのhead内に記述する最小限の構成、そしてmeta要素やlink要素、ソーシャルサービス用の要素、デスクトップ・スマホのブラウザ用の要素などがまとめられた「HEAD」を紹介します。 HEAD: A simple guide to HTML <head> elements 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 以前の版からいろいろと変更されています。 2016年版: head内に記述する要素の総まとめ 2018年版: head内に記述する要素の総まとめ head内に記述する最小限の構成 head内の要素 meta要素 link要素 ソーシャル関連のhead内の要素 ブラウザ・プラットフォーム関連のhead内の要素 メモ head内に記述する最小限の構成 下記はシンプルなWebサイトで必須となるhead内に記

                                              2023年最新版: HTMLのheadの書き方、head内に記述する要素の総まとめ
                                            • 文字起こしAI「Whisper」を誰でも簡単に使えるようにした超高精度文字起こしアプリ「writeout.ai」使い方まとめ、オープンソースでローカルでも動作OK

                                              会議の議事録やムービーの作成など、文字起こしが必要な場面は多くありますが、手動での文字起こしは非常に面倒です。また、OpenAI製文字起こしAI「Whisper」を用いて文字起こしする方法もありますが、初期設定が難しいという問題も存在します。Whisperをメチャクチャ使いやすくした無料文字起こしサービス「writeout.ai」なら、超簡単かつ短時間で高精度な文字起こしを実現できるとのことなので、実際に使ってみました。 writeout.ai – Transcribe and translate any audio file https://writeout.ai/ 上記のリンクからwriteout.aiにアクセスすると、以下のような画面が表示されます。文字起こしを行うには「Transcribes for free」をクリック。 すると、GitHubアカウントでのサインインを求められます

                                                文字起こしAI「Whisper」を誰でも簡単に使えるようにした超高精度文字起こしアプリ「writeout.ai」使い方まとめ、オープンソースでローカルでも動作OK
                                              • 分かると、実に、おもしろい! QRコードの仕組み

                                                少しマニアックな知識、QRコードの仕組みを紹介します。 QRコード決済、リンクをQRコードで提供するなど、日常的に使用されているQRコードにあるそれぞれのパターンがどのように機能しているか、どういう役割をしているのか、なぜ上下逆さにしても読み取れるのか、なぜ一部が隠されても読み取れるのかなどが分かります。 QR codes by Dan Hollick (@DanHollick) 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 はじめに QRコードの仕組み 終わりに はじめに QRコードがどのように機能しているのか、疑問に思ったことはありませんか? 控えめに言って、実に、おもしろい! 注意: この記事⬇では非常にマニアックな内容が含まれています。 QRコードの仕組み QRコード(Quick Response code)は自動車部

                                                  分かると、実に、おもしろい! QRコードの仕組み
                                                • 『みんなのデータ構造』でデータ構造の基礎を学んだ - valid,invalid

                                                  データ構造とアルゴリズムの学習の一環として『みんなのデータ構造』を読んだ。これまでで最も良いデータ構造の学習になった。 みんなのデータ構造 作者:Pat Morin発売日: 2018/07/20メディア: 単行本(ソフトカバー) 日本語訳がWebで公開されているので気になる方は無料で読める。が、著者や訳者や出版社応援の意味も込めて購入すると良いと思います。また、ラムダノート社のサイトから買うと紙書籍と電子書籍のセットがお得。 内容 データ構造とアルゴリズムに関連する本はアルゴリズム寄りのものが多いが、データ構造に焦点を当て続けていることが本書の特色。 内容の依存関係 p.21より 大学の教科書のように、正確性を優先したハードコアな内容。 アルゴリズムの内容も少しだがある。「11章 整列アルゴリズム」ではそれまでの章で学んだデータ構造がどのように使われるかを一瞥でき、「12章 グラフ」では深

                                                    『みんなのデータ構造』でデータ構造の基礎を学んだ - valid,invalid
                                                  • たった1行のCSS!よく見かけるWebレイアウトを実現する凄技テクニック10個

                                                    モダンなCSSレイアウトでは、ほんのわずかなコードを書くだけで、実用的なスタイリングを実現できます。 この記事では、たった1行でよく見かけるWebレイアウトを表現できるテクニック10個をご紹介します。 上下中央揃え: place-items: center まずCSSでもっとも頭を悩ませる、上下中央揃えを詳しくみてみましょう。ここでは、plae-items: centerを使えば、思ったよりに簡単に実現できます。 まず、display: gridを記述したら、一緒にplace-items: centerを同じ要素に追加します。place-itemsは、align-itemsとjustify-itemsを同時にスタイリングできる簡略化表記、ショートハンドです。centerに設定することで、align-itemsとjustify-itemsの両方がcenterとして設定されます。 .paren

                                                      たった1行のCSS!よく見かけるWebレイアウトを実現する凄技テクニック10個
                                                    • BOMなしUTF-8によってWindowsでもたらされる困惑 (1/2)

                                                      かつてWindowsでテキストファイルといえばシフトJIS形式のものが大半だった。しかし最近では、UTF-8形式のテキストファイルも普通に見かけるようになってきた。世の中はUTF-8が主流になりつつあると言っていいだろう。 しかし、WindowsでUTF-8を使うと、ちょっと困ったことがある。それは、エクスプローラーの検索欄などで用いるWindows Searchが、UTF-8にはしっかり対応していないのである。正確に言うと、Windows Searchはファイル先頭に「BOM」のあるUTF-8は認識して正確にインデックス化し、ファイルの全文検索が可能になるが、BOMのないUTF-8では正しくインデックス化できず、ファイルの全文検索はASCIIコードのみ可能で、日本語などの非ASCII文字では全文検索ができない。 同じ内容のテキストをUTF-8、UTF-8 BOM付き、UTF-16ビッグエ

                                                        BOMなしUTF-8によってWindowsでもたらされる困惑 (1/2)
                                                      • ソフトウェアの複雑さに立ち向かう1つの哲学 :『A Philosophy of Software Design』 を読んだ - こまぶろ

                                                        あけましておめでとうございます、になるはずだったのですが、後から読んだ『Googleのソフトウェアエンジニアリング』の方を先に記事にしたので新年2本目の更新です。 ky-yk-d.hatenablog.com さて、本題。最近のお気に入りポッドキャストであるe34.fmで激賞されていた『A Philosophy of Software Design』を読みました。初版は2018年に出ていて、今回は2021年に出た第2版を読みました。 スパゲッティコードを想起させる装丁 A Philosophy of Software Design, 2nd Edition (English Edition) 作者:Ousterhout, John K. Amazon scrapbox.io どんな本? 書籍のテーマはソフトウェアの複雑さです。複雑さとは、システムを理解したり変更したりするのを困難にさせるも

                                                          ソフトウェアの複雑さに立ち向かう1つの哲学 :『A Philosophy of Software Design』 を読んだ - こまぶろ
                                                        • ChatGPTで独自データを学習させて回答してもらう方法 - Qiita

                                                          ChatGPT,使っていますか? ChatGPTは文章を要約したり、プログラム作ってくれたり、一緒にブレストしてくれたりして本当に便利なのですが、社内情報などの独自データに関する情報については回答してくれません。 プロンプトに情報を記述して、そこに書かれている情報から回答してもらう方法もありますが、最大トークン4000の壁がありますので、限界があるかと思います。 この課題についてなんとかならないかと考えて色々と調べて見たところ、解決する方法が見つかり、いろいろと検証をして見ましたのでその結果をシェアしたいと思います。 サンプルコード(GoogleColab) 百聞は一見にしかずということで、実際に試したサンプルは以下にありますので、まずは動かしてみることをお勧めします。 このコードを上から順番に動かすと、実際にインターネット上から取得したPDFファイルに関する内容をChatGPTが回答して

                                                            ChatGPTで独自データを学習させて回答してもらう方法 - Qiita
                                                          • エンジニアリングの必須図書 40冊 2023年版

                                                            はじめに 今回の記事では、私の独断と偏見でエンジニアリングにおける必須の書籍を、以下の分野に分けて40冊共有する。 Web開発 行動経済学 ソフトスキル その他 対象とする読者 プログラミング初心者 どの書籍から読み進めればいいかわからないプログラマー なにか新しい書籍を読みたいひと なんとなくタイトルが気になったひと Web開発 『リーダブルコード』 良質なコードの原則と具体的なテクニックを丁寧に解説している。プログラミング初心者はまずこれを読むべき。良質なコード―要は、メンテナンスしやすいコードを書く上で重要なヒントを教えてくれる。コーディングで一生役立つ知識が満載だ。何度読んでも決して色褪せることのない不朽の古典である。 『14歳からのプログラミング』 図解付きでプログラミングの基礎(例:変数、関数、条件分岐)を理解できる。小難しい専門用語が一切なく、初心者でも問題なく理解できるよう

                                                              エンジニアリングの必須図書 40冊 2023年版
                                                            • 「ペイペイの毒」に潰されたキャッシュレス企業…その残酷すぎる末路(岩田 昭男) @moneygendai

                                                              地方での生き残りを図ったが… Origami(オリガミ)の本社は、東京・六本木の六本木ヒルズ森タワーにある。筆者は昨年暮れにそこに取材に行った。 以前は表参道のこじんまりとしたビルに入っていたが、森タワーではワンフロアを贅沢に使っていた。まさに時代の最先端を行くIT企業ならではの洗練されたオフィスといった感じで、オリガミの社員も生き生きと働いているように見えた。 同社は2012年に設立され、日本で初めてQRコード決済サービスを始めたスタートアップ企業。ロゴマークは“折り紙”でつくった鶴だ。 社名といい、そのデザインといい、日本をイメージさせるユニークなもので、将来性のある企業として筆者は好感を持っていた。数あるQRコード決済サービスの企業の中でも、ダークホース的な存在として密かに注目もしていた。 もちろんオリガミは、PayPay(ペイペイ)や楽天ペイなどに比べると資本も少なく、おカネの面で

                                                                「ペイペイの毒」に潰されたキャッシュレス企業…その残酷すぎる末路(岩田 昭男) @moneygendai
                                                              • ITエンジニアの新たなバイブル『レガシーコードからの脱却』を読んだ - paiza times

                                                                こんにちは。谷口です。 先日、オライリー社から『レガシーコードからの脱却――ソフトウェアの寿命を延ばし価値を高める9つのプラクティス』が発売されましたね。 弊社でもすぐ購入し、読みまくり、「これはリーダブルコードのように次世代のエンジニアのバイブルになる予感…」と言っているエンジニアもいたので、今回は本書の概要紹介と感想について書きたいと思います。 私の本書はすでに画像の通りふせん貼りすぎ下線ひきすぎ読みすぎでボロボロです。 レガシーコードからの脱却 ―ソフトウェアの寿命を延ばし価値を高める9つのプラクティス 作者:David Scott Bernstein発売日: 2019/09/19メディア: 単行本(ソフトカバー) 概要について 本書はどんな内容の書籍なのか、まずオライリー社公式サイトにはこう書かれています。 本書では、ソフトウェア開発において、初めからレガシーコードを作りださないた

                                                                  ITエンジニアの新たなバイブル『レガシーコードからの脱却』を読んだ - paiza times
                                                                • SPA認証トークンはlocalStorageでもCookieでもない、Auth0方式はいいねというお話 - @mizumotokのブログ

                                                                  SPA認証トークンをどこに保存するかは論争が絶えません。localStorageやCookieがよく使われますが、Auth0は違う方法を採用しています。この記事では、Auth0のトークン管理の方式を理解でき、トークン管理上のセキュリティへの理解を深めることができます。 SPAの認証トークンをどこに保存するか ブラウザでトークンを保存できる場所 保存場所の比較 メリット・デメリット Auth0のアプローチ トークンはインメモリに保存 OpenID Connect準拠とトークン取得のUI/UXの悪化回避を両立 Auth0のjsライブラリ ログイン アクセストークンの(再)取得 図解 ログイン アクセストークンの(再)取得 自サービス内の認証だけのもっと簡易な構成 ログイン IDトークン取得 まとめ SPAの認証トークンをどこに保存するか React やVueで認証付きSPA(Single Pa

                                                                    SPA認証トークンはlocalStorageでもCookieでもない、Auth0方式はいいねというお話 - @mizumotokのブログ
                                                                  • 【追記あり】プログラミング初心者がTwitterで質問したら「スクールではこんなクソコード教えてんのか」とキツい指摘が飛んできた

                                                                    みりせっく@雌尻ンダー extends Siri @grandcraws ツイ主が勘違いされて傷ついてるようなので、一旦謝罪とこの場でも補足しますが、初学者のコードは普通汚い。初心者はコードが綺麗か汚いかも判断基準がないから。だから教える側がここは綺麗、ここはまずい、普通はこう書く、特殊な書き方はやめよう、という教えをちゃんとやりなさいっていう話です。 2022-08-17 02:49:22 みりせっく@雌尻ンダー extends Siri @grandcraws @manaboru 正論を言うことと相手を傷付けることは無関係で、傷付けるから正論を言わないは間違いだと思いますよ。傷付かないように正論を言うべきで。で、今回はその配慮が足りず誤解させて傷付けてしまったからそこに対して衆人に見える形でリプで直接謝罪してます。それ以上の話として何を求められてますか? 2022-08-17 12:2

                                                                      【追記あり】プログラミング初心者がTwitterで質問したら「スクールではこんなクソコード教えてんのか」とキツい指摘が飛んできた
                                                                    • もし「リーダブルコード」を弁護士が読んだら? - MNTSQ Techブログ

                                                                      こんにちは。「リーダブルコード」を先月読破して、感銘を受けた弁護士の人です。 なにに感銘を受けたかというと、「エンジニアが高級言語を効率的にコーディングするための工夫」は、契約という言語をコーディングするために援用できることがとても多いということです。 例えば、リーダブルコードは「関数には空虚な名前(tmpとかretvalとか)でなく、エンティティの実体に即した名前をつけよう!」と提案しています。 これめっちゃわかります!!!なぜなら、契約言語では当事者というクラスの表現のために「甲」「乙」という定義を未だに使います。そして、甲と乙を逆に書いてしまったままReviewを通過することが実際によくあります。オライリーさんには激怒されるでしょう。 しかし、よく考えると高級言語と契約言語が似ているのは当然だと思うようになりました。それは、どちらも「一定のインプットを入れると、必ず一定のアウトプット

                                                                        もし「リーダブルコード」を弁護士が読んだら? - MNTSQ Techブログ
                                                                      • 設計を学びたいときに読みたい本一覧 - Qiita

                                                                        これは何 の参加記事です。 エンジニアとして開発をしていく以上、設計についての知識を身につけていくことはとても重要です。 とはいえ設計という言葉からは何を勉強するべきかがいまいちピンときません。 この記事では、僕が読んできた設計に関するおすすめの本を網羅的に紹介しています。 これから設計を勉強する方の役に立てれば幸いです。 おすすめの本一覧 おすすめの本を紹介していきます。 他にもおすすめがあればぜひ編集リクエストをください! オブジェクト指向設計実践ガイド 設計を始めに学ぶならこれ、という一冊です。 エンジニアとして開発を行なっている中で、オブジェクト指向設計は一番汎用的に使う設計知識なのではないでしょうか? オブジェクト指向設計を学ぶことで、いわゆる「におう実装」と「良い実装」を見極めることができるようになると思います。 知らなかったら読んだほうが良いキーワード SOLID原則 Cle

                                                                          設計を学びたいときに読みたい本一覧 - Qiita
                                                                        • 逆FM音源

                                                                          与えられた楽器の音色に近いFM音源パラメータの探索を勾配法で解く方法を解説します これは2020年2月8日に行われた カーネル/VM探検隊@関西 10回目 での発表資料です サンプルコード: https://github.com/Fadis/ifm

                                                                            逆FM音源
                                                                          • グーグルが開発した画像圧縮ツールSquoosh。フロント開発向けにNode.jsで扱う方法まとめ - ICS MEDIA

                                                                            グーグルが開発した画像圧縮ツールSquoosh。フロント開発向けにNode.jsで扱う方法まとめ 『Squooshスクーシュ』というGoogleが開発した画像圧縮ウェブアプリがあります。ブラウザで変換結果を見ながら圧縮設定ができるので、画像圧縮の難しい知識を持たない方でも使いやすいことが特徴です。圧縮だけでなく、WebPなどの各種フォーマットへの変換・リサイズといったこともできる便利ツールです。 このSquooshをNode.jsで扱える『libSquoosh』が存在します。libSquooshは大量の画像を一括で圧縮、WebPへの変換、リサイズなどの処理をこれ1つで完結できるのがポイントです。昨今のウェブはページの読み込み時間が重視される傾向があります。画像のファイルサイズは読み込み時間に大きく影響するため、画像圧縮は重要なテクニックです。libSquooshをwebpack・Viteと

                                                                              グーグルが開発した画像圧縮ツールSquoosh。フロント開発向けにNode.jsで扱う方法まとめ - ICS MEDIA
                                                                            • ReactとVueの比較、全く同じアプリを作成してみて分かった相違点 2019年Edition

                                                                              日常的にVueを使用している開発者が、ReactとVueで全く同じアプリを作成した時のそれぞれの工程を比較して分かった相違点を紹介します。 特に、Reactのフックについて具体的な使い方が解説されています。 I created the exact same app in React and Vue. Here are the differences. [2019 Edition] by Sunil Sandhu 下記は各ポイントを意訳したものです。 ※当ブログでの翻訳記事は、元サイト様にライセンスを得て翻訳しています。 本記事は以前翻訳した記事の2019年Editionで、Reactのフックが追加されています。以前の記事は下記をご覧ください。 ReactとVueってどう違う?全く同じアプリをReactとVueで作成してみて分かった相違点 隣の家の芝生は青く見える ReactとVueで作成し

                                                                                ReactとVueの比較、全く同じアプリを作成してみて分かった相違点 2019年Edition
                                                                              • VSCodeにChatGPTの拡張機能を入れてコードレビューやバグを発見してもらう - Qiita

                                                                                ChatGPTとは? OpenAIが開発するGPT-3という言語モデルをベースとした(執筆当時)チャットアプリです。 こちらの質問に対して、AIが色々な質問に答えてくれて、一般的な内容だけではなく、コードレビューやバグなども発見してくれるめっちゃ凄いやつです。 細かい内容は以下の記事がとても参考となります。 筆者の関連記事 VSCodeと連携して、ブラウザを開かなくてもChatGPTを使用できるようにする 通常はブラウザを開いて使用するのですが、コーディング中にサクッとレビューしてもらったり、バグを見つけてもらえるような拡張機能があったので、そちらの設定方法について記述してみます。 今回インストールする拡張機能 使用までの手順 環境 PC: MacBook Pro (Apple M2) OS: macOS Ventura 13.1 VSCode: v1.74.3 OpenAIの価格について

                                                                                  VSCodeにChatGPTの拡張機能を入れてコードレビューやバグを発見してもらう - Qiita
                                                                                • 超一流プログラマーはどういう働き方をしているのか?

                                                                                  By Jefferson Santos 多くの社会人は決められた勤務時間に従って仕事をしているわけですが、フリーランスのプログラマーには「時間にとらわれることなく、フレキシブルに仕事をしているのでは?」という偏見がついてまわり、ましてや超一流プログラマーともなれば「起きている時間は常に働いているのでは?」という想像上の生き物的な扱いをされる場合もあります。そんな中、ブロガーのIvan Bessarabovさんが「超一流プログラマーの勤務時間」を明らかにしています。 At what time of day does famous programmers work? https://ivan.bessarabov.com/blog/famous-programmers-work-time At what time of day does famous programmers work? Par

                                                                                    超一流プログラマーはどういう働き方をしているのか?