タグ

設計に関するcuttoff19のブックマーク (139)

  • 今、我々は、 GUI の設計について 何を考えるべきか - mizchi's blog

    というテーマで ToKyoto.js ― Kyoto.js in Tokyo - connpass で Redux Rx FRP らへんの 話をしてきました。 これ一個会場で指摘された間違いがあって、 reducer = observable.reduce と書いてるところは reducer = observable.scan です。 @amagitakayoshi / @pastak お疲れ様でした。

    今、我々は、 GUI の設計について 何を考えるべきか - mizchi's blog
  • Buckblog: Skinny Controller, Fat Model

    18 October 2006 — The "Fat Controller" anti-pattern is shown and dissected, and the reader is taken through the process of refactoring it into a more readable, maintainable, and testable solution — 5-minute read When first getting started with Rails, it is tempting to shove lots of logic in the view. I’ll admit that I was guilty of writing more than one template like the following during my Rails

    cuttoff19
    cuttoff19 2017/09/18
    viewにロジック書きまくりのコードからモデルに移し替える流れ。
  • てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ! - Qiita

    てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ!RubyRails ちょっと煽り気味のタイトルにしてみましたが、Railsで開発する時は意識的にOOPに寄せないとオブジェクトの力が活かせなくなるよってことと、Railsが提供しているクラスの責務を分割することを支援してくれる機能について話をします。 ActiveRecordの性質 Rails開発においては、モデル層にロジックを書いてコントローラーは薄くしろ、というのはしつこく言われているので、概ね浸透してきていると思います。 それに加えて、最近私が結構しつこく主張しておきたいのが、モデル = ActiveRecordでは無いよ、ということです。 ActiveRecordは成り立ちから言うと、ロジックとDBへの永続化をまとめてカプセル化するアーキテクチャパターンから来ています。

    てめえらのRailsはオブジェクト指向じゃねえ!まずはCallbackクラス、Validatorクラスを活用しろ! - Qiita
  • 俺が悪かった。素直に間違いを認めるから、もうサービスクラスとか作るのは止めてくれ - Qiita

    ちなみに、最初に結論だけ言っておくと、まずSandi Metzの「オブジェクト指向設計実践ガイド」を読め、という話です それだけで終わってしまいたい気持ちはあるが、不親切過ぎるしもうちょっとRails向けの話を書こうと思う。 ただ言いたいことは、よく分かってないのに使うのは止めろということ。 自分もで書いたりした手前、それが参考にされた結果なのかもしれないが、世の中には当に酷いクラスが存在するもので、雑にサンプルで書くと以下の様な感じのコードが存在したりする。 class HogehogeService # Hogehogeはモデル名まんま def process(hogehoge, option_a: nil, option_b: nil, option_c: false) history = hogehoge.histories.last unless hogehoge.activ

    俺が悪かった。素直に間違いを認めるから、もうサービスクラスとか作るのは止めてくれ - Qiita
  • Ruby on Railsの「えせMVC」の弊害

    先日のエントリーでも少し触れたが、Ruby on Railsの最大の問題点は、それが持つ「一見そのフレームワークがMVCの形をとりながら、MVCの最も大切なところを外している『えせMVC』である」点にある。MVC(Model View Controller)がなぜ必要かを根底の部分でちゃんとと意識せずにRailsアプリケーションを作ると、後々ひどい目に会うので注意が必要である。 その意味では「RailsでMVCを学ぶ」などもっての他だし、「JavaにもRailsと同じようなフレームワークを作って業務用アプリの開発を効率化しよう」などという発想もとても危険である。 ということで、今日はまずはMVCの解説から。 MVCの発想の根底には、「モジュール化と情報の隠蔽により、プログラムがスパゲッティ化するの(コード間の相互依存関係が複雑に入り込んでしまってにっちもさっちも行かない状態になること)を避

  • リレーショナル・データベースの世界

    サービス終了のお知らせ いつもYahoo! JAPANのサービスをご利用いただき誠にありがとうございます。 お客様がアクセスされたサービスは日までにサービスを終了いたしました。 今後ともYahoo! JAPANのサービスをご愛顧くださいますよう、よろしくお願いいたします。

  • データベース論理設計のアンチパターン - 夜は寝る

    おはこんばんちは。 がんばってブログを書きたいので、ちょうどいま読んでいるSQLアンチパターンというを、噛み砕いて離乳くらいの柔らかさにして晒してみます。すでに読んだ人はいますぐそっ閉じ、まだ読んでない人は、こちらも同様にそっ閉じしてお風呂に入ってすぐ寝ましょう。 SQLアンチパターン 作者: Bill Karwin,和田卓人,和田省二,児島修出版社/メーカー: オライリージャパン発売日: 2013/01/26メディア: 大型購入: 9人 クリック: 698回この商品を含むブログ (45件) を見る かなり圧倒的に当たり前のことしか書いてないんですけど、そういうこそが良書だっておじいちゃんの息子の息子が言ってた気がします。 アンチパターンが全部で25個、カッチョイイタイトルとともに紹介されています。「目的」「アンチパターン」「解決策」をそれぞれ示します。書だと、「アンとパターンを

    データベース論理設計のアンチパターン - 夜は寝る
  • SQLアンチパターンをパッと思い出すための一覧 - 無印吉澤

    SQLアンチパターン 作者: Bill Karwin,和田卓人,和田省二,児島修出版社/メーカー: オライリージャパン発売日: 2013/01/26メディア: 大型購入: 9人 クリック: 698回この商品を含むブログ (41件) を見る SQLアンチパターン読みました。非常に面白かったです。アンチパターンについて事例を交えてわかりやすく書かれており、プログラマとして何年か仕事したことがある人なら、「あの案件のデータベースはこのアンチパターンだった」とか「このテーブル定義書いたことある」とか、過去の色々を思い出しながら楽しく読めるだと思います。 このの良いところは、「アンチパターンを用いるのは絶対駄目」と言うのではなくて、アンチパターンを用いてもよい場合や、アンチパターンを見つけた場合の解決策のバリエーションにも十分なページ数を割いているところです。アンチパターンに遭遇したり、アンチ

    SQLアンチパターンをパッと思い出すための一覧 - 無印吉澤
  • オーバーエンジニアリングの正体とその向き合い方 | POSTD

    (編注:2020/08/18、いただいたフィードバックをもとに記事を修正いたしました。) 問題は細部(あるいはその欠如)にあり。 議論とは、ソフトウェア開発の基的な構成要素であり、スケーラビリティを向上させるためには避けられない摩擦であると言えます。議論を通して私たちは出来上がるものの品質に影響を与え得るような問題を早い段階で浮かび上がらせることができるのです。その1つがオーバーエンジニアリングの問題です。 ウィキペディアによると、オーバーエンジニアリングとは下記のとおりです。 十分な 安全率 や十分な機能の確保のためか、あるいはデザイン上の誤りのどちらかの理由から、アプリケーションが必要とする以上に強固で複雑なプロダクトがデザインされてしまうこと。 また、ウィキペディアには、オーバーエンジニアリングが好ましい場合として、さらに、このようなことも書いてあります。 ある特定の基準の下で安全

    オーバーエンジニアリングの正体とその向き合い方 | POSTD
  • デザイナー・バックエンドの方もすぐに実践出来る!フロントエンド設計(CSS設計)のコツ | PSYENCE:MEDIA

    デザイナー・バックエンドの方もすぐに実践出来る!フロントエンド設計(CSS設計)のコツ 小原正大 2015.09.15 198 21943845 こんにちは、2015年新卒の小原(こはら)です。フロントエンドを担当しています。 先日まで新規サービスの開発にジョインしてフロントエンドの設計・実装を行っていました。その時のことを振り返りながら、簡単に行えるフロントエンドコーディングの設計についてまとめようと思います。 柔軟性の高いフロントエンド開発の設計とは どのようなサービス開発についても、仕様がはっきり決めきれなかったり今後の機能追加・変更が生じる可能性があり、ビジネス上の発想と同様に開発にも柔軟性が求められます。特に変更の起きやすいフロントエンドはなおさらでしょう。 フロントエンド開発における柔軟性とは、インターフェースの変更に対してどれだけ効率的・継続的にアップデートに耐えられるかと言

    デザイナー・バックエンドの方もすぐに実践出来る!フロントエンド設計(CSS設計)のコツ | PSYENCE:MEDIA
  • さいきんReact, Reduxでやっている設計 - しゅみは人間の分析です

    はじめに ブラウザでGUIアプリケーションを作らなくても良い牧歌的な時代は終わりつつあります。個人的な意見としてはブラウザはドキュメントビューアのままでいて、複雑なGUIアプリケーションはネイティブアプリケーションとして実装されてほしいのですが、そうは言ってもお仕事で人間にとって負担の低いUIを作っていく必要があるのです。 Railsでサーバアプリケーションを書きつつ管理画面はネイティブでなんてことはコスト的に実現できません。かといって長期的に運用されるシステムを作ると、システムを運用するためのUIが操作しやすいに越したことはありません。Bootstrapを使っててきとうなフォームを並べただけの画面を作って怒られた経験はありませんか? たとえサーバ開発者だとしても、我々は使いやすいUIを求め続ける必要があります。 react, redux 複雑なGUIを作るためのフレームワークも乱立の時代

    さいきんReact, Reduxでやっている設計 - しゅみは人間の分析です
    cuttoff19
    cuttoff19 2017/04/12
    immutable.js使うパターン
  • 複雑なJavaScriptアプリケーションを考えながら作る話

    autoscale: true theme: Plain Jane,5 複雑なJavaScriptアプリケーションを考えながら作る話 自己紹介 Name : azu Twitter : @azu_re Website: Web scratch, JSer.info #jsprimerを書いています JavaScript入門書に興味ある人はウォッチ :star: :warning: 注意 :warning: 作成するアプリケーションによって必要な構造は異なります 今回の話はある程度の規模で複雑性を持つクライアントサイド ライブラリ抜きで数万LOC >= 長期的にメンテンナンスや変更が発生するアプリケーション サーバサイドレンダリングはしないクライアントアプリケーション 3行でOK 複雑なJavaScriptアプリケーションを作るにあたりドメインモデルをどう実装するか悩んだ 色々と試行錯誤した

  • フロントエンドGUIの状態の整理 - しゅみは人間の分析です

    昨日の🍺のあとに考えていた雑感。フロントエンドから見たGUIの状態を個人の主観をもとに整理しています。 背景 複雑なJavaScriptアプリケーションを考えながら作る話 と id:Pasta-K がReact + Canvasで色々やっていた話 などなど。 Reactなどの現代フロントエンドはたいへんしんどいGUIであるという前提もあります。 GUIの状態の種類 人間 諸悪の根源。 だいたいこいつが状態を変更してくる。バリデーションが必要なのもこいつのせい。 わかりやすいUIを提供しないと人間が弱る。 View Viewの中の状態。UI上の選択状態とか。 Viewに状態を持ちたくない宗派としては、できれば非永続化層(メインのビジネスロジックと状態を持った層)か永続化層(DB)にすべての状態を持っていて欲しいが、パフォーマンス上の問題でthis.stateに状態を持つことはありえる。Re

    フロントエンドGUIの状態の整理 - しゅみは人間の分析です
  • 「WebAPI 設計のベストプラクティス」に対する所感 - Qiita

    「翻訳: WebAPI 設計のベストプラクティス」を読んで色々と思うところがあったので書きました。 上記の記事は訳文でありますので、正しくは「Best Practices for Designing a Pragmatic RESTful API」に対する所感と述べた方が良いのかもしれませんが、日語で通して読めるよう Qiita に投稿された訳文に対する所感として書いています。 以下では「翻訳: WebAPI 設計のベストプラクティス」並びに「Best Practices for Designing a Pragmatic RESTful API」は「当該記事」と表現します。 観点 当該記事では「○○とした方がよい」との意見に対してそうすべき理由が明らかになっていないか、もしくは表現が曖昧な場合が目立っていると感じました。設計は実装のようにプログラム言語仕様が制約を与えられないため、意図

    「WebAPI 設計のベストプラクティス」に対する所感 - Qiita
  • 翻訳: WebAPI 設計のベストプラクティス - Qiita

    これは Enchant の開発者である Vinay Sahni さんが書いた記事「Best Practices for Designing a Pragmatic RESTful API」1を、ご人の許可を得て翻訳したものです。 RESTful な WebAPI を設計しようとすると、細かなところで長考したり議論したりすると思います。また、他の API に倣ってやってはみたものの、当にそれでいいのか、どうしてそうしているのか分からない、何てことも少なくはないと思います。 この記事では、そのようなハマリどころについて Vinay さんなりの答えを提示し、簡潔かつ明快に解説してくれています。 今後 WebAPI を設計される方は、是非参考にしてみてください。 なお、誤訳がありましたら編集リクエストを頂けると幸いです。 まえがき アプリケーションの開発が進むにつれて、その WebAPI を公

    翻訳: WebAPI 設計のベストプラクティス - Qiita
  • 実装を引き受ける前に詰めておくべきWebフロントエンドの想定漏れチェックシート - Qiita

    リキッドレイアウトのように幅が常に変動するレイアウトのデザインは、動かないカンプからは実際の挙動が読み取れず、デザイナーの意図が汲み取りきれないことが多い。また、複雑化するアニメーションの実装においても、カンプだけではコミュニケーションに不備が生まれてしまう。ほかにも、CMSを使った案件ではデザインカンプと実際のデータの間に齟齬がある可能性もある。 実装効率を高めてスケジュール通りに仕事を終わらせるには、とにかく事前に仕様を固めることが大事だ。ワイヤーフレームやデザインの途中の段階からなるべくデザイナーとコミュニケーションを重ね、想定外の要件が発生しないように気をつけるべきだろう。 この記事では、デザイナーやフロントエンドエンジニアが見落としがちなWebフロントエンドの課題について列挙していく。 ホバー表現を後から指示される ツッコミ 後から仕様追加されると困るから先に決めて! メモ 最近

    実装を引き受ける前に詰めておくべきWebフロントエンドの想定漏れチェックシート - Qiita
    cuttoff19
    cuttoff19 2017/02/06
    ブコメから察するに割とガバガバで進めてるところ多いらしくてそんなもんなんだろうなと
  • システム設計の流れ - Qiita

    昔のメモを整理してると出てきました。今となっては心底どうでもいい。 上流工程に関するあれこれ 大まかな流れ 基的な流れとしては要件定義→外部設計→内部設計→開発の流れが採用される。 ここで外部設計は基設計、内部設計は詳細設計とも呼ばれる。 一般にウォーターフォールモデルでの考え方では外部設計までが上流工程と考えられるようだ。 要件定義 要求開発(超上流工程) [ 業務フロー ] 業務とその流れを表現するもの。素人にもわかるように → アクティビティ図 業務機能関連図 [ 業務モデル ] 業務を静的に表現する。 → ERD クラス図 要件定義 システムの範囲を決定する。何を作って何を作らないかを明確にすること。 1.機能要件 ユースケース一覧 機能一覧 2.非機能要件(FURPS+) >機能 機能要求 >使用性 UIの指針、ユーザ教育、マニュアル >信頼性 管理、監視、保守、復旧 >性能

    システム設計の流れ - Qiita
  • I am mitsuruog | SPAを構築するときに知っておいた方がいい7つの課題

    ブラウザでの Javascript の高速化と Backbone や Angular のような JavascriptMVC フレームワークの登場により、以前より SPA(Single page application)が構築しやすくなりました。 さらに、Yeoman に代表される SPA を作成するするための scaffold(土台)が整備されてきましたので、結構さくっと SPA が作れるようになったのも事実です。 さくっと作った SPA がさくさく動かない・・・作ったけど使えない・・・なんてことにならないように、SPA を構築する前に知っておいた方がいい課題について調べてたり考えてみました。 目次 1. パフォーマンス 2. メモリリーク 3. セキュリティ 4. フレームワークロックイン 5. 画面設計から UI コンポーネント設計への思想転換 6. フロントエンジニア不足 7. 番外

    I am mitsuruog | SPAを構築するときに知っておいた方がいい7つの課題
  • 中規模Web開発のためのMVC分割とレイヤアーキテクチャ - Qiita

    TL;DR MVCもレイヤで捉えて関係性の設計をするといいのでは 普通のRubyオブジェクトを積極的に使いたいですね 「パーフェクト Rails」に期待しましょう 長くなって面倒くさくなり、途中から手抜き感が半端ないですが許してください この記事の位置付けなど 7 Patterns to Refactor Fat ActiveRecord Models - Code Climate Blog [翻訳] エリック・エヴァンスのドメイン駆動設計 エンタープライズ アプリケーションアーキテクチャパターン これらの参考文献を踏まえてRailsアプリケーションのリファクタリングをしていて、だいぶ方向性や考え方がまとまってきたので、これからチームに合流する人を想定読者に、Qiitaがどんな感じで作られているのかを文書化したものです。(参考文献の一覧は記事の最後にあります) 内容的には文献[2,3]を踏

    中規模Web開発のためのMVC分割とレイヤアーキテクチャ - Qiita