タグ

設計に関するm_shige1979のブックマーク (76)

  • 退職者が極めて少なく、ほとんど定時で帰れるシステム開発会社、その秘密とは。

    何かと長労働時間、低賃金と騒がれがちなソフト開発であるが、優れた会社も数多くある。100名程度の普通のソフト開発会社であっても ・ほとんど定時で帰宅できる ・有休取得率8割 ・残業代100%支給 ・離職率は5%程度 と、まっとうな企業もそれなりに存在する。 では、いわゆる長時間労働、残業代未払い、高離職率の開発会社、いわゆる「ブラックのIT企業」と、彼らのようなIT企業は何が異なるのだろうか。 私の観察では、そういった会社は、以下において優れている。 1.経営者の営業力・交渉力 経営者および役員の営業力が高い。また、プロジェクトの途中での問題には率先して彼らが自ら顧客と交渉する。 このサポート体制のおかげで、技術者のリーダー陣は安心して仕事をできる。また、リーダー陣は経営陣の問題解決を見て、その方法を学ぶので、問題になるプロジェクトが少ない。 2.高いエンドユーザー率 営業力が高いので、全

    退職者が極めて少なく、ほとんど定時で帰れるシステム開発会社、その秘密とは。
  • 本当に有意義なエラーメッセージを書くには | POSTD

    想像してください。あなたは今、オフィスにいます。周りとは仕切られた個別スペースです。今週は、近々新たに展開する予定の製品を紹介するために多くの時間を割いてきました。疲れが溜まり、不機嫌ぎみになっています。今はようやく近づいた週末が待ち遠しくて仕方ありません。 しかしその前に、新製品を紹介するホームページがWindows 10で正常に動かくかどうかを試してみなければなりません。あなたは問題ないはずだと信じています。あなたが信頼を寄せているMacには、Windowsを問題なく実行できるソフトもインストールされています。 ソフトを起動してみると、丁寧にもWindowsがポップアップ通知で可能なアップデートがあることを知らせてくれます。もちろんアップデートを開始するため、あなたは了承します。 すると、こんなものを目にするのです。 訳:何かが発生しました。 何かが発生。 新製品の準備のため期限が迫っ

    本当に有意義なエラーメッセージを書くには | POSTD
    m_shige1979
    m_shige1979 2015/09/30
    開発者とそれ以外でメッセージの理解度が変わる
  • 続: OSSプロダクトとコミュニティの話 - たごもりすメモ

    先日書いた通りYAPC::Asia Tokyo 2015でOSSの開発とメンテナンスについての私見を話したところ、会場で id:t-wada さんから強烈な質問と、その後にまとまった量のエントリがきた。 t-wada.hatenablog.jp t-wadaさんの問題意識については上記エントリを読んでいただくとして、これに関連してYAPC::Asia期間中にいろいろな人と話したこと、およびその後に考えたことなどをまとめて書き下しておこうと思う。 明快な結論は無い。無いが、自分にとってのなんとなくの指針のようなものには多分なっており、こういうことを考えて自分はこれからコードを書くんだろうな、という気がする。 なお前提として自分がYAPC::Asia Tokyo 2015で話した内容がベースにあるので、できればそちらを把握しておいてほしい。t-wadaさんのエントリにあるメモは話した内容をよく

    続: OSSプロダクトとコミュニティの話 - たごもりすメモ
  • いまなぜドメイン駆動設計か

    8. いまなぜOO&XPか? • 小規模・短納期のWebアプリケーション開発の機会が増えた – スマートフォンアプリのバックエンドとかも含めて – 作って動かすだけなら簡単にできるようになった (たとえばRoR) – 多産多死? • 技術もニーズも変化が激しく、全体をじっくり分析・設計している開 発スタイルでは対応できない • 生き残ったアプリケーションは、修正や拡張のニーズが多いが、設 計が貧弱だと、うまく対応できず、あったいうまにレガシー化する オブジェクト指向の「変更容易性」 エクストリーム・プログラミングの「変化適応性」 9. 開発スタイル YAXP:もうひとつのXP • とにかく動くソフトウェアを作り続ける • 究極のエクストリーム・プログラミングw • Web系のアプリケーション開発現場の実態? スタイル 例 最終形 (着地点) フェーズ分け 予測型 ウォータフォー ル 事前に

    いまなぜドメイン駆動設計か
  • UIデザイナーを取り巻く様々な設計 / Intrinsic meaning of UI Design

    UIデザイナーの周りにある"設計"について、Human-Computer Interactionからヒトとコンピュータの仕組み、エンジニアの設計手法、コミュニケーションの方法などをまとめました。

    UIデザイナーを取り巻く様々な設計 / Intrinsic meaning of UI Design
  • プログラミングの「抽象化」ってどういう意味で、なぜ必要なのか - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く

    <追記>いろいろ反応あってたしかになーって思いましたが、ここで説明されてるのは「汎化」とか「パラメタライズ」としたほうが正しいですね。抽象化というと、一塊の手続きをブラックボックスにして、実装を隠蔽する面のほうが正解に近いです。でもまあそこを差し引いて読んでいただければ、それなりに有用ではある記事だと思うので、このまま残しておきます</追記> プログラミングに限らない話かもしれませんが、ふだんの生活で触れないような概念というのは、一度わかってしまえば便利なんだけど、どうしてもとらえどころがない、というようなことが多いと思います。プログラミングにもそういう概念はたくさんあって、わたしのような凡人は新しい概念にぶち当たるたびに苦労しています。今日はそんな中で「抽象化」という言葉について、「昔の自分にこうやって説明してあげたかったな〜」という説明をします。 プログラミングを学んでいく中で、「とり

    プログラミングの「抽象化」ってどういう意味で、なぜ必要なのか - 猫型の蓄音機は 1 分間に 45 回にゃあと鳴く
  • 企業システムにアジャイルは必要か

    2015/6/22にアイ・ラーニング様にて開催された「悩める管理職のためのエンタープライズ・アジャイル導入セミナー」の講演資料です。Read less

    企業システムにアジャイルは必要か
  • オブジェクト指向プログラミングデザインルール : 一生涯プログラマ

    2014年04月01日00:00 カテゴリProgramming オブジェクト指向プログラミングデザインルール プロのプログラマとはただ仕様通りに動くプログラムを作ればいいという物ではない。 保守性や拡張性を考慮し、変更に強くバグの混在しにくいプログラムを効率よく作る必要がある。 その為に、プログラミングする上で心に留めておかなくてはならない事がある。 今回はその中でも、オブジェクト指向言語においてプログラミングする際に私が意識している事を書き留めたい。 デメテルの法則 オブジェクト間の依存度を最小限にする為に任意のオブジェクトが参照出来る範囲を下記の4つに制限する。(メソッドチェーンを許容しない) 但し、メソッドの戻り値が呼び出し元インスタンスと同じクラスの場合はメソッドチェーンを許容する。任意のオブジェクト自身メソッドの引数に渡されたオブジェクトメソッドの内部で新たにインスタンス化され

    オブジェクト指向プログラミングデザインルール : 一生涯プログラマ
  • さらに上を目指すための iOS アプリ設計

    2015/05/13 ヤフー社内「中級 iOS アプリ開発者」向けに行った講義の資料。Read less

    さらに上を目指すための iOS アプリ設計
  • 技術的負債について考えた - 考えた。

    技術的負債についての自分の考えをまとめます。 言いたいこと 最初から綺麗なコード・設計を書ける状態を目指せ。 そうもいかないものは天秤だが、勝手に背負うな。 技術的負債とは? 技術的負債は事業リスクです。放置することによって事業が失速したり損害が発生したりするため、適切に取り扱う必要があります。 負債の種類と対応は、以下の三つに別けられると自分は考えています。 1. 新規で書く末端機能のクソコード・クソ設計 最初から綺麗なコード・設計を書けるを目指すべきですが、時間がかかるのであればスピード重視でよいでしょう。 「もっと良いように書けるべきだけど、どうすればよいか?」とコメントでも添えて、さっさとプルリを投げてしまうべきです。 末端機能で、あとで上に乗っかる物がないのであればコードの品質はそれほど問題ではありません。テストを整備しておけば、後でレベルが上がったときに綺麗にできるでしょう。

    技術的負債について考えた - 考えた。
  • ノートPCをサーバにすることがよくない理由 - Windows Live

    「ノートパソコンをサーバにしたら性能はデスクトップ並だしUPSついてるし 静かだしいいよ」なんてお馬鹿なこと言いだす人が絶えません。物には適材適所ってものがあるんですよ。 ※知らない人のために書いとくと「サーバー」がやってることって、ソフト次第でその辺のノートパソコンでもほとんど同じことができるんだけど、その辺のノートパソコンではWindowsだろうとLinuxだろうとサーバとしてはまともに使えないよっていう話。 — 元記事を書くより前~2010年ごろまで、うちの職場ではいろんな部署で少し古くなって個人のデスクで使われなくなったノートPCを部内サーバとして勝手にファイルサーバやプリントサーバやアプリサーバにしていました。それこそシステム部のようなのが無いのでやりたい放題。一見うまく動いている、動かせているように見えるのだけど…  ※だったらそれでいいじゃん的な自称SIerはどこにでもいる。

    ノートPCをサーバにすることがよくない理由 - Windows Live
    m_shige1979
    m_shige1979 2015/05/22
    いや、本番運用としては使わんだろう
  • MySQLテーブル設計入門

    行ロックと「LOG: process 12345 still waiting for ShareLock on transaction 710 afte...Masahiko Sawada

    MySQLテーブル設計入門
  • Naming -名前付け- - Qiita

    プログラミングで最も重要な技術の一つが、名前付けです。 且つ、センスが問われるものなので、上達は難しいものでもあります。 この記事では、様々な文献から抽出した名前付けに関する情報を雑多にまとめました。 -名前重要- ソフトウェアの設計のアプローチとして、『まず名前から入る』というのは、あまり語られていない秘訣としてもっと広く知られても良いように思います。 - まつもとゆきひろ 『プログラマが知るべき97のこと』 コミュニケーションの基礎 名前は、コミュニケーションの基礎となるものです。 私にもあなたにも名前が無ければ、疎通することは困難になります。 名前をコミュニケーションの基礎と見た場合に重要なルールは以下の通りです。 発音可能であること 検索可能であること ※現実世界のみであれば検索可能じゃなくても良いかも知れません。 プログラミングは、チームや複数人で行うことのほうが多いと思います。

    Naming -名前付け- - Qiita
  • 第7回 アプリ開発者やSE、PMも必見!インフラのセキュリティ対策

    この連載では、Webシステムの要件定義や基設計で押さえておきたいセキュリティについて解説してきました。前回まではWebアプリケーションのセキュリティが中心でしたが、最終回では一般的なインフラのセキュリティ対策、インフラやネットワークを狙った攻撃の種類、各種機器の設定・管理上の注意点を説明し、まとめとしてソフトウエア開発とセキュリティについて筆者の考えを述べます。 システム開発の現場では、「アプリケーションの設計・開発」を担当するエンジニアと、「インフラやネットワークの設計・構築」を担当するエンジニアが分かれているところが多いと思います。しかし、プロジェクトのグレーゾーンを作らないためには、Webアプリケーションの設計・開発に携わるSEやPMプロジェクトマネジャー)にも、インフラ担当のエンジニアや顧客と会話するうえで最低限の知識は必要です。 アプリケーションよりもインフラは攻撃されやすい

    第7回 アプリ開発者やSE、PMも必見!インフラのセキュリティ対策
  • Webパフォーマンス管理の基本 1 - Qiita

    はじめに Webパフォーマンスはパフォーマンスエンジニアリングの1つの分野 Webパフォーマンス管理は、Webサイトの非機能要求の性能や可用性を扱います。 専門用語では、コンピュータの登場と時期を同じくして登場したパフォーマンスエンジニアリングという分野に属します。 パフォーマンスエンジニアリング パフォーマンスエンジニアリングとは、Wikipediaでは以下のように記載されています。 Performance engineering encompasses the techniques applied during a systems development life cycle to ensure the non-functional requirements for performance (such as throughput, latency, or memory usage) w

    Webパフォーマンス管理の基本 1 - Qiita
  • 昨今のCSS設計事情からみるCSS設計のあり方とは

    記事は2015年1月に開催されたHTML5 Conferenceでお話させていただいた、 「Beyond CSS Architecture」というCSS設計のセッションをフォローアップする記事です。 記事では、このセッションの概要と補足、またセッション中に説明できなかった点などについて書いていきます。 ※当日のセッションの動画・スライドも公開されているので、文末からご覧ください。 CSSの難しさと、昨今のCSS設計事情 この近年、CSSにおける設計論というのが話題に出てくるようになりました。筆者も拙著『Web制作者のためのCSS設計の教科書』を書いたり、各地でCSS設計をテーマとした講演をする機会が多くありました。 CSSの難しさというのは、石氏によるCSSコードの評価についての記事にも書かれているのですが、CSSは良くも悪くも厳格なコード規約は少なく、ただ宣言的に書けばいいだけです

    昨今のCSS設計事情からみるCSS設計のあり方とは
  • Fluentdの現実装のPros/Cons - Go ahead!

    TODO: 必要なら図を足す 他に書いた方が良いPros/Consのリクエストがあったら追記 内部のイベントストリームの扱い Pros: Inputがスケーラブルに実装しやすく,データストリームを正常時/エラー時で切り替えやすい Cons: エラーハンドリングがブロッキングモデルよりも複雑になりやすい 以下長々と理由書きます. Fluentdはイベントストリームを効率良く,またロバストに扱うことを目的に設計されています.そのため,独自の転送プロトコル(forwardプラグイン)を実装していますし,内部のイベントのハンドリングもそれに沿うようになっています.ただ,それによって相性の悪い操作とかもあります. Fluentdはバッファ機能を提供しており,これによって転送の効率化とエラー時のデータロスを防ぐ設計になっています.が,あまりにも書き込み先が遅いなどの問題があると,バッファの制限を超えて

  • Markdownテキストでシーケンス図とフローチャートを描く - Qiita diagram sequence

    つい先日、とあるシステムの処理の流れと一部処理のフローチャートを付けた見積り資料を書くことになり、ちょうど良い機会だったので、MarkdownでUML図表が描ける「StackEdit」を使って、オールMarkdownで資料を作成してみた。 いやぁ、打ち込んだテキストがリアルタイムに図表化されていく様は、とても新鮮で、そしてすごく面白かった。資料が出来上がった後の達成感というか、完成した図表を見た時の感動が結構はんぱない。技術系の資料作成でこんな良い体験ができたのは初めてかもしれんな…(笑) ──と、結構感動的な体験ができるMarkdownでのUML図表作成なんだが、せっかくなのでそれの書き方を含めてもう少し突っ込んだTIPSとしてまとめておこうかと思った次第。 Markdown+UML とは? とりあえず、「Markdown+UML」というのは私の造語だ。まぁ、正確に言うなら「UML di

    Markdownテキストでシーケンス図とフローチャートを描く - Qiita diagram sequence
  • オブジェクト指向入門読み終わった - はこべにっき ♨

    ちまちま読んでたオブジェクト指向入門を読み終わった。だいたい入門と言っているが、原題は"Object-Oriented Software Construction"で入門感はないし、上下巻あわせて2000ページくらいあって読みきるのが大変だった。 原著は18年前に発売されただが、内容のほとんどは今でも有益で、全体を通してためになる。オブジェクト指向が解決しようとしている課題や、背景にある理論や考え方について解説してくれるだけではなく、実際にソフトウェアを設計する際にどのようにクラスを見つけ、どんな場面で継承を使い、ソフトウェア全体をどのように形作っていくのかという実践的な議論も充実している。 の序盤では、ソフトウェアの品質の様々な側面についての解説や、オブジェクト指向以前から使われていたモジュールや型の概念のがもつ諸課題について詳しく解説してくれる。それらの問題をふまえ、次に、ソフトウ

    オブジェクト指向入門読み終わった - はこべにっき ♨
  • Re: 論理削除はなぜ「筋が悪い」か - Blog by Sadayuki Furuhashi

    Kazuhoさんの論理削除はなぜ「筋が悪い」かを読んで。 UPDATEが発生しないテーブルならば、削除フラグを使った実装手法でも現在の状態と更新ログを別々に表現でき、結果として効率と過去の情報を参照できるメリットを簡潔に両立できるのではないか、という話。 大前提として全く同意なのだけども、今あるテーブルにdeleted_atを足すだけで、過去のレコードを復旧可能なようにしたい>< みたいに思っちゃった僕のような人間が実際に取るべき実装手法は何か、あるいは、それを想定して今やっておくべきテーブル設計はどういうものか!?というのが最後の疑問。 まずUPDATEがなければ、immutableなマスタ、更新ログ、「現時点のビュー」の3テーブルは、例えば次のようになる(PostgreSQLの場合): -- immutableなマスタ。 create table records ( id serial

    Re: 論理削除はなぜ「筋が悪い」か - Blog by Sadayuki Furuhashi