タグ

software-engineeringとzennに関するnabinnoのブックマーク (13)

  • 技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL

    技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL はじめに 新たに書きました。 MySQLを使っても会社は潰れない 久々に記事を書いたのでどうぞお手柔らかに... 私が過去2年間で行った技術選定の成功と失敗を振り返り、その学びを共有したいと思います。 文才無いので淡々と箇条書きでいきます Twitterエンジニア垢作りました。エンジニアのお友達がいません。 @uncode_jp 注意 意見を押し付けるものではありません。ただ建設的な議論は大事だと思う。 自分の意見は明確に、歯切れのよい表現を意識している。人それぞれだよねみたいな感じに逃げたくない。技術選定に結論はある(過激)。 ただし技術選定にはコンテキストがあり、例えばプロダクトのフェーズや組織の事情によって当然結論は変わる可能性がある。 OSSの開発者さん達は偉大ですごい。あ

    技術選定の失敗 2年間を振り返る TypeScript,Hono,Nest.js,React,GraphQL
  • 認知負荷および認知負荷理論 (Cognitive Load Theory) をもう少し正確に理解するための心理学研究・知見の紹介

    認知負荷および認知負荷理論 (Cognitive Load Theory) をもう少し正確に理解するための心理学研究・知見の紹介 この記事の目的 ここ数年で、ソフトウェア開発やプログラミングの文脈で、「認知負荷」 および 「認知負荷理論」 という用語をよく見聞きするようになりました。私が今思い出せるだけでも、以下のような書籍や Podcast で重要なキーワードとして取り上げられています。 A Philosophy of Software Design, 2nd Edition チームトポロジー 価値あるソフトウェアをすばやく届ける適応型組織設計 プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ fukabori.fm 102. A Philosophy of Software Design (3/3) w/ twada この「認知負荷」ですが、少なくとも近年見聞

    認知負荷および認知負荷理論 (Cognitive Load Theory) をもう少し正確に理解するための心理学研究・知見の紹介
  • Goとエラーハンドリング慣習について

    エラー返値が無用な条件 関数ないしメソッドの実装がオンメモリ操作のみで完結 将来も(メモリ以外の)I/O操作は追加されることがない 逆にいうと上記の条件のいずれかが達成できない可能性がある関数やメソッドはエラー返値を付与すべき。 返値エラー型はerrorで統一する 返すエラーがerrorインターフェース型でなければそのエラーは正常にハンドリングできません。またerrorインターフェースを満たす別の返値型で返してerrorインターフェース型で受け取るのも後述のトラブルの元です。 Goの実装方針に「インターフェースで利用するものもコンストラクター相当では構造体ポインタで返す」というものがありますがコンストラクタを呼ぶ側は元型にアクセスすることが多いのでこういう方針になっています。が、エラー値に関しては元型を意識せずに利用可能にするという役割があって、この実装方針は当てはまりません。 エラーチェ

    Goとエラーハンドリング慣習について
  • 技術書は気に入った一節を見つけるだけでいい

    ということで、私の例をいくつか出してみようと思います。 モノリスからマイクロサービスへ マイクロサービス・アーキテクチャの著者による、モノリスからの移行をガイドするような雰囲気のするこのですが、このは第6章「終わり」にから、この一節です: 他人の事例から学ぶべき教訓があるのは事実だが、自分のコンテキストでうまく機能するアプローチを見つけるには、時間をかけなければならない。 これはあらゆるプラクティスに言えることで、私は事あるごとに「スクラムをそのまま導入するのは無駄だ」とか「守破離っていうやつは苦手だ」とか言い続けているんですが、それはつまり、先人のプラクティスは様々な状況(コンテキスト)があるなかで成功した事例であり、コンテキストが異なる現場に持ち込んでもうまく機能するかは未知なのです。なので、そのプラクティスが前提としているコンテキストとソリューションを理解しつつ、自分たちのコンテ

    技術書は気に入った一節を見つけるだけでいい
  • 「怠惰・短気・高慢」であれ、ChatGPTを使って業務効率化しよう(要件定義編)

    例として読書記録アプリをつくります! 筆者が欲しいサービスを作ろうと思い、今回は「読書記録アプリ」をつくります。 最低限の要件は、次のように設定しました。 デモアプリの要件(読み飛ばしてOK) 読書記録アプリを作る目的 読書が苦手なエンジニア読書記録をし、記録を共有することで、継続して技術を読めるようになること ターゲット 新人、中堅のWebエンジニア おおまかな要件 ユーザーは新規登録することで、読書記録アプリにログインできる ユーザーは読むを登録できる ユーザーはを何ページ読み終えたかを記録できる ユーザーはを読み終わったら次のを登録できる ユーザーは他の人がどのを読んでいるのか、また何ページ読み終えたかを閲覧できる 質問する前に... また、ChatGPTに業務で使用するコードを渡す場合、環境キーやサービスを特定できる情報を送信しないでください。入力内容が他の人に渡って

    「怠惰・短気・高慢」であれ、ChatGPTを使って業務効率化しよう(要件定義編)
    nabinno
    nabinno 2023/03/19
    短気なので、この一連のプロンプトをCoTでメタプロしたくなる。
  • ChatGPTのVSCodeプラグインが神すぎる件について

    (追記) 自動ログイン機能が利用規約に抵触していたらしく、マーケットプレイスより削除されました。 GitHubAPIを使ったものは残っているので、知識があれば動作させられるかと思います。(自己責任) これを使った再配布等の行動はトラブルの元なので控えた方がよいでしょう。 ChatGPT いいよね 最近一番メッセージやりとりしてるのChatGPTだし、なんなら1日にしゃべる量よりChatGPTと話してることの方が多い可能性まであります ChatGPTのチャットツール自体はこちらから参加して試せるわけですが、プログラムを書くときに使ったことのない言語やライブラリを開拓する際ここまで有難い存在はありません. このようにネット上を探し回ると地味に時間のかかる情報もチャット形式で手に入ります. さて、今回の話題ですが、我が愛しのテキストエディタ「Visual Studio Code」のChatGP

    ChatGPTのVSCodeプラグインが神すぎる件について
  • Jiraでクロスチェック担当者ガチャを回す

    はじめに あるJiraタスクの完了条件に、チーム内でのクロスチェックを設定しているシーンは多くあると思います。この記事ではそんなときにJira Automationを使って、チェック担当者をランダムにアサインする方法をまとめています。 以下の手順によって「Jiraのタスクを特定のステータスにすると、自動的にチェック担当者がランダムでアサインされ、チェックに必要な項目がコメントされる」状態を実現することができます。 Automationとは Atlassianサービス上で利用可能な ノーコードでプロセスの自動化 が実現できる機能です。契約プランによって利用時間などが異なりますが、Atlassian製品ならではの柔軟なトリガー・アクションに加えて、必要に応じて外部APIをWebHookで起動することができます。 参考:https://www.atlassian.com/ja/software/

    Jiraでクロスチェック担当者ガチャを回す
  • 見積・提案書に書いておくと不幸を減らせる前提条件

    はじめに ちょっとつぶやいたら思いのほか需要がありそうだったので、簡単にまとめておきます。 おことわり これを書いておけば、すべての不幸を避けられるというものではありません 提出先との関係性次第では、書かないほうがいいこともあるかも 私自身が普段提案している内容が、すべて記載されているわけでもありません(うろ覚えで書いてたり、大人の事情) これを流用しておこったすべての事項について、何らかの責任をとることはできません 稿では請負による開発を想定しています でも共有することで、この業界の不幸が減ればいいなということでつらつら書いてみます。 他にもあるようなら、Twitterなりコメントなりで提案してもらえると嬉しいです。 前提条件を書く目的 見積・提案書通りに、実施するために必要な条件を明確にする 条件を逸脱したときに、どうなるのかハッキリさせる 上記は概ねつぎのとおり 実現が不可能になる

    見積・提案書に書いておくと不幸を減らせる前提条件
  • エンジニアを始めてから便利だったツールまとめ

    概要 エンジニアになってから出会った便利ツール・アプリを備忘録としてまとめました。 ※WEB用ツール多め GUIツール・アプリ デスクトップ上で動作させるやつ。 Authy https://authy.com/ 2FAアプリ。Multi-Deviceという複数端末で使える機能があり、PCでログインする際の2FAをPCのみで完結できるので便利。 Hyper https://hyper.is/ コンソールアプリ。テーマ機能やプラグイン追加で自分の好みに環境を整えやすくて見た目がよい。 設定を.hyper.jsファイルで管理するので、gitにて設定管理ができて便利。 VSCode https://code.visualstudio.com/ 言わずもがなの高機能コードエディター。特に理由がなければ基的にはプログラミングするならこれを使えばいいんじゃないかな。 豊富なプラグインや設定で、Hype

    エンジニアを始めてから便利だったツールまとめ
    nabinno
    nabinno 2022/01/23
    この方ではなくインフラ側の問題なのだが、開発者がローカルでAWSクレデンシャルを扱わざるを得ない状況は改善したいところ。
  • 「はじめてゲームプログラミング」の衝撃

    エンジニアの間で話題沸騰「はじめてゲームプログラミング」 6月11日に発売され一時トレンドにも載るほど。 「ナビつき!つくってわかる はじめてゲームプログラミング」。 「ノード」をつなげてプログラミングしてゲームを作っていきます。 例えば「Lスティックノード」と「ヒトノード」を繋いでLスティック操作ができるようになります。 チュートリアルでは「おにごっこゲーム」や「マリカ」みたいなものを作れちゃいます。 私ももちろんプレイして実況配信なんてやってみたのですが節々で「プログラミング学習」という点で衝撃を受けました。 今回はその衝撃を紹介していきたいと思います。 約束された「完成したときの達成感」 「ナビつき!」というタイトルの通り、チュートリアルが懇切丁寧です。 失敗につながるようなメニューは無効化されていますし、しばらく迷って画面上で進捗を出せないでいるとアシストしてくれます。 「完成」す

    「はじめてゲームプログラミング」の衝撃
    nabinno
    nabinno 2021/06/15
    何だかんだで我が家はマイクラかなあ
  • ブラウザレンダリングの仕組み

    Webの用語を100秒で解説するチャンネルを作りました! よかったらチェックしてみてください! はじめに 以前書いた記事「Webページがブラウザに表示されるまでに何が起こるのか?」で ブラウザレンダリングについて詳細に知りたいという意見をいただいたので、調べてまとめてみました。 全体図 レンダリングの大まかな流れです。 HTMLのダウンロード サーバから送られてきたHTMLをダウンロードします。 HTMLの解析 サーバから送られてきたHTMLファイルは、「0」と「1」でできたデータになっています。 ブラウザは、サーバから受け取ったデータをそのままHTMLとして解釈することはできないので、自分で扱うことができる形、つまりDOMに変換する必要があります。この作業を 解析 ( Parse ) と言います。 HTMLをダウンロードしたら、すぐにこの解析作業に入ります。作業は以下のようなステップにな

    ブラウザレンダリングの仕組み
  • 東京近郊でフルタイム勤務しつつ情報系の修士号が取れる大学院を調べてみた【2020年9月ver】

    まえがき 記事では、筆者が2020年に情報系修士号取得のために出願する大学院を探した際の結果をまとめています。もし同じ様に東京近郊で社会人として働きつつ情報系修士号を取りたいと思う方がいましたらご参考にどうぞ。 対象読者 情報系の修士号が欲しいが、仕事は辞められない人 東京近郊に居住している人 各大学の公式サイトを一つ一つ追うのが面倒な人 調査対象の大学院 調査対象は以下の条件に合致しそうな大学院の中から選定しました。 情報系の修士号が取れる 東京近郊に所在している or 東京にサテライトキャンパスがある or 月に2回程度の通学であればギリギリ何とかならないことも無い距離にある (2020/09/28追記) Twitter記事のコメントで情報を頂いた産業技術大学院大学、情報セキュリティ大学院大学について記載しました。 海外大学院のオンラインコースに関する記事を書いていた方がいたので

    東京近郊でフルタイム勤務しつつ情報系の修士号が取れる大学院を調べてみた【2020年9月ver】
  • Zenn|エンジニアのための情報共有コミュニティ

    Zennエンジニア技術・開発についての知見をシェアする場所です。の販売や、読者からのバッジの受付により対価を受け取ることができます。

    Zenn|エンジニアのための情報共有コミュニティ
  • 1