子供のころ、雑誌に付いてきたふろくを組み立ててよく使っていた。当時は考えたこともなかったが、毎月アイデアを練ってた作り手が存在する。昔は当然コンピューターなんかは使わず、全部手描きで設計されていた。 そのふろくの設計者による展示会へ行ってきた。本人に話を聞いてみると、「平面の紙から立体を作る仕事をしすぎて、最近では乗用車が目に入って通り過ぎる前に展開図が出てくる」みたいな話も飛び出し、ええええー! 詳しく知りたい。
引っ越しに伴い、洗面所の空間活用について検討していました。ドラム式洗濯機の上の空間をうまく使いたいところですが、幅に余裕がなく既製のラックを導入できず困っていました。ないなら作ればいい、ということでDIYを画策。机や棚のようなモノとは違って空間を相手にするので、どう設計したものかと思い悩んだのち行き着いたのは「部屋の3Dスキャン」と「CADソフトによるレイアウト検討」でした。ググってみても事例が見つからなかったので、ここに残しておきます。 iPhone12 ProのLiDARスキャナで部屋を3D化 自分が保有している iPhone 12 Pro Max には『LiDARスキャナ』が搭載されているので、これを使えないかということで見つけたのが「3d Scanner App」。すぐに試したところ、期待した通り空間をスキャンでき、上の写真のテクスチャ付き3Dモデルを作り出すことができました。とり
はじめに "ドメイン駆動設計は当たり前のことを言っているだけ" "ドメイン駆動設計はただのオブジェクト指向プログラミング" "ドメイン駆動設計はより良いアーキテクチャだ" "軽量DDDはアンチパターンだ" このようなドメイン駆動設計に関する言及を聞いたことがあるでしょうか? ドメイン駆動設計に言及する記事や書籍は多くありますが、それぞれ着目する側面が異なったり色々なコンテキストから言及されています。 おそらくそれが原因でドメイン駆動設計が何であるかをぼやけさせ、正体のわかりにくい概念になっているように思えます。 そこで今回は色々な観点から整理し、ドメイン駆動設計とは何であるのか、その正体を考えていきます。 ドメイン駆動設計の基本的概念について ドメイン駆動設計はEric Evansが出版した「Domain-Driven Design」という書籍がルーツになっています。 ドメイン駆動設計を一
概要 普段はソフトウェアエンジニアとして活動していますが、訳あってITとは全く関係ない建設業界の社内システムを作った時の話をします。古い体質と言われる建設業界ですが、高齢化により若者が定着しない、IT化の遅れから労働生産性が悪いといった問題が、そのまま「人手不足」「3Kイメージ」に繋がっています。 本記事では、全くシステム導入が進んでいないとある建築設計会社の情報システムを担当し、どんなSaaSを組み合わせて社内システムを構築したかを紹介します。紹介するSaaSは一例であり、全ての会社に当てはまるわけではないので、あくまで参考としていただきたいです。 導入したSaaS Microsoft 365 コアとなるグループウェアとしては、Microsoft 365を使用しています。通常のIT・ソフトウェア業界ではGoogleのグループウェアが多いですが、建築の会社では以下の理由でMicrosoft
Bootstrapなどのフレームワークの登場によって、ウェブサイト制作は以前よりも手軽に、そして身近になってきています。特にデザイントレンドをうまく採用したHTMLテンプレートを利用することで、モバイル端末へのレスポンシブ対応はもちろん、簡単にサイトデザインを作成できるようになっています。 今回は、無料ダウンロードできる新作HTML5/CSS3テンプレート素材をまとめてご紹介します。どの素材も高品質なだけでなく、テキストエディタで編集しやすい仕様となっており、サイト制作が捗るアイテムが揃っています。今後のデザイン制作に活用してみてはいかがでしょう。 詳細は以下から。 サイト設計の手間を大幅に削減する、実用HTMLテンプレート素材まとめ Material Design for Bootstrap Google 公式のデザインガイド「マテリアル・デザイン」をコンセプトに、人気フレームワーク B
こんにちは、くだくらげです。最近ははじめてのUIデザインという本を共著で書きました。 おかげさまでたくさんの人に読んでいただいて、コメントをもらえたりして嬉しいです。ありがとうございます! PEAKSさんから出版しており購入できますので、よろしければ手にとってみていただけると嬉しいです。 peaks.cc 概要 WWDC 2019で新しく発表されたiOS13でOSレベルでのDarkMode設定が搭載されることになりました。MacOSの方は以前より追加されていましたが、iOSではなかったので個別のアプリが各々対応していました。 今回、iOSにもDarkMode設定が標準搭載されたことによって、iOSアプリのダークモード対応が必然的に迫られることになって来るのではないかと思っています。 ダークモードを好んで使う人は一定数存在していて、かく言う私もダークモードを好んで使っています。目に優しいだっ
ガジェット全般、サイエンス、宇宙、音楽、モータースポーツetc... 電気・ネットワーク技術者。実績媒体Engadget日本版, Autoblog日本版, Forbes JAPAN他 エクストリームスポーツを効果的にマーケティングに取り込んできたエナジードリンクのレッドブルが新たに公開したのは、レッドブル・レーシングのF1マシンを世界最速のカメラ搭載ドローンでぴったり追跡する空撮映像です。 F1世界選手権の2024年シーズンは今週末に開幕します。昨シーズンはレッドブル・レーシングF1チームのマックス・フェルスタッペン選手が圧倒的な強さを見せつけて世界チャンピオンの座を防衛し、先頃行われたシーズン前の合同テストでも、圧倒的な安定感とスピードを誇示していました。 そんな自動車レースの頂点に立つレッドブルのF1マシンと世界チャンピオンを追いかけ回すドローンパイロットとして選ばれたのは、Dutch
「一つのことをうまくやる」に忠実たれ。Serverspec開発者mizzyが語る成功するOSSの設計 過去、手動と目視による作業が常だったサーバーのテストを圧倒的に簡易化するServerspec。国内外で高い評価を得るこのOSSの開発舞台裏を、作者の宮下剛輔(mizzy)さんが語ります。 2014年1月、世界中の優れたオープンソースプロジェクトを表彰するアワード「Open Source Rookies of the Year 2013」で、日本発のあるツールが選定されました。Dockerなど名だたるソフトウェアと並んで入賞したそのツールの名は「Serverspec」。 Serverspecとは、一言で表現すれば、サーバーのテストを自動化してくれるオープンソースソフトウェア(以下、OSS)のツールです。過去、手動と目視による作業が常だったサーバーのテストを圧倒的に簡易化するServerspe
見て楽しい触って便利な、最近リリースされたものを中心としたウェブデザインの配色設計に役立つオンラインサービスを紹介します。 まずは、気軽にカラーを楽しめるサービスから。
Apache Kafka: Producer, Broker and Consumer2017年は生まれて始めてApache Kafkaを本格的に業務利用(PoCではなく本番運用)した年でした。Apache Kafka的なメッセージングミドルウェアそのもののは、社内的な事情でよく使っていたのでその使い勝手に対して困惑はほとんど無かったですし、ミドルウェアとして非常に安定しているため、Kafkaクラスタそのものでの不具合らしい不具合が発生したことは一度もありませんでした。 しかし、Kafkaのトピック設計などに関してのベストプラクティスは事例ベースでもあまり見かけたことがなく、チームメンバーと悩むことも多かったです。このストーリーでは、主にKafkaを利用したアプリ設計で考えたことや失敗したことを振り返りつつ共有します。なお、パーティション数や各種バッファサイズなどのチューニング要素は今回取
とりあえず、よく言われてるやつから埋めていこうと思う。 構造体にライフタイムを持たせない 構造体にライフタイムを持たせるのは「基本的に」避けよ、というのが重要なのは間違いないのだけど、これをもう少し実践的な内容にしたい。ちょっと考えてみたけど、こういうのはどうだろうか。 ある関数呼び出しの中でしか絶対に使わない。returnするまでにその構造体のデータは全て破棄される。static変数に退避させることもできない。アロケーションもその関数が面倒を見る。そういう一蓮托生できる関数呼び出しに心当たりはあるか? ある→ 構造体にライフタイムを持たせてもよい。 ない→ ライフタイム禁止。 そう考えてみると、DIとかReduxとかとも通じるところがあるかもしれない。「つべこべ言ってないで全部の責務を一番外側に持っていく」という決断ができるときは構造体ライフタイムが選択肢に入る。
grpc-gatewayの開発に学ぶ、ソフトウェアの設計手法~Yuguiが定めた、2つの基本設計方針 良いソフトウェアとはどのような方針のもとに設計されているのでしょうか。広く使われているOSSであるgrpc-gatewayの開発過程を作者のYuguiさんが振り返り、その設計手法を解説してもらいました。 こんにちは。 Yuguiと言います。 本記事では読者がより良いソフトウェア設計を行うための参考として、筆者が経験してきた設計上の決定をご紹介します。 筆者はこれまでRuby 1.9のリリースマネジメントを担当したり、Google Mapsの日本向け地理データ処理やgrpc-gatewayの開発などをしてきました。そしてこれらを通じて、広く長く使われて拡張されていくソフトウェアを設計するための方針決定に携わったり、方針に関わる良い議論を目にしたりする機会に恵まれてきました。中でも本記事では、
毎週金曜の定時後に弊社でアーキ部なるものが開催されています(✌'ω' ✌) スピードラーニング的に@kawasimaさんのお話を聞く会ですが、今週はテーブル設計がテーマでした! この記事がすごく良かったので、触発されてブログ書く!!! developer.hatenastaff.com お題 ↓のお題が出て、テーブル設計を考えてみるはなし。 要求仕様は以下のとおり。 ・宿の部屋は、シングルやツインのような部屋タイプが設定できます。 ・宿側で宿泊プランを設定できます。宿泊プランは適用される日付が設定できます。 ・プランには複数の部屋タイプが含まれることがあります。 ・宿側でプラン・部屋タイプ・宿泊日ごとに宿泊費の設定ができます。 ・カスタマはプラン・部屋タイプ・宿泊日を指定して宿泊予約ができます。 ・予約は会員でも非会員でも可能です。 ・また、会員・非会員に関わらず、宿をお気に入りに登録でき
DDD連載記事 背景・前提 なぜDDD初心者はググリ出してすぐに心がくじけてしまうのかの記事で、 ネット上の文献で紹介されるアーキテクチャが様々なものとなっているのです。IDDDではヘキサゴナルアーキテクチャというものが掲げられていましたが、それを進化させたオニオンアーキテクチャ、クリーンアーキテクチャなどの有名な亜種が存在します。 これが実装に着手する際に非常に大きな混乱を呼ぶのです。文脈の理解、採用するアーキテクチャの選定に時間を取られることでしょう。 と書きました。こちらに対して、私が「一番とっつきやすい」と考えるアーキテクチャを紹介します。 前提としてですが、完全に個人的な経験に基づく私見になります。 DDDの理論の中で、アーキテクチャに関しては「エリック・エヴァンスのドメイン駆動開発」(以下原典)と実践ドメイン駆動開発(以下IDDD)とでも異なったものが紹介されており、唯一の正解
こんにちは。Akerunエンジニアの @ishturk です。 Akerun Advent Calendarの記事です。 今日は設計書の話です。 設計書をどんなツールで書くかは、僕らソフトウェアエンジニアの尽きない悩み(楽しみ)ですね。 最近はまったツールが最高に良かったので紹介させてください。 僕のツールに求める要件は以下です。 編集がカジュアルにできる UMLが書ける。あとから編集できる(画像での貼付けは編集できないのでNG) バージョンの管理ができる 好きになれる(重要) 変遷と pros/cons MS Word pros 良くも悪くもスタンダードなツールですね。 だれでも編集できるのが強みです。 Visioと組み合わせれば、UMLも後から編集可能です cons Visioは標準にするには少々値が張ります。 バイナリ形式なのでバージョン管理はしづらいです。 ページが増えたり画像を貼
課題 数年前と比較すると、GKEやECSを始めとするコンテナ実行環境でのアプリケーション運用を行うサービスはかなり増えてきた印象があります。 コンテナを運用する上では、アプリケーションのイベントを追跡する上でログをどう扱うかが課題になります。今までのように古いログを定期的にローテートして別のストレージに転送するといった手法はクラウドネイティブなアーキテクチャには最適とは言えません。 アプリケーション開発の方法論として、Twelve Factor App ではログをイベントストリームとして扱うためのガイドラインが示されていますが、近年のWebアプリケーションではシステムを疎結合に連携するマイクロサービスという考え方が主流になりつつあります。 アプリケーションログはサービスごとにフォーマットを整形した上で、ログ収集サービスに配送。必要に応じてリアルタイム分析や異常データの通知、そしてデータの可
Photo by Samuel Mann こんにちは。谷口です。 「SQLは何となく書けるけど、DB設計はしたことない…」「DB設計について一度ちゃんと学んでおきたい…」という人は多いですよね。 DB設計とは、DBのデータモデル(DBの構成など)を作成する作業です。 DBを一から作ったり、テーブルを追加したりする際は、当然ですが「今あるデータが何となく格納できればそれでOK」ではありません。 テーブルは正規化できていないといけませんし、データの整合性も取れないといけません。また、効率よくデータが取れる構造になっているかどうかも重要です。 一から設計に取りかかるようなケースは少ないかもしれませんが、DBを取り扱うことがあるなら、こうしたDB設計の基本は知っておいて損はありません。むしろ自分が扱うDBの構造はきちんと知っておかないと、「なんか適当にSQL投げたらデータ取れたけど、正しく取れてる
あまり一般の方には知られていませんが、労働業界周りの人であれば誰でも知っている超有名な「労働判例」という雑誌があります。 労働判例(2016年4月1日・1128号)私も労働事件を扱う弁護士の端くれなので、この雑誌を定期購読しているのですが、最新号におもしろいというか、目を疑うような事件が載っていました。 それは、関西で「類塾」を営んでいる株式会社類設計室が被告となった事件です(類設計室(取締役塾職員・残業代)事件・京都地裁平成27年7月31日判決・労働判例1128号52頁)。 ちなみに労働者の代理人は渡辺輝人弁護士です。 全社員を取締役にするという荒技雑誌「労働判例」の表紙に、いきなり「全員取締役制塾職員の労働者性と割増賃金請求」という言葉が躍ります。 ここで、労働業界周りの読者は「え?どういうこと?」と一気に引き込まれます。 そして、「ぜ、全員取締役制?!・・・・だと?」と心を鷲掴みにさ
たとえば設計について議論するときや、コードレビューで指摘をするときに、「なぜその設計が良いと思うのか?」について言語化するのが上手だと、確実に良いことがあります。 言語化が上手にできるかが一つの壁なのではないか、と感じることもあります。後輩を育てたりチームをリードするような立場になると、特に必要性を感じるのではないかなと。 自分も、うまく言語化できたことですんなり議論を進められていると感じることは多いですし、逆に直感的な良さを言語化できなかったことで直感に反する方向に進んでしまい、結果よくなかったというような苦い経験もあります。 前提: ソフトウェア設計の良さは静的には決まらない良い設計・良いコードとは何なのか。という質問に一言で答えるなら、「保守性が高い」ことだと思います。つまり、今後の変更・拡張を、高速にバグが少なく行えるような状態が良い設計・良いコードです。(一般的にはこれで70%く
多くの人がそのリリースを期待していたアプリ「Class」がついにローンチした。 長い間ティザーサイトの状態だったClassはクローズドSNSの一種だ。Classでは、会ったことはないが同じ地域・同い年という属性のユーザ6人で15日間限定のクラスをつくり、コミュニケーションを行うアプリ。以下はサービスのイメージ映像。 Classを運営するwe-b代表の真子就有氏は、 私は当初、ほぼひとりの状態で起業、友達がほしいなぁと思っていました。社会人になり、仕事が忙しくなると新たな友達をつくる機会に出会うのが難しくなります。そんな人々のために、友達を作る機会を提供できたら、と考えたのがアプリを開発したきっかけです。 学校なら友達はできます。そして、学校の教室は年齢と地域は共通していますが、生徒はランダムで集まっている。この学校という誰もが経験したことのある体験をコンセプトに、友達を作ることができる環境
iPhoneアプリの良いアイデアが出たので、これから作り始めようというところである。 さて、iPhoneアプリ開発童貞ってわけではないが、今までただ闇雲に作っていた感があるので、 実際にXcodeを起動してコードを書き始める前の設計をどうしていこうかと考えている。 ソフトウェアの作成はじめてではもちろん無いのでだいたい勝手は分かるものの、 iPhone特有の設計思考が必要な気がして、文献を漁っている。 ところが、世に出回っているiPhoneアプリ本にはUIKitをいじくるだけの解説ばかりではないか! で、つまるところ設計について有益だと思えたのは以下3つの文献だった。 「iOSアプリケーションプログラミングガイド」Appleのサイトからダウンロードできる 「iPhoneアプリ設計の極意 - 思わずタップしたくなるアプリのデザイン」のfladdictさんの章 「iOS開発におけるパターンによ
さまざまなカラーパレット、グラデーション、パターンを見るだけでなく、作成して共有することもできるColRDを紹介します。 ColRD [ad#ad-2] カラーを見つける カラーを作る カラー作成に役立つツール カラーを見つける まずは、ColRDの「Discover(見つける)」から紹介します。 ColRDでは、カラーに関する4つのカテゴリが用意されています。 Discover Color Discover Palette Discover Gradient Discover Pattern
by Sh4rp_i ここ10年間に製造されたIntelのプロセッサに、設計上の欠陥が見つかりました。最悪の場合、パスワードやログインキー、キャッシュファイルなどが格納されたカーネルメモリーの内容を読み取られる恐れがあるとのことなのですが、Intel x86ハードウェアに存在する欠陥のため、マイクロコードアップデートでは対応不可能で、各OSがソフトウェアレベルで修正をかけるか、バグのない新たなプロセッサを導入する必要があるとのこと。 'Kernel memory leaking' Intel processor design flaw forces Linux, Windows redesign • The Register https://www.theregister.co.uk/2018/01/02/intel_cpu_design_flaw/ このバグは、データベースアプリケーショ
はじめに この記事はHow to Learn Software Design and Architecture | The Full-stack Software Design & Architecture Mapを翻訳したものです。 翻訳がおかしい箇所などあればご指摘頂けるとありがたいです。 元記事の著者: Khalil Stemmler(@stemmlerjs) 設計、アーキテクチャ、フロントエンド、ブロックチェーンに興味ある方是非Twitter(@show_clements)フォローしていただけると嬉しいです! 設計に関する記事 ソフトウェアデザインとアーキテクチャは、DevOpsやUXデザインのように、コンピューティングの領域の中でも独自の研究分野となっています。ここでは、クリーンコードからマイクロカーネルまで、ソフトウェアデザインとアーキテクチャの幅広さを説明するマップを紹介しま
1年半でシステム刷新のクックパッド、怒濤の「5並列プロジェクト」に見る“世界で勝つためのシステム設計”:CIOへの道(1/4 ページ) 海外展開を視野に入れ、“世界で勝つためのシステム構築“に取り組むことになったクックパッド。海外企業を参考にプロジェクトを進める中、日本企業のシステムとそれを支える組織との間に大きな差があることを認識した同社は、どう動いたのか。また、分散と分断が進み、Excel職人が手作業で情報を連携している状態から、どのようにして統合された一貫性のあるシステムに移行したのか――。怒濤のプロジェクトの全容が対談で明らかに。 この対談は 日本企業のCIO設置率は42.1%、うち、専任者は6.5%――。これは平成27年6月に発表された経済産業省の「情報処理実態調査」によるもので、ITとビジネスが不可分な時代になったにもかかわらず、それらを統合的に見るCIOという存在がいまだ少な
ドメイン駆動設計というのはソフトウェア工学のおしゃれな本で,Kindleで買えたので読んだ.ドメインを軸に戦略的に設計しましょうという本.2週間くらいで読めて良い体験できてよかった. ソフトウェアを,ユーザーインタフェース,アプリケーション,ドメイン,インフラストラクチャという4つの層に分けて,一番重要なのがドメイン層で,ドメイン層にアプリケーションが存在し得る理由がある.銀行システムだったら,口座とか利子みたなやつがドメイン層で,口座がよくできてると銀行としてうまくいく.ATMのタッチパネルというのはユーザーインタフェースで,どんなにATM押しやすくても,ドメイン層に,口座という概念がなくて,ただのハッシュだったりすると,銀行を運営して金を儲けるとか,新たな金融商品とか作るのが困難になる.インフラ層は永続化とかするのだけど,インフラ層がいかによくても,意味ないデータを保存していては銀行倒
どう考えているか、というのを聞かれたので、記事に起こしておきます。個人の意見です。 Prettier を使う 気づけばコードの整形を人間がやる時代は終わりました。 細かいコーディングスタイルでレビューの時間を取るぐらいだったら、一貫した自動整形ルールを適用すべきです。 人によっては細かいこだわりがあって prettier の規則が気に食わないかもしれず、僕も最初はそうでしたが、Atomで保存する度に自動整形を走らせる prettier の強烈な開発体験によって、最終的にそれらのこだわりを全て捨てることが出来ました。 生産性を求めるなら、現時点では最優先で導入すべきものです。 React.createClass を使わない v16 で削除されたのでいわずもがな。 同様に、 createClass でしか使えなかった mixin 周辺機能も丸ごと deprecated です。 「可能な限りは」
/// <summary>契約金額</summary> public class ContractAmount { public int AmountIncludingTax; public decimal SalesTaxRate; } 当然データの入れ物(以後データクラスと呼称)だけでなく、税込み金額を計算するロジックが必要です。ここであまり設計を考えないと、この手の演算ロジックはデータクラスとは別のクラスに実装されることが多いです。以下のようにControllerに実装されることが多いのではないでしょうか。 /// <summary>契約コントローラー</summary> public class ContractController { private ContractAmount _contractAmount; /// <summary>税込金額を計算する。</summary>
JavaScript Plugin ArchitectureというJavaScriptのプラグイン設計についての電子書籍を書きました。 この書籍はJavaScriptのライブラリやツールにおけるプラグインアーキテクチャについて見ていく事を目的としたものです。 以下の形式で読むことができます。 Web版 PDF形式 ePub形式 Mobi形式 GitHub上にソースコードも公開されているでので直接Markdownファイルを読むこともできます。 MarkdownよりはWeb版の方が見やすいのでそちらをオススメします。 Twitterのハッシュタグは#js_plugin_book 更新情報はRSSやリリースノートから見ることができます。 v1.0.0 最初に書くと決めたプラグインアーキテクチャが揃ったので1.0.0としてリリースしました。 JavaScript Promiseの本の時と同じく、継
宣伝はじめたよ! https://byfar.hatenablog.com/ 本題やっぱり出てきた、こういう中途半端が書くのは本当にやめてほしいと思ってたのに。こんなの設計の責任にするなんてバカげてるよ。 http://temcee.hatenablog.com/entry/N700_incident このホメオパシーレベルの頓珍漢記事を崇め奉るはてな民って本当にどうしようもないよな。 板厚0.4mmのSUS304を高さ4mmのR曲げにして、先端のバラつきが0.3程度になる t0.4のSUSってヒョロガリのキモオタがワンパンしただけで台無しになるような薄さなんだけど、そんな折り紙レベルの話と今回の話は全く違うことだと気付いてほしい。 それはそれで難しいのかどうかプレスについてきちんと学んでない俺には分からないが、今回のプレス品t8とは明らかに性質が違うものなのは誰にだって分かるだろ? 材質
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く