タグ

ブックマーク / qiita.com (2,237)

  • 使えるRSpec入門・その3「ゼロからわかるモック(mock)を使ったテストの書き方」 - Qiita

    はじめに みなさんこんにちは! この記事は「必要最小限の努力で最大限実戦で使える知識を提供するRSpec入門記事」、略して「使えるRSpec入門」の第3回です。 今回はRSpecのモックを使ったテストについて説明します。 これまでモックを全く使ったことがない人でもわかるように丁寧に説明していくつもりです。 また、これまでの回と同様、個人的に使用頻度が低いと思っている内容についてはバッサリ説明を省きます。 ただし、第1回や第2回に比べるとテストコードが少し複雑になって、仕組みや動きを想像するのがちょっと難しいかもしれません。 ぱっと頭に入ってこない場合はじっくり文を読んだり、実際に自分で写経しながらコードを動かしたりするなどして、少し時間をかけながら理解するようにしてください。 今回は以下のような内容を説明します。 モックの基的な使い方 モックを使った検証 モックでわざとエラーを発生させ

    使えるRSpec入門・その3「ゼロからわかるモック(mock)を使ったテストの書き方」 - Qiita
  • SSH接続を10倍速くするたった3行の設定 - Qiita

    今回は、SSH接続を劇的に高速化する方法をご紹介します。たった3行の設定を追加するだけで、接続時間を10分の1に短縮できます。しかも、2回目以降の接続では認証も自動的に行われるので、パスワードやパスフレーズの入力も不要になります。 要点 .ssh/configファイルのHost *セクションに以下の3行を追加するだけです。 詳しい説明 1. ControlMaster auto この設定で、1つのSSH接続で複数のセッションを共有できるようになります。新しくSSH接続を確立するたびに認証情報を入力し直す手間が省けて、接続がぐっと速くなります。具体的には: 初回の接続時のみ認証が必要 2回目以降は既存の接続を再利用するため、認証プロセスをスキップ パスワードやパスフレーズの入力が不要になり、接続がほぼ瞬時に完了 2. ControlPath ~/.ssh/mux-%r@%h:%p Contr

    SSH接続を10倍速くするたった3行の設定 - Qiita
  • 【Git】同じコンフリクト解消を繰り返している人に教えたい「git rerere」 - Qiita

    はじめに こんにちは、kenです。みなさんコンフリクト解消してますか! チーム開発をしているとコンフリクトとは嫌でも向き合うことになりますが、コンフリクト解消って緊張感のある作業なのでやりたくないですよね。 そんなコンフリクト解消をちょっぴり楽にする(かもしれない)コマンドを最近知ったので今回はそれを紹介します、その名もgit rerereです。 git rerereとは Gitの公式ドキュメント(日語版)には次のように記載されています。 git rerere コマンドはベールに包まれた機能といってもいいでしょう。これは “reuse recorded resolution” の略です。その名が示すとおり、このコマンドは、コンフリクトがどのように解消されたかを記録してくれます。 そして、同じコンフリクトに次に出くわしたときに、自動で解消してくれるのです。 ここに書かれているように、git

    【Git】同じコンフリクト解消を繰り返している人に教えたい「git rerere」 - Qiita
  • 【JavaScript】ネイティブで集合演算できるようになった - Qiita

    JavaScriptにはだいぶ前からSetオブジェクトがありましたが、何故か集合演算は全く定義されておらず自力で実装しなければなりませんでした。 その後、まあ不便だねってことでSet Methods for JavaScriptというproposalが提出されました。 実装は珍しくSafariが最も早く、2023/09/18のSafari17から対応しました。 その後2024/02/21にChrome122、そして2024/06/11にFirefox127で実装されたことにより、主要全ブラウザで集合演算が使用可能になりました。 複数環境で実装されたことから、無事ES2025としてStage4、つまり上がりになりました。 ということで使い方を紹介するよ。 Set.prototype.intersection() 要素と引数の、両方に含まれる値を返します。 new Set([1, 2, 3,

    【JavaScript】ネイティブで集合演算できるようになった - Qiita
  • 【AWS】Amazon Linux 2023でパッケージを更新する時の注意点 - Qiita

    Amazon Linux 2023でパッケージを最新バージョンに更新したい時、少し注意が必要です。 Amazon Linux 2と同じように「yum update」を実行してもパッケージは更新されません。 パッケージ更新をしてみる まずは素直にパッケージを更新してみます。 ちなみに、Amazon Linux 2023からベースOSがRHEL/CentOSからFedoraに変わったため、デフォルトのパッケージ管理ツールも「yum」から「dnf」へと変更されました。 ということで、「sudo dnf update」を実行してパッケージを更新してみます。 # パッケージの更新 $ sudo dnf update Last metadata expiration check: 17:12:26 ago on Sun Oct 8 16:31:53 2023. ====================

    【AWS】Amazon Linux 2023でパッケージを更新する時の注意点 - Qiita
  • テストコードを書く上で個人的に気をつけている5つのこと - Qiita

    はじめに エンジニアの皆様、テストコードはちゃんと書けておりますでしょうか?(挨拶) どんな開発言語や開発手法を導入していたとしても、アプリケーションの機能実装とテストは表裏一体であると言えます。場合によっては機能の作り込みよりも時間をかけるべきケースが多いくらい重要である(・・・と信じたい)反面、デッドラインが近づくにつれて真っ先に工数が削られやすく軽視されがちな工程でもあります。 時間に追われてテストコードを書いた結果、テストの体をなしていないコードになっていたり後で見返したときに記述が煩雑すぎてメンテ不能になっていたり・・・といった苦い経験は誰しもがあるかと思います。かくいう自分もそんなことは多々ありました。 そんな今までの経験則を基に「自分がテストコードを書くにあたってどんなことを意識しているのか?」をいくつかピックアップして備忘録も兼ねて紹介したいと思います。 一応注意なのですが

    テストコードを書く上で個人的に気をつけている5つのこと - Qiita
  • ドキュメントを書かないことは「負債を生む」ということ - Qiita

    記事の要約 ドキュメントを書かない事は、企業やチームの「負債」になる ドキュメントを書かない事は、自身の学びや振り返りの「機会損失」になる そういう文化が根付く前に、負の連鎖を断ち切ろう! はじめに 世の中のプロジェクトには、ドキュメントが足りていない、と感じています。 でも残念な事に、ドキュメントをどうしても書きたい人は「ほとんどいない」と思います。 その一方で「ドキュメントを書いた方が良い」という事は、 何となく分かっている人も多いと思います。 やりたくない事をやらなければならないのは、嫌ですよね。 そんな気持ちは分かりますが、これを機に一度改めてみませんか。 何故なら、ドキュメントを書かない事はチームに「負債」を生むからです。 勤め人ならば少なからず一度でも、体験した事があると思います。 「どうして必要な過去の資料が無いんだ」って。 あるはずの歴史の一端がソースコードからしか分から

    ドキュメントを書かないことは「負債を生む」ということ - Qiita
  • Apacheセキュリティ設定 - Qiita

    概要 Apache の設定について共通化できるセキュリティ設定とその各項目についてまとめた。 設定例 必須設定 cat << _EOF_ > /etc/httpd/conf.d/security.conf # バージョン情報の隠蔽 ServerTokens ProductOnly Header always unset "X-Powered-By" # httpoxy 対策 RequestHeader unset Proxy # クリックジャッキング対策 Header always set X-Frame-Options "SAMEORIGIN" # XSS対策 Header always set X-XSS-Protection "1; mode=block" Header always set X-Content-Type-Options "nosniff" # XST対策 Trace

    Apacheセキュリティ設定 - Qiita
  • decimal型(十進小数)に夢を見ている輩が多すぎる - Qiita

    みたいなのが挙げられます。これが話題になった時にSNSで見かける言説が「十進小数 (decimal) 型ならこういう問題はない」です。 ですが、decimal型は十進小数を正確に表現できるという話でしかなく、全ての実数を正確に表現できるわけではありません。例えば、 1.0 / 3.0 * 3.0 の計算を考えてみましょう。数学的には、これはちょうど 1.0 になるはずです。 C#の場合 C#には標準の decimal 型があります。これで 1.0 / 3.0 * 3.0 を計算してみましょう。

    decimal型(十進小数)に夢を見ている輩が多すぎる - Qiita
  • Dockerでデバッグ対象のコンテナにツールを入れずにtcpdump/straceなどを使うワンライナー - Qiita

    はじめに Dockerであんなコンテナやこんなコンテナを動かしてると、なんかうまく動かなくて、デバッグのためにtcpdumpとかstraceなどのツールが使いたくなることが稀によくあります。 そんな時、デバッグ対象のコンテナ内にツールを一時的にインストールしちゃうというのが、まぁ簡単で分かりやすいんですが、デバッグ対象のコンテナを汚すのはできれば避けたいところです。 Dockerのコンテナの分離というのは、結局のところLinuxのリソースの名前空間の分離であるので、逆に同じ名前空間を共有すれば、デバッグ用に立てた隣のコンテナから、デバッグ対象のコンテナのネットワークやプロセスの状態を観察することも可能です。 また、docker buildDockerfileを標準入力から受け取ることもできるので、ワンライナーにしてデバッグ用のコンテナをシュッと呼び出せるようにしてみました。 TL;DR

    Dockerでデバッグ対象のコンテナにツールを入れずにtcpdump/straceなどを使うワンライナー - Qiita
  • Windowsでプロセッサの周波数を固定にする - Qiita

    はじめに プロセッサの周波数は処理負荷や電源状態に応じて動的に変化します。 ここではプロセッサの周波数を固定にする方法を紹介します。 固定できる周波数はProcessor Base FrequencyとCore Speedです。 プロセッサとOSは次の通りです。 Intel Core i5-5200U Processor Processor Base Frequency = 2200 MHz Core Speed = 800 MHz Windows 10 Home 10.0.18362 "プロセッサの最大周波数"を表示する プロセッサの周波数を固定にするには"プロセッサの最大周波数"の設定が必要です。 しかし初期設定では表示されていない可能性があります。表示する手順を説明します。 コマンドプロンプトを起動します。以下を入力します。 powercfg -attributes SUB_PROC

    Windowsでプロセッサの周波数を固定にする - Qiita
    mikage014
    mikage014 2024/05/05
  • より良い Git コミットメッセージを書こう - Qiita

    より良いコミットメッセージを残すことは Git を使った開発をする上で重要なことです。優れたコミットメッセージは、それを読んだ人がコードを理解するのに大いに役立ちます。 では、どのようなメッセージが良いもので、どのようなメッセージが悪いものなのでしょうか? それについて掘り下げていきたいと思います。 基的な Git Commit Message の書き方 詳しいところは、以下の3サイトを参照してください。特に「How to Write a Git Commit Message」には基がすべて書かれています。 How to Write a Git Commit Message https://cbea.ms/git-commit/ Gitのコミットメッセージをうまく作成する7つのルール (「How to Write a Git Commit Message」の和訳記事) https://

    より良い Git コミットメッセージを書こう - Qiita
  • 紙っぽいかわいいWebサイト作りたい - Qiita

    かわいいWebサイトが作りたい Web上でグラフィックデザインっぽい表現をしてるサイト大好き! 思いついたら追加する 「版ズレ」風 版ズレ = 印刷の際に、色の版がズレて出力されてしまう現象。(アナログっぽい雰囲気を出すために、あえてズレているように見せるデザイン手法として使ってます) 一番上のレイヤーに紙っぽいテクスチャを乗せて乗算かける 後ろのテキストはaria-hidden="true"でスクリーンリーダーに読み上げられないようにする (疑似要素でやりたかったけど乗算上手くいかなかった・・) ▼ HTML <div class="hanzure"> <img src="紙っぽいテクスチャ" alt=""> <div class="hanzure01"> <p class="front">版ズレ風の表現</p> <p class="back" aria-hidden="true">版ズ

    紙っぽいかわいいWebサイト作りたい - Qiita
  • 生産性における即レスの大切さ - Qiita

    はじめに 昨今「開発生産性」についての話題をよく目にします。 生産性が向上することで悪いことは無いので、様々な組織の事例が公開されて業界全体に知見が共有されていくことはとても素晴らしいことだと感じています。 話題のこちらの 「世界一流エンジニアの思考法」にもとても大切なことが書かれておりますし こちらの記事も参考になりました。 それらを踏まえて個人的に生産性向上のベースになる大切なことだと思っている 「即レスの大切さ」 について書きたいと思います。 これまでやってきたお仕事 ツールアプリの新規事業責任者(3年ほど) 全体3名の少人数チームでスタート 私(責任者+PdMの役割)、エンジニア1名、デザイナー1名 最終的には30人前後の組織の事業部長 ゲームアプリのマーケティングマネージャー(5年ほど) 組織全体としてはビジネスサイド20名、エンジニア5名、デザイナー5名ほど 会社経営(4年ほ

    生産性における即レスの大切さ - Qiita
  • 知的・技術的進歩のスピードを限界まで加速するノートアプリ『Heptabase』 - Qiita

    はじめに 1年半ほどObsidianというノートアプリを使い、Qiitaにも記事を3つほど公開をしていました。 効率的に成長するためのデジタルノート術(Obsidian x Zettelkasten(LYT Framework)) コーディングのようにノートを取る技術 がんばらないObsidianノート術 確かにNotionEvernoteとは違う感覚のノートアプリであり、双方向リンクを利用したグラフで繋げていくノートに当時は感動を覚えました。 その反面、Obsidianを百パーセント有効に活用できていたかと聞かれると「はい」と答えることは難しいと感じています。がんばらないObsidianノート術の記事はまさにその一角であり、Obsidianの拡張性と自由度に翻弄されてしまわないように書いた記事です。 1年半を通して紆余曲折した中、先日新しいツールとの出会いがあり、自分に合うツールを見つ

    知的・技術的進歩のスピードを限界まで加速するノートアプリ『Heptabase』 - Qiita
    mikage014
    mikage014 2024/04/28
  • Obsidianが大学生活を変える! 学生必見の活用術 - Qiita

    ナレッジベース共有ではなく、自分のためだけのクローズドなローカル環境で動作する点において差別化がされている。何かを発信するのではなく自分自身のためにテキストをまとめるのです。 このテキストも外出先で書いています。 金欠学生はもちろん格安を売りにしたプロバイダーと契約しているので3GB程度しか余裕がないはずです(私は月の半ばでなくなりました)。しかしローカルで動作するので速度制限を恐れることなく使うことができるのです。 Obsidianは単なるノートアプリではなくアイデアを書き溜め、思考をまとめ上げ、一つの思想を創り上げる、最強のセカンド・ブレインである。 —私 メリット 日常的に使えばマークダウン記法に慣れて、サークルや研究室のesaの記事を書く心理的ハードルが下がる QiitaやZennなどの記事を公開するハードルも下がる 有名な使い方としてはドイツの社会学者が考案したツェッテルカステン

    Obsidianが大学生活を変える! 学生必見の活用術 - Qiita
    mikage014
    mikage014 2024/04/22
  • Googleスプレッドシートを利用した、たぶん史上最も簡単にデータを更新できるマップツール - Qiita

    最も簡単にデータを更新する方法 Webシステムでデータを更新する方法としては、管理画面にログインして、リスト上にデータが並んでおり、「編集」ボタンをクリックすると、フォームが並んだ編集画面に遷移して、そこでデータを更新したあと、「更新」ボタンを押して完了、というのが定番であろう。 しかし、筆者が考える一般の方が最も簡単にデータを更新出来る方法、それはエクセル状のシートの更新だと考えている。 住所を持ったデータがあって、それらを Google マップ上にピンを置いて参照できるようにしたい。その上、それらのデータを随時編集したり、新しいデータを追加したい、という要件があって、まず浮かんだのは Google マイマップでした。しかし、Google マイマップの場合、Google スプレッドシートから簡単に Google マップにデータをインポートはできるのですが、スプレッドシートと Google

    Googleスプレッドシートを利用した、たぶん史上最も簡単にデータを更新できるマップツール - Qiita
  • メンバーレイヤーから 開発生産性向上 を始めるために - Qiita

    はじめに 開発生産性をテーマとした技術イベントに出まくった結果、ある程度体系化された知識のおすそわけ記事です。 この記事を読めばわかること 開発生産性のトピックでよく語られている前提の部分 開発生産性を語るうえで大事なざっくりとした体系的な知識 開発生産性を測るためによく使われるメトリクス 雑に言えば、数字とってデータ駆動でPDCA回そうという話です。 この記事を読んだ後に、「開発生産性の議論 ナンモワカラン ...。」という人でも「まずはこの辺調べてみよう」ができる状態になればいいなと思って書いてます。 この記事を読んでもわからないこと 開発生産性の文脈におけるビジネスサイドとのコミュニケーションらへん 開発生産性の文脈における経営層とのコミュニケーションらへん 目次 開発生産性についての前提 開発生産性と言うクソデカワードの認識をそろえる 開発生産性には3つのレベルがあることを知る な

    メンバーレイヤーから 開発生産性向上 を始めるために - Qiita
  • インターホンをスマホに通知する方法をものすごく丁寧に説明する【Raspberry Pi Zero WH 】 - Qiita

    在宅勤務している人、多いですよね。 いつでも配達を受け取れてとても助かります。 しかし...2階で仕事をしていると、 インターホンの音が聞こえにくい! 他のことに集中していると気づかない!!!! せっかく配達に来てくれたのだから、一発で受け取りたいものです。 エンジニアらしく仕組みで解決しましょう! 忙しい人のための超要約 インターホンの室内モニタのA接点を使用します(鳴ると接点が閉じる) RaspberryPi Zero WH を用いて、A接点のオンオフによりGPIOの出力3.3VをGPIO17に印加する回路を組みます GPIO17に印加されたことをPythonスクリプトで検知します 検知したらLINE Messaging APIを使用してpush通知を送信します この説明で理解できる人は、記事全体を読む必要ないと思います。 電子工作初心者でも理解しやすいよう丁寧に書き上げたので、ぜひご

    インターホンをスマホに通知する方法をものすごく丁寧に説明する【Raspberry Pi Zero WH 】 - Qiita
  • AWSLambdaで「Configurations overlap. Configurations on the same bucket cannot share a common event type」というエラーが出た場合の対応 - Qiita

    lambdaをマネージメントコンソールから操作して以下の契機で Configurations overlap. Configurations on the same bucket cannot share a common event type というエラーが発生してしまいました。 lambdaファンクションは作成済み add event sourceにて一度、S3のnotificationを設定 設定後、lambdaのコンソール画面でS3のnotificationを削除 再度、同じファンクション、同じS3にnotificationを設定→エラー発生 解決方法 該当するS3のバケットの画面を表示し、Eventを確認するとlambdaのイベントが登録されているのでこれを削除すればOKです。 なぜ上記のようになるのか lambdaのマネージメントコンソールでadd event sourceにて

    AWSLambdaで「Configurations overlap. Configurations on the same bucket cannot share a common event type」というエラーが出た場合の対応 - Qiita