Vendoring. Generics. These are seen as big issues in the Go community but there’s another issue that’s rarely mentioned — application package layout. Every Go application I’ve ever worked on appears to have a different answer to the question, how should I organize my code? Some applications push everything into one package while others group by type or module. Without a good strategy applied acros
The presentation slides on golang.tokyo#9 by @__timakin__
The idea that TDD damages design and architecture is not new. DHH suggested as much several years ago with his notion of Test Induced Design Damage; in which he compares the design he prefers to a design created by Jim Weirich that is “testable”. The argument, boils down to separation and indirection. DHH’s concept of good design minimizes these attributes, whereas Weirich’s maximizes them. I stro
このナビゲーションバーがスマートフォンの場合は横画面にした場合は右側に配置されるのですが、タブレットは下側に表示されます。 さらに、ソフトウェアキーボードではなくハードウェアキー(通常 静電方式のタッチ)の場合があります。これにより、端末によってレイアウトが変わるのでデザインをする上では注意が必要です。 smart phone tablet 端末サイズ一覧 海外端末が多いですがGoogleのMaterial.ioのページを見ると、dpとpxが記された端末のサイズ一覧を見ることが可能です。 https://material.io/devices/ こちらのページにある端末がAndroidのデファクトスタンダードになりますので、本当はこちらに合わせるのがベストですが、日本だと独自にカスタマイズされた端末達と戦う事になります… お互い頑張りましょう💪🏼 iOSとの違い 戻るという概念 戻るボ
by Patrizio Cuscito ウェブサイトやアプリを使っていると自分の意図するものとは違う操作が勝手に行われていて戸惑うことがありますが、ミスではなく、「わざと」そのようなデザインにしているユーザーインターフェースを「ダークパターン」と呼びます。なぜ善良なデザイナーがダークパターンを使う悪意あるデザイナーになってしまうのか、その仕組みがムービーで公開されています。 Dark Patterns - User Interfaces Designed to Trick People http://darkpatterns.org/ ダークパターンとは何か?ということは以下の記事を読むとわかります。 ユーザーをだますのが目的のデザイン「ダークパターン」いろいろ - GIGAZINE なぜデザイナーが暗黒面に落ちてしまうのかは以下のムービーで解説されています。 Dark Patterns:
Avdi Grimm Hacker; code documentarian. August 2, 2017Riffing on `interpose` implementations in RubyJuly 14, 2017On being the employee who “needs improvement”July 13, 2017How to categorize objectsMay 15, 2017Please help me find a web design mentorMay 8, 2017Getting started with PHP: Essential dev tools The latest Smalltalk-to-Ruby translation in my SBPPRB archive is “Dispatched Interpretation”. It’
7 Patterns to Refactor Fat ActiveRecord Models という記事があり、読もう読もうと思いつつ1年くらい経ってしまった。 ようやく読んだので理解した内容を書いておく。 コード例は元記事のもの。 Rails で thin controller, fat model を心がけていると、model がマジで激太りしてヤバくなる。 実際に自分が仕事で書いている rails アプリも激太りしててヤバい。 この blog の筆者が作っている CodeClimate で C 判定をもらう程度には肥満体型になっている。 Mixinに抜き出さない! Model が太ってきた時に考えるのは ActiveSupport::Concern を使って感心事を抜き出して、Mixin にすることだと思う。 実際に手元のアプリでも models/concerns/ なんていうディレ
最近、ドメイン駆動設計ってどうやって実践すればいいかなーという質問をよくされるので、この記事が満額回答にはならないと思いますが、書いてみたいと思います。 シンプルな問題はトランザクションスクリプト、いわゆる手続き型で対処できます。問題が小さいのでコードは直接的でわかりやすくなる傾向にあります。 とはいえ、世の中の問題はシンプルなものばかりじゃない。複雑な問題もある。DDDの著者であるEric氏は、複雑な問題はドメインモデルを使って対処すべきと説く。 ドメインとは問題の領域とか知識の範囲をいうのですが、DDDはそのドメインにある概念をモデル(ドメインモデル)として定義して、さらに実装として紐付けていく設計手法です。 モデルクラスは概念ありき 例えば、電車にまつわるドメインというので考えたとしたら 電車 乗客 駅 ダイア などの概念が登場します。 現実世界に限った話ではなく、仮想世界でもドメイ
2011-12-17 これは Scala Advent Calendar 2011 の 17日目の記事です。 specs2 の作者であり、@etorreborre としても活発に発言を続けるシドニーの強豪 Eric Torreborre さんが書いた “The Essence of the Iterator Pattern” を翻訳しました。翻訳の公開は本人より許諾済みです。翻訳の間違い等があれば遠慮なくご指摘ください。 2011年6月24日 Eric Torreborre 著 2011年12月17日 e.e d3si9n 訳 去年読んだ論文で一番気に入ったのは “The Essence of the Iterator Pattern”(以下、EIP)だ。これを読んだ後で、今まで何年も使い続けてきたあるものに対する考えがガラリと変わった。それは、for ループだ。 この論文の中からいくつか
良いソフトウェアの設計は、小さくて、気の利いた「部品」を、うまく「組み合わせる」こと。 役割が単純で明確なオブジェクト(部品)が、集まって、協力して、なにか人の役に立つことをしてくれる。 そういうソフトウェアを設計するためのテクニック、基本パターンの一つが、 Whole-Part(全体-部分)パターン。 Part = 役割が単純で明確なオブジェクト Whole = Part を集約して、何か役にたつことをする Part には、どんな役割を持たせ、Whole には、どんな役割を持たせるのが良いかをパターン化しものが、 Whole-Part パターン。 前から知ってたパターンだが、今回、新卒採用の求人票のモデリングをやるために、参考書を読み返しながら、このパターンの考え方をもう一度、整理してみる。 「求人票」が Whole (全体)。 Part ( 部分の方は) , 企業概要、募集職種、基本給
ソフトウェア設計には、パターン理解が大切。 でも、その前に、設計の基本原則(設計の基本テクニック)を、押さえておきたい。 いろいろな設計パターンに共通する、その根っこにある設計原則を会得すれば、パターンの理解や実践が、もっと楽に楽しくなる。 設計原則の会得は、ソフトウェア設計の免許皆伝、達人への道であり、ここぞという時の、銀の弾丸になる。 モジュール化 たぶん、これが、いちばん基本の設計原則。 デザインパターンも、アナリシスパターンも、アーキテクチャパターンも、モジュール化原則の適用例になっていると思う。 モジュール化の原則違反の典型例は、一枚岩(モノシリック)で巨大なソフトウェア。 別名、密結合、スパゲティコード。 こういうソフトウェアは、理解しがたく、変更が恐ろしく難しい。 バグがあちこちに隠れていて、副作用が怖く、とてもじゃないが、コードを変更する勇気(度胸?)はない。 「一枚岩」は
Bruce A. Tate 著、まつもとゆきひろさん監訳、田和勝さん訳の 「7つの言語 7つの世界」 を楽しみながら読んでいる。 最初のページの「読者の声」の、 「複数のパラダイムを理解すると、設計能力が大幅に強化される」by Dr. Venkat Subramaniam に、はっとさせられた。 読み進めるうちに、この言葉の意味が、実感できてきた。 「異なるパラダイムを、実感してみる」と「設計の発想やセンスが変化する」手ごたえがあった。 9章「まとめ」に、プログラミングパラダイムを4つに分類した要約がある。 ●オブジェクト指向 --> Ruby, Scala ●プロトタイプ型 --> Io ●制約論理型 --> Prolog ●関数型 --> Scala, Erlang, Clojure, Haskell ※「手続き型」がないのは、この本では C, FORTRAN, COBOL, BASI
Stay ahead of the curve and become a better interface designer. With a Pttrns membership, gain access to thousands of curated mobile design patterns, get online advice, and connect with other designers from all over the world. What you get UX and UI Patterns Learn and follow industry best practices that can be applied to your app to help ensure the best user experience possible. App database Save
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く