タグ

ブックマーク / qiita.com (982)

  • 凄腕エンジニアさんから学んだ例外の話 - Qiita

    はじめに 今携わっているプロジェクトで凄腕エンジニアさんと一緒に開発をさせていただいているのですが、その凄腕エンジニアさんから教えていただいた例外の話がとても勉強になり、 さらにこの例外の話を他のプロジェクトエンジニアさんに伝えたところ、反応が良く、とても勉強になりました!という声をいただけたので、アウトプットしていきたいと思います。 (この記事の中で凄腕エンジニアさんのことはTさんと呼ぶことにします。) ※【凄腕エンジニアさんから学んだ例外の話】の補足 というQiita記事を書きました。 この記事を読み終わった後に疑問が残った人などは補足資料として読んでいただけると嬉しいです。 例外の考え方の源 Tさんの例外の考え方は http://diveintopython3-ja.rdy.jp/your-first-python-program.html#exceptions ↑こちらのPyth

    凄腕エンジニアさんから学んだ例外の話 - Qiita
    n314
    n314 2023/06/27
    自分なら入力不備も申請済みも例外にしないかな。もしこの異常をビジネスロジック層でも考慮するなら例外だけど、その場合はcatchせずにサーバーエラーにする。入力チェックプログラムのバグという扱い。
  • jQueryへの別れ:現代的な開発のための必須JavaScriptメソッド - Qiita

    はじめに 私は長い間レガシーコードと共に仕事をしてきましたが、jQueryの重要性は依然として頻繁に話題に上がるトピックの一つです。ライブラリ自体は便利なままですが、それは別の時代のニーズを完璧に満たしていました。 現在、私たちは既にES2023について話していますが、過去にjQueryがカバーしていたほとんどの機能は、すでに2015年にリリースされたES6に取り込まれています。 ES6の標準は既に広範にサポートされており、96%のレベルに達しています(出典:caniuse.com)。そのため、特に要素の選択、スタイリング、アニメーション、データの取得などの基的なタスクについては、ライブラリの使用を見直す良いタイミングかもしれません。 以下のトピックは、いくつかの標準的なjQueryのパターンと、それに相当するバニラJavaScriptでの手法を示す参考資料として役立つと思います。 要素

    jQueryへの別れ:現代的な開発のための必須JavaScriptメソッド - Qiita
    n314
    n314 2023/06/24
    こういうclass指定でdom取ってきて見栄えを変える的な処理こそjQueryを使うべきでは。
  • 「もう1年以上JavaScript書いてるのに、どっちがshiftなのか覚えられないんだけど?!」 - Qiita

    shift() / unshift() is 何? JavaScriptには、配列の末尾に要素を追加するArray.prototype.push()と、末尾から要素を取り出すArray.prototype.pop()メソッドがあります。これ自身はJavaScriptのメソッド名である以前にスタック操作の用語であり、また語の持つイメージとしてもわかりやすい気がします。 一方、配列の先頭に要素を追加するArray.prototype.unshift()と、先頭から要素を取り出すArray.prototype.shift()はどうでしょうか? お...覚えられない...🌋!!!せめて取り除く操作はdequeueであってくれ...🥺 (ggれば一瞬だからそもそも覚える必要がないとか、そんな悲しいこと言わないでください) かくいう私も一向に覚えられず、MDNとエディタを往復する日々を過ごしていま

    「もう1年以上JavaScript書いてるのに、どっちがshiftなのか覚えられないんだけど?!」 - Qiita
    n314
    n314 2023/06/21
    全体ががさっと動くイメージがある。ビット演算でもシフトであふれた桁は消えるし、取り出すというよりは元の配列自体が変更されて少なくなるイメージ。取り出すのはおまけ。
  • 後輩エンジニアを絶望させるDB設計方法4選 - Qiita

    エンジニアの格闘 エンジニアのみなさんはかつてひどいコードや設計と直面し、それと格闘したことでレベルアップした経験はあるでしょう。 つまり、先輩エンジニアたるものクソコードやクソ設計を残して、後輩エンジニアのレベルアップに寄与するのは義務だと言っても過言ではありません(?) 今回はDB設計に焦点をあてて、そのように絶望させる設計の残し方を記しておきます。 初めての投稿なのでレベル的にはかなり初歩になっています。 ↑きっと彼も立派なエンジニアになった時感謝してくれるでしょう 1) 必要な正規化を行わない エンジニアという不思議な不思議な生き物は処理の共通化等なにかと処理をまとめたがる習性があります。 以下のように著者テーブルと書籍テーブルがあるとします。 書籍 書籍ID 書籍名 著者ID

    後輩エンジニアを絶望させるDB設計方法4選 - Qiita
    n314
    n314 2023/05/31
    学生一覧が先にあって各自メールアドレスを後で登録してもらうアプリと、まず自動発行のメールアドレスが先にあって名前を後で登録するアプリとではDBも変わりそう。どっちも対応するなら徹底的に正規化かな。
  • Laravel環境下でPDFを出力する際の注意点(DomPdf) - Qiita

    Laravel Advent Calendar 2022 4日目の投稿です。 目的 Laravelでウェブサービスを構築時にPDFを出力する場合の考慮すべき点、注意点について書きます。 動作環境 Docker PHP-8.1.33 laravel-9.19 laravel-dompdf-2.0 lara-pdf-merger-2.0 なお説明のため、プロジェクト名を sample-pdf-gen としておきます。 PHPPDFを出力するライブラリの候補 PHP言語でPDFを出力したいというニーズは昔からあるため、新旧様々なライブラリが存在します。主にこれらが有名所でしょう。 tcpdf 大昔からある老舗のPDF出力ライブラリ。内部のAPIを叩いて少しずつPDFを生成していく fpdi 既存のPDFをテンプレートとして他のテキストや図形を合成できるライブラリ。書き込むAPItcpdfと同

    Laravel環境下でPDFを出力する際の注意点(DomPdf) - Qiita
    n314
    n314 2023/05/24
    PDFの情報って全然無いよねえ…。使い勝手の良い新しいライブラリも出てこないし。作るのがめっちゃ面倒なんだろうね。
  • LOCAL環境でHTTPSが必要なときはlocal-ssl-proxyが便利 - Qiita

    nextauth.js でシングルサインオン機能を実装する場合、SlackなどはアプリケーションがHTTPS接続をサポートしていることが前提となっており、開発時にもHTTPSのサポートが必要となる場合があります。このような場合には、local-ssl-proxyを利用して、リバースプロキシのようにする方法が簡単で便利です。 以下、LOCAL環境=Windows PC、という前提です。 local-ssl-proxyのインストール local-ssl-proxyはグローバルインストールしかサポートしていません。ので、グローバルインストールします。

    LOCAL環境でHTTPSが必要なときはlocal-ssl-proxyが便利 - Qiita
    n314
    n314 2023/05/22
    これだけSSLが必須になっても、まだ定番の開発方法は無いのかな?自分は本番ドメインの上に開発用のサブドメイン作って証明書を持ってきてる。
  • 「シェル」は貝殻でなく種の殻に由来すると思い込んでいる異常者がGPT4に誘導尋問した結果 - Qiita

    すごい昔に書いたポエムへのアンサーソング シェルって貝殻じゃなくて植物の種の殻だよね - Qiita TL;DR 結論から書くと一般的には貝殻です。 貝殻であるという声が多数派であることを知った上で、一時的にでも種の殻だと思い込ませて仲間を増やしたかったんですが無理でした。 要約 カーネル(kernel)とは: オペレーティングシステムの中心部で、ハードウェアとソフトウェアのインターフェースを提供します。 システムの主要な制御を担当し、ハードウェアリソースの管理とタスクのスケジューリングを行います。 英語で"kernel"は「種子」や「核」を意味し、この概念はオペレーティングシステムの「中心部」という役割を比喩しています。 シェル(shell)とは: ユーザーとシステムのカーネルとの間のインターフェースを提供するプログラムです。 ユーザーからのコマンドを読み取り、カーネルに送り、結果をユー

    「シェル」は貝殻でなく種の殻に由来すると思い込んでいる異常者がGPT4に誘導尋問した結果 - Qiita
    n314
    n314 2023/05/17
    すごい。内容わかってる。そしてコメントもすごい。
  • ChatGPT(GPT-4) で一撃でスクレイピングするコードを生成出来たので感想とコツ - Qiita

    今回やりたかったこと 目標:ChatGPT(GPT-4) で一撃でスクレイピングするコードを生成 するにはどうしたらいいのか、ChatGPT のハードルとかコツとかを知りたい。 ※最終的なプロンプトの入力と出力の全文はページ下部に貼り付けてます。 作ったもの概要 保険組合のウォーキングイベントの会社内の3チームの歩数進捗の slack への自動投稿 bot を作成しました。 処理は大きく2つに分かれています。 ウォーキングイベントサイトから歩数をスクレイピング&スプシへアップロード スプシの GAS で投稿文字列作成& slack へ自動投稿 今回 ChatGPT でやったのは1の方です。 2は前回半年前開催分のコードをほぼそのまま流用しました。 運良く(?)今回のタイミングでウォーキングイベントのサービスサイトが変わり、 HTML がまるっと変わり1のスクレイピングコードは作り直しが必

    ChatGPT(GPT-4) で一撃でスクレイピングするコードを生成出来たので感想とコツ - Qiita
    n314
    n314 2023/05/11
    これがもっと洗練されてきたら、独自の言語を作ったりとかして、文明が崩壊した後に意味も分からず道具を利用しているSFみたいになるのかな。
  • 【個人開発】世の「家事やれよ論争」を撲滅するスマホアプリをリリースしました - Qiita

    なぜ家事は紛争を呼ぶのか 私の周りも結婚・出産をする友人が増えました。 そこで必ずと言っていいほど上がる議題がこれ。 「夫()がぜんっぜん家事をやらない」 日で婚姻制度が発足してから早100年。 これだけ長い年月「夫婦」という形が取られているのに、なぜこんなにも初歩的な不満が世に蔓延するのでしょう。 私も結婚して5年経ちます。 知人からの愚痴なども収集した結果、いくつかの原因が考えられました。 その1. 人は「自分が一番やってる」と思う生き物である これは私がサラリーマンとして働いてて出した結論です。 殆どの人が「自分は結構仕事してる」と思いがちです。(これはマジ) 少なくとも同等の仕事量だとまず間違いなく「自分のほうが仕事してる」と勘違いします。 そのため、仮に夫婦が全く同じ量の家事を分担してたとしても、 それが正確に見える化されない限り、必ず「俺(私)のほうが家事をやってる」と

    【個人開発】世の「家事やれよ論争」を撲滅するスマホアプリをリリースしました - Qiita
    n314
    n314 2023/04/24
    見える化や効率化をしようと報告義務を現場に義務付けたら、そんな暇あるかって反発されるやつ。あれ実際にはどうやって解決するんだっけ?
  • リバーシの全消しパターンを見てみたい! - Qiita

    はじめに どうも、y-tetsuです。 突然ですが、皆さんはリバーシ(オセロ)を遊んでいて、全部黒!!や、全部白!!みたいな全消し(全滅、パーフェクト勝ち、完全試合とも言われるようです)の場面を実際に見たことがありますか? 残念ながら、私はありませんでした。 物心ついた頃に幾度かプレイしておりましたが、周りに特段強い人もおらず、全消しなんてのはおおよそ漫画の出来事ぐらいにしか思っておりませんでした。 大人になってふと振り返った時に、全消しの状況が一体どんないきさつで生まれるのか、非常に興味がわいてきました。 幸い、それを確かめるために必要な多少のプログラミング知識が、今はあります。 記事は、そんな私の子供の頃の何気ない疑問を解消するためだけに行った、簡単な取り組みとその結果をご紹介する記事です。 やったこと 身も蓋もありませんが、先に記事の肝をさらすと次のようになります。 ランダムな打

    リバーシの全消しパターンを見てみたい! - Qiita
    n314
    n314 2023/04/19
    初心者から中級者になる手前ぐらいの段階で、序盤は少なく取る方が有利というのを雑にやっちゃうと、途中で全部取られて負けがある。あと、強さに差がありすぎると角から順に埋められて全部取られる。
  • あなたはフロントエンドの何をテストしたいのか。 - Qiita

    フロントエンドのテストをしよう Webのフロントエンドの自動化を進めようか。という話をしていて、 「そもそもテストってなんだ?」 「フロントエンドに特有のテストってなんだ?」 「〇〇ってツール流行ってるらしいってどうよ?」 みたいなことを話をしていました。そうしたときに、やっぱり知識足らねぇなぁ。と思ったので、2,3日でゴリゴリと内容をまとめてみる作業をしてみました。 あんまりこういう書き方はしないんですが、私自身散発的な思考で、フロントエンドのテストを調べることをしたので、そのような語り口で書いてみようと思います。 以下の内容は、あくまで例なので、別にこういう仕事があったわけではないです。 とりあえず投げられた要求・仕様 とりあえずなんか仕事が振ってきた。パラパラと要求を聞いてみると、こんな感じだった。 承認のダイアログが欲しい メッセージのフォントはOswald メッセージは変更できる

    あなたはフロントエンドの何をテストしたいのか。 - Qiita
    n314
    n314 2023/04/18
    CSSいじったら別の箇所で表示崩れてないかどうか。
  • 【Linuxカーネルを読む】ChatGPTで爆速コードリーディング - Qiita

    はじめに OpenAIによって開発されたChatGPTが話題になっています。特に、2023年3月14日に公開された最新モデルであるGPT-4は、これまで私達がAIに持っていた認識を根底から覆したのではないでしょうか? 私は、「普通に人間とやりとりしているのと変わらんやん…」と率直に驚きました。 エンジニアの業務の中でも、自動コーディング支援、技術的課題の壁打ち相手、ドキュメント自動生成、学習支援等さまざまな用途に活用する可能性を皆さん検証している段階です。私もその波に乗っている真っ最中です。 そこで今回は、ソースコードリーディングをChatGPTをメンターにしたら爆速にできるのではないか?という仮説を検証してみました。 そしてどうせやるなら、ソースコードリーディングのハードルの高さナンバーワン(個人調べ)の「Linuxカーネル」を題材にしてみました。 なお、使用したモデルはGPT-4です。

    【Linuxカーネルを読む】ChatGPTで爆速コードリーディング - Qiita
    n314
    n314 2023/04/12
    最初から6割ぐらい理解している人にとってはいいかもしれない。回答が間違ったままで信じて進んだら伝言ゲームみたいにどんどんズレていったりしないんだろうか?
  • 何故Javaは敬遠されるのか? - Qiita

    何故かJavaは敬遠される!? 筆者はIT業界に努めて17年ほどです。 SESとして働きに出ることが多かったのですが、近年はWebエンジニアとして PHP(Laravel)を使った開発が多くなってきています。 そんな開発現場ですが、プログラミング言語の話題に上がると 「Javaはわからない」 「Javaって難しいんでしょ?」 「環境構築がなぁ・・・」 なんて話をよく聞きます。 私はJavaの方が経験した期間が長かったので、特にそういった苦手意識は無いのですが Laravelの現場でもそういった話を聞くので、 「フレームワークの特性や、コードの書き方は結構似ているところが多いのに、何でみんな苦手なんだろう?」 と思ってしまうのです。 今回はそのギモンについて、私が思っていることを書いていきます。 (注:Java嫌いな人を論破したいわけではありませんw) 原因その1:インフラ構造上、難しいと思

    何故Javaは敬遠されるのか? - Qiita
    n314
    n314 2023/02/22
    メモリリークが見つからなくて悪しき定期再起動運用したことある。PHPだとメモリリークは起こらない。あとJava自体の後方互換性はいいんだけど環境全体がちょっと古いときに依存関係で苦労したような。
  • PostgreSQLのプライマリーキーはSERIALとUUIDのどっちが速いのか実験してみた - Qiita

    注意 この記事の実験は実際の運用を正確に反映していない恐れがあります(コメント欄の @hmatsu47 さんの投稿を参照)。 実務のアプリケーションでは異なる結果になる可能性もあるので、記事の内容はあまり鵜呑みにせず参考程度に留めておいてください。 ※「実務に近い環境で実験してみた」という投稿もお待ちしています! はじめに データベース(この記事ではPostgreSQLを対象とします)の主キーは1,2,3のような連番の整数値を主キーにするSERIALと、"00009236-b73c-4338-8ebd-e1f6c4f4fdd8"のようなランダムな文字列を主キーにするUUIDがあります。 それぞれメリットとデメリットがありますが、パフォーマンスについてはどうでしょうか?なんとなくSERIALの方がシンプルなぶん、速そうなイメージがありますが、実際はどうなのか調べてみました。 実行環境 Ma

    PostgreSQLのプライマリーキーはSERIALとUUIDのどっちが速いのか実験してみた - Qiita
    n314
    n314 2023/02/08
    uuidって複数のノードから同時に書き込んでも競合しないのがメリットじゃなかったっけ?値をDBで生成するならserialでいいような。
  • 新しいPCでgitの環境構築 - Qiita

    GitLabプロジェクトをクローンするまでの方法を記載します。 Gitのインストール 以下を参考にしてGitをインストールする。 【Windows】Gitの環境構築をしよう! 公開鍵と秘密鍵を作成 以下を参考にして公開鍵と秘密鍵を作成する。 GitLabリポジトリをローカルにクローン(clone)する手順 GitLabに公開鍵を追加 以下を参考にしてGitLabに公開鍵を追加する。 GitLabリポジトリをローカルにクローン (clone)する手順 gitconfigを修正 以下を実行し、gitconfigファイルを開く。 git config --system -e 以下をコメントアウトする。

    新しいPCでgitの環境構築 - Qiita
    n314
    n314 2023/02/03
    なんでブクマ集まってるの?社内のお知らせ的な…?
  • シェルスクリプトでlsをパイプでつなぐのはなぜ悪いのか ~ ShellCheck: SC2010, SC2011, SC2012 とファイル名改行問題 - Qiita

    シェルスクリプトでlsをパイプでつなぐのはなぜ悪いのか ~ ShellCheck: SC2010, SC2011, SC2012 とファイル名改行問題ShellScriptUNIXshellシェル芸POSIX はじめに シェルスクリプトで ls コマンドの出力結果(ファイル名一覧)をパイプで他のコマンドに渡して処理するのは推奨されません。ls コマンドを使ったコードを ShellCheck で検査するとおそらく問題があると警告が表示されるでしょう。ls を使うなという指摘自体には賛成なのですが SC2010、SC2011、SC2012 に書いてある理由については正しい説明がされていないと思っています。この記事ではなぜ ls の出力結果を他のコマンドにパイプで渡すのが悪いのか、ls を使わずに実現するにはどうしたら良いのかを解説したいと思います。一つ補足をしておくと、この問題は CLI コマ

    シェルスクリプトでlsをパイプでつなぐのはなぜ悪いのか ~ ShellCheck: SC2010, SC2011, SC2012 とファイル名改行問題 - Qiita
    n314
    n314 2023/01/09
    ファイル名に制御文字が使われる可能性のある環境だったら、どんなシェルスクリプトでも動かしたくない…。
  • Elixir自社プロダクト「Bright」①:「今のIT業界でエンジニア/プログラマは適正に評価されない」と 25年間、思い悩んだ結果、「自社から変えよう」と始めて2年後、プロダクト化に至る - Qiita

    Elixir自社プロダクト「Bright」①:「今のIT業界エンジニア/プログラマは適正に評価されない」と 25年間、思い悩んだ結果、「自社から変えよう」と始めて2年後、プロダクト化に至るElixirSaaSスキルシートfukuoka.exBright この記事は、Elixir Advent Calendar 2022 10の24日目です 昨日は、私で「Eixirで機械学習に初挑戦⑥:いま、Elixir AI・MLで何が出来る?→ElixirでAI・MLを構築するメリット→2023年にElixirで攻略する領域」でした 【2023/12/26追記】 皆さまに沢山、応援いただいたコラムの続編をアップしました その後、Brightがどうなったかの後日談を、どうぞお楽しみください Merry Xmas! piacere です、ご覧いただいてありがとございます 今回は、なんだかエモいタイトルで

    Elixir自社プロダクト「Bright」①:「今のIT業界でエンジニア/プログラマは適正に評価されない」と 25年間、思い悩んだ結果、「自社から変えよう」と始めて2年後、プロダクト化に至る - Qiita
    n314
    n314 2022/12/27
    いい読み物だと思ったけどブコメだとそうでもないのな。プログラマーっぽくないから?実際の事業とかリンクとかの具体例が無いから?
  • それ、非再帰で書けます - Qiita

    この記事は再帰自体を全否定する趣旨ではありません。 両方の良さを理解した上で非再帰で書きたいと思ったときの参考にしていただければと思います。 まだ再帰関数書いてるの? 再帰関数はプログラミング言語の有用な機能で、深さ優先探索をベースとする様々なアルゴリズムの実装として有用です。 その一方で、関数呼び出しはオーバーヘッドが大きく、定数倍が弱くなります。また、JavaPythonなどのスタック領域の制限が厳し目の言語では深すぎる再帰のせいでRuntime Errorが発生する場合があります。 C++などのコンパイル言語ではインライン展開によって関数呼び出しのオーバーヘッド解消されることもありますが、再帰関数は中でもインライン展開の難易度が高く、深い再帰ではそのまま実行せざるを得ない状況になります。 ところが、再帰関数は生のスタックを自分で用意するなどして非再帰に書き直すことができます。(「停

    それ、非再帰で書けます - Qiita
    n314
    n314 2022/12/20
    言語を指定しないのなら、末尾呼び出し最適化について触れないといけないんじゃないかな?
  • 名前空間をさっくり理解する - Qiita

    名前、つけてますか? PHPにはnamespace(名前空間)という言語機能があります。 原初のPHPにはなかったのですが、PHP 5.3くらいからあるので、まあ平安時代には成立していたということです。それ以前の時代は App_Http_Controllers_User のような _ 区切りの擬似名前空間が用いられていたことがありました。現在では App\Http\Controllers\User のような \ 区切りの名前空間が利用できます。 名前空間付きのコード 名前空間が見慣れないという方のためにnamespaceのあるコードとしてLaravelで自動生成したControllerファイルの例を先に出しておきます。 <?php namespace App\Http\Controllers; use App\Models\Book; use App\Http\Requests\Store

    名前空間をさっくり理解する - Qiita
    n314
    n314 2022/12/17
    書いてるときは短い名前がいいんだけど、何かバグがあるとか大きなリファクタリングするときとかはgrepもするので、長い名前が見つけやすい。PHPStanで全てカバーできてたら不要だけどテンプレートから直接とかある…。
  • 初学者のための正しいシェルとカーネルの概念 ~ 大学も技術者認定機関も間違いだらけ - Qiita

    なんだろう、嘘つくのやめてもらっていいですか? 大学も技術者認定機関も、いつまで古いまたは間違ったシェルとカーネルの概念を説明し続けるのでしょうか? シェルはカーネルの言葉をユーザーの言葉に翻訳したり、出力結果をユーザーに中継したり、カーネルを防御したりする層ではありません。指定したコマンドを実行するだけのプログラムです。勉強中の学生か代理執筆業者が適当な文献を調べて書いたとしか思えません。そして他人の説明を自分の言葉に置き換えるのが上手い人がおかしな説明をさらに広めています。個人サイトやオンライン学習サイト程度であれば適当なことを書いていても気にも留めませんが、大学や技術者認定機関のような正しいことを書いているに違いないと思えるような所までもが間違ったことを書いているから困ったものです。 みなさんは大学や技術者認定機関が言っていることなら正しいと思いこんでいないでしょうか? そんなことあ

    初学者のための正しいシェルとカーネルの概念 ~ 大学も技術者認定機関も間違いだらけ - Qiita
    n314
    n314 2022/12/13
    確かに間違った説明を見た気がする。でもシェルについてはさらっと流されててあまり詳しい解説を見たことが無いような気もする。