並び順

ブックマーク数

期間指定

  • から
  • まで

1 - 40 件 / 1075件

新着順 人気順

codingの検索結果1 - 40 件 / 1075件

  • TypeScript 関数型スタイルでバックエンド開発のリアル

    TSKaigi 2024 のスライドです

      TypeScript 関数型スタイルでバックエンド開発のリアル
    • スレッドとプロセスの違いを完全に理解する

      はじめに こんにちは、FarStep です。 プログラミングを学ぶ中で、「プロセス」と「スレッド」という言葉を耳にしたことがある方は多いと思います。 しかし、これらの違いを明確に説明できる自信がない方も多いのではないでしょうか。 本記事では、プロセスとスレッドの違いについて、エッセンスを抽出して 解説します。 説明を簡潔にしましたので、本記事は 5 分程度で読み終えることができます。 本記事の内容を自分の言葉で説明できるようになれば、プロセスとスレッドの違いの理解は十分でしょう。 それでは、始めます 🚀 プログラムとは プロセスとスレッドの違いを理解する前に、まずは「プログラム」について理解しましょう。 プログラムとは、プログラミング言語で書かれた一連の命令 のことです。 プログラミング言語の例としては、以下のようなものがあります。 C 言語 Java Python Ruby JavaS

        スレッドとプロセスの違いを完全に理解する
      • 中級Git操作

        今回の記事の内容はGitHub共同創業者のScott Chacon氏の「Pro Git」と同氏の今年の「So You Think You Know Git」(Gitがわかっているとでも思っているか?)発表をベースにしている。 コンフィグ ここでコンフィグにてデフォルトとして指定して損がないオプションをいくつか紹介します。 git rerere git rerereは"reuse recorded resolution"(記録ずみ解決方法を再利用)の略語になっている。 名の通りマージコンフリクトがどう解消されたかを記録し、次に同じようなコンフリクトが発生した際、同様の解決方法を自動的に適用するためのコマンドです。 また、基本的にデフォルトにしてもときに差し支えないため、ぜひgit config --global rerere.enabled trueを実行してみてください。 git main

          中級Git操作
        • Domain Modeling: What you need to know before coding

          Starting to write code without proper planning is like trying to build IKEA furniture with a blindfold on. If against all odds, you somehow manage to assemble something resembling a dresser, there’s a good chance you’ve forgotten a crucial piece and you’ll be throwing the whole thing out in a week and heading to Pottery Barn (like you should have in the first place). [1] When getting to know a new

            Domain Modeling: What you need to know before coding
          • Python Web UIフレームワークで作るデスクトップアプリ | gihyo.jp

            寺田 学(@terapyon)です。2024年4月の「Python Monthly Topics」は、Python Web UIフレームワークの1つであるStreamlitを使ってWindowsやmacOSのデスクトップアプリを作る方法を解説します。 目的⁠・モチベーション Pythonで自動化のスクリプトを作ったり、JupyterLabやColaboratoryでデータの可視化を行うことがあります。これらを作成者以外の多くの方に利用してもらう方法として、Webシステムやデスクトップアプリとして提供する方法が考えられます。 Webシステムの構築やデスクトップアプリの作成となると、技術的なハードルがあります。他には、時間的なコストに見合わないという状況もあり得ます。 Python Web UIフレームワークを使うことで、比較的少ないコードでWeb UIからスクリプトの実行や可視化をするアプリ

              Python Web UIフレームワークで作るデスクトップアプリ | gihyo.jp
            • GitHub、「Copilot Workspace」テクニカルプレビューを開始。ほとんど全ての開発工程をAIで自動化

              GitHub、「Copilot Workspace」テクニカルプレビューを開始。ほとんど全ての開発工程をAIで自動化 テクニカルプレビューは上記のCopilot Workspaceのページからウェイトリストボタンをクリックして申し込みます。 Copilot Workspaceはほとんど全ての工程を自動化 Copilot Workspaceは、自然言語で書かれたIssue(課題)を基に、Copilotが仕様案と実装計画を示し、コーディングや既存のコードの修正を行い、ビルドをしてエラーがあればデバッグも行うという、プログラミングのほとんど全ての工程をCopilotが自動的に実行してくれる、というものです。 人間は各工程でCopilotから示される内容を必要に応じて修正するか、そのまま見守ることになります。 GitHub CEOのThomas Dohmke(トーマス・ドムケ)氏は、Copilot

                GitHub、「Copilot Workspace」テクニカルプレビューを開始。ほとんど全ての開発工程をAIで自動化
              • Pythonグラフ入門

                Pythonグラフ入門# このPythonグラフ入門では、プログラミング言語Pythonを使ってグラフを描画する方法を解説しています。対象としている方は、ある程度Pythonに触れている人(リストやNumPyを使った配列を理解できるレベル)です。 サイト内の検索は、ページ上部の虫メガネのアイコンから行えます。

                  Pythonグラフ入門
                • LLMを活用した大規模商品カテゴリ分類への取り組み | メルカリエンジニアリング

                  こんにちは、メルカリの生成AIチームで ML Engineer をしている ML_Bear です。 以前の記事[1]では商品レコメンド改善のお話をさせていただきましたが、今回は、大規模言語モデル (LLM) やその周辺技術を活用して30億を超える商品のカテゴリ分類を行なった事例を紹介します。 ChatGPTの登場によりLLMブームに火がついたということもあり、LLMは会話を通じて利用するものだと認識されている方が多いと思いますが、LLMが有する高い思考能力はさまざまなタスクを解決するためのツールとしても非常に有用です。他方、その処理速度の遅さや費用は大規模なプロジェクトでの活用にあたっての障壁となり得ます。 本記事では、こうしたLLMの課題を克服するためにさまざまな工夫を施し、LLM及びその周辺技術のポテンシャルを最大限に引き出して大規模商品データのカテゴリ分類問題を解決した取り組みについ

                    LLMを活用した大規模商品カテゴリ分類への取り組み | メルカリエンジニアリング
                  • CodiumAI、作りたい機能を入力するとコードの実装計画案生成、コードの自動生成を支援する「Codiumate Coding-Agent」α版リリース

                    CodiumAI、作りたい機能を入力するとコードの実装計画案生成、コードの自動生成を支援する「Codiumate Coding-Agent」α版リリース AIによるプログラミング支援ツールを開発しているCodiumAIは、作りたい機能をAIに対してプロンプトで入力すると、コードの実装計画案をAIが示し、それを元にほとんどのコードを生成や補完してくれる「Codiumate Coding-Agent」(以下、Coding-Agent)α版のリリースを発表しました。 The Codiumate-Agent is the first step towards tandem development with your coding agent. It effortlessly slots into your development workflow, helps you be smart about

                      CodiumAI、作りたい機能を入力するとコードの実装計画案生成、コードの自動生成を支援する「Codiumate Coding-Agent」α版リリース
                    • eC Programming Language

                      import "EDA" import "genericEditor" enum MediaType { unknown, tape, dvd, bluRay }; dbtable "Borrowers" Borrower { Borrower id "ID"; String name "Name"; String phoneNumber "Phone Number"; }; dbtable "Movies" Movie { Movie id "ID"; String name "Name"; MediaType mediaType "Media Type"; Date dateAdded "Date Added"; Borrower borrower "Borrower"; Date dateBorrowed "Date Borrowed"; }; DataSource ds; Data

                      • GitHub - plandex-ai/plandex: An AI coding engine for complex tasks

                        You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

                          GitHub - plandex-ai/plandex: An AI coding engine for complex tasks
                        • それでも私が<wbr>でなくinline-blockで改行調整をする、たった1つの理由

                          inline-block を使う理由、それは 入れ子構造を作れることにより、改行位置の優先順位をつけられるから! 詳しくは以降で説明します。 (前提)そもそも改行調整ってなんの話? このタイトルを見て記事を開いた方であれば知っていると思いますが、一応説明です。 スペースで単語が区切られる欧文とは違い、日本語は単語の区切りがないので、改行すべき位置を機械的に判断できず、不自然な位置で改行されてしまうことがあります。そこで、見た目を整えるため、改行すべき位置を指定するための手法が必要になります。 他に詳しい記事がいくつもありますので、詳細はそちらを参照してください。 代表的な改行調整の手法 <wbr> 要素 <wbr>要素は、改行してよい位置を表す要素です。 親要素に対して word-break: keep-all; を指定して基本的には改行されないようにすることで、<wbr>要素がある位置で

                            それでも私が<wbr>でなくinline-blockで改行調整をする、たった1つの理由
                          • 謙虚なリーダーのもとで心理的安全性が高まりメンバーが本領発揮しやすくなる―職場においてリーダーの謙虚さと心理的安全性が果たす役割― | 東京大学 先端科学技術研究センター

                            ホーム ニュース プレスリリース 謙虚なリーダーのもとで心理的安全性が高まりメンバーが本領発揮しやすくなる―職場においてリーダーの謙虚さと心理的安全性が果たす役割― 東京大学 発表のポイント 日本の企業において、リーダーの謙虚さが心理的安全性を介してプレゼンティーズムに影響することがわかりました。 チーム単位で働く職場において、リーダーの謙虚さ、心理的安全性、そしてプレゼンティーズムの3変数がどのように関係しているか初めて明らかにしました。 メンバーが活躍できる職場の人的環境や文化的条件を考え、介入をデザインする上で示唆に富む結果といえます。 謙虚なリーダーシップは、心理的安全性を介してプレゼンティーズムと関連する 発表概要 東京大学先端科学技術研究センターの松尾朗子特任助教、熊谷晋一郎准教授らの研究グループは、複数の業種の日本企業を対象に調査を実施し、リーダーの謙虚さが高まると心理的安全

                              謙虚なリーダーのもとで心理的安全性が高まりメンバーが本領発揮しやすくなる―職場においてリーダーの謙虚さと心理的安全性が果たす役割― | 東京大学 先端科学技術研究センター
                            • これでもうUIデザイン用のSVGアイコンに困らない! 商用無料のSVGアイコンを横断検索・ダウンロードでき、カスタマイズもできる便利サイト -Iconbuddy

                              商用で無料利用できる、MITライセンスなどのオープンソースで利用できるSVGアイコンは、たくさんのサイトからリリースされています。これらをまとめて検索してダウンロードでき、しかもカスタマイズもできてしまう便利サイトを紹介します。 FigmaとVS Codeのプラグインも揃っており、そこから直接アイコンを利用することもできるので、かなり便利です。 Iconbuddy -200K+ open source free svg icons Iconbuddyの特徴 SVGアイコンの利用方法 Iconbuddyで利用できるSVGアイコン Iconbuddyの特徴 Iconbuddyは、オープンソースで利用できる200,000種類以上のSVGアイコンを無料で検索、ダウンロード、さらにアイコンのカスタマイズもできるアイコン検索エンジンです。 Iconbuddy -200K+ open source fr

                                これでもうUIデザイン用のSVGアイコンに困らない! 商用無料のSVGアイコンを横断検索・ダウンロードでき、カスタマイズもできる便利サイト -Iconbuddy
                              • はじめてのインタープリター

                                インタープリターを書いたことがない方向けに、四則演算といった簡単なものから始め、少しずつ機能を足しながら言語を拡張していくような本です。

                                  はじめてのインタープリター
                                • 長く活躍できるエンジニアになるためには? 技術者として大切にしたいこと

                                  フロントエンドのパラダイムを参考にバックエンド開発を再考する / TypeScript による GraphQL バックエンド開発

                                    長く活躍できるエンジニアになるためには? 技術者として大切にしたいこと
                                  • 女子大生が100日連続で生成AIで100本のプログラムを書いたらどうなったか?

                                    ボードゲームやアクションゲーム、各種ツールやシミュレーションなどさまざまなソフトが100日間に作られた いままで数えきれないほどのプログラマーに会ってインタビューもさせてもらってきたが、久しぶりに若いプログラマーの話を聞いてきた。ここ1、2年では U22グランプリの男子中学生や全国小中学生プログラミング大会の受賞者たちだが、今回は、ChatGPTを使ってプログラムを書きまくった女子大生である。 彼女は X(Twitter)の自分のアカウントで1日1本のソフトを100日間連続で作るというイベントをやっていて「おっ、頑張っているな!」と思って応援していた。「こんなゲームを作ってほしい」などとリクエストを出したりもしていたのだが、どうも私が想像していたものと内容もやり方も違っていたようである。 目下、ソフトウェア産業の最大のテーマは「我々は人間の言葉でプログラムを書くようになるだろうか」というこ

                                      女子大生が100日連続で生成AIで100本のプログラムを書いたらどうなったか?
                                    • JavaScriptで要素をドラッグして移動する簡単な方法 - Qiita

                                      要素をドラッグして移動することは、JavaScriptにおいて頻出パターンです。 しかし、それを簡単に実現するコードは意外と知られていません。 <img id="$img" src="https://js.cx/clipart/ball.svg" width="40" height="40"> <script> $img.onpointermove = function(event){ if(event.buttons){ this.style.left = this.offsetLeft + event.movementX + 'px' this.style.top = this.offsetTop + event.movementY + 'px' this.style.position = 'absolute' this.draggable = false this.setPointe

                                        JavaScriptで要素をドラッグして移動する簡単な方法 - Qiita
                                      • GitHub、脆弱性のあるコードを実際にデバッグして学べる「Secure Code Game」シーズン2がスタート

                                        GitHub、脆弱性のあるコードを実際にデバッグして学べる「Secure Code Game」シーズン2がスタート 「Secure Code Game」は、ゲームと名付けられていますが、実際のコードを月間60時間無料で提供されるGitHub Codespacesの機能を駆使して修正し、ユニットテストを通して完成させる手順となっており、実践に近い内容となっています。 昨年(2023年)3月に開始されたシーズン1は、PythonとC言語でのセキュアなコーディングを学べる内容でした。今回のシーズン2ではこれらに加えてJavaScript、Go、そしてGitHub ActionsのYamlファイルなどが含まれており、これらのコードのバグを修正することになります。 Secure Code Gameの始め方 「Secure Code Game」の始め方は次の通りです。 まず「Secure Code G

                                          GitHub、脆弱性のあるコードを実際にデバッグして学べる「Secure Code Game」シーズン2がスタート
                                        • Webサービスを作るときのテンプレートを作った - hiroppy's site

                                          週末に自分がよく使っている技術をまとめたら反応が良かったので、テンプレートを作りました。 なにかWebサービスを作るときに、自分はこれらのライブラリを基本的には入れます。 ベースはcreate-next-appとなりますが、そこで生成された状態だと認証もDBも何もありません。 しかし、サービスを作るにあたって必要なケースがほとんどです。 このテンプレートには特定のライブラリを入れると毎回書かないといけない項目等を事前に作っておき、 開発に集中できる仕組みを作るのがゴールとなります。また、例を示しつつ削除するコード量を最小限に抑えます。 主にNext.js固有のハマるポイントや環境構築などめんどくさいけど毎回書いている点をカバーします。 linterと関連があるVSCode, pre-commit等の設定NextAuthに指定されたDB Schemaの作成やAPI routeの設置開発、テス

                                            Webサービスを作るときのテンプレートを作った - hiroppy's site
                                          • GitHub - m31coding/fuzzy-search: A fast, accurate and multilingual fuzzy search library for the frontend.

                                            import * as fuzzySearch from './path/to/fuzzy-search.module.js'; const searcher = fuzzySearch.SearcherFactory.createDefaultSearcher(); const persons = [ { id: 23501, firstName: 'Alice', lastName: 'King' }, { id: 99234, firstName: 'Bob', lastName: 'Bishop' }, { id: 5823, firstName: 'Carol', lastName: 'Queen' }, { id: 11923, firstName: 'Charlie', lastName: 'Rook' } ]; const indexingMeta = searcher.i

                                              GitHub - m31coding/fuzzy-search: A fast, accurate and multilingual fuzzy search library for the frontend.
                                            • 似ているけどちょっと違うものをスタイリングする CSS テクニック - mizdra's blog

                                              React + CSS Modules なプロジェクトを例にサンプルコードを書いてるけど、それ以外の構成のプロジェクトでも使えるテクニックのはず。記事タイトルは id:hitode909 さんの 似ているけどちょっと違うものたちをモデリングする技術 - hitode909 のリスペクトです。 data 属性, 属性セレクター, CSS カスタムプロパティを使う 記事のリストがあって、記事のカテゴリごとに文字色やボーダーの色を変えたい、みたいな状況だったとする。多分素朴に書くと以下のようになるはず。 import styles from './Entry.module.css'; import clsx from 'clsx' function Entry(props) { return ( <div className={ clsx(props.category === '暮らし' ? s

                                                似ているけどちょっと違うものをスタイリングする CSS テクニック - mizdra's blog
                                              • アプリケーションエンジニアこそ「監視」だよね!と私が考える訳 #phpkansai

                                                PHPカンファレンス関西2024での発表資料です https://fortee.jp/phpcon-kansai2024/proposal/42712995-5f3e-4c68-a951-39584eac95a1

                                                  アプリケーションエンジニアこそ「監視」だよね!と私が考える訳 #phpkansai
                                                • 今日から始めるSvelte入門

                                                  みなさんはSvelteって知っていますか? SvelteはReactやVue.jsなどと同じ、モダンなJSのUIフレームワーク(厳密に言うと、コンパイラベースのJSフレームワーク)です。 0からSvelteに入門し、Vite/TS/Tailwindを用いての漢字クイズアプリ開発を通して、その記述を理解しましょう。 ✅ Svelte ✅ Vite ✅ TypeScript ✅ TailwindCSS

                                                    今日から始めるSvelte入門
                                                  • 最近のCSSは進化が早い! モダンCSSの新機能、ブラウザのサポートが充実した機能のまとめ

                                                    最近のCSSは進化が早く、またブラウザはエバーグリーン(自動で最新版にアップデートするブラウザ)になり月一ペースでアップデートされ、モダンCSSの機能もたくさんサポートされました。 CSSの新機能をはじめ、ブラウザのサポートが充実した機能を紹介します。2024年はこれらのモダンCSSを使用する機会が増えますね。 :has()疑似クラスがすべてのブラウザにサポートされました CSSのコンテナクエリ CSSのスタイルクエリ CSSのネスト CSSの@scopeはセレクタの適用範囲を設定できる CSSで三角関数が使用できるようになった スクロールをトリガーにしたアニメーションの実装が大きく変わる 今までは面倒だったことが簡単に実装できるようになった新機能 知っておくと便利なCSSの知識とテクニック HTML関連も少しだけ :has()疑似クラスがすべてのブラウザにサポートされました まずは、:h

                                                      最近のCSSは進化が早い! モダンCSSの新機能、ブラウザのサポートが充実した機能のまとめ
                                                    • CSRF 対策はいまだに Token が必須なのか?

                                                      CSRF 対策は One Time Token を form なりに付与して、サーバ側でチェックすれば良い。 それをデフォルトでサポートしてるフレームワークなどもあるし、なくてもライブラリでいくらでも対応できる。 どうせ完全にステートレスなサービスはなかなかないので、サーバ側に redis や memcache を用意するのも別に大変じゃない。 なので、 CSRF 対策として Token を付与するのは、最も安全で推奨できる方式ではある。 っていうのを踏まえた上で、もう SameSite=Lax デフォルトだけど、今でも Token 必須なの?みたいなのがたびたび話に出るので、いい加減まとめる。 前提 この話は、スコープがどこなのかによって話が多少変わるので、そこを絞る。 今回は Passive ではなく Active に対策していく場合を考えるので、前提をこうする。 SameSite=l

                                                        CSRF 対策はいまだに Token が必須なのか?
                                                      • これは知っておくとかなり便利! details要素にname属性を与えると、連動して開閉するアコーディオンを実装できます

                                                        <details>要素でアコーディオンを簡単に実装できますが、懸念点は複数のウィジェットが個別に開閉してしまうことです。1つ目を開いて、2つ目を開くと、1つ目は開いたままです。1つ目を閉じるには、1つ目をクリックして閉じる必要がありました。 しかし、<details>要素にname属性を与えると、すべてのウィジェットを連動して開閉させることができます。1つのウィジェットだけを開くことができる排他的アコーディオンをHTMLとCSSだけで実装する方法を紹介します。 Exclusive Accordion by Bramus 下記は各ポイントを意訳したものです。 ※元サイト様のライセンスに基づいて翻訳しています。基づいてというのは、貢献部分に関して同ライセンスも含みます。 アコーディオンの実装 1つのウィジェットだけを開くことができる排他的アコーディオン 排他的アコーディオンのポリフィル アコー

                                                          これは知っておくとかなり便利! details要素にname属性を与えると、連動して開閉するアコーディオンを実装できます
                                                        • 本当は教えたくない、VScode拡張の最強プログラミングアシスタントAI Phind(導入・使い方) - Qiita

                                                          みなさんプログラムは書いていますでしょうか。この一年でChatGPTができ、CopilotにCopilot Chatなど色々なAIツールが出ていますが今回お勧めするのはPhindというAIアシスタントです。 Phindとは Phind(Phind.com)とは端的にいえばGPT-4を超えるコーディング能力に特化した言語AIです 参考リンク:大規模言語モデル「Phind」がコーディングにおいてGPT-4を上回る リンク内で言われているように、WebからChatGPTやGoogleのように簡単に使うことができますが、Phindの真髄はここでは味わえません。 Phindの真の実力 Phindの本当の実力はVScode拡張を使うことによって体感することができます。 PhindのベースモデルはPhind-CodeLlamaというものを使っています。これはMeta社が作ったCodellamaというプロ

                                                            本当は教えたくない、VScode拡張の最強プログラミングアシスタントAI Phind(導入・使い方) - Qiita
                                                          • 一休レストランのふつうのRustバックエンド開発 - 一休.com Developers Blog

                                                            この記事は一休.com Advent Calendar 2023 25日目の記事です。 一休レストランでは、よりスムーズな予約体験の提供を目的とするシステムのリニューアルを進めています。その一環として、2023年10月から、レストラン個別ページの表示から予約までのスマートフォンビューにおいて、バックエンドのサーバをRustで書かれたものに置き換えました。 一休レストランの Rust バックエンドが正式リリースされました。https://t.co/7N4VGv5ej9 このページのスマートフォンビューはバックエンドが Rust で書かれた GraphQL になってます— naoya (@naoya_ito) October 4, 2023 本番運用が始まって3か月近く経ちましたが、これまで安定して継続的な開発と運用ができています。これはRustだからと構えることなく、「ふつう」のバックエンド

                                                              一休レストランのふつうのRustバックエンド開発 - 一休.com Developers Blog
                                                            • 【2023年版 優良ツールまとめ】このツールを使っていないエンジニアは人生を悔い改めよ - Qiita

                                                              弊社Nucoでは、他にも様々なお役立ち記事を公開しています。よかったら、Organizationのページも覗いてみてください。 また、Nucoでは一緒に働く仲間も募集しています!興味をお持ちいただける方は、こちらまで。 はじめに 本記事は2023年のエンジニア向け生産性向上ツールの紹介記事です。 2022年11月のChatGPTの登場を機に生成AIは急激な進化をみせ、生成AIに関連したツールが次々と登場しています。ソフトバンクグループの社長である孫正義氏が 「ChatGPTを使ってない人は『人生を悔い改めた方がいい』」と発言 するほど、これからは"どのようにAI等のツールを活用するか"が重要となります。強気の発言ではありますが、活用するのか・取り残されるのかという危機感を強く持つべきとの意図であるといえます。 実際、現代ではITツールを使いこなしてるか否かで生産性に明確な違いが現れるように

                                                                【2023年版 優良ツールまとめ】このツールを使っていないエンジニアは人生を悔い改めよ - Qiita
                                                              • Re: なんで今さら帳票エンジンを新規開発しているのか

                                                                pdfmeとは Website: https://pdfme.com/ TypeScriptで書かれたオープンソースの無料の帳票エンジン。 テンプレートを使って宣言的にPDFを作成でき、サーバー、ブラウザどちらでも動作する。 2022年2月にbeta版としてリリースしてから現在 Version3で GitHubではStartが1500、npmではバラツキはあるが週間1万件くらいのダウンロードがある。 自分が把握しているだけで、世界中で採用事例があり、電子カルテ作成、工場の手順書作成、ECのカスタムパッケージ制作ソフトなど、すでにいろんなサービスに組み込まれている。 この記事ではどのようなモチベーションでpdfmeを開発しているのかということを説明したいと思います。 なんで帳票エンジンを新規開発するのか PDFファイルを作成・編集するという観点ではpdfkitという素晴らしいライブラリが20

                                                                  Re: なんで今さら帳票エンジンを新規開発しているのか
                                                                • フロントエンドのディレクトリ設計思想

                                                                  はじめに フロントエンドのディレクトリ構成、世の中に色んな「推し」が有って悩みますよね。 例えば、、、 さらに最近は、App Directoryの登場や、それに合わせたNext.js公式の「推し」構成がドキュメント化されたりと、さらに色々なパターンが出てきています。 本記事の趣旨 本記事では、具体的な構成そのものではなく、 様々ある構成を横串で見通して整理できる設計思想を紹介します。 新しい推し構成の紹介ではなく、構成を考えたり決めたりするときに役立つ抽象的・汎用的な指針を提供できればと考えています。 基本となる考え 分割の方向 一般的に、アーキテクチャにおける分割には2つの方向が有ります。 (出典も良書なのでリンクを貼っておきます: https://www.amazon.co.jp/dp/4873119820) これはディレクトリにおいても同じだと思っていて、筆者は分かりやすさのために

                                                                    フロントエンドのディレクトリ設計思想
                                                                  • プログラミングの原則:構造化テキストを文字列結合で作らない、置換でいじらない - Uzabase for Engineers

                                                                    こんにちは、ソーシャル経済メディア「NewsPicks」のむとうです。 先日から『Ghost of Tsushima』の開発者が書いた『ルールズ・オブ・プログラミング』という本をちょっとずつ読み進めていて、プログラミング熱が高まっています。この本は大きな指針を示すだけで具体の話をするものではないのですが、読み物として面白いので私も似たようなことをやってみたくなりました。 何年もこういう仕事をしているとバグが入るパターンというのが見えてきます。そしてだいたいどこに行っても何の仕事でも似たようなことをすることになるのですが、今回の話もその一つです。 構造化テキストを文字列結合で作らない、置換でいじらないというのはこれだけみると何のことか分かりづらいかも知れませんがSaaS Product Team セキュアコーディングの啓蒙 第2回 (SQL インジェクション編)の内容とある面では同じ話です。

                                                                      プログラミングの原則:構造化テキストを文字列結合で作らない、置換でいじらない - Uzabase for Engineers
                                                                    • Cursor Proを3日間で300回も使い倒してみた所感

                                                                      はじめに AI搭載コードエディターCursorが話題なので自分にとって使いやすいのか実験してみました。 まだまだCursorの実験途中ではありますが、CursorProをサブスクしてたった3日でgpt-4に332回聞いてました。 Cursorはプロンプトの会話から現在のコードにDiffで提案してくれたり、エラーを解決してくれたり本当に便利で最高なのですが、頼り過ぎも良くないなと反省することもあったので、やったこと全部と感想をシェアしていきたいと思います。 やったこととしては、Cursorのチャットに質問しながら予備知識のないChatVRMというオープンソースのチャットアプリケーションの追加実装をしました。わりと簡単に実装できたこととうまくできなかったことがあるので例を挙げて紹介していきます。 Cursorとは Cursor(カーソル)とは、VScodeをフォークして作られたOpenAIのg

                                                                        Cursor Proを3日間で300回も使い倒してみた所感
                                                                      • ヘルプデスク業務を楽にするためにSlackとGitHub Projectを同期するヘルプデスクツールを自作した - MNTSQ Techブログ

                                                                        こんにちは。MNTSQの下村です。 コーポレートエンジニアとして、MNTSQ従業員の生産系向上施策等を実施していたりします。 ( Twitterもやっている のでフォローしてもらえると嬉しいです! ) 本日は社員からの問い合わせ業務 いわゆる ヘルプデスク業務について効率化するためのツールを自作した 話を書いてみます。 この記事の要約 一人目コーポレートエンジニアとして参画したがヘルプデスク業務が非効率だったので効率化した。 質問に対して特定のemojiを押すとGitHub ProjectsのItemを作成するようにした。 SlackスレッドのコメントとGitHub ProjectsのItemを双方向同期するようにした。 Azure OpenAIも利用して効率化した。 きっかけ 2023年5月からMNTSQの一人目コーポレートエンジニアとして参画しています。 情報システムを色々と整備してい

                                                                          ヘルプデスク業務を楽にするためにSlackとGitHub Projectを同期するヘルプデスクツールを自作した - MNTSQ Techブログ
                                                                        • x=x+1がわからないのは逐次実行がわかっていないからで、記号を変えても解決にならない - きしだのHatena

                                                                          x = x + 1がわからないという話が流行ってました。 で、「=ではなく:=を使えば」とか「イミュータブルにすれば」とかいう話が出たりしてますが、問題をあとまわしにしてるように見えます。 結局のところ、逐次実行がわかっていないことが表面化している場合がほとんどではないかと。 https://speakerdeck.com/kishida/lets-code-a-process?slide=8 プログラム以外の文章は、基本的にひとつの状態を示していて状態が遷移するということがありません。 推理小説なども、最終的な状態が徐々に開示されるだけともいえます。途中から読むと犯人が変わるということはないですね。もちろんそのように途中から読むと犯人が変わるような叙述トリックは可能ですが、通常はそうではないからトリックになるわけで。 つまり、x = x + 1という式は、x + 1という演算を行ってから

                                                                            x=x+1がわからないのは逐次実行がわかっていないからで、記号を変えても解決にならない - きしだのHatena
                                                                          • LINEヤフー Tech Blog コード品質向上のテクニック: 第 1 回

                                                                            こんにちは。コミュニケーションアプリ「LINE」のモバイルクライアントを開発している石川です。 私達は、高い開発生産性を維持するために、コード品質と開発文化の改善に注力しています。 そのために様々な取り組みを行っているのですが、その 1 つとして Review Committee の活動があります。 Review Committee では、マージ済みのコードを再度レビューし、レビューアとオーサーにフィードバックしたり、レビューで集めた知見を Weekly Report と称して毎週共有したりしています。 この Weekly Report で共有される話題は、Android や iOS といったプラットフォームや、Kotlin や Swift 言語固有の注意点も含まれるのですが、多くの場合はプログラミング一般に適用できるものになるように配慮しています。(ただし、説明のために使うコードは Ko

                                                                              LINEヤフー Tech Blog コード品質向上のテクニック: 第 1 回
                                                                            • Next.js に対する Kent C. Dodds の批判と、Lee Robinson のアンサーの要約

                                                                              Next.js に対する Kent C. Dodds の批判と、Lee Robinson のアンサーの要約 はじめに 10 月 26 日に Next.js Conf が開催されましたが、それと前後して Kent C. Dodds (以下 kentcdodds と呼びます) と Lee Robinson (以下 leerob と呼びます) がそれぞれ という記事を公開しました。前者はタイトルの通り、Testing Library の作者であり、Remix の共同創業者の一人でもある開発者兼教育者 kentcdodds が、Next.js を使わない理由について述べたものです。そして後者は、Vercel の VP of Developer Experience である leerob が、主に前者に対する反論を述べたものです。筆者は両方の記事を公開後すぐに面白く読み、そしてどちらにも頷けるところ

                                                                                Next.js に対する Kent C. Dodds の批判と、Lee Robinson のアンサーの要約
                                                                              • テスト自動化から、 開発を支える継続的テストへ

                                                                                2023-11-02 JaSST'23 Kyushu 招待講演 https://www.jasst.jp/symposium/jasst23kyushu.html 実装完了後の手動テストに依存した開発サイクルに継続的テストのアプローチを適用し、段階的に品質を向上する方法について説明しています。

                                                                                  テスト自動化から、 開発を支える継続的テストへ
                                                                                • 大規模言語モデル「Phind」がコーディングにおいてGPT-4を上回る

                                                                                  生成AIを用いた開発者向けの検索エンジン「Phind」が、コーディング能力でOpenAIのGPT-4を上回ったことが明らかになりました。 Phind - AI Search Engine and Pair Programmer https://www.phind.com/blog/phind-model-beats-gpt4-fast Our GPT-4-beating coding model is now the default on https://t.co/epkoFW8Ozz. It's also 5x faster than GPT-4. Learn more in our blog post: https://t.co/PrOFETEbvd— Phind (@phindsearch) PhindはもともとHello Cognition(beta.sayhello.so)として

                                                                                    大規模言語モデル「Phind」がコーディングにおいてGPT-4を上回る