タグ

ブックマーク / qiita.com (235)

  • 現場で役立つシステム設計の原則にあるUMLをPlantUMLで書いてみる - Qiita

    フューチャーアーキテクト Advent Calendar 2017の2日目です。 はじめに システム設計が大好きで大嫌いな皆さん、こんにちは。 突然ですが、皆さんはどのようにシステム設計における ドキュメント腐る問題 に立ち向かっていますか? ドキュメント腐る問題とは、設計時に作成した各種ドキュメントがGoogle Driveやファイルサーバ上で陳腐化してしまい、現状の正しい状態を指していないことです。せっかく新規参画者がキャッチアップしようとしてもドキュメントが真実を示していないという怖いやつですよね。 解決策としては、各種ドキュメントを、MarkdownAsciiDoc、UMLはPlantUMLやmermaid、ERDはPlantUMLやerd、画面遷移図はUI Flow、REST-API設計はSwaggerなど、なるべくテキストベースで管理し、GitHubなどのリポジトリで管理する

    現場で役立つシステム設計の原則にあるUMLをPlantUMLで書いてみる - Qiita
  • マサカリの起源について - Qiita

    はじめに 技術的な指摘をすることを「マサカリを投げる」と呼ぶ。ネットスラングにありがちだが、この言葉の意味は常に変動しており、地域、人によっても定義が異なる。現在では、何か自分で詰めが甘いことを書く時に「修正、批判コメント歓迎」の意味で「マサカリをお願いします」と言ったり、誰かが適当なことを書いてコメントやブコメで炎上している時に「さっそくマサカリ投げられてて草」というような使われ方をしているようだ。 この「マサカリ」という言葉がいつ、どのような形で使われるようになったのか、できる範囲で調べてみた。 2006年以前 僕は1990年代の後半から2000年の前半にかけて、Niftyのフォーラムや、いくつかの技術系メーリングリストに登録していたが、当時この意味での「マサカリ」という言葉を目にした覚えがない。とりあえず当時所属していて、現在過去ログが見られるDelphiやBCB-MLの過去ログで検

    マサカリの起源について - Qiita
  • 有志の社内勉強会を1年で50回くらいやった結果 伝えたいこと - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? #はじめに ##自分がやったこと こんなことやった結果の、経験談です。 参加募集先:部門の人(200人くらいだった気がする) 平均的な参加人数:5人前後 運営:1人 頻度:50回くらい/年(週一くらいのペース) 枠:1時間 場所:社内の会議室 補足:個人PCは持ち込み禁止/会議室にはプロジェクターのみ 時期:2014年くらい(私is5年目) スタンス:有志 PJ:そこそこ長い期間やってる汎用機の保守(金融系) ##記事のターゲット この記事は、「勉強会に対してモチベーションの低い、そこそこの人数を相手に勉強会を開催した場合1」に特化して

    有志の社内勉強会を1年で50回くらいやった結果 伝えたいこと - Qiita
  • 何かのときにすっと出したい、プログラミングに関する法則・原則一覧 - Qiita

    エンジニア組織を強くするためのを出版しました Qiitaでエンジニアリングをめぐる様々なコミュニケーションの問題とその解決策や考え方を書いてきた。それらの背後にあるエッセンスをこの度書籍として出版するに至りました。 エンジニアリング組織論への招待 ~不確実性に向き合う思考と組織のリファクタリング この書籍は、エンジニアリングを「不確実性を削減する」という第一原理で捉え直し、様々なエンジニアリングとその間のコミュニケーションをめぐる現象を説明していくものです。 デメテルの法則 別名最小知識の法則。デメテルは、豊穣の女神。アスペクト指向などの研究であった「デメテルプロジェクト」に由来。 基的な考え方は、任意のオブジェクトが自分以外(サブコンポーネント含む)の構造やプロパティに対して持っている仮定を最小限にすべきであるという点にある。 単純化して説明すると、オブジェクトの"メンバーのプロパテ

    何かのときにすっと出したい、プログラミングに関する法則・原則一覧 - Qiita
  • 一つ上のチームメンバーのそだてかた - Qiita

    自分が先輩社員となり、チームを持ち、すぐに直面する問題といえば「エンジニアの育成」問題です。 私は7年間システムエンジニアとして働いてきた中で早い段階で多くのメンバーを育てる機会に恵まれました。メンバーの中には文系出身の新人や技術に尖った新人、数年間くすぶっていた中堅若手と様々な境遇の人がいました。 性質がそれぞれ違うなかでどのように"プロ"として育て上げたかを紹介したいと思います。 育成のきほん まずは下記の図を見てください。これは「1分間リーダーシップ」(Paul Hersey, Kenneth H Blanchard/1985年) で取り上げられているSL理論 (Situational Leadership)というメンバーの能力とモチベーションに応じて発揮すべきリーダーシップを表した図です。 S1の状態から順に2,3,4とリーダーシップを変更させていくことが望ましいとされています。

    一つ上のチームメンバーのそだてかた - Qiita
  • ID生成大全 - Qiita

    セッションIDやアクセストークン、はたまた業務上で使う一意の識別子など、いろんなところで一意のIDを生成しなきゃいけないケースが存在します。 そこで世間で使われているIDの生成方法について調べてみました。 選択基準 ID生成における要求として、以下の観点が上げられるかと思います。 生成の速度 大量にデータを短期間で処理し、それらにIDを付与する場合、ID生成そのものがボトルネックとなることがあります。 推測困難性 IDを機密情報と結びつける場合、IDを改ざんされても、機密データが見れないようにできている必要があります。 順序性 採番した順にデータをソートする必要がある場合は、IDがソートキーとして使えないといけません。 それぞれについて各生成手段を評価します。 ID生成の手段 データベースの採番テーブル 採番用のテーブルを作り、そこで番号をUPDATEしながら取得していくやりかたです。古い

    ID生成大全 - Qiita
  • テストがなかった無法地帯にテストを導入して開発速度を1.7倍にした話 - Qiita

    テストがなかった無法地帯のプロジェクトに自動テストを導入して、開発速度を1.7倍にした話をします。 自動テストがなぜないのか 自動テストのないプロジェクトには、そうなる理由が必ず存在します。よくみる理由は、「時間がないから1」「テストの書き方がわからないから」「無理やりテストを書いたつらい経験があったから2」といったものです。今回のプロジェクトの場合は、以下の2点でした: 自動テストの書き方がわからないから レビューがテスト代わりだったから まず、チーム編成が変わって私ともう一人がチームに加わるまで、実装者の中に自動テストの経験者はいませんでした。このような状況では、自動テストは困難になります。なぜなら、何をどうやってどこまでテストするかを決めるには、多少の慣れが必要だからです。この慣れがないと、何をしたらいいかわからないという状態に陥りがちで、結果として自動テストが後回しにされてしまいま

    テストがなかった無法地帯にテストを導入して開発速度を1.7倍にした話 - Qiita
  • DELETE_FLAG を付ける前に確認したいこと。 - Qiita

    DELETE_FLAG という思考停止フラグ DELETE_FLAG という boolean の列が DB 設計でよく話題になります。 論理削除という言葉で上手に論理武装し、スキを見せるとすぐに入れたがる人がおり、 一方でそれにつよく反対する人もいます。 自分の経験としては、広義の論理削除はありえると思いますが、実現方法が DELETE_FLAG だとなった時、それはあまり考えてないでなんとなくパターンとして盛り込んでる場合が多いと感じます。 ただし、設計に唯一の答えは無いので、もしかしたらそれが妥当な設計である場合があるかもしれません。 今回は「DELETE フラグがなぜダメなのか?」などという話をするつもりも、アンチパターンだと断言するつもりもありません。 問題は、仕様をきちんと把握すると、「最適な設計は DELETE_FLAG ではない」という場合が有って、その場合は、その最適な設計

    DELETE_FLAG を付ける前に確認したいこと。 - Qiita
  • とりあえずド素人が読むべきブロックチェーン入門論文・書籍・サイト - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? とりあえずド素人が読むべきブロックチェーン入門論文・書籍・サイト どうも。よくブロックチェーン興味あるけどよくわからん、という声を某所から聞くので、僭越ながら自分が勉強するために使っている参考文献を紹介します。 今後自分が新しく読むたびに追加していく予定です。 色々と追加していって、だんだん初心者向けじゃなくなっている気がしますが、各通貨内の小見出しが、上から下に行くに従って内容が難しくなるように並べてあります。 Mastering Bitcoin (書籍) Mastering Bitcoin Mastering Bitcoin(翻訳版

    とりあえずド素人が読むべきブロックチェーン入門論文・書籍・サイト - Qiita
  • 技術の中心でJavaを叫ぶ -2017年のJavaエンジニアが追うべきテーマと要素技術- - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? かつてJava技術の中心だった 私はSIerでシステム開発のアーキテクトやPMを担当しています。SIではまだまだJavaが主流ですが、文法を理解してコーディングできるだけでは活躍できない時代がすでにきていることを実感します。 私の上司が**「技術の渦」**という独特の表現を使って説明してくれたのですが、2000年から2006年ぐらいまではJavaを書くということは、いろいろな最新技術の実装を学べる時代でした。アプリケーションサーバー、XML、SOAP、MQ、CORBA、マルチスレッドなど、現代の評価としては芳しくないものも多いですが、

    技術の中心でJavaを叫ぶ -2017年のJavaエンジニアが追うべきテーマと要素技術- - Qiita
    e24ns
    e24ns 2017/11/22
  • 機械学習案件を納品するのは、そんなに簡単な話じゃないから気をつけて - Qiita

    はじめに 昨日のTwitterで書いたこちらが非常に反響を呼びました。 半年間かけたデータ解析の仕事が全くうまくいかなかった 今回の失敗は契約書に納品物を明記していなかったこと 機械学習の依頼は学習済みモデルのファイルを納品しただけでは、先方は検収できず、結果支払いを受けられない この教訓をひとりでも多くの人に知ってもらいたい — キカガク代表 吉崎亮介 (@yoshizaki_kkgk) 2017年11月20日 そうなんですよね。 全く先方が悪いわけでもなく、私自身が「機械学習のお仕事=解析」だと思いこんでいたことが失敗の始まり。 結局のところ、機械学習系のプロダクトを依頼されて、学習済みモデルを作成して即納品とはいかず、検証結果を示されないと検収できないよとなってしまうので、結局アプリケーション側まで組み込まないと納得感はないんですよね。 この検証とは、訓練データと検証データを分けた時

    機械学習案件を納品するのは、そんなに簡単な話じゃないから気をつけて - Qiita
  • もし、HTMLのテキスト周りでデザイナーからこんなお願いをされたら... - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

    もし、HTMLのテキスト周りでデザイナーからこんなお願いをされたら... - Qiita
  • Hello World で学ぶ Spring Security の仕組み - Qiita

    自己紹介 opengl-8080 主に Qiita で技術メモを書いたり 関西の SIer 勤務 今日お話しすること 簡単な Hello World を通じて、 Spring Security の仕組みの基礎的な部分を説明 どのようなクラスが、どのように連携しあっているのか 設定ファイルがどのように関係しているのか 背景 個人的に Spring Security の勉強を開始 ちょっと Hello World を書こうとしたが手こずる この設定はなんで必要? ・・・と書くとなぜ~~~が有効に? この設定って最小限の Hello World で必要? 抽象化された設定 Spring Security の設定は高度に抽象化されている 設定が簡潔になる一方で、裏で何が行われているかが分かりづらい 仕組みの理解や、カスタマイズがしづらくなる ※個人の所感です 対象者 Hello World を通じ

    Hello World で学ぶ Spring Security の仕組み - Qiita
  • dev.toと阿部寛のホームページについてちゃんと計測させてくれ - Qiita

    Twitter見てたら、以下のツイートを見た。 数時間後、dev.toと阿部寛のホームページどっちが速いですか?というブログがTLに現れた。 GoogleのPageSpeed Insightsで測って阿部寛のホームページの方が早かったという結論付けてよいのかという疑問が浮かび、webpagetest.orgで計測することにした。 設定 阿部寛のホームページに関しては、Tokyoリージョンにあるものとする。 そして、dev.toはNY発らしいので、サーバーの設定をNYにして測定する。 The platform was created in 2016. The twitter account, @ThePraticalWeb 評価結果 Webpagetest - 阿部寛のホームページ Webpagetest - dev.to 阿部寛のホームページ サーバーからのレスポンスの圧縮がされておらず、

    dev.toと阿部寛のホームページについてちゃんと計測させてくれ - Qiita
  • 阿部寛のサイトを高速化する - Qiita

    ちまたで阿部寛のサイトが早いと話題になってます。 dev.toと阿部寛のホームページどっちが速いですか? dev.toと阿部寛のホームページについてちゃんと計測させてくれ 阿部寛のサイトはベストを尽くしてるのか? それを調べるために、阿部寛のサイトを高速化させてみたいと思います。 目指すべきスピード 最速はローカルのファイルへのアクセスだと思うのでこれを目指したいと思います。 file:///C:/abe_hiroshi/index.html ChromeのDeveloper Toolでレンダリング完了が「173ms」でした。 まぁここまでは無理だな… 阿部寛のサイトはどんなもん? 速度はwebpagetest.orgで測ってみます。 レンダリング完了時間は「359ms」です。はえーな S3でホスティングしてみる サーバーを立てるほどでもないので、S3でWebホスティングしてそこにhtml

    阿部寛のサイトを高速化する - Qiita
  • モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita

    はじめに 他の人が書いたコードを読んでいるときに時々気になるのが、英語の間違いです。 特に動詞、名詞、形容詞の使い分けが間違っていたりすると、かなり違和感を感じます。 そこで今回はモデル(=クラス)やメソッドに名前を付けるときの基的な原則をまとめてみます。 また、英文法的に正しい品詞が選べるようになるための習慣についても最後に説明します。 想定する言語/フレームワーク この記事の説明ではRuby/Ruby on Railsを想定しています。 ただし、基的な考え方は他の言語でも同じように使えるはずです。 モデルの名前は名詞にする 例: 「支払い情報」を表すモデルを作りたい場合 × Pay ○ Payment 「支払う = payか。よし。」でモデルを作ってはいけません! payは動詞で、payの名詞形がpaymentです。 Payモデルではなく、Paymentモデルを作りましょう。 例:

    モデルやメソッドに名前を付けるときは英語の品詞に気をつけよう - Qiita
  • コードレビューの際に気をつけること - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? コードレビューをする際と、してもらう際に気をつけるべきだと思っているをまとめておきます。 レビュイーとして大切なこと コードレビューをお願いする前に レビュアーが高いパフォーマンスを発揮するためには、レビューを受ける人の心構えと事前の打ち合わせが実は最も大切です。 特に大きめの変更のコードレビューをお願いする前にすると良いこととしては、 まず、レビュアーを確保する そのレビュアーと大まかな設計の合意をとる という方針でやっていくのが良いです。 レビューしていても、根をひっくり返すような指摘はしにくいですし、したとしても、それなら1から

    コードレビューの際に気をつけること - Qiita
  • 絵文字を支える技術の紹介 - Qiita

    絵文字を扱う上で知っておくと良いかもしれないことをまとめてみました。 Ruiさんの記事を見て、「EmojiはSurrogate Pair以外にも、色々とおもしろい技術があるんですよ〜」思って書いてみました。 なお、書いた人はAndroidの人間なので、特に表記していない場合は主にAndroid上での動作のことを書いてます。 またQiita初めてなので読みにくい部分等がありましてもご容赦ください。 サロゲートペア(Surrogate Pairs) このエントリーを書くきっかけにもなったサロゲートペア。なぜこれが導入されたかの経緯は、Ruiさんのブログエントリーに譲るとして、技術的な解説をします。 サロゲートペアは、U+0000..U+FFFFに収まりきらなかった範囲のUnicodeコードポイント(U+10000..U+10FFFF)を、なんとか16bitでエンコードしようとして導入されました

    絵文字を支える技術の紹介 - Qiita
  • のび太と学ぶ「機械学習」~FX予測プログラムを作成~【第1話】if文作戦 - Qiita

    シリーズでは、「FXの予想プログラム」を作りながら、機械学習・ディープラーニングを解説します。 (注)のび太くんは有名漫画のキャラとは一切関係ありません。 #あらすじ 「のび太と機械学習」は、20歳の大学生、のび太くんが主人公です。 大学生のび太くんは、お小遣い欲しさにFXに興味を持ちます。 そんなのび太くんに、家庭教師のすぐるさんが、機械学習を解説し、FX予測プログラムを一緒に作ります。 残念なことに、FX予測プログラムは、ちょっとしか儲かりませんでした。 ・ ・ ・ のび太くんはその後、学んだ機械学習を生かして、D-mind社を起業し、汎用人工知能を作り上げます。 高齢になったのび太くんは、D-mind社をTMR社に売却し、TMR社の工場で22世紀、汎用人工知能搭載型ロボットが誕生します。 この物語は、そんな汎用人工知能搭載型ロボット誕生につながる、のび太くんの機械学習・勉強記録です

    のび太と学ぶ「機械学習」~FX予測プログラムを作成~【第1話】if文作戦 - Qiita
    e24ns
    e24ns 2017/11/15
  • 週末在宅ワークの生産性を上げる5つの視点と32の工夫 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? こんにちは。10分で生産的なミーティングができるWeb会議ツール「minmeeting」を開発している伊勢川です。 minmeetingはすべて在宅ワークで開発を進めてきました。その開発の中で、いろいろ試行錯誤をしながら、在宅でもそれなりの生産性が維持できるようになってきました。 そこで、今回はITエンジニアが週末在宅ワークをする際に、生産性を上げるための工夫を、5つの観点から整理してそれぞれ紹介していきます。 時間の使い方をコントロールする 週末在宅ワークの鍵となるのが、いかに時間を確保するのかということです。ここでは、その時間の確保

    週末在宅ワークの生産性を上げる5つの視点と32の工夫 - Qiita