タグ

ブックマーク / qiita.com (1,219)

  • チームにテストコードを書く文化を定着させる - Qiita

    この記事は? 皆さんお久しぶりです。@cosmeの開発エンジニアをしております、村田です。@cosmeを運営する株式会社アイスタイルではPHP -> TypeScriptへの技術移行を進めており、フレームワークとしてはexpress, oclif, そして記事で紹介するJavaScript製のテスティングフレームワークであるjestなどの各種ツールを使って開発を進めています。 この記事で紹介する内容は、チームでテストコードを書く文化を定着していく話です。というのも、既存プロダクトにて元々テストコードが十分に書かれていない部分があったため、リプレース後のサービスではしっかりとテストを書いていこう、ということでチームで一致団結しました。今まではテスト記述に対する基準は開発者によって任されていたところ、私の担当しているバックエンドのプロジェクトでは、テスト記述の優先度を高くしてリリース基準とし

    チームにテストコードを書く文化を定着させる - Qiita
    J138
    J138 2024/10/04
  • 私がマージンをできるだけ使いたくない理由 - Qiita

    はじめに 突然ですが、皆さんはCSSのmargin(マージン)をよく使いますか? 私はマージンを多用しないように気をつけています。というより、あまりマージンと関わりたくないと思っています。今回の記事では、「どうして避けているのか」について自分なりの考えをまとめてみたいと思います。 あくまでも個人の意見なので、こういう考えの人もいるのだなと捉えていただけますと幸いです。もっとこうしたら良くなるのに!というご意見は大募集しているので、どんどん教えてください。 マージンを使いたくない理由 マージンを使いたくない一番の理由に、スタイルが崩れるというものがあります。「崩れる」と一言で言っても、わかりずらいと思うので落ち着いて考えをまとめてみました。その結果、下記の2パターンに分かれるという結論に行きつきました。 マージンが不可解な挙動をする コンポーネントとして使い回しずらい この二つの観点から、マ

    私がマージンをできるだけ使いたくない理由 - Qiita
    J138
    J138 2024/10/02
  • API教に入信しよう【REST APIの教え】 - Qiita

    ♪ピンポーン あなたは今、幸せですか? APIの教えを身につければ必ず救われます。 ぜひ話を聞いていってください。 APIが好き Web API(以下「API」)って、それ単体で部品としていろんな人に使ってもらえたり、いろんなフレームワーク上で使われたりして、汎用性が高いのでとても好きです。 仕組みとしてはとてもシンプルですが、モバイル開発が普及した現在においてもかなり重要な役割を担っています。 対象読者と参考書籍 記事の対象読者は、Web開発に関する基的な知識がある方です。 「API(REST API)とは何か」や「HTTPってなに?」といった内容は含みません。 ただ、今回参考にさせていただいたオライリー・ジャパンの「The Web API」はそういった基的な部分から応用まで幅広く記載されています。 古い書籍ですが、かなり役に立ちました。当におすすめです。 今回は書籍の1~3章

    API教に入信しよう【REST APIの教え】 - Qiita
    J138
    J138 2024/10/02
  • 結局 Git のブランチ戦略ってどうすればいいの? - Qiita

    1つのIssueが大きくなると1 Pull Requestで大量の差分が発生します。 そうなるとレビュワーに負担がかかり、コンフリクトの可能性も高まり、コードレビューを効率よく進めることができません。 このINVEST原則を守ることでチームはより効果的に作業を進め、柔軟に対応して開発を進めることができます。 Git Flow Git Flowは5種類(main, hotfix, release, develop, feature)のブランチを運用するブランチ戦略です。 2010年に提唱された有名なブランチ戦略です。 オンラインサービスのように継続的デリバリーするコードを想定して作られた戦略ではないです。 main ブランチ 常にリリースできる状態を保つ hotfix, develop へ切り出す このブランチへの直pushはNG hotfix ブランチ バグ修正など緊急時に対応するためのブ

    結局 Git のブランチ戦略ってどうすればいいの? - Qiita
    J138
    J138 2024/09/24
  • パスワードマネージャーは必要か? そしてなぜKeeperか? - Qiita

    総当たりする所要時間を考えると、9桁以下や10桁でも文字の組み合わせに記号がないと、危険ですね。 尚、同ガイド「インターネットの安全・安心ハンドブック」には、第6章でパスワードに関することのみにフォーカスした章があり気になる方にはおススメです。 パスワードの使い回し禁止の人力は現実的? パスワード長く記号も使おうはわかったよと、そして次の節が「使い回しはだめよ」です。使い回しがだめなら単に最後の文字だけ変える、これもだめです。 それが、だめなのはわかるのですが、わかりますが長くて複雑かつ使い回さないものは覚えられないですよね、私は電話番号という数値のみの10~11桁をよく使うものなら覚えられ、それ以上は厳しいです。 覚えられないパスワードは保管して、適時利用することが推奨されます。次の節でその方法について説明します。 「ノートに書く」? 必要に応じてノートを開く、そこに複雑な文字列がある.

    パスワードマネージャーは必要か? そしてなぜKeeperか? - Qiita
    J138
    J138 2024/09/24
    ADとかつけなくてええんか
  • PyCon JPの技術に対する不正の告発、並びに技術者と大衆に対しての警鐘 - Qiita

    概要 文章は、一般社団法人PyCon JP Associationが主催したPyCon APAC 2023の開催に際し、そのプロポーザル選考過程において行われていた不正行為の告発を目的とするものです。 文章が対象とする読者は技術者、及び、公衆です。技術者は技術『愛好家』との付き合い方について一考をするべきであり、公衆は「専門家ではないにも関わらず技術の専門家のフリをする不正な愛好家」に対して無自覚であるべきではない、という警鐘を鳴らすため、並びに、一般社団法人PyCon JP Associationの公衆に対する不正を告発するため、文章を公開します。 文章は、Qiitaが目指す、学びのある情報を技術者に共有することで、よりよい技術者コミュニティの形成を目指す内容であるため、Qiitaのガイドラインに沿った形式でQiita.com上で公開します。 告発する内容 PyCon APAC

    PyCon JPの技術に対する不正の告発、並びに技術者と大衆に対しての警鐘 - Qiita
    J138
    J138 2024/09/22
  • いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう! - Qiita

    いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう!ShellScriptBashLinuxUNIXmacOS はじめに [ $? -eq 0 ] や [ $? -ne 0 ] は冗長でデメリットしかありません。非常に多く見かける書き方ですが、1979 年に Bourne シェルが広く公開された時からこのようなコードは必要ありませんでした。実際に当時はこのような書き方は使われておらず、このような書き方をしなければならなかった歴史的な経緯などはありません。これはなぜか広まってしまった良くない書き方です。 優れたコードとは無駄がないシンプルなコードです。丁寧なコードとは無駄な処理を書くことではありません。[ $? -eq 0 ] や [ $? -ne 0 ] は書かないほうが、簡単で読みやすくわかりやすくなります。優れた文法

    いい加減シェルスクリプトで [ $? -eq 0 ] や [ $? -ne 0 ] なんて エラー処理を書くのはやめよう! - Qiita
    J138
    J138 2024/08/28
  • AWS Athenaの安価な代替手段:Lambda x DuckDB - Qiita

    Athena Amazon Athenaは、標準SQLを使用してAmazon S3に保存されたデータを分析することができる、強力でサーバーレス、インタラクティブなクエリサービスです。複雑なETLパイプラインやデータウェアハウスを設定して管理する必要がなく、大量のデータを処理する組織にとって魅力的なオプションです。ただし、Athenaの価格設定は、予算が厳しい場合など、すべてのユーザーに適しているわけではありません。このブログ投稿では、Athenaの代替となる、低コストで同等の機能を提供できるアルティメットを紹介します。 利点: Athenaの主な利点の1つは、Amazon S3のデータを、複雑なETLプロセスや専用のデータウェアハウスなしに、標準SQLクエリを使用して分析できることです。 Athenaはサーバーレスでもあり、データ量やクエリの複雑さに基づいて自動的にスケールされるため、事前

    AWS Athenaの安価な代替手段:Lambda x DuckDB - Qiita
    J138
    J138 2024/08/25
  • Linuxサーバーの最適化: vmstatとiostatを活用した性能分析と対処法 - Qiita

    Linuxサーバーの最適化: vmstatとiostatを活用した性能分析と対処法 0.目的 インフラ開発者として、必須な性能分析を身につけることを目的としています。 カーネルパラメータをチューニングをする際に性能分析を前提とし、分析結果からチューニングしていきますが、具体的な指標というものが少ないので参考になれば幸いです。 基的なvmstatの使い方については、ちょっとググればいくらでも出てくるので割愛します。 「Linuxカーネルパラメータのチューニング&設計」でロードアベレージが高い状態にある場合、次のアクションとしてCPU使用率の確認が必要となりますので、vmstatの結果分析および対処法について深堀していきます。 よって、vmstatの結果分析と対処法を理解すると性能試験を実施した際のその対処法とカーネルパラメータによるチューニングする対象が理解できるかと思います。 1.パフォ

    Linuxサーバーの最適化: vmstatとiostatを活用した性能分析と対処法 - Qiita
    J138
    J138 2024/08/24
  • typosでtypoチェックをしよう - Qiita

    typosはタイポチェックツールです。 恥ずかしい間違いをする前に入れておきましょう! 実行サンプル インストール

    typosでtypoチェックをしよう - Qiita
    J138
    J138 2024/08/14
  • 顔写真から自閉症を判別してみた - Qiita

    はじめに この記事では今回開発したWebアプリ、自閉症識別(後に理由を説明しますが、動作が大変モッサリです)を公開するまでの経緯や考え・思いをまとめた。 6月中旬に差し掛かる頃から、Aidemy PewmiumのAIアプリ開発コースで、Pythonを用いてアプリ開発を行えるようになることを目標に学んできた。その成果として開発したのが、顔写真から自閉症を判別するWebアプリだ。 この記事では私自身がプログラミング超初心者として、そしていち支援者として感じたことも多く綴っているため、必要に応じて適宜読み飛ばしてもらえると良いかもしれない。 開発開始に至るまで 私はこちらの記事にあるように、保育士として児童発達支援に関わってきた。大変ではあるが非常に楽しい仕事だった。とはいえAidemyの講座受講中、成果物を何にするかをずっと考えていたが、この領域で何かやろうなんてことは全く考えていなかった。

    顔写真から自閉症を判別してみた - Qiita
    J138
    J138 2024/08/04
  • 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
    J138
    J138 2024/07/08
  • サーバーレスベストプラクティスで初めて知ったこと - Qiita

    はじめに サーバーレス大好きなエンジニアです! AWS SUMMIT 2024に行ってきて、たくさんのことを学んできました! 特に「サーバーレス開発のベストプラクティス」の内容が面白かったのでシェアしたいと思います。 サーバーレスとは サーバーやインフラの管理を気にすることなくアプリケーションを実行することができる最高の技術です。細かい設定を気にすることなく、すぐに価値を提供できることが魅力です。 Lambdaのベストプラクティス ここからAWS SUMMIT 2024の内容に触れていきます。 TransportではなくTransform まず、ハッとさせられたのは以下のことです。 Transport (転送)ではなくTransform(変換)に使⽤する。 今までLambdaをどれだけ転送機能として使ってきたかを考えさせられました。 何でもかんでもLambdaに任せるのではなく、特定の変換

    サーバーレスベストプラクティスで初めて知ったこと - Qiita
    J138
    J138 2024/07/07
  • SSHハニーポットに対する不正アクセスの最新動向 - Qiita

    エンジニア学生団体IDEAで代表を務めているshuと申します。去年の12月ごろに設立し、最近設立1年を迎えた団体なのですが、おかげさまで150人以上の大所帯となっております。LT会やハッカソンなどを企画・運営しており、優秀な学生がのびのびと楽しんでおります。興味があればぜひご参加ください。 ハニーポットとは ハニーポットは、攻撃者がシステムに侵入しようとする際に、その攻撃を検知、記録します。 中でも今回取り上げるハニーポットはSSHハニーポットというもので、攻撃者がサーバーに対してssh接続を試みるシチュエーションを想定していただければと思います。 Cowrieハニーポット SSHハニーポットとして有名なものはいくつかあるのですが、Cowrieというものが一番有名です。Kippoという有名なハニーポットの改良版なのでこちらを使いましょう。 環境 今回はAWS EC2上にハニーポットを構築し

    SSHハニーポットに対する不正アクセスの最新動向 - Qiita
    J138
    J138 2024/06/24
  • Next.jsのApp Routerを学ぶ際、shadcn/uiが参考になったという話 - Qiita

    Next.jsのApp Routerを学ぶ際に、UIライブラリを探していたところ、shadcn/uiが参考になったので紹介します。 shadcn/uiは、フレームワークやライブラリではなく、コピペで利用できるReactコンポーネントのサンプル集という立ち位置になっています。Tailwind CSSでデザインされており、React Server Components(RSC)にも対応しています。 サンプルの実装方法が参考になる点も魅力の一つです。 簡単ですがつらつらと紹介していきたいと思います。 shadcn/uiとは デモを見てるとフレームワークやライブラリなのかなと思いきやそうではなく、コピペで利用できるサンプル集という立ち位置になっています。基的にはTailwind CSSでデザインされてるようです。 サンプルとはいえ、実装方法で参考になった箇所が結構あったのでそこも気に入ってるポイ

    Next.jsのApp Routerを学ぶ際、shadcn/uiが参考になったという話 - Qiita
    J138
    J138 2024/05/13
    書いた
  • gRPC 初心者が AWS 環境で Connect を試した - Qiita

    記事は、gRPC 素人の筆者(一応、IT技術者)が一念発起、AWS で Connect を実行するまでの記録です。Connect は Node.js や Kotlin などもサポートしますが今回は、Go を用います、シリアライズから始めて一歩ずつ進めていき最後に AWS の ALB(Application Load Balancer)のバックエンドで動作を確認します。参考程度に処理速度も計測します。AWS の環境構築手順には触れません。 gRPC については、次の素晴らしい解説がとても参考になりました。 Protocol Buffers でシリアライズ プログラミングでは、名前や年齢、電話番号といったデータを構造体やクラス、連想配列などでメモリ上に展開するが、それをファイルに保存したり他のアプリケーションへ送るには、シリアライズ(直列化)が必要。シリアライズとは、連続するバイト列でデータ

    gRPC 初心者が AWS 環境で Connect を試した - Qiita
    J138
    J138 2024/03/11
  • 新卒1年目に使ったエンジニア質問テンプレート - Qiita

    はじめに 今回は新卒1年目の時に自分が先輩エンジニアに質問する際に使っていた質問テンプレートを紹介します。 自分は相手に質問する時は「いかに相手の時間を取らずに解決まで至れるか」を重視して質問を考えています。 いきなり「OOがわからない」「OOのエラーが解決できない」「〇〇が動かない」といった答えを全て相手に丸投げするような質問をしていては成長はおろか、相手から「この子は自分で考えない子なんだな」と思われてしまいます。 そこで今回は初心者が先輩に質問する際にどのような手順で質問を作成すればよいかをテンプレートとして紹介します。 エンジニアとは書いているものの他の職種にも応用できるようなテンプレートだと思うので、ぜひ参考にしていただければなと思います。 この記事の主な対象者 新人エンジニア 質問の仕方が分からない人 エラー解決に時間を大幅に使ってしまう人 Google人工知能開発チームの15

    新卒1年目に使ったエンジニア質問テンプレート - Qiita
    J138
    J138 2024/02/29
  • Alpine.js 5分で説明するよ - Qiita

    はこです、こんにちわ。 今日は Alpine.js の話をします。 Alpine.js 何? Alpine(アルパイン: 英語風発音) は 『アルプスの・転じて登山用の』を意味します。 アルペン: Alpine のドイツ語読み。スノーレジャーやアウトドアグッズとかのお店。 アルパインブーツ・アルパインウェア: 雪山や高山に適した超軽量かつ高機能な服や。 モンベルのアルパインクッカー など…。 Alpine Linux: 超軽量Linux. Small Simple Secure が合言葉。 Alpine.js: 超軽量なフロントエンドフレームワーク。 当初は7kb(gzipped), 今は機能が増えてそれでも11kb Vueの58kbよりもかなり軽い 覚えることは20個のみ Vue, React, Angular 等の SPAツールの 超シンプル版だと思って間違いないです。 Alpine

    Alpine.js 5分で説明するよ - Qiita
    J138
    J138 2024/01/25
  • htmxとは何なのか? その背景にある思想について - Qiita

    先日、Qiitaに投稿された一つの記事が注目を集めました。 元記事では、htmxというJavaScriptライブラリが英語圏で認知を獲得しているとして、インストールの仕方から使い方について公式のドキュメントの全体にわたって簡単に説明が行われています。 さまざまなプラットフォームでこの記事に対する反応を観察してみると、どちらかというと懐疑的な見方のほうが優勢のように見受けられます。ただ、多くのコメントは誤解に基づいているように見受けられました。「JSが要らない」といった元記事のミスリードによるところも大きそうですが1、なぜhtmxが大きく支持を得つつあるのかを理解するには、背景情報を含めて理解することが必要です。 htmxは、最近の複雑化するフロントエンド技術に対する単なる逆張りではありません。これまで30年ほどのあいだウェブ上のシステムを支え続けた「ハイパーメディア」の持つ強力さに今一度目

    htmxとは何なのか? その背景にある思想について - Qiita
    J138
    J138 2024/01/25
  • 祖母が就寝するとDBインサートができなくなる - Qiita

    世の中には、一見関係なさそうな物理現象がITシステムに不可思議な影響を及ぼすことがあります 例えば,500マイル以上離れた場所にメールが送れないという話だったり 中国人のAさんがお茶を入れると会社のネットが繋がらなくなる という話があります。 私の場合は、祖母が就寝するとDBインサートが失敗する、という状況でした 実家の見守りシステム 問題が起きているのは、離れた実家にいる一人暮らしの祖母の状態を見守るために作成した自作のシステムです。 気温や湿度、CO2濃度、明るさ、部屋のドアの開閉、冷蔵庫の開閉の状況をモニタリングできるようにしています。 Raspberry Piに各種センサが接続され、定期的にInfluxDBに送信し、Grafanaという可視化ツールでいつでも見られるようにしています。 これらの情報を見ることで、祖母の家の部屋の温度が適切か、活動しているか、部屋にいるかなどが分かりま

    祖母が就寝するとDBインサートができなくなる - Qiita
    J138
    J138 2024/01/08