タグ

tipsとdesignに関するko-ya-maのブックマーク (101)

  • Boolean のカラムを生やす前に考えたいこと

    その方が単純に情報量が増えるため 最初 boolean にしてたけど後から時刻もほしくなるということはよくある。後から日時型のカラムに変えようと思っても、過去のイベントの日時は失われてしまっていて困る。今は日時が必要でないように感じても日時にしておく方がよい。 またアプリケーション的に使わなくても、データ分析のためにあると嬉しいことは多い。 コード的にも特に扱いにくくなることはない 以下のようにして簡単に boolean と同じ感覚で扱うことができる。 class Post < ApplicationRecord scope :unpublished, -> { where(published_at: nil) } scope :published, -> { where.not(published_at: nil) } def published? !published_at.nil?

    Boolean のカラムを生やす前に考えたいこと
  • 0→1フェーズで最も重要なサービスコンセプトのつくり方 | 実プロジェクトの事例付き|梶谷健人 / 新著「生成AI時代を勝ち抜く事業・組織のつくり方」

    サービスを0→1でつくる上でまず必要になるのが、サービスのコンセプトづくりです。 いままで自社事業や様々な企業との共同プロジェクトを通じてサービスづくりに取り組む中で、サービスのコンセプトづくり、すなわちコンセプトメイキングのプロセスにもある種の型があることに気付きました。 このnoteでは社内ドキュメントである「サービスコンセプトのつくり方」の内容を一部NDAでシェアできない資料を除いて全公開します。 <コンセプトメイキングの大前提>🧐 STEP1:コンセプトとは何かを知ろうコンセプトが何かを知る上で、コンセプトの立ち位置と役割を知ろうコンセプトそれ自体は様々な形があり、非常に漠然としている。 なので、コンセプトがそれ以外の要素とどういった関係にあるのか、どういった役割を果たすのかという観点からコンセプトとは何かを理解しよう。 まずサービスアイデアは下図のような構造を持っている。 ある

    0→1フェーズで最も重要なサービスコンセプトのつくり方 | 実プロジェクトの事例付き|梶谷健人 / 新著「生成AI時代を勝ち抜く事業・組織のつくり方」
  • A Philosophy of Software Design 前半

    2022/02/28 に MoneyForward で発表した A Philosophy of Software Design の話です。

    A Philosophy of Software Design 前半
  • 状態、結合、複雑性、コード量の順に最適化する - valid,invalid

    There’s No Such Thing as Clean CodeのHacker Newsコメント経由でコードやシステム設計・最適化についての良いコメントを見つけた。どうやらHacker Newsで何度も引用されているらしいが日語で言及された記事が見つからなかったので取り上げてみる。 コメントは2016年のSandi MetzのThe Wrong Abstractionに関するもので、発言者のcurun1rいわく「私は設計の優先順位をこの順序で学習することで、優れた開発者になれた」。*1 4つの基準と優先順位のガイドライン 状態 > 結合 > 複雑性 > コード量 私は状態 (state)、結合 (coupling)、複雑性 (complexity)、コード量 (code) の順に削減することでコードを最適化する。 コードがよりステートレスになるなら、結合を増やすこともいとわない 結

    状態、結合、複雑性、コード量の順に最適化する - valid,invalid
  • エンジニアのための Figma 知識

    記事の多くは Inspect モードを前提に解説しています。 下記に Dev Mode に対応した解説を書いてみたのであわせてご参照ください。 https://codezine.jp/article/detail/18000 エンジニアにデザインツールの知識・習熟は必要か? しなくても仕事はできると思うのですが、あるとよりクオリティの高い仕事ができることは間違いありません。 という訳でエンジニアエンジニアとしての仕事をしていく上で「Figma のこういうことを知っておくと良さそう」という知識をまとめてみました。 ユースケースを考える まず始めにデザインは作らないはずのエンジニアFigma を使う時にどんなユースケースがありそうかを考えてみます。 デザインを元に実装する時 デザインから何かを生成したい時(コードとか画像とか) 自分でちょこっとデザイン修正しちゃう この辺りがあるかな〜

    エンジニアのための Figma 知識
  • AWSでサーバーレス設計を考える時の手引き書 - Qiita

    はじめに サーバーレスに触れて数年が立ちました。 そろそろ人にある程度説明ができるレベルの知識と経験が備わったような気もするので、年末なのでまとめてみました。 サーバーレス気になっているけれども、という人に少しでもためになればいいなーと思います。 サーバーレス基礎 皆さん、サーバーレス設計という話を聞いたことはあるでしょうか? まずサーバーレスについて説明しますが、世の中にはたくさん解説記事があるのでそちらも適宜参照ください。 サーバーレスでも実際にはサーバーは存在する サーバーレスとは開発者がサーバーのことを意識しなくてもよい、ということ Function as a serviceに代表されるように、あるプログラムの実行環境を提供するが、プログラムの動作環境は開発者は意識する必要はない、というイメージ 恐らく、AWS Lambdaが一番理解しやすいと思います。 AWS Lambdaではプ

    AWSでサーバーレス設計を考える時の手引き書 - Qiita
  • 技術選定とアーキテクトの育成について - NRIネットコムBlog

    こんにちは佐々木です。NRIネットコム Advent Calendar 2021 開催中です。しかし、内部で検討した結果、私は枠外になりました。ということで、Japan APN Ambassador Advent Calendar 2021として書かせていただきます。どちらも宜しくおねがいします。 今日のテーマは技術選定とアーキテクトの育成についてです。ITエンジニアの間には、定期的にどう技術選定するのかといった議論が出てきます。いろいろな観点があるとは思いますが、私が重要であると考えている所を簡単に述べてみます。 技術選定に銀の弾丸はない まず最初に言っておきたいのが、『技術選定に銀の弾丸はない』ということです。銀の弾丸とはIT業界でもよく利用される比喩で、英語で“silver bullet”とは「狼男を倒せる武器」が元々の意味です。それが転じて「困難を解決する決め手」という意味で使われ

    技術選定とアーキテクトの育成について - NRIネットコムBlog
  • 設計を歪める認知バイアス - Qiita

    こんにちは、リファクタリングが大好きなミノ駆動です。 この記事は READYFORアドベントカレンダー2021 、5日目の記事です。 これはなに? ソフトウェア開発において、設計をないがしろにすると、低凝集密結合な構造に陥り、変更容易性が低下してしまいます。 設計スキルを高め、あるべき構造を設計する……これで解決できるに越したことはありません。 しかし、認知バイアスと呼ばれる心理効果により判断を誤り、良くない設計をしてしまうことが往々にしてあります。 記事は、設計を歪めてしまう認知バイアスを理解し、設計判断の精度向上を促すことを目的とします。 この記事のゴール 人間の判断を歪めてしまう心理効果「認知バイアス」の存在を知ること。 ソフトウェア設計も、認知バイアスの悪影響を受けてしまうこと。 認知バイアスに振り回されない設計アプローチを身につけること。 認知バイアスとは 先入観や思い込み、偏

    設計を歪める認知バイアス - Qiita
  • 初めて書くPRD(プロダクト要求仕様書)|Miz Kushida

    ※ Product Manager Advent Calendar 2018 の1日目の記事となります。 はじめにプロダクト・マネージャーの皆さん、PRD(Product Requirements Document)に何を書いていますか? ここでは”初めて”書くPRDとして、一体どういう内容を書けばいいのかを述べたいと思います。具体的な粒度については、Product Huntの例(文参照)を見ていただければと思います。 PRD Template例えば、プロダクト・マネジメント界隈では知らない人はいないであろう、及川さんのこちらの記事にもPRDについて述べられています。 上記の記事は2017年のものですので、内容もアップデートされていると思いますが、参考になる部分は多々あります。上記の記事の再掲となりますが、記載すべき内容の見出しを以下に列記します。 1. 概要 2. 背景 3. プロダク

    初めて書くPRD(プロダクト要求仕様書)|Miz Kushida
  • ドメイン駆動設計とイミュータブルなクラス設計

    クラスをイミュータブルに設計するパターンの紹介 ・閉じた操作 ・withメソッド ・イベントリポジトリ&集約ファクトリ

    ドメイン駆動設計とイミュータブルなクラス設計
  • 新機能の開発前に行っている3つのプラクティスを紹介します - サーバーワークスエンジニアブログ

    こんにちは、サービス開発課の丸山です。 日はタイトルの通り、サービス開発課で開発している Cloud Automator の新機能の開発前の段階で行っている取り組みについてご紹介したいと思います。 とは言っても、うまくいっているベストプラクティスというほどのものではなく「今のところ実験も兼ねてこんな感じで回しています」という温度感のものです。 そのため、うまくいった取り組みや利点はもちろんのこと、課題に感じている部分も紹介していければなと思っております。 開発前に行っている取り組み 今回は次の3つの取り組みを紹介したいと思います。 Working Backwards ユーザーストーリーマッピング Example Mapping これらの取り組みは実装に着手する前に1~3の順番で行っています。 Working Backwards 背景 Working BackwardsとはAmazon社内

    新機能の開発前に行っている3つのプラクティスを紹介します - サーバーワークスエンジニアブログ
  • ドメイン駆動開発を浸透させるための新しい取り組み - SO Technologies 開発者ブログ

    はじめまして、ライクル事業部 エンジニアの菊池@kichionです。 普段の業務では主にエンジニアチーム運営・運用の課題解決やビジネスサイドとのやり取りが多く、中長期目線でのアプローチを行っています。 エンジニアとして行っている技術選定や実装関連についてはZenn - kichionにも投稿していますので興味があればご覧になってください。 今回はライクル事業部として少しづつ取り入れ始めている「ドメイン駆動開発」に焦点を当てて見ます (ドメイン駆動に関わる内容については、端的ですがQiita - kichionにも投稿してますので気になったらご参照ください) ドメイン駆動開発(DDD) ドメイン ドメインモデリング 技術的要素 ドメイン駆動開発の目的 ドメイン駆動開発を浸透させるための取り組み ドメイン駆動開発 勉強会 ドメインオブジェクト整理会 今後やっていきたいこと 続・DDD勉強会 現

    ドメイン駆動開発を浸透させるための新しい取り組み - SO Technologies 開発者ブログ
  • クラス設計本格入門 JJUGナイトセミナー 2021-6-16

    イベントの動画 : https://www.youtube.com/watch?v=2Z1CJhPk-f8 オブジェクト指向プログラミングはクラス設計。 クラス設計はプログラムの分割。 クラス設計の焦点は、ビジネスルールを表現するクラスと、ビジネスアクションを表現するクラス。 クラス設計やパッケージ設計の実証済の形を覚えると、出発地点の設計が楽になる。 リファクタリングを積み重ねて設計を改善していく。

    クラス設計本格入門 JJUGナイトセミナー 2021-6-16
    ko-ya-ma
    ko-ya-ma 2021/06/17
    考え方が端的に伝わる流石の資料
  • 5年間 Laravel を使って辿り着いた,全然頑張らない「なんちゃってクリーンアーキテクチャ」という落としどころ

    この記事は Laravel Advent Calendar 2020 - Qiita 最終日の記事です。 TL;DR DDD や "真の" クリーンアーキテクチャは, Web 業界における大抵の現場ではオーバースペックだし,導入しても全員がついてこれるとは限らない app/UseCases ディレクトリだけ切って,ドメインごとに単一責務なクラスを置くと使いやすいよ ActiveRecord 指向のフレームワークで Repository パターンを無理に導入すると死ぬので, UseCase で Eloquent Model の機能を使うことを恐れるな はじめに Zenn では初投稿です。日Laravel コミュニティではもうお馴染みのようで実はあまり顔を出していない(?) @mpyw と申します。オンラインサロンの火付け役となった Synapse が最初の仕事でしたが,就職後すぐ会社が

    5年間 Laravel を使って辿り着いた,全然頑張らない「なんちゃってクリーンアーキテクチャ」という落としどころ
  • 単一責任原則で無責任な多目的クラスを爆殺する - Qiita

    この記事は クラウドワークスアドベントカレンダー2020 8日目の記事です。 概要 こんにちは、クソコードを爆殺リファクタリングするのが大好きなミノ駆動です。 今回は単一責任原則の話です。 単一責任原則はSOLID原則のひとつとして有名で、2020年のオブジェクト指向カンファレンスのアンケートでも、SOLID原則の中で最も人気がありました。 皆さんは単一責任原則を遵守した設計をしていますか。 どんな構造が単一責任設計で、一方どんな構造が単一責任でない設計か、明確に意識していますか。説明できますでしょうか。 ところで「単一責任原則とはなんぞや」について、少なくとも私の観測範囲では、概念的な話にとどまっているものが多く、コードレベルで具体的に説明しているものは少ないように感じます。 そうした状況からか、単一責任原則の解釈が人によって違っていたりしているように感じます。 記事は、今一度単一責任

    単一責任原則で無責任な多目的クラスを爆殺する - Qiita
  • 「エンジニアは高過ぎる意識を捨てよ」と言われたスマニューPMたいろーさんの「サービス改悪」回避法 - エンジニアtype | 転職type

    2020.10.14 スキル 「良いサービスやプロダクトを作って、より多くの人に使ってほしい」 アプリなどのWebサービス開発に携わるエンジニアであれば、きっと誰もがそう思うはず。 しかし、実際には新機能をリリースしても利用率が伸び悩んだり、UIを変えても「使いにくい」というネガティブな反応が出てきたり、作り手の意に反してユーザーがプロダクトから離れてしまうことは少なくない。 作り手の善意が、ユーザーの期待に応えられないケースは、なぜ起きるのだろうか? ーー実は、その原因は「人間観のズレ」にあるかもしれない。 そう主張するのは、スマートニュースのエンジニア部門でTech PMを務める、たいろーさんこと森山大朗さん。以前、森山さんが発信した以下のコメントが、Twitter上で話題になった。 >>元ツイート そこで森山さんに、「人間観のズレ」を見直す必要性を強く感じたエピソードや、ズレを放置し

    「エンジニアは高過ぎる意識を捨てよ」と言われたスマニューPMたいろーさんの「サービス改悪」回避法 - エンジニアtype | 転職type
    ko-ya-ma
    ko-ya-ma 2020/10/16
    sold outの話が面白い
  • 画面をデザインするということ - Qiita

    この記事は社内の勉強会で話した内容を再編したものです。 私自身はPC/ブラウザ/スマホのアプリ開発をしている1エンジニアにすぎないのですが、対客や要件定義から開発、運用、そしてUIのデザインを担当しており、自分なりに伝えられるものがないかと試みたものです。 デザインとは デザインとは単に見た目だけの話ではなく、「ビジネス」と「ユーザーが得る体験価値」から始まり、それを実データと結びつけながら人の認知を通してどう見せるのかという作業です。 始まりの部分は最近だとUXデザイナー、終わりの部分はUIデザイナーとかグラフィックデザイナーとか呼ばれるような人の仕事です。そしてそれらを形にするのがエンジニアです。 画面を設計するまでの作業 ギャレットのUX5段階モデルに従って、どういったことを考えないといけないのか確認します。 (実際にUX5段階モデルを意識して仕事してるわけではありませんが、何かしら

    画面をデザインするということ - Qiita
  • 【図解入門】シンプルな図の作り方|櫻田潤🎨インフォグラフィック・エディター|note

    3年前に、図解の基をまとめた『図で考える。シンプルになる。』を書きました。その内容から、エッセンスを抽出したのがnoteになります。 (1)「幕の内図解」と「イチオシ図解」 図には、大きく分けて、2つのアプローチがあります。 ひとつは、幕の内弁当のように、いろんな要素を盛り込んだ図で、もうひとつが、唐揚げ弁当のように、イチオシのおかずにフォーカスした図です。 たとえば、桃太郎の話を「幕の内図解」のアプローチでまとめてみたのが、つぎの図です。 登場人物とエピソードをフラットに扱って、網羅的に盛り込んでいます。 この図を使って、人に説明しようとすると、「まず、お婆さんですが……」「つづいて、お爺さんですが……」といった具合に、「お婆さん」「お爺さん」「桃太郎」それぞれの視点に切り替えが必要になり、話す方も話しづらければ、聞く方もまどろっこしく感じてしまいます。 相手がじっくり聞く耳を持っ

    【図解入門】シンプルな図の作り方|櫻田潤🎨インフォグラフィック・エディター|note
  • 「ビジネスロジック」とは何か、どう実装するのか - Qiita

    アプリケーション開発で、「ビジネスロジックは分離しろ」だとか「Controller にビジネスロジックを書くな」といったことをよく言われると思います。 しかし、ビジネスロジックという言葉の意味を聞いたり調べたりしてみても、「システムのコアの部分」とか「システムの目的になる処理をするところ」みたいなことを言われたりして、よく分かりませんでした。 そんな中、クリーンアーキテクチャや DDD の戦術的設計について学ぶことで、「ビジネスロジックとは何か」、「ビジネスロジックはどう実装するか」について、自分なりの考えが整理されてきたので、この記事ではそれをまとめます。 ※ 曖昧な言葉を自分としてどう使っているかという話になります。違う意味で使う方もいると思うので、ご注意ください ビジネスロジックとは何か 「システムのコアの部分」とか「システムの目的になる処理をするところ」といった説明も正しいとは思い

    「ビジネスロジック」とは何か、どう実装するのか - Qiita
  • NoSQLデータモデリング技法

    NoSQLデータモデリング技法.markdown #NoSQLデータモデリング技法 原文:NoSQL Data Modeling Techniques « Highly Scalable Blog I translated this article for study. contact matope[dot]ono[gmail] if any problem. NoSQLデータベースはスケーラビリティ、パフォーマンス、一貫性といった様々な非機能要件から比較される。NoSQLのこの側面は実践と理論の両面からよく研究されている。ある種の非機能特性はNoSQLを利用する主な動機であり、NoSQLシステムによく適用されるCAP定理がそうであるように分散システムの基的原則だからだ。一方で、NoSQLデータモデリングはあまり研究されておらず、リレーショナルデータベースに見られるようなシステマティック

    NoSQLデータモデリング技法