タグ

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

  • エンジニアリングマネージャ/プロダクトマネージャのための知識体系と読書ガイド - Qiita

    記事は、Engineering Manager Advent Calenderの1日目です。 はじめに エンジニアリングマネージャ(EM)と呼ばれる職務を設置する企業が増えてきました。 私たちの主催したイベントEOF2019でも700名近い方に参加していだき、また多くの方にご協力いただき成功裏に終わることができました。 EM Meetup/EM.FMなどのムーブメントの中心の一翼を担わせていただき、その高まりを感じる一方で不安も感じます。このエンジニアリングマネージャという職務は非常に多岐にわたるケースが存在していますし、必要だとされるスキルもまちまちです。そして、多くの場合、その企業のステージや状況ごとに求めるものは違います。また、求めていることを明文化することすらされていないケースも存在します。 このことから、エンジニアリングマネージメント自体が一時的な潮流として消費され、消えていっ

    エンジニアリングマネージャ/プロダクトマネージャのための知識体系と読書ガイド - Qiita
  • スケールする要求を支える仕様の「意図」と「直交性」 - Qiita

    はじめに どんなソフトウェアエンジニアも拡張しやすくメンテナンスしやすいソフトウェアを作りたいと思っているはずです。また、どんなプロダクトマネージャも同様に拡張しやすいシンプルな要求を作りたいと考えているはずです。 しかし、将来の不確実性や発展性に対して見通しを立てるのは難しいものです。そのため、開発チームの思いとは裏腹にソフトウェアの複雑性はどんどんと増大していきます。気がついたら技術的負債と呼ばれるような手もつけられない泥団子になってしまうということもしばしばです。誰もが生産性を下げるために機能を追加したいわけではなく、ビジネス価値を提供するために機能を追加したいだけなのにです。 このような状況を避けるためにはどうしたらよいのでしょうか。今回はその一つの手段として、要求には隠れた「意図」があり、それを発見していくことの重要性についてまずはお話しします。さらにわかりやすい要求が持つ仕様の

    スケールする要求を支える仕様の「意図」と「直交性」 - Qiita
  • Reactのkeyを使って、意図的な再レンダーを走らせる - Qiita

    「え?keyって無駄なレンダリングが走らない様にするためのものでしょ?」 その通りなのですが、今回は逆に利用する方法を紹介します。 仕組み keyは異なるレンダー間でどの子要素が変化しない可能性があるのかについてヒントを出すことができるものである 公式 逆に、keyが違う(変わった)のであれば、それは別物として扱われる 利用例1、defaultValueの変更 defaultValueは、非制御コンポーネントの場合に用いる初回のみ設定可能な入力値です。 初回のみなので後から変更することができないのですが、これを変更したいケースがあります。例えばdefaultValueにAPIから取得した値を入れたい場合、具体的には編集フォームで編集元データをfetchしてくるけれど、その前からスケルトンとして入力フォームは見せておきたい場合です。 まずは動かないコードです。 前述の通り、defaultVa

    Reactのkeyを使って、意図的な再レンダーを走らせる - Qiita
  • コーディングのようにノートを取る技術 - Qiita

    はじめに 何かを学習するとき、ノートを取っているでしょうか? 小学生の頃や中学生・高校生の時の「ノート」は紙に手書きだったかと思います。 しかし、最近になってからはパソコンを使ってノートを取る、という選択肢が増えました。 その変遷の中で生まれたパーソナル・ナレッジ・マネジメント(Personal Knowledge Management) という考え方があります。 その考え方を共有できたらと思います。 直感的なデジタルノート術の原罪 ケース1: ひたすらに手を動かす 学生の頃、黒板に書かれた内容をそのまま必死にノートに写している人がいたのを覚えていますか? また、その人は成績が高かったでしょうか? たいていの場合、成績は乏しい人が多かったと思います。自分もそのタイプでした。 手を動かすだけのノート術の不幸な点は、「考える」というアクティビティが行われないため、当の意味で筋肉を動かすだけと

    コーディングのようにノートを取る技術 - Qiita
  • JavaScriptで文字数を数えるのはそんなに簡単ではない - Qiita

    はじめに JavaScriptにて文字数をカウントする方法に関する記事をいくつか目にする機会があり、今回実際に記事を参考に調べてみました。 簡単そうに見えて意外と難しいです。 String.length Googleなどで「JavaScript 文字数 カウント」とかで検索すると真っ先に出る方法です。 MDN公式ではString.lengthに関して以下のように説明されています。 length プロパティは String オブジェクトの文字列長を UTF-16 コードユニットの数で表します。 length は、 string インスタンスの読み取り専用データプロパティです。 UTF-16 コードユニット ざっくりと説明するならUnicodeで割り当てられた番号をUTF-16 という文字コード方式で割り当てられた各文字に対応するIDを指します。 難しい単語がいくつか出てきているので1つずつか

    JavaScriptで文字数を数えるのはそんなに簡単ではない - Qiita
  • OAuth アクセストークンの実装に関する考察 - Qiita

    はじめに この記事では、OAuth 2.0 のアクセストークンの実装に関する考察を行います。記事の執筆者人による動画解説も『OAuth & OIDC 勉強会 【アクセストークン編】』で公開しておりますので、併せてご参照ください。 English version of this article is here → "OAuth Access Token Implementation". 1. アクセストークン実装方法の分類 OAuth のアクセストークン※1の実装方法は認可サーバーの実装依存です。 実装依存ではありますが、RFC 6749 の『1.4. Access Token』にある次の記述が示唆するように、 The token may denote an identifier used to retrieve the authorization information or may

    OAuth アクセストークンの実装に関する考察 - Qiita
  • フロントエンドエンジニアが最低限知っておきたい gRPC のこと - Qiita

    はじめに 受託開発企業でフロントエンドエンジニアを1年ほどやっているものです。直近2ヶ月間 gRPC を使用する案件にアサインされたのですが、「フロントエンドエンジニア視点からみた gRPC 」 に関する記事が少なく、キャッチアップするのにかなり苦労しました。この記事では「フロントエンドエンジニア」 が gRPC について最低限知っておかないといけない概念や技術などをざっくり解説したいと思います。 この記事の対象者 フロントエンドエンジニアgRPC 案件に突然アサインされた人 フロントエンドエンジニアgRPC について知りたい人 フロント側から見た gRPC について知りたい人 この記事で触れないこと メリット / デメリットとか マイクロサービスがどうこうとか REST との比較とか その他の深い内容 おさらい この記事に辿り着く前に色々調べて既にご存知の方もいらっしゃるかと思い

    フロントエンドエンジニアが最低限知っておきたい gRPC のこと - Qiita
    sh19e
    sh19e 2022/08/03
  • なぜ ArrayList は List 型で宣言するのか - Qiita

    と List 型で宣言しすべきと一般的に言われています。 なぜそうなったのか気になったので、調べた結果をまとめました。 ArrayList を List 型で宣言すると... 「これは List インターフェースにある機能だけで充分で、ArrayList 等の独自の機能は必要としていない」ということを明示できる 後で型が変わる場合に変更範囲がより少なくなる 主に上記の2点のメリットを得ることが出来ます。 List 型のメソッドだけで事足りる場合の ArrayList の扱い ArrayList を使う際、ただ要素を Add して取り出すだけといった用途の場合があるかと思います。 そういった際は List インターフェースのメソッドだけで事足りるのですが、もちろんインターフェースは実装しなければ使えないため、List インターフェースを継承した、ArrayList や LinkedList

    なぜ ArrayList は List 型で宣言するのか - Qiita
  • たぶんもう怖くないGit ~Git内部の仕組み~ - Qiita

    追記 先日外部向けに、この記事の内容に追加補足などを加えて発表しました。動画のアーカイブ、資料も公開しましたので、もし動画の方がわかりやすい方はこちらをオススメします。 注意: 動画の質疑の中で、 github のリリース機能が、アノテートタグを使っていると明言してしまいましたが、間違いです。gitのデータ上はただの軽量タグで、 release の内容は軽量タグに紐づく形で、 github のアプリケーション上で管理されているはずです。 はじめに 調べてもう1年放置していた内容なんですが、アドベントカレンダーで重い腰を上げました。 Gitの内部の仕組みを知りたい(動機) 毎日使うといってもいいGitですが、どうやって履歴を管理してるんだとか、よくわからないまま使っているのが急に怖くなりました。 Gitを触り始めで、よく以下のような疑問が沸くと思います。 どうやってGitは履歴を管理してるん

    たぶんもう怖くないGit ~Git内部の仕組み~ - Qiita
    sh19e
    sh19e 2021/12/25
  • 妄想的DHH理解 - Qiita

    Caution この記事はDHHファンの妄想によるシナリオが多分に含まれます。 というかほとんどです。 成り立ちが間違ってることも当然あるように思うので話半分で読んでください。 これは一体 最近のRailsフロントエンドやDHHの活動には一連の流れがあるわけですが、一部トレンドに沿ってない部分がある故にそれが汲めないというところがあるのではと思います。 それらの流れを記憶が定かなうちにつないで記録しておこうという記事です。 前提知識 Railsの生みの親、Rubyist Basecamp(社) DHHがCTOやってる会社 Basecamp(サービス) Basecamp(社)が開発してるプロジェクト管理ツール Trixを開発してたある日 Basecamp(サービス)に組み込まれてるリッチテキストエディタのtrixをcustomElements使って開発してたある日、DHHはあることに気づく。

    妄想的DHH理解 - Qiita
  • 色々書き比べた結果Tailwind CSSにしたという話 - Qiita

    Twitterでこういう発言を見かけまして Tailwind CSSはデザインに凝ってるサイトでは使えない こだわりが無い場合に向いている は?何いってんの? って思ったので、自分がいろいろ試した結果、Tailwind CSSを選んだ話を書きます。 はじめに 以前、Tailwind CSSは結構いいぞって話を書いたんですが、この記事の立ち位置的にはその続きみたいなものなので、以下の記事を始めにご参照いただけるとより分かりやすいかもしれないです。 この記事では、前回記事を書いた後、個人仕事でWebサイトをGatsbyで作り、その中で、どうやってCSSを書くのが良いのか模索した結果、自分はこれを選んだっていうのを、同じUIを色々な方法で書き比べたコードを並べつつ、どうのこうの筆者の考えを述べていきます。 その仕事はほとんど筆者が「まかせてくださいよーいい感じに作りますよー。デザインそろってない

    色々書き比べた結果Tailwind CSSにしたという話 - Qiita
  • Dockerfileのベストプラクティス - Qiita

    業務やプライベートでのハンズオンを通して得た知見を元に、dockerfileの実践的な書き方を記載いたしました。 軽量なdocker imageを作る観点とセキュリティーの観点を踏まえた内容になっております。なにか付け足す点などあればコメントいただければと思います。 軽量なimageを作る観点 軽量なimageの使用 Dockerfileでimageを指定する際に、軽量なimageを使用することが進めれている。 docker docsでも代表的な軽量なimageのalpineをおすすめしている。 Whenever possible, use current official images as the basis for your images. We recommend the Alpine image as it is tightly controlled and small in s

    Dockerfileのベストプラクティス - Qiita
    sh19e
    sh19e 2021/06/05
  • ユーティリティーファーストとTailwind CSSのススメ - Qiita

    Tailwind CSSは結構いいんでないの?というポエムです ユーティリティーファーストって考え方について まず、 ユーティリティークラスが何かということ ユーティリティークラスを使ってHTMLを書いていくということってどういうことか これは、ある程度CSSを書いている人であれば想像できることであろうと思う。 こんな風に、あらかじめユーティリティー的なクラスを用意しーの .align-left { text-align: left; } .align-center { text-align: center; } .align-right { text-align: right; } .align-top { vertical-align: top; } .align-middle { vertical-align: middle; } .align-bottom { vertical-a

    ユーティリティーファーストとTailwind CSSのススメ - Qiita
  • The Rails Doctrine(日本語訳) - Qiita

    (訳者注: 原文は https://rubyonrails.org/doctrine/ です。しばらく寝かして問題なさそうであれば家に投げようかと思っています。おかしいところがあればコメント・編集リクエストをお待ちしております。) The Rails Doctrine By David Heinemeier Hansson in January, 2016 Ruby on Railsの驚異的な台頭は、斬新な技術とタイミングによるところが少なからずあります。しかし、技術的な優位性は時間の経過とともに失われていきますし、タイミングの良さだけでは長期にわたってムーブメントを維持できません。そのため、Railsがどのようにして現役であり続けることができたのかだけでなく、どのようにしてそのインパクトとコミュニティを成長させてきたのかについて、より広範な説明が求められています。私が提唱するのは、永続

    The Rails Doctrine(日本語訳) - Qiita
  • マイグレーション作成時のチェックポイント - Qiita

    2. アプリケーションで定義したクラスを直接使わない app/models 下のモデルクラスなど、マイグレーションファイルの外部に定義している、将来実装を変更する可能性のあるクラスを直接利用することは禁じ手と考えた方がいいでしょう。 なぜかというと、マイグレーションファイルというのは、未来にわたって末永く、書いたときの意図どおりに動く 必要があるからです。言い換えれば、マイグレーションファイルのコードは、マイグレーションファイル内で閉じていて、凍結されていることが望ましい のです。 このような単純な例でさえ、将来、User::DEFAULT_TEL の値(実装)が変更されてしまったら、その時点で "だいぶ以前の古いマイグレーション" になっているこのコードの挙動も同時に変わってしまいます。マイグレーションコードで過去の定数値を使うように変更する、といった対応をし忘れれば、例えば、DB

    マイグレーション作成時のチェックポイント - Qiita
  • bootsnapについて調べてみた - Qiita

    これはなに? 今年のRubyKaigi 2017でrailsの起動時間を短縮してくれるbootsnapという便利なgemを知り、これをトレタで開発しているのrailsアプリに導入できないかと思い、このgemの内部処理を調査したメモです。 あ、bootstrapではなくbootsnapです。一応。 日語版のREADMEはこちら bootsnapとは? railsの起動時の処理を最適化する(パスとrubyのコンパイル結果をキャッシュ)ことで起動時間を短縮してくれる便利なgemです。 導入方法 Gemfileに

    bootsnapについて調べてみた - Qiita
  • Webpack チャンク最適 テクニック - Qiita

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

    Webpack チャンク最適 テクニック - Qiita
  • docker-composeを爆速にする - Qiita

    ※ 色々修正しました Rails開発等でdocker-composeを使うと非常に遅い場合があります(特にDocker For Mac)。 docker-compose時に余計なファイルをマウントしてしまってるのが原因らしいので、.git, log, tmp, vendor などのホストからマウントする必要のないディレクトリを別のvolumeでマウントを上書きしてしまえば解消されます。 具体的な docker-compose.yml は以下のようになります(Railsの例) version: '3' services: app: build: context: . dockerfile: Dockerfile.dev environment: RAILS_POSTGRES_HOST: db ports: - "3000:3000" volumes: - .:/app:cached - bu

    docker-composeを爆速にする - Qiita
    sh19e
    sh19e 2020/02/29
  • 内容に応じてサイズが可変する <textarea> を素敵に実装する - Qiita

    概要 内容に応じてサイズが可変する textarea を、できるだけ手間をかけず、スマートな実装を試みます。 しかも、ネイティブのフォームが持っている利点をそのまま活かして、堅牢でアクセシブルな設計を目指します。 標準 textarea の難点 HTMLtextarea 要素は基的に高さが固定されていて使い勝手が悪いです。3行分くらいしか領域がなくて、長い文章を打つのがとにかく苦痛なんていうこともザラです。 最近のブラウザ実装では、多少気を利かせてくれているのか、テキストエリアの領域をドラッグで拡大・縮小できます。 ただ私は思うのです。めんどくさいし、最初っから、入力するテキスト量に応じて自動的に伸び縮みしてくれればいいのに……と。スクロールバーなんて、1ページにひとつあればじゅうぶんなんですよ。 実装方法 難しいことはありませんが、HTMLCSS、JS が協調して動作します

    内容に応じてサイズが可変する <textarea> を素敵に実装する - Qiita
  • きたるべきvue-nextのコアを理解する - Qiita

    この記事は、Vue #2 Advent Calendar 2019の4日目。 @nagimaruxxxさんのフロントエンド開発をjQueryからVue.jsへ乗り換えたので比較してみるの次の記事です。 この記事でわかること jQueryからVue.jsにはじめて移行したとき、「thisのなんちゃらを書き換えると動くんだー!」とか「computedって、依存する値が更新されたら自動で更新されてすごい!」というのが感想でした。 今回は、vue-nextという、いわば、「次世代のvue」でそういった「自動で更新されてすごい」がどのように実装されているか、を解説します。 普段Vue.jsを使っている人は、その裏の仕組みに感銘を受けるでしょう。日々の実装を少しだけ、いつもと違う視点で見れるようになると思います。 普段React.jsを使っている人はきっと、Vue.jsを使いたくなることでしょう。 皆

    きたるべきvue-nextのコアを理解する - Qiita
    sh19e
    sh19e 2019/12/26