タグ

設計に関するendo_5501のブックマーク (30)

  • フロントエンドのディレクトリ設計思想

    はじめに フロントエンドのディレクトリ構成、世の中に色んな「推し」が有って悩みますよね。 例えば、、、 さらに最近は、App Directoryの登場や、それに合わせたNext.js公式の「推し」構成がドキュメント化されたりと、さらに色々なパターンが出てきています。 記事の趣旨 記事では、具体的な構成そのものではなく、 様々ある構成を横串で見通して整理できる設計思想を紹介します。 新しい推し構成の紹介ではなく、構成を考えたり決めたりするときに役立つ抽象的・汎用的な指針を提供できればと考えています。 基となる考え 分割の方向 一般的に、アーキテクチャにおける分割には2つの方向が有ります。 (出典も良書なのでリンクを貼っておきます: https://www.amazon.co.jp/dp/4873119820) これはディレクトリにおいても同じだと思っていて、筆者は分かりやすさのために

    フロントエンドのディレクトリ設計思想
  • 【ソフトウェア設計】モジュールをどう分割するのか?

    はじめに 前々回や、前回に引き続き、ソフトウェア設計の指針に関する話をしたいと思います。 関数やクラス、そしてサービスなどシステムの塊の単位をモジュールと呼び、モジュールを作る事で、認知負荷を下げ複雑性と戦うという話をしてきました。では、モジュールは「いつ」分割するのが良いでしょうか? また、他にも共通モジュールを不用意に作ってしまって苦労した人も多いのでは無いでしょうか? 今回はそのあたりの話をしていきます。 TL;DR 以下があればモジュール設計を見直す 単純な要件/普段の利用に対して、タイプ量や約束事が多い 共通モジュールが「使われ方」に依存する モジュールの役割を一言で説明できない コード管理や性能/データ整合性など利用に際してのペナルティが高い 分割 is NOT 正義 - FizzBuzz Enterprise Edition 複雑性を排除するためにモジュール分割をすることは重

    【ソフトウェア設計】モジュールをどう分割するのか?
    endo_5501
    endo_5501 2024/02/25
    “教科書的な理想の抽象化に捕らわれず、「認知負荷を下げることに繋がるか?」 を起点とし、むしろ上げてしまうケースは 「トレードオフは成り立つか?」 を強く意識する必要があります”
  • AppleがMRヘッドセット「Vision Pro」のために生み出した「空間コンピューティング」におけるUI設計のルールとは?

    2023年6月6日(日時間)に開催されたAppleの開発者向けカンファレンス「WWDC23」の基調講演で、Apple初のMRヘッドセットである「Vision Pro」が発表されました。AppleはこのVision Proで現実空間上にアプリケーションのウィンドウやコンテンツを表示する「空間コンピューティング」を提唱しており、開発者が知っておくべき空間コンピューティングのUI設計についてAppleのデザインチームが解説しています。 Design for spatial user interfaces - WWDC23 - Videos - Apple Developer https://developer.apple.com/videos/play/wwdc2023/10076/ Vision Proに搭載されるvisionOSでは、アプリアイコンが立体的に表現されるのが大きな特徴。 アプ

    AppleがMRヘッドセット「Vision Pro」のために生み出した「空間コンピューティング」におけるUI設計のルールとは?
    endo_5501
    endo_5501 2023/06/11
    イイナー。どうにかして早めに手に入れられないかなあ
  • 時間を区切って設計を打ち切るのはおすすめできない - hitode909の日記

    最初にマイルストーンを切って、この週で設計、この週で実装、みたいなことをやるのはおすすめできない。 設計に使える時間を最初に決めた時間までしか使わないということは、どうすればいいか、考えきれてなくても作り始めているということ。 コードは書けていくので、進んでいるようにも見えるけど、問題を先送りしているだけなので、じっくり設計や作戦を詰めていれば気付ける問題に、あとのほうで直面することになる。 この問題を回避するためにはこのように作るべきであった、ということにあとで気づくと手戻りが大きくなり、こんなことをするくらいなら最初に決めておけばよかった、となることが多いと思う。 家を建てることをイメージすると、設計フェーズはここで打ち切って、手を出せるところから始めよう、といきなり柱を建てることをイメージしてほしい。 先のことを見据えると、4の柱は長方形になっているべきという制約があるけど、そのこ

    時間を区切って設計を打ち切るのはおすすめできない - hitode909の日記
    endo_5501
    endo_5501 2020/09/27
    “設計の最初の段階で考えることは、問題の解き方ではなくて、問題の分解の仕方”
  • 進捗率を何で測るか? −−情報処理技術者試験の問題より | タイム・コンサルタントの日誌から

    「プラント・エンジニアリング会社のように、物理的に目に見えるモノを作っている分野は、数量が測りやすいからいい。ソフトのように目に見えない成果物を作る仕事は、進捗管理がとても難しい。」 ・・こういう意味のことを、IT業界の方から何度か言われたこともある。いえいえ、どういたしまして。プラント・エンジニアリングのプロジェクトでは、設計業務だけで18ヶ月〜24ヶ月もかかる。この間、膨大な図面や仕様書が生成されるが、プラント予定地では1年後にやっと、基礎工事のための穴掘りが始まる程度だ。設計作業の進捗をどう捉えるかは、同じように悩ましい。

    進捗率を何で測るか? −−情報処理技術者試験の問題より | タイム・コンサルタントの日誌から
    endo_5501
    endo_5501 2020/02/09
    “「過去こんなに頑張りました」という事をベースにして計算してはいけない”
  • 思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall

    2. What is Software Architecture ● IEEE1471「コンポーネント、それらの関係や環境、設計やそのコンポーネント、それらの関係や環境、設計やそのそれらの関係や環境、設計やその関係や環境、設計やそのや環境、設計やその環境、それらの関係や環境、設計やその設計やそのや環境、設計やそのその関係や環境、設計やその 進化を左右する原則に具現化されたシステムの基的な構成」を左右する原則に具現化されたシステムの基的な構成」左右する原則に具現化されたシステムの基的な構成」する原則に具現化されたシステムの基的な構成」原則に具現化されたシステムの基的な構成」に具現化されたシステムの基的な構成」具現化を左右する原則に具現化されたシステムの基的な構成」されたシステムの基的な構成」システムの基的な構成」の関係や環境、設計やその基的な構成」な構成」構成」」 ● M

    思考停止しないアーキテクチャ設計 ➖ JJUG CCC 2018 Fall
    endo_5501
    endo_5501 2018/12/15
    “現代においてアーキテクチャ設計は終わりのない仕事である ”
  • [レポート]レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡 #DDDAlliance | Developers.IO

    こんにちは。プロダクトグループのshoito(しょいと)です。 9/26(水)に開催された レガシーコードにドメイン駆動設計で立ち向かった5年間の軌跡 に参加してきたのでレポートします。 当日のtwitterのハッシュタグ#DDDAllianceのツイートがTogetterでまとめられています。 BIGLOBEにおける、5年間のDDDへの取り組みと今後について ビッグローブ株式会社 西 秀和さんより 30年間、事業を支えてきた業務システムをDDDで刷新する。 そのためには、組織的、エンジニアのレベルなど多くの問題があります。 その壁をどう乗り越えたのか? そして、壁の向こうで得た恩恵とは何のか? 5年という期間を経て、得ることのできた気づきや組織的な変化をお伝えしたいです。 アジェンダ DDD導入に至るまで 導入時の苦労 導入による効果 今後の目標 BIGLOBE販売システムについて、DD

    [レポート]レガシーなコードにドメイン駆動設計で立ち向かった5年間の軌跡 #DDDAlliance | Developers.IO
  • 技術的負債の四象限 - Martin Fowler's Bliki (ja)

    http://martinfowler.com/bliki/TechnicalDebtQuadrant.html ここ数ヶ月の間に、 技術的負債 に関する投稿がいくつかあった。設計上の不備の中で、技術的負債と呼ぶべきものは何か? 逆に、そう呼ぶべきでないものは何か?といった疑問が挙げられていた。 その一例が、アンクル・ボブの投稿「a mess is not a debt(散乱は負債ではない)」だ。 彼の意見は、次のようなものである。 良い設計方法を知らない人が書いた単に汚いだけのコードを負債と呼ぶべきではない。 長期的な持続性はなくても、 リリースなどの短期的な利益を生み出す設計指針をあえて選択することがあるが、 技術的負債はそのような特別な場合に使うべきである。 要するに、負債を抱えれば早めに価値を生み出すことができるが、 負債はできるだけ早く返済する必要がある。 だが私は、 設計の不備

  • メカ設計と3D CADのお話 - フォトシンス エンジニアブログ

    メリークリスマス!Akerun Advent Calendar 24日目担当のskytthkと申します。 フォトシンスでは主にメカ設計を担当しており、今年は新製品、Akerun Proの開発~量産立ち上げに奔走しました。 今日はメカ設計とCADのお話です 早速ですが皆さん、3D CADってご存知でしょうか?そうです、メカ設計者の必需品、3Dで形状を設計していく、アレです。 この手のソフト、ひと昔前まではプロ仕様のものを買おうとすると1ライセンス数十万~という世界でした。学生時代はSolidworks、前職の携帯電話の設計ではPro/engineerを使っていましたが、自主トレーニングしたいときやモデリングして遊びたいとき、自宅では触れないので学校や会社でいじるしかありませんでした。しかし最近では無料、もしくは個人でも全然買えちゃうような価格で、面白いソフトが出始めています。 エッジの線が増

    メカ設計と3D CADのお話 - フォトシンス エンジニアブログ
  • プロジェクト炎上を防ぐ魔法のアイテム、100徳ナイフを買ったお話2 | fladdict

    こんにちは、日で唯一の100徳ナイフコレクター(推定)兼、UIデザインとかしてる fladdictです。 先日、会社の機材として新しい100徳ナイフを購入しました。 via mantiquesmodern ゾーリンゲンのナイフマイスター、P.LANGが自ら研ぎあげた、最高級の一品です。重量950g、お値段なんと120万円。今年のお小遣いが全部すっ飛びました。 馬鹿と思われるこのナイフ、実はサービスの炎上やデスマーチを防ぐ神ツールだったりします。 このナイフをクライアントの偉い人に見せると、あら不思議! 「弊社のアプリをこうしては絶対にならない!」「この状況を脱しなければならない!」という号令が、ほぼ100%トップダウンで発動します。 一目瞭然なほど馬鹿で、巨大で、非実用的で、そして無駄に高価であればあるほどに意味がある。これを見せた時、「多機能もすぎれば毒となる」という言質に説得力が生ま

    プロジェクト炎上を防ぐ魔法のアイテム、100徳ナイフを買ったお話2 | fladdict
    endo_5501
    endo_5501 2016/09/29
    “サービスの炎上やデスマーチを防ぐ神ツール”
  • WBSの作り方はプロジェクト型組織の構造を決めるという考え方はRedmineチケット管理にも通じる - プログラマの思索

    WBSの作り方は組織構造に依存するという記事がとても参考になったのでメモ。 【参考】 WBSはプロジェクト組織を規定する : タイム・コンサルタントの日誌から WBSはコスト見積の基準を規定する : タイム・コンサルタントの日誌から 【1】ガントチャート初心者からよく聞かれる質問は、「WBSは工程単位に作った方がいいですか?それとも機能単位に作った方がいいですか?」だ。 話を聞くと、工程単位にチケットを作ってみると、実際の開発フローに合っていない感触があり、途中で、機能単位にチケットを作り直す時が多いらしい。 WBSの作成方法は、工程単位と機能単位のどちらが正しいのだろうか? (引用開始) さて、3つの機能モジュール×3段階の作業プロセスだから、合計9個のアクティビティからなるプロジェクトである。 これをWBSに構成するとき、二種類の表現が考えられる(IT系の仕事になじみのない人は、「シス

    WBSの作り方はプロジェクト型組織の構造を決めるという考え方はRedmineチケット管理にも通じる - プログラマの思索
  • 基本設計を分担してはいけない - 設計者の発言

    プロジェクトメンバーが無駄に多いのが、日型SIの特徴のひとつである。「工数を人数で割れば工期が出る」と考えることが間違いであることは、ブルックスの著書「人月の神話」によって今から40年前に指摘されている。それにもかかわらず、相変わらず多くのプロジェクトで必要以上の人数が投入されている。 私がとくに不思議に思うのが、基設計を何人もの要員で分担するやり方だ。DB設計と機能設計と業務設計の担当を分けるとか、サブシステム毎に担当を分けるといった体制がしばしば敷かれる。詳細設計の段階でというのならまだわかるが、基設計でそれをやってはいけない。 なぜか。業務システムにはアーキテクチャ(意図された構造)が求められる。そして、そこに含まれる膨大な定義要素は、統一感や一貫性を保ち、かつMECEな形で切り出されなければいけない。複数の要員で分担などすれば、それらの課題が一挙に難しくなる。また、DB構成と

    基本設計を分担してはいけない - 設計者の発言
    endo_5501
    endo_5501 2015/10/19
    全く同意。
  • 【後藤弘茂のWeekly海外ニュース】 超広帯域メモリの採用を可能にするIntelの新パッケージング技術「EMIB」

    【後藤弘茂のWeekly海外ニュース】 超広帯域メモリの採用を可能にするIntelの新パッケージング技術「EMIB」
    endo_5501
    endo_5501 2015/02/04
    “近くて速い汎用メモリ”
  • コウモリ・ウオッチ:視覚障がい者のためのウェアラブルデヴァイス

  • Webの当たり前をアプリでも実現するために対応必須なディープリンクとは?

    『MarkeZine』が主催するマーケティング・イベント『MarkeZine Day』『MarkeZine Academy』『MarkeZine プレミアムセミナー』の 最新情報をはじめ、様々なイベント情報をまとめてご紹介します。 MarkeZine Day

    Webの当たり前をアプリでも実現するために対応必須なディープリンクとは?
  • コマンドラインツールについて語るときに僕の語ること #yapcasia

    http://yapcasia.org/2014/talk/show/b49cc53a-027b-11e4-9357-07b16aeab6a4

    コマンドラインツールについて語るときに僕の語ること #yapcasia
  • Redmineチケットの担当者を固定にする手法はWBS駆動に凝り固まり過ぎ - プログラマの思索

    RedmineとWBS駆動の相性の悪さについて、一つの意見を聞いたのでメモ。 【参考】 チケット駆動開発がWF型開発と相性が悪い理由: プログラマの思索 EVMとバーンダウンチャートは質的に違う: プログラマの思索 TiDD初心者から必ず聞かれる質問~「チケットの粒度」と「チケットの完了条件」 #47redmine #redmine: プログラマの思索 イテレーションの考え方は締め処理と同じ: プログラマの思索 何故チケット駆動開発はタスクやイテレーションの変更に強いのか?: プログラマの思索 【1】とある人から、RedmineとWBS駆動の相性の悪さの意見を聞いた。 その人曰く。 Redmineでは、チケットの担当者がどんどん変わっていくように運用すべきなのに、WF型開発に凝り固まっている人は、チケットの担当者を固定して作業を管理しようとする。 だから、プロジェクト管理をチケット管理に

    Redmineチケットの担当者を固定にする手法はWBS駆動に凝り固まり過ぎ - プログラマの思索
    endo_5501
    endo_5501 2014/08/06
    “チケットはタスクというよりも、一つの目的に従った作業にすべきであり、担当者を頻繁に変えながら、チケットに紐づく成果物をブラッシュアップすべきだ”
  • ドメイン駆動設計読んだ - hitode909の日記

    ドメイン駆動設計というのはソフトウェア工学のおしゃれなで,Kindleで買えたので読んだ.ドメインを軸に戦略的に設計しましょうという.2週間くらいで読めて良い体験できてよかった. ソフトウェアを,ユーザーインタフェース,アプリケーション,ドメイン,インフラストラクチャという4つの層に分けて,一番重要なのがドメイン層で,ドメイン層にアプリケーションが存在し得る理由がある.銀行システムだったら,口座とか利子みたなやつがドメイン層で,口座がよくできてると銀行としてうまくいく.ATMのタッチパネルというのはユーザーインタフェースで,どんなにATM押しやすくても,ドメイン層に,口座という概念がなくて,ただのハッシュだったりすると,銀行を運営して金を儲けるとか,新たな金融商品とか作るのが困難になる.インフラ層は永続化とかするのだけど,インフラ層がいかによくても,意味ないデータを保存していては銀行倒

    ドメイン駆動設計読んだ - hitode909の日記
    endo_5501
    endo_5501 2014/02/20
    そういやあ、ずっと積んでるなあ
  • iBus 1.5はバグがあるからクソなのではない。設計上クソなのだ

    先日、iBus 1.5がクソすぎると書いたが、以下によって、iBusをクソと罵るのではなく、貢献をしろという主張がなされている。貢献とは、ひとえにパッチを書いて送ることのみをいうのではない。問題の指摘や、使用した感想を報告するといった比較的軽いものも貢献に含まれると、そう主張している。 誰がオープンソースソフトウェアを酷いものにしてしまうのか - 人生が二度あれば もちろん、それはそうだ。ソフトウェアは使われるというだけで貢献になる。利用感を報告すればなお良いし、開発に参加すればさらによい。しかし、それは貢献が受け入れられるならばの話だ。そのような貢献を受け入れる機会は10ヶ月もあったが、依然としてiBusの上流で受け入れる気配はみられない。貢献が受け入れられなければ、貢献は貢献にならないのだから、貢献をするのは無駄だ。 iBus 1.5の問題は、バグではない。設計上の問題である。そして、

  • 設計レビューに私情を持ち込んでいませんか?

    設計・開発・運用業務に役立つ書籍をピックアップして紹介する新連載「情シスの棚」。第1回は、システム開発の現場で働く多くの人が思い当たるであろう、設計レビューの問題点と方法論を解説した書籍を紹介する。 「システム構築プロジェクトでは、さまざまな会議が開かれます。そのなかでも、参加する際にとりわけ気が重いのは、ドキュメントの問題指摘を行うレビュー会議ではないでしょうか。長々と続くにつれてレビューアーがイライラし、ドキュメント作成者がつるし上げられたり、レビューアー同士で言い争いになったりする――。そんな状態だから、長い時間をかけた割に重大な問題を指摘しきれずに終わるケースが少なくありません」。「頑張るだけのレビューには限界があります」。「必要なのは、レビューのやり方を見直すことです」――。 書、「間違いだらけの設計レビュー」は、レビュー方法論の第一人者である名古屋大学 大学院 情報科学研究

    設計レビューに私情を持ち込んでいませんか?
    endo_5501
    endo_5501 2013/10/13
    「「レビューは本質的に、レビューアーによるドキュメントへの批判」であり、「ドキュメント作成者の気持ちを深く傷つけてしまいかねない危険なコミュニケーションを伴う」」