nakasan_comのブックマーク (205)

  • 人に優しいフォームを作ろう、特に日本人に

    皆さん、フォーム作ってますか? Webサイトやアプリを作るにあたって避けられないのがForm作成、多くの方が autocomplete を設定するなど、より使いやすいフォームを作成するために尽力されていることと思います。 一方で、悪気なく書いたコードでより使いにくいフォームになってしまっている例が世の中には多く見られます(特に銀行系) 今回は、よくあるフォームの実装を例に、(特に日語話者にとって)より使いやすいフォームにするためのちょっとした仕様や私が考える対策を書いていこうと思います。 忙しい方のために最初に書いておくと、この記事に書いてあることの多くは autocomplete の仕様を意識した実装をしましょう の一言に集約されます。 多くの方にとっては「何を当たり前のことを」と思われる項目も多いかとは思いますが、当たり前のことがされていないフォームが世の中には多すぎるので、少しでも

    人に優しいフォームを作ろう、特に日本人に
  • 冪等性で挑む、非同期処理のパフォーマンスチューニング - GS2 Blog

    前回好評だった「冪等性と非同期実行」の続編にあたる記事です。 gs2.hatenablog.com 私たちが提供している Game Server Services はバックエンドに Lambda + DynamoDB といったフルマネージドサービスを活用した、いわゆるサーバーレスアーキテクチャで実装されています。 前回の記事はデータの整合性を保ちつつ、いかに処理をするかに焦点を当ててお話ししました。 ゲームはデータの整合性に対する要件は金融システムほどではないものの、高い水準で求められます。 あわせて、ゲームは体験に対する要件の水準が高く、レスポンスタイムへの要件にも厳しいのが特徴となっています。 前回の記事でざっくりとGS2における消費処理と入手処理を軸とした、トランザクションアーキテクチャのお話をしました。 今回の記事では、このトランザクションの実行についてのパフォーマンスチューニング

    冪等性で挑む、非同期処理のパフォーマンスチューニング - GS2 Blog
  • エンジニアさん向けにUIデザイン講座を開いてみた(成果物編)

    はじめに こちらは 「エンジニアさん向けにUIデザイン講座を開きたい!(準備編)」 「エンジニアさん向けにUIデザイン講座を開いてみた!(完結編)」 の続きとなりますので、先にそちらをご一読いただけますと話が理解しやすいかと思います! UIデザイン講座「実務編」の成果物 UIデザイン講座の実務編では、弊社で使用している勤怠管理システムの一画面を再デザインする内容を実施しました。画面を再デザインする上でカラーやボタンなどを一から考え直して、簡易なUIライブラリを作成しました。 下記が受講者の皆さんの成果物の一覧になります。 画面デザインではないので、ちょっとわかりづらいかもしれませんが、ご了承ください! ここまで大人数で同じテーマのものを作る機会はそうそうないですし、見ることも少ないので、私としても貴重な機会でした! デザイン経験のないエンジニアさんでも色のチョイスのセンスがいい方がたくさん

    エンジニアさん向けにUIデザイン講座を開いてみた(成果物編)
  • AIに奪われる職はわずか5%、MITの著名経済学者が現実チェック

    「私は人工知能(AI)悲観論者ではない」と、ダロン・アセモグル氏はインタビュー開始早々に宣言した。AIの可能性は認めているという。 マサチューセッツ工科大学(MIT)の著名な経済学者、アセモグル教授は迫り来る経済・金融の危機を警告する悲観論者的な声を上げるのは、AIへの熱狂やそれがあおる投資ブームと驚異的なハイテク株急騰が、とどまらないところを知らないからだ。 AIがどれほど有望であろうと、その過剰な期待に応えられる可能性は非常に低いとアセモグル氏は語る。AIに奪われる職、あるいは少なくともAIに大いに依存する職は向こう10年でわずか5%に過ぎないというのが、同氏の計算だ。労働者には確かに朗報だが、生産性の急上昇を見込んでAIに巨額を投じている企業にはとても悪いニュースだ。 「多額の資金が無駄になるだろう」とアセモグル氏は話す。「5%では経済の革命は起きない」と述べた。

    AIに奪われる職はわずか5%、MITの著名経済学者が現実チェック
  • UIの文言 ボタンテキスト編

    何についての話か すでに散々書かれた内容だが、アプリケーションの UI を組む上で、ボタンの文言は「名詞(体言止め)」を使うか、「動詞(〇〇する)」を用いるかの話。 (例) 「保存」or「保存する」 「投稿を削除」or「投稿を削除する」 なんとなく手癖で「名詞(体言止め)」を使っていたが、しっかりルールを決めたいと思ったので調べつつ考えをまとめた。 前提 この記事でいう動詞とは、「〇〇する」で表せるもののことを指す 「戻る」「進む」など「〇〇する」の形でないものの扱いについては、また別の機会にまとめる 結論 基的には名詞 動詞が良い場合もある そのアクションがプロダクトにとって大きな意味がある場合 そのアクションを自分ごととして捉えてほしい場合 名詞の特徴 ユーザーの認知負荷を軽減できる 当たり前だが、文字数を減らせるため、ユーザーの認知負荷を軽減できる。 ボタンを小さくできる これはデ

    UIの文言 ボタンテキスト編
    nakasan_com
    nakasan_com 2024/09/26
    “テキスト”
  • サーバーレス技術の今と未来についてServerlessDays Tokyo 2024 直前イベントで話してきました

    ServerlessDays Tokyo 2024 PreEvent 2024-09-21のServerlessDays Tokyo 2024にむけて、去年に引き続き、直前イベントでサーバーレス技術の今と未来について話してきました。 いよいよ明日からメインイベントですので参加お待ちしています! Serverless Update 2024 文字起こし スライド全体はDocswellさんで公開しています。 PreEventはYouTubeでアーカイブがあります。 サーバーレスのおさらい 「サーバーレス」は、誤解を招きやすい技術用語で様々な定義がありますが、ここでは2つの視点で定義します。 運用者の視点としてのサーバーレスは、物理的なマシンや仮想マシン、EC2インスタンスのような「サーバー」を自分で管理するのではなく、その管理をクラウド事業者に任せるという考え方で、要するに完全従量課金型のフル

    サーバーレス技術の今と未来についてServerlessDays Tokyo 2024 直前イベントで話してきました
  • データベースエンジニアのスキルアップ 専門書輪読会とMySQLモブプロの取り組み

    こんにちは。LINEヤフー株式会社でデータベースエンジニアをしている、松浦、中園、大塚、曽根、笠井です。 データベースはLINEヤフーのさまざまなサービスを支える重要なソフトウエアですが、その安定的な運用やトラブルシューティングには、データベースに関する専門的な知識が必要です。 一方で、データベース部門に配属される新卒のエンジニアは、全員が学生時代にデータベースを専門的に勉強しているわけではありません。このような新卒エンジニアは、データベース部門へ配属後、OJTや実際のデータベースの運用業務に携わりながら、データベースに関する専門知識を深めていきます。 今回のブログ記事では、データベースエンジニアとしての専門性を高めるために、部門内で実施している専門書の輪読会、そして、MySQLを題材としたデータベースカーネルのモブプログラミング(以下、モブプロ)の取り組みについてご紹介します。 1. 輪

    データベースエンジニアのスキルアップ 専門書輪読会とMySQLモブプロの取り組み
    nakasan_com
    nakasan_com 2024/09/25
    “Schwarz”
  • React のダブルクリック(多重クリック)対策一覧

    概要 React アプリにおけるダブルクリック(多重クリック)対策の実装とそのデモを一覧でまとめてみました。コーディングのヒントになれば幸いです。 ※記事で紹介する実装は React SPA アプリを想定し、ボタンに対するダブルクリックに焦点を当てています。 ダブルクリックの問題点 ダブルクリックで問題となるのがクリックアクションに紐づく API 呼び出しが複数回行われてしまうことです。 API 側で問題にならないよう設計されてれば安心ですが(トークンを利用するなど)、そうでなかったりそもそも API 側で対策すること自体が難しい場合もあるかもしれません。 今回は TODO アプリのタスク追加機能を想定します。 タスク名を入力し「追加」ボタンをクリックすると、タスクの作成処理(時間のかかる API 呼び出しを想定してください)が実行されタスクが追加されます。 ユーザーが「追加」ボタンをす

    React のダブルクリック(多重クリック)対策一覧
  • インデックスとは何?MySQL(InnoDB)とPostgreSQLのインデックスの違いとは?調べてみました

    はじめに こんにちは。calloc134 です。 前のハッカソンイベントで、UUID をプライマリキーに利用するかどうかの議論がありました。 結果的にはあまりパフォーマンス要件の高くないアプリケーションであったため、プライマリキーとして UUID を採用することにしたのですが、イベント終了後に気になったため、調査を行いました。 今回は、この調査の結果を元に、MySQL と PostgreSQL におけるインデックスの内部構造の違いと、UUID をプライマリキーにする際の問題についてまとめてみたいと思います。 インデックスの概要 インデックスとは インデックスとは、データベースのテーブルに対して、アクセスを高速に行うための指標となる構造のことです。 インデックスとは日語で索引ですが、まさに辞書の索引のように、アクセスにおいての手助けをしてくれます。 より具体的に解説すると、データベースにお

    インデックスとは何?MySQL(InnoDB)とPostgreSQLのインデックスの違いとは?調べてみました
    nakasan_com
    nakasan_com 2024/09/24
    “アクセス”
  • インデックスとは何?MySQL(InnoDB)とPostgreSQLのインデックスの違いとは?調べてみました

    はじめに こんにちは。calloc134 です。 前のハッカソンイベントで、UUID をプライマリキーに利用するかどうかの議論がありました。 結果的にはあまりパフォーマンス要件の高くないアプリケーションであったため、プライマリキーとして UUID を採用することにしたのですが、イベント終了後に気になったため、調査を行いました。 今回は、この調査の結果を元に、MySQL と PostgreSQL におけるインデックスの内部構造の違いと、UUID をプライマリキーにする際の問題についてまとめてみたいと思います。 インデックスの概要 インデックスとは インデックスとは、データベースのテーブルに対して、アクセスを高速に行うための指標となる構造のことです。 インデックスとは日語で索引ですが、まさに辞書の索引のように、アクセスにおいての手助けをしてくれます。 より具体的に解説すると、データベースにお

    インデックスとは何?MySQL(InnoDB)とPostgreSQLのインデックスの違いとは?調べてみました
  • ドメイン駆動設計におけるバリデーション実装方法への一つの解答(Golang版)

    ドメイン駆動設計(以降DDDと記載させていただきます)を実装する際、バリデーションをどこで、どのように行うべきか悩むことはありませんか?この記事では、バリデーションをエンティティや値オブジェクト内で行うことで、検証ロジックの重複を避け、一貫性を保つ方法について筆者の思いつく限りのバリデーションパターンを比較しながら現状採用している自作のvalidationcontextパッケージを活用した方法まで解説していこうと思います。 実装する際の選択肢の一つとして参考にしてもらえるととても嬉しいです! 尚、指摘などがございましたらバシバシコメントいただきたいです!! 筆者がDDDに取り組む際に参考にさせていただいた書籍 まだDDDを知らない方向けにこれまで読んできたDDD関連の書籍について紹介させていただきます。 特に@little_hand_sさんの書籍は実装方法や実装に関する疑問点などがわかりや

    ドメイン駆動設計におけるバリデーション実装方法への一つの解答(Golang版)
  • VScode + vimプラグインを使ってキーボードから手を離さずに開発する - Qiita

    背景 開発の速度を上げるためにキーボートから手を離さずにコードを書きたい! VScodeのショートカットを使えばある程度は実現はできますがキーボードでの細かなページスクロールがどうしても実現できませんでした 色々迷いましたがVScodevimのプラグインを入れることで解決することにしました vimの操作を覚える必要が出てきますがvimキーバインド + VScodeでより便利に開発出来ると思います Neo Vimのプラグインもありますが今回は手軽に環境を整えたいのでvimプラグインを使います ついでに僕が使っているvimのキーバインドとVScodeのコマンドも一緒に紹介させてもらいます vimプラグインを導入するメリット 細かなページスクロールをすることができる vimの苦手意識がなくなる vimの便利なキーバインドを使うことができる VScodeの便利な機能とvimの便利な機能を手軽に使

    VScode + vimプラグインを使ってキーボードから手を離さずに開発する - Qiita
    nakasan_com
    nakasan_com 2024/09/24
    “中央”
  • パスワードマネージャーは必要か? そしてなぜKeeperか? - Qiita

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

    パスワードマネージャーは必要か? そしてなぜKeeperか? - Qiita
    nakasan_com
    nakasan_com 2024/09/24
    “組み合わせ”
  • SimpleでStaticなNext.jsを中心としたフロントエンド技術選定

    Next.js 事務局と権利者で利用 アプリケーション基盤となるフレームワークとしてNext.jsを利用しています。2022年の4月頃の開発立ち上げ当時から使い続けています。時期的にもReactで中規模以上のアプリケーションつくるならデファクトスタンダードだったと認識しています。 開発初期はとにかく事業の立ち上げのスピードを優先しており、ゼロコンフィグで簡単にアプリケーションが立ち上がること、ファイルベースルーティングが直感的でわかりやすいことなどが採用の理由でした。 export: static 事務局と権利者アプリケーションともに全てのページでログインしないと利用できないサービスなのでstaticビルドをしています。APIサーバーはJava(Spring Boot)で動いており、ログインが確認出来次第、全てブラウザからAPIコールしています。 ビルド時にAPIサーバーへの通信は発生して

    SimpleでStaticなNext.jsを中心としたフロントエンド技術選定
  • Railsで"脳に優しい"シンプルなイベント駆動システムを構築しよう(翻訳)|TechRacho by BPS株式会社

    概要 元サイトの許諾を得て翻訳・公開いたします。 英語記事: Event sourcing for smooth brains: building a basic event-driven system in Rails | Boring Rails: Skip the bullshit and ship fast 原文公開日: 2024/07/21 原著者: Matt Swanson サイト: Boring Rails語タイトルは内容に即したものにしました。 イベントソーシング(event sourcing)といえば、専門用語が山盛りでややこしく、多くの開発者にとって理解しにくいものです。基的な概念を説明するときにも「集約ルート(aggregate root)」や「投影(projection)」といった難解な用語が飛び交いがちです。 ハイレベルな「完全装備のイベントソーシング」で

    Railsで"脳に優しい"シンプルなイベント駆動システムを構築しよう(翻訳)|TechRacho by BPS株式会社
  • コードレビューの仕方

    コードレビューの仕方 このセクションでは、長年の経験に基づいて、コードレビューをする最良の方法に関するいろいろな推奨事項を説明しています。 各ページをひとまとめにすると一つの完全なドキュメントになりますが、便宜上、多くのセクションに分割しています。 全部を読む必要はありませんが、多数の感想によれば、ドキュメントを通読するのが個人としてもチームとしても非常に有益です。 コードレビューの基準 コードレビューの観点 レビューで CL を閲覧する コードレビューのスピード コードレビューコメントの書き方 コードレビュー中の取り下げに対応する CL 作成者のガイドも参考にしてください。こちらは CL をコードレビューしてもらう側の開発者のための詳細なガイドです。

  • 「生成AIを使いこんでいる人」だけが知っていること

    最近は生成AIも一通り新発表ラッシュが終わり、ChatGPTが登場した直後の「熱狂」は一通り収まってきたように感じる。 おそらく現在は 「ちょっと触ってみて、すごいと思ったけど、あまり実用性を感じられなくて、今はたまに使うくらい」 という人が多いのではないかと思う。 いわゆる「失望の谷」に入った状態だ。 なぜ生成AIは「失望の谷」に入ったのか。 その原因は明らかで、生成AIを使って、自分が狙っているクオリティの成果品を出すのが難しいし、プロンプトを考えるのが面倒からだ。 例えば、こんな状況を想像してほしい。 朝出勤してきて、最初に 「昨日一緒に飲みに行った、お客さんの部長さんに「お礼」のメールを書きたい」 とする。 多くの方が想像する通り、お礼のメールは結構書くのが面倒だ。 そこで、「生成AIを使ってみよう」と、次のようなプロンプトをChatGPTに打ち込むとどうなるか。 昨日一緒に飲みに

    「生成AIを使いこんでいる人」だけが知っていること
  • オシャレでカッコイイGolangテク 15選 - 3DプリンタとITとプリキュアのブログ

    なんか最近異常にブログの下書きが溜まっていて、書きかけの記事が全部で100件を超えました。 その中でGoでこんな書き方できるよ〜みたいなのが結構いっぱいあって、一気にまとめて放出したくなったのでその話。 スワップ インスタンスを作らないメソッド呼び出し struct cast 式なしswitch unpack operator キャストiota 式にiotaを含める 不規則なiota 無名引数 ブール定数数値定数文字列定数以外にもconstが使いたい! 無名再帰関数 GoStringer interface 多値戻り値を引数にする ソート済みスライスへのinsert アロケーションをしないFilter まとめ スワップ 多値を使うと一時変数を必要としないスワップが書けて「そうそうこれが書きたかったんだよね〜」って気分になれます。 a := 10 b := 20 a, b = b, a これ

    オシャレでカッコイイGolangテク 15選 - 3DプリンタとITとプリキュアのブログ
  • JavaScript|importの書き方が多いのでまとめてみた - Qiita

    はじめに エンジニアのみなさま、日々の学習当にお疲れ様です! また記事まで足を運んでいただき当に感謝です。 記事は約3分程度で読めるので最後まで読んでもらえると幸いです。 さっと見たい人向け importの書き方パターン 説明

    JavaScript|importの書き方が多いのでまとめてみた - Qiita
  • アーキテクトを目指すなら知っておきたいアーキテクチャ設計のトレンド変遷、そして必要な能力と考え方

    エンジニアからアーキテクトを目指す方や、アーキテクトとして仕事を始めたばかりの方は、アーキテクトの仕事やアーキテクチャ設計のトレンド、さらにどんなスキルが必要なのかをまず理解しておくことが大切です。今回は長年アーキテクトとして活躍されている米久保剛さんの著書『アーキテクトの教科書』(翔泳社)から、アーキテクトの定義や職務、アーキテクチャ設計のトレンド推移、そして米久保さんが考えるアーキテクトとして備えておくべき能力と考え方について解説します。 記事は『アーキテクトの教科書 価値を生むソフトウェアのアーキテクチャ構築』の「第1章 アーキテクトの仕事」から一部を抜粋したものです。掲載にあたって編集しています。 アーキテクトの定義 複雑な構造物であるソフトウェアにおいて非常に重要なアーキテクチャを適切に設計するには、ソフトウェア開発業務に関わる幅広い知識や経験が必要とされます。そのため、アーキ

    アーキテクトを目指すなら知っておきたいアーキテクチャ設計のトレンド変遷、そして必要な能力と考え方