タグ

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

  • Webpack チャンク最適 テクニック - Qiita

    ターゲット 巨大なSPAを作ってしまった人へ 巨大なSPAを作らないように気をつけたい人へ 今回はJSだけにフォーカスするが、もっというと、 超速 を読んでください。 注意:資料は、webpack チャンクの挙動を概念的に説明することを重視しているので、 webpack の詳細な設定や、出力ファイル名などは実際の処理と一致しない。適宜自分の手元にある設定とすり合わせるように。 昨今のJSビルド問題と、その解決のためのゴール設定 巨大なJS(+最近は in JS された各種SVGCSS)はダウンロードだけではなく、UIスレッドのCPUをブロックする。 これはとくにCPUが貧弱な端末で体験が悪化する。そしてビルド時間で開発者体験を阻害する。 できれば webpack 推奨の 144kb 以内にしたい…が現実的に難しいので、 せめて 350kb ぐらいに抑えたい。 SPAなら (ローディン

    Webpack チャンク最適 テクニック - Qiita
    karur4n
    karur4n 2020/02/27
  • ls よりも exa を使おう!モダンな Linux コマンド達を紹介 - Qiita

    上記の画像を見ると分かる通り、カラフルで見やすいですね。右図のようにディレクトリのツリー表示にも対応しています。さらに --icons オプションを付けると、ファイルタイプに応じたアイコン表示も可能です。 bat 続いて cat コマンドの代替である bat の紹介です。 ファイルの拡張子に応じてソースコードを色付けして表示してくれます。また less のようなページャの機能も持っており、行数の長いファイルを渡すと自動でページャモードで開いてくれます。 hexyl hexyl はバイナリダンプコマンド od の代替コマンドです。bat の開発者と同じ方が開発しています。

    ls よりも exa を使おう!モダンな Linux コマンド達を紹介 - Qiita
    karur4n
    karur4n 2020/02/25
  • 要件定義~システム設計ができる人材になれる記事 - Qiita

    はじめに 株式会社デジサク がお送りするプログラミング記事、 今回は要件定義・システム設計について扱っていこうと思います。 プログラミングを勉強していて、こんな事を感じた経験はないでしょうか。 「勉強してもプロダクトが作れない」 「そもそも開発ってどうやるの?」 「要件定義ってなに?」 その悩みを解決するために、まずは開発の全体感を理解しましょう。 下図『ソフトウェア開発プロセス』をご覧ください いつも勉強しているプログラミングは 『実装』 の部分に該当します。 つまり、プログラミングの実力を発揮する前に4つも壁が存在するのです。 そのため、記事では実装(プログラミング)を開始する前に必要となる、 『企画~設計』 について順を追って説明して行きます。 特に、エンジニアが理解しておくべき 『要件定義』『設計』 にフォーカスします。 なお、開発全体において実装(プログラミング)に使用する時間

    要件定義~システム設計ができる人材になれる記事 - Qiita
    karur4n
    karur4n 2020/02/18
  • DXを大幅に低下させるDocker for Macを捨ててMac最速のDocker環境を手に入れる - Qiita

    DXはデジタルトランスフォーメーションではなくてDeveloper Experienceの方です 2020/05/26追記 https://qiita.com/nanasess/items/16ab9274c34bdc34e567 を使うことでVagrantを経由せずにDocker for Macの機能だけでMutagenを使うことができるようになりそうです。 パフォーマンスの測定はしていませんが、Docker for Macの設定のみでこの記事の手法と同等の速度が出るようになるかもしれません。 概要 Macでネイティブでの動作とほぼ同等の速度の安定したDocker環境を手に入れることができたので、その知見について公開します。 ものによりますが、最大10倍程度パフォーマンスの向上が見られました。 具体的な手法としてはVirtualBox + Dockerを用います。 設定は2ファイル50

    DXを大幅に低下させるDocker for Macを捨ててMac最速のDocker環境を手に入れる - Qiita
    karur4n
    karur4n 2020/02/18
  • 年収1000万円を超えるエンジニアが知っておくべき最低限の各言語の特徴 - Qiita

    初めに、そして結論 当は冒頭にこういう言い訳がましいことを書くのは好きではないのだが、例によってディスり成分が多めなので、筆者はそういうキャラということでそこは目を瞑って欲しい。実体験に基づいて書くので業務上あまり触ってこなかった言語については記載が少ないが、読者のみなさんが詳しいことや私の記述で事実と異なる部分については謝罪して訂正したいのでプルリク、コメント等熱望している。あと筆者はサーバーサイドエンジニアであってフロントの事が全然わからんのでその辺はさっぴいて読んでほしい。結論から言うとRustを使え。 古生代 アセンブラ以外の高水準プログラム言語の歴史は1950年代から1であるが、筆者の実体験に基づいて話をするので'80年代まですっ飛ばす。 N88-BASIC N88といえばN88-BASIC(86)を思い浮かべる読者が多いと思うが、筆者はPC-8801mkIIユーザーだったので

    年収1000万円を超えるエンジニアが知っておくべき最低限の各言語の特徴 - Qiita
    karur4n
    karur4n 2020/02/03
  • この TypeScript が Hello, world! のくせに慎重すぎる - Qiita

    この記事は npm へ公開可能なパッケージを TypeScript で作成しながら、JS/TS 開発で良く使われるツールを紹介する記事です。 typescript-npm-starter という名前の Hello, world! パッケージを公開するという体で話を進めます。

    この TypeScript が Hello, world! のくせに慎重すぎる - Qiita
    karur4n
    karur4n 2020/01/28
  • Full-Stack JavaScript meets DDD. - Qiita

    これは 2020-01-10 に開催された、DDD meetup#3 でのLTの内容を記事化したものです。 Vuex+Express環境でどんなアーキテクチャを採用したか、して良かったこと/悪かったことを発表しました(LT資料はこちら)。 問題提起 フロントエンドでDDDを実践しようと考えて、結局採用を見送った経験のある方は以外に多いのではないでしょうか。ドメイン知識はバックエンドに集中させてフロントはできるだけライトウェイトに…。と、がんばっても、どうしても気になるものの一つがバリデーション。些末なことだけどバリデーションはれっきとしたドメイン知識。これだけ半端にフロントにいるの、気持ち悪いですよね? 折角ドメイン知識をその他と分離するなら、フロントとバックでもそれらを共通化したい!できるんです。そう、Full-Stack JavaScriptでの開発なら。 結論 こんなアーキテクチャを

    Full-Stack JavaScript meets DDD. - Qiita
    karur4n
    karur4n 2020/01/24
  • SSL/TLS、HTTPS、サーバー証明書を理解したい - Qiita

    はじめに SSL/TLS、HTTPSについてざっくり理解したのでまとめました。超ざっくりです。 間違っている箇所があれば指摘いただけると幸いです。 前半で用語解説、後半で図解しています。 SSL/TLSとは SSL(SecureSockets Layer)/TLS(Transport Layer Security) SSLとTLSは別物だが、どちらも安全な通信のためのプロトコル(決まり)。 SSLが先に開発されたが、SSLに重大な脆弱性が発見されたため、後継としてTLSが開発された。 いま現在使用されているプロトコルはTLSだが、便宜上SSLやSSL/TLSと呼ばれている。 サーバ証明書、公開鍵、秘密鍵、共通鍵を用いた暗号化方式。 HTTPS通信とは SSLで暗号化されたHTTP通信のこと。 HTTP over SSL/TLS→HTTPS HTTPS通信を行うサーバーにはサーバー証明書と秘

    SSL/TLS、HTTPS、サーバー証明書を理解したい - Qiita
    karur4n
    karur4n 2020/01/24
  • useReducerの本質:良いパフォーマンスのためのロジックとコンポーネント設計 - Qiita

    React Hooksの正式リリース(2019年2月)からそろそろ一年が経とうとしています。Hooksの登場によってReactのコンポーネントは関数コンポーネントが一気に主流になり、クラスコンポーネントが新規に作られる機会は激減しました。 また、React 17.x系ではConcurrent Modeの導入とともにさらに2種類の新フックが追加される見込みであり、いよいよ関数コンポーネントの能力がクラスコンポーネントを真に上回る時代が来ることになります。 この記事では、フックの一種であるuseReducerに焦点を当てて、どのようなときにuseReducerが適しているのかを説明します。究極的には、useReducerによって達成できるパフォーマンス改善があり、ときにはそれがコンポーネント設計にまで影響を与えることを指摘します。 useStateの影に隠れたり、なぜかReduxと比較されたり

    useReducerの本質:良いパフォーマンスのためのロジックとコンポーネント設計 - Qiita
    karur4n
    karur4n 2020/01/20
  • モジュールバンドラを使わないモダン Web 開発を実現する「Snowpack」 - Qiita

    2020/06/08 追記 この記事は Snowpack v1 の記事で、かなり古い内容になっています。先日リリースされた Snowpack v2 については、下記の記事がよくまとまっています。 https://qiita.com/kazuma1989/items/30676cb3d2da1c873507 はじめに Node.js の登場により JavaScript の世界にモジュールの概念が導入されました。そして npm によって多くの JavaScript パッケージが配布されるようになりました。 しかし、Node.js のモジュールシステムは当然ブラウザでは動かず、古の Web ブラウザではモジュールを解決する仕組みがありませんでした。 そのためモダン Web 開発においては、 webpack や Rollup のようなモジュールバンドラを用いて、依存するモジュールを含む単一の Ja

    モジュールバンドラを使わないモダン Web 開発を実現する「Snowpack」 - Qiita
    karur4n
    karur4n 2020/01/15
  • 今さらProtocol Buffersと、手に馴染む道具の話 - Qiita

    Protocol Buffersは別に新しい技術ではない。同時にそれは、未だ知られざる、未だに可能性を秘めた先端のソフトウェア技術基盤である。 新しくないのは事実で、GoogleがProtocol Buffersをオープンソース化したのは2008年のことだし、オープンソース化前に社内で使われ出したのは更に昔に遡るだろう。たぶん。 デザイン的にもJSON対応は後付けで、将来JSONが隆盛を極めることなんか全然想定していなかったのが透けて見えて古くさい。 しかし、同時にどうも情報に聡い人であってもなかなかその真価を実感し得ておらず、ある意味で未知の技術であるらしい。ならば、Protobuf (Protocol Buffersの略)を解説した文書は幾多あれども、それに1を加えるのもやぶさかではない。 Protocol Buffersとは Protobufはスキーマ言語だ! 一般的にはProtob

    今さらProtocol Buffersと、手に馴染む道具の話 - Qiita
    karur4n
    karur4n 2020/01/06
  • 【作業効率化】優秀すぎて課金してでも個人的に使ってるmacOSソフトウェアまとめ【5選】 - Qiita

    はじめに 全部で5つのソフトウェアを紹介します。基macOS対応のみです。Windowsのみなさん、ごめんなさい! 正直あまりにも便利なので、僕が代わりに身銭を切ってでも、皆さんに使ってもらいたいものだらけです。 記事は、特に駆け出しエンジニアの方に読んでいただきたいです。僕がこの業界に入ったときは、とにかく知らないものばかりで、便利なサービスとかも全然使ってなかった(というか、知らなかった)ので、そんな昔の自分のような方のお役に立てたら幸いです。 作業効率化、めっちゃ楽しいし気持ちいいですよ! 優秀すぎて課金してでも個人的に使ってるソフトウェアまとめ alfred 最強のランチャーアプリです。もはやAlfredなしではパソコンがいじれません。すべての操作はAlfredに通じます。 僕は最初、Alfredの無料ユーザーだったのですが、下記記事を見て有料版に移行しました。 Alfred

    【作業効率化】優秀すぎて課金してでも個人的に使ってるmacOSソフトウェアまとめ【5選】 - Qiita
    karur4n
    karur4n 2020/01/04
  • CloudFront 経由で S3 のファイルにアクセスする - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    CloudFront 経由で S3 のファイルにアクセスする - Qiita
    karur4n
    karur4n 2020/01/01
  • Party Parrot とは 〜イカれたオウムの歴史を紐解く〜 - Qiita

    Slackユーザでなくともエンジニアの方なら一度は見かけたことがあるであろうこのGif画像。 Party Parrot という名称で世界中で愛されています。 ただ、このParty Parrotが何者なのかご存知でしょうか。 奇妙でどこか愛らしい彼の、意外と知られていない歴史を紐解いていきます。 きっかけはBBC 全ての始まりは2009年9月4日にBBCが放映した「Last Chance to See」というテレビ番組の1シーンでした。 イギリスの俳優スティーヴン・フライ(Stephen Fry)と動物学者マーク・カーワーダイン(Mark Carwardine)は撮影でニュージーランドを訪れます。 目的は、世界で唯一飛べないオウムであるカカポ(和名:フクロウオウム)を撮影することです。 Mnolf - Photo taken on Codfish Island (Whenua Hou), N

    Party Parrot とは 〜イカれたオウムの歴史を紐解く〜 - Qiita
    karur4n
    karur4n 2019/12/25
  • lodash やめ方 - Qiita

    みなさん、 lodash で消耗してますか? 私は消耗しています。 なぜ lodash で消耗するかというと、とにかく思考停止でインストールされ、 node_modules 下で大量に重複します。サイズが大きいlodashが複数バンドルされてビルドされると、重篤なパフォーマンス上の問題を引き起こします。 lodash には実装上の問題もあり、異様に丁寧に、そして富豪的に作られており、その結果ビルドサイズが無駄に大きいです。丁寧に作られて入るのですが、現代のフロントエンド水準や一般的なポリフィルと噛み合っていません。というわけで、常々やめたいと思っています。 ちゃんとES201xを追ってる人からすると、ほとんどの lodash のメソッドは不要に見えるはずです。エントリは、思考停止で lodash で実装しようとする人に、ちょっと考え直しては? と投げつける用の記事になります。 現代におい

    lodash やめ方 - Qiita
    karur4n
    karur4n 2019/12/23
  • PostgreSQL ですべてのテーブルを削除する方法 - Qiita

    データ移行とかバックアップファイルのリストアの検証時にまっさらな状態のDBが欲しくて、何度もテーブル削除することがたまにあるんですが、テーブル数が多いとひとつずつ削除するの面倒だし、外部キー制約があると削除順にも気をつけないといけなかったりしてとても面倒です。 そんなときはこんな感じで一掃できる模様。(当にこのままやったらできた。)

    PostgreSQL ですべてのテーブルを削除する方法 - Qiita
    karur4n
    karur4n 2019/12/17
    “69”
  • [初心者向け] プログラムの計算量を求める方法 - Qiita

    はじめに この記事では、プログラムの計算量を求める方法を説明します。プログラミングの初心者向けに、厳密さよりも分かりやすさを優先して説明していきます。 サンプルコードについて この記事のサンプルコードは、C言語(C99)で記述しています。 計算量とは? 計算量とは、 「そのプログラムがどれくらい速いかを大雑把に表す指標」 です。 もう少し正確に言うと、 「入力サイズの増加に対して、実行時間がどれくらいの割合で増加するかを表す指標」 です。 グラフによる計算量の表現 計算量をグラフで表すと、以下のようになります。 これは、**「入力サイズ $n$ が増加するにつれて、実行時間が $n$ に比例して増加する」**ということを表しています。 別のグラフも見てみましょう。 これは、**「入力サイズ $n$ が増加するにつれて、実行時間が $n^2$ に比例して増加する」**ということを表しています

    [初心者向け] プログラムの計算量を求める方法 - Qiita
    karur4n
    karur4n 2019/12/17
  • React に優しい僕でありたい - Qiita

    注意書き (2019/12/16 追記) こちらのコメント を受けて追記します。 コメントにあるように、React Developer Tools が示している「レンダリング」とは、関数コンポーネントの体(あるいはクラスコンポーネントの render())が呼ばれること、そして結果として仮想DOMの差分検出処理(リコンシリエーション)が走ることを指しています。よって、緑の枠がなんども表示されるからと言って、そこにかかる処理のコストは多くの場合高くないので、そこを減らすためのパフォーマンスチューニングがコストに見合うことはあまりないかと思いますので、この記事を参考にする場合は注意してください。 ただこの記事で紹介した react-redux の useSelector に shallowEqual を渡す手法や、コメントにある React.memo を使用すること自体は最適化の方法として正

    React に優しい僕でありたい - Qiita
    karur4n
    karur4n 2019/12/15
  • Angular と Firebase で月間PV1億超えの PWA を作った話 - Qiita

    はじめに これは Angular Advent Calendar 2019 10日目の記事です。 こんにちは (。・ω・。) Angular と Firebase で CGM サービス(一般ユーザー投稿型サービス)を開発している者です。 早いもので、Angular Advent Calendar も 3 回目の参加となります。 例年ではなんとなく不吉な 4 日目をいただいていたのですが、今年も募集当日にエントリーしに行くと既に 9 割ほどの枠で参加表明があり、狙っていた? 4 日目も埋まっていました。 (どこでも良いので他の人が嫌がる確率が高そうなところに入ったろの精神 今まで #1 しかなかったカレンダーが今年は勢いそのまま #2 まで誕生し、ここ 1 年での Angular コミュニティの成長を実感しています (ノ゚∀゚)ノ 小話はこの辺で... この記事では、約 2 年間 Angul

    Angular と Firebase で月間PV1億超えの PWA を作った話 - Qiita
    karur4n
    karur4n 2019/12/14
  • NimでAPIドキュメントを書く - Qiita

    まえがき Nimの標準ライブラリのドキュメント整備のissuesに参加したときに、Nimのドキュメントを書く方法についていろいろ知見を得ました NimAPIドキュメント書いてドキュメント生成する方法について書きます。 APIドキュメントの書き方 Nimのドキュメンテーションコメント Nimではコメントを書く時に#と書きますが、ドキュメンテーションコメントを書く時は##と書きます。 以下のように書きます。 ## sample.nimAPIドキュメントのサンプルです。 ## ## これはトップレベルのドキュメンテーションコメント。 var v1* = 1 ## v1 は1が入っています。 ## 複数行のテキストも表現できます。 const v2* = 2 ## v2 は2です。 ## こちらも複数行のテキストを表現できます。 v3 = 3 ## v3 は非公開なのでドキュメントが生成され

    NimでAPIドキュメントを書く - Qiita
    karur4n
    karur4n 2019/12/14