[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

タグ

ブックマーク / zenn.dev (57)

  • 新しいMacBookのセットアップ

    先週MacBookAirのM3モデルが発表されて、勢いで買ってしまいました。 普段は行き当たりばったりで必要なアプリをインストールする感じでセットアップしているのですが、もう少しスマートにセットアップしたいので、整理しながらセットアップしようと思います。 スクリーンショットの見た目等が変わると思うのでOSVersion等貼っておきます。 MacBookAirのスペック また、この記事で紹介されていないアプリでおすすめなものやおすすめ設定があればコメントしていただけると喜びます! OS設定 トラックパッド まず一番最初にやりたいのはOS設定からトラックパッドを選択して軌跡の速さを最速にします。 これをしておくとこの後の作業も早くなるのでまずはこれ。 Dockの整理 MacにはDockというよく使うアプリや起動中のアプリが表示される領域が存在します。 個人的には1軍のアプリしかDockに置いて

    新しいMacBookのセットアップ
  • "レガシー"と言われないためのJavaScript再入門

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

    "レガシー"と言われないためのJavaScript再入門
  • Ajaxから始まった一つの時代の終わり

    最近の流れを見ていての感想文なので、ideaとして投稿します。筆者のバックグラウンドとしては、Remixの商業記事を書いたり、App Routerの商業記事を書いたりしている人です。 さて、筆者は2022年の秋から、社内システムではありますがRemixをプロダクション運用しています。また、Next.jsのApp Routerについても、パラダイムとしてはRemixにインスパイアされた部分が多い[1]おかげで、順調にキャッチアップできています。 RemixとApp Routerは、ルーティングとデータフェッチを高度に統合しており、Progressively Enhanced SPA(PESPA)と呼ばれることもあるそうです。PESPAについては、次の記事が話題になりましたね。 このPESPAであるRemixを実運用する中で、フレームワークの手触りが近年触ってきたものと大きく違っている点があっ

    Ajaxから始まった一つの時代の終わり
  • コードレビューにラベルを付けるだけでチームの心理的安全性を高めた話

    ハコベルシステム開発部のおおいし (@bicstone) です。普段はフロントエンドエンジニアとして物流DX SaaSプロダクトの開発を行なっています。 この記事ではハコベルの開発チームが心理的安全性の向上を目的に採用した、プルリクエスト (マージリクエスト) コメントにラベルを付ける手法についてご紹介します。 背景 プルリクエストをレビューする時、レビュアーとして上から目線になってしまい相手を傷つけないか緊張したり、ちょっとした確認のつもりで書いたコメントが修正必須と捉えられてしまったりした経験はないでしょうか。 来、ピアレビューは対等な関係であるはずなのに、レビューする側の方が上になってしまいお互いに恐縮してしまいがちです。「勘だと怪しいけど間違っていたら怖いから言えないな」や、「将来的に辛くなりそうな実装だけどわざわざ指摘するほどでもないな」など荒波を立てずにApproveしてしま

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

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

    なぜmapやreduceやfilterなのか〜前編|こわくない関数型プログラミング
  • 眼精疲労エンジニアを支える技術

    タイのバンコクでエンジニアリング・マネージャーをしている石坂です。 こちらの記事に触発されて、長年格闘している眼精疲労に対処するノウハウを書いてみます。 背景 かれこれ25年くらい眼精疲労と頭痛に悩まされる ひどいときは嘔吐や発熱を伴うことも 眼科・頭痛外来にも定期的に通うが、特別な異常は見つからず 低気圧や雨の日の頭痛もある 主な原因と思われるもの 高い眼圧 ドライアイ 肩こり ストレス ということで、対策・予防法としてはこのあたりになります。 眼圧を下げ、目の周りの筋肉をほぐす 肩や首まわりの筋肉をほぐす 運動・事・睡眠、適切なストレス解消 以下に、個人的に役立ってきた対策を応急処置編と日頃の予防編に分けて記述します。 応急処置編 まずは眼精疲労と頭痛がすでに起きてしまっているケースでできることをいくつか挙げたいと思います。 目を温める 超定番ですが、これが一番よく効きます。目の周り

    眼精疲労エンジニアを支える技術
  • Rustで作るテトリス風ゲーム入門

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

    Rustで作るテトリス風ゲーム入門
  • フロントエンドにおける「単体テストの考え方/使い方」

    稿における「単体テスト」とは自動テストにおける単体テストを指します。手動テストのことではないので、ご了承ください。 単体テストの考え方/使い方というを読みました。筆者自身、「単体テストはプロダクションコードの付属」という意識がどこかにありました。このを読んで、単体テストについてあまりに何もわかってなかったことに気付かされ、単体テストの設計はプロダクションコードの設計と同じくらい重要という意識に変わりました。何のために単体テストをやるのか、いいテストとは、「単体」とは、など多くの点で学びを得られ、また、多くのプラクティスとアンチパターンを知ることができました。 稿はこのを読んで得られた学びを、フロントエンド開発、特にコンポーネント開発に適用することを試みた際のまとめです。より詳細な解説を求む方にはを手に取ってもらう前提で、できるだけポイントを抑えられるようにまとめることを目指しま

    フロントエンドにおける「単体テストの考え方/使い方」
  • 「良いコード」を書くために意識している17のTips まとめ

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

    「良いコード」を書くために意識している17のTips まとめ
  • 個人開発で「Excel専用のWebAPI」を作りました

    どういうもの? このように関数を使ってデータを取り込めます。 背景 元々は「インターネット上のWebAPIのデータをExcelに取り込みたい」と思ったのがきっかけです。 VBAマクロを使えば簡単ではありますが、マクロは使いたくないという方も多いのではないでしょうか。かくいう私も勤務先が属人化を防ぐためにマクロの使用を推奨していません。 そこで、関数を使用する方法を選択しました。 ExcelにはWEBSERVICE 関数という指定したURLの応答データを取り込む関数があります。 しかし、この関数は大変便利な関数ですが、ExcelHTMLやJSONのパーサーを用意していません。結局取り込んだHTMLやJSONの処理にはVBAマクロが必要になります。 また、欲しいWebAPIが存在しない問題もありました。 そこで、Excelでデータを編集するのではなく、元々のWebAPIExcel用に作れば

    個人開発で「Excel専用のWebAPI」を作りました
  • OAuthの言葉周りを整理する

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

    OAuthの言葉周りを整理する
  • MySQLで発生し得る思わぬデッドロックと対応方法

    はじめに この記事は実際の業務で発生した MySQL のデッドロックとそのいくつかの回避方法や対応方法を(テーマは変えて)手元で実行できるコードを用いて解説する記事です。具体的には「トランザクション張っておけば大丈夫」と思ってませんか? バグの温床になる、よくある実装パターンの記事で紹介されている「1on1 チャットサービス」で紹介されているデッドロックとデータベースレイヤでは同じ状況だったのですが、記事で紹介されている方法とは別の方法でデッドロックを回避する必要があったため、同じ状況に遭遇した人の助けになればという思いで記事を書きました。また、こちらの記事が無ければ私自身も現象を理解するのにもっと苦労したと思うので、この場を借りてお礼申し上げます! 出金サービス履歴登録サービスを例に考える コードと説明が https://github.com/shuntagami/withdrawal_

    MySQLで発生し得る思わぬデッドロックと対応方法
  • 【Fresh】DenoのWebフレームワークを試してみたら面白かった

    DenoのWebフレームワーク、Freshを試してみました。 次に述べる特徴にもあるように、設定ファイルをゴニョゴニョする必要が無く、使い方もとてもシンプルで分かりやすく、正にフレッシュなフレームワークという印象を受けました。 また、コードはJSXで書かれますが、Reactではなく軽量なPreactを使用しています。 特徴 公式ページに載っている特徴です。括弧の中は筆者の所感です。 Just-in-time rendering on the edge. ジャストインタイム・レンダリングをエッジで実現 (Deno Deployで使われることを想定しているから?) Island based client hydration for maximum interactivity. アイランドベースのクライアントハイドレーションで、最大限のインタラクティブ性を実現 (アイランドベース?ハイドレーショ

    【Fresh】DenoのWebフレームワークを試してみたら面白かった
  • Deno の Web フレームワーク Fresh チュートリアル

    Fresh は Deno 製の Web フレームワークです。事前のビルドを必要せず、エッジでレンダリングを提供するという特徴があります。また Islands Architecture を採用しており、デフォルトではクライアントに JavaScript が配信されることがありません。 この記事では Fresh を使用して記事投稿サービスのチュートリアルを紹介します。 完成したサイトは以下のようになります。 ソースコードは以下のレポジトリから確認できます。 インストール Fresh を始めるには Deno の v1.22.3 バージョン以降が必要です。Deno をまだインストールしたことがないのならば、installation を参考に Deno をインストールしましょう。 # Shell (Mac, Linux) $ curl -fsSL https://deno.land/install.

    Deno の Web フレームワーク Fresh チュートリアル
  • 出来る限り短く説明する React + Tailwind CSS 入門(忙しい人向け)

    VTeacher 所属の Satomi です。 ※各項目をできるだけ3行以内にまとめています。 (出来る限り短く説明するReactJS入門 に合わせて書いています) 昨年(2021年)くらいから Tailwind CSS の話題が増え出し、最近はReactと一緒に使われる場面が増えてきたと思います(私も昨年から使い始めました)。 Vercel Next.js as the React framework / NextAuth.js for authentication Vercel for deployment PlanetScale as the database (MySQL) Prisma as the ORM for database access Tailwind for CSS styling 👈 投稿は、React + Tailwind CSS の基礎知識をさらっと確認で

    出来る限り短く説明する React + Tailwind CSS 入門(忙しい人向け)
  • TailwindCSSを始めようとしている人へ

    TailwindCSSを始めようとしている人へ JSフレームワーク内でスタイルをどのように当てるべきかは,多く議論されるものであるが,そんな中でTailwindCSSが注目と人気を集めている様子である. それはそうと私はなかなか使うまで踏み出せなかったが,v3.0以降にようやく使ってみたので, 使い方をざっくり知りたい人 できることをざっくり知りたい人 TailwindCSSをエアプしたい人 に向けて個人的な所感と要点を書いていく. TailwindCSSをすごく簡単に classNameに特定のclassを指定することでStyleを当てていくCSSフレームワーク. 例えば,ここにあるように, bg-red-600とclassNameをつけることで,CSSのbackground-color: #dc2626;と同様のCSSプロパティを当てたことになる. 普段このように書くところを

    TailwindCSSを始めようとしている人へ
  • Cache 解体新書

    Web 技術解体新書 第二章 Cache 解体新書 Cache は Web に限らずシステム設計における最も難しいトピックの 1 つだ。 章では、 Web における Caching の概念を `Cache-Control` だけでなく関連するあらゆる仕様の側面から解説する。 仕様は 2022/06 に公開された RFC 9111 および関連最新仕様に対応済み。 概要等は Chapter 01 [無料公開] に記載

    Cache 解体新書
  • Python だけで作る Web アプリケーション(フロントエンド編)

    Python だけで作る Web アプリケーション第一弾です。HTML/CSS/JSを使わずに、PythonだけでUIを含むWebアプリケーションを作ります。

    Python だけで作る Web アプリケーション(フロントエンド編)
  • なぜMACアドレスとIPアドレスは両方必要なのか?

    この記事は,ネットワークの学習の序盤につまずくポイントである 「MACアドレスとIPアドレスってどっちか片方だけじゃだめなの?」「レイヤ2と3って結局何が違うの?」 という疑問について,私なりの回答をまとめた記事です。世に不正確な記事が出回っているように見受けられるので,正確な回答をまとめたく、長文になってしまいました。とはいえ,初学者向けにかなり初歩的なところから書いたつもりですので是非読んでみてください。 この記事について この記事を読むと何が分かるか MACアドレスとIPアドレスの役割の差が分かる レイヤ2(=同一サブネットの通信)とレイヤ3(=サブネット間の通信)の仕組みが分かる ネットワーク設計時にレイヤ2・レイヤ3のいずれで設計すべきか判断できる なお,教科書的な説明ではなく,概念や捉え方の説明となっていますので,試験勉強には役立ちません。実務としてネットワーク設計を行う方の役

    なぜMACアドレスとIPアドレスは両方必要なのか?
  • Node.js のビルドツール「esbuild」について!

    はじめに esbuild は、キャッシュなしで高速なビルドを可能とする Node.js のビルドツールです。 ビルドツールには、esbuild の他に、WebpackGulp、Parcel、Rollup、Browserify、FuseBox などがあります。 私自身が webpack を普段使っていて、ビルドに時間がかかりすぎているのが気になり、esbuild について調べてみようと思いました。 esbuild の特徴としては、 キャッシュなしでの高速なビルド ES6 と CommonJS をサポート ES6 の Tree shaking 対応(利用されていないコードの除去) JavaScriptGo による API TypeScript と JSX をサポート ソースマップの生成 ソースコードの最小化 プラグイン(現在、experimental で v1.0.0 より前に対応予定

    Node.js のビルドツール「esbuild」について!