タグ

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

  • 単一責任原則で無責任な多目的クラスを爆殺する - Qiita

    この記事は クラウドワークスアドベントカレンダー2020 8日目の記事です。 概要 こんにちは、クソコードを爆殺リファクタリングするのが大好きなミノ駆動です。 今回は単一責任原則の話です。 単一責任原則はSOLID原則のひとつとして有名で、2020年のオブジェクト指向カンファレンスのアンケートでも、SOLID原則の中で最も人気がありました。 皆さんは単一責任原則を遵守した設計をしていますか。 どんな構造が単一責任設計で、一方どんな構造が単一責任でない設計か、明確に意識していますか。説明できますでしょうか。 ところで「単一責任原則とはなんぞや」について、少なくとも私の観測範囲では、概念的な話にとどまっているものが多く、コードレベルで具体的に説明しているものは少ないように感じます。 そうした状況からか、単一責任原則の解釈が人によって違っていたりしているように感じます。 記事は、今一度単一責任

    単一責任原則で無責任な多目的クラスを爆殺する - Qiita
    muamqm
    muamqm 2020/12/08
  • 管理者用初期化URLを踏んでWebサービスのデータをふっとばした話 - Qiita

    自己紹介 職のエンジニアではありませんが、ちょっとICT系に詳しそうなやつって感じで、部署のサーバ管理を任されたりもしています。 背景 私の(当時所属していた)部署では、毎年、数週間かけて前年の各人の業務実績をとりまとめて一つの冊子(PDF)にするという仕事があり、この作業を少しでも自動化するため、Webサービスが内製されました。当初は単純に各ユーザが自分の業務実績一覧をテキストで用意してアップロードするというものでしたが、秘伝のタレのように毎年少しずつ改良されたり、大幅に作り直されて別システムから業務データを取り込んでからブラウザ上で編集できるようになったりしつつ、なんやかんやあって私が引き継ぎます。他にやりたい人もなく、ひとり鯖管です。OSはCentOS6でした。 このシステムでは、毎年新しいデータを編集するため、その作業開始時にデータを初期化する必要があります。この作業も自動化し、

    管理者用初期化URLを踏んでWebサービスのデータをふっとばした話 - Qiita
    muamqm
    muamqm 2020/12/08
  • dotnet-5.0のシングルファイルアプリについて - Qiita

    <ItemGroup> <!-- 新しく指定する場合 --> <アイテム種別 Include="[globパターン]" プロパティ名1="プロパティ値1"> <プロパティ名2>プロパティ値2</プロパティ名2> </アイテム種別> <!-- 既存のアイテムに追加したい場合 --> <アイテム種別 Update="[globパターン]" プロパティ名1="プロパティ値1> <プロパティ名2>プロパティ値2</プロパティ名2> </アイテム種別> </ItemGroup> PublishSingleFile この件について、まず挙げられるのがPublishSingleFileフラグだろう。 dotnet publishの実行時、PublishSingleFile=trueプロパティを追加すれば、付随するアセンブリファイルが全て一つの実行可能ファイルにまとめられる。 また、必ずネイティブバイナリ

    dotnet-5.0のシングルファイルアプリについて - Qiita
    muamqm
    muamqm 2020/12/02
  • C# 1.0 と C# 9.0 で同じプログラムを書いてみよう - Qiita

    この記事は C# Advent Calendar 2020 の 2 日目の記事です。1 日目は @RyotaMurohoshi さんの C# 9.0で加わったC# Source Generatorと、それで作ったValueObjectGeneratorの紹介 でした。 私の記事では、.NET Framework 1.0 の頃の C# 1.0 と今の .NET 5 時代の C# 9.0 で同じお題をもとにプログラムを書いてみて比べてみようと思います。これを書くにあたって事前に xin9le さんと 岩永さんに色々見てもらいました!感謝! ではやってみましょう! 記事を書く前の感覚では LINQ の有無と async/await の有無が大きいだろうな…と思ってます。 プロジェクトの設定 Windows 10 に .NET Framework 1.1 SDK を入れようと思えば入れることが出来

    C# 1.0 と C# 9.0 で同じプログラムを書いてみよう - Qiita
    muamqm
    muamqm 2020/12/02
  • 本番環境でsudo yum updateしてサービスが動かなくなった - Qiita

    EC2 (Amazon Linux) Apache php7.1 私がやってしまったこと この事件が起きたのは2020年6月。既に稼働しているWebサービスでとあるデータ取得の処理が止まってしまっているので調査してほしいと頼まれました。また、サービスに影響が出るものだからなるべく早めに対処してほしいと言われました。 マネージャー 「今日の夕方までにはお願いね。もし難しそうだったら午後イチで一旦MTGしよう。14時までに連絡をください。」 わたし 「任せてください!」 ・・・・ とは言ったものの、番サーバーで起きている障害の調査は今までやったことがありませんでした(もちろん番サーバーにログインしたこともない)し、進め方も全く思いつきませんでした。しかも、対応するサービスの開発には携わったことがなく、sshログインの設定から行う次第でした。 まあ、今まで頼まれたタスクを期限内に終えられなか

    本番環境でsudo yum updateしてサービスが動かなくなった - Qiita
    muamqm
    muamqm 2020/12/02
  • もしあなたが急にAndroidアプリを業務で作るはめになった場合の選択肢(2021年初頭版) - Qiita

    記事はAndroid Advent Calendar 2020の2020/12/01分です。 初っ端ということなので、2020年末と2021年頭でのAndroidエンジニアとして初めて業務でやる場合に抑えておいたほうが良い最低限の部分を書いていこうと思います。(ツッコミ待ちです) 対象 2021年3月ぐらいまでに !!業務!! でAndroidアプリを作らされる事になった可愛そうな人が居たとします この人は手続き型言語でオブジェクト指向プログラミングができる知識があり、Androidアプリもなんとなく趣味で作ったこともあるぐらいのレベル感です(なので上長からいきなりお前Android担当なと言われた) 最低限のAndroidアプリの作成の知識はあるものとします(画面の表示にはActivityがいるよとかは書かない) ゲームは対象外です 業務でAndroidアプリを作ることを想定しています

    もしあなたが急にAndroidアプリを業務で作るはめになった場合の選択肢(2021年初頭版) - Qiita
    muamqm
    muamqm 2020/12/02
  • .NET 5 を使いたい理由6選 - Qiita

    速いので使いたい 私の場合、ここ数か月で一番素晴らしいニュースだと感じたブログがこれでした。 https://devblogs.microsoft.com/dotnet/performance-improvements-in-net-5/ .NET5 がどれだけパフォーマンス向上のために努力してきたかという内容です。 ものすごいボリュームで読むのが大変でしたが、満足感のある記事でした。 この記事を読んだだけでも、早く.NET 5 を使いたいという気持ちになりました。 パフォーマンスが良くなったという知らせはいつでもエンジニアの気持ちを高揚させるのだと思います。 使いたい理由1 : GCが高速化した いくつものアプローチを重ねたことが記されていました。 GCが到達可能オブジェクトをマークする処理の情報を他のスレッドでも流用できるようにして、各スレッド内の同処理の作業量を一部省略可能にした G

    .NET 5 を使いたい理由6選 - Qiita
    muamqm
    muamqm 2020/11/28
  • 本番環境でやらかしちゃった人のカレンダー | Advent Calendar 2020 - Qiita

    昨年非常に盛り上がっていましたので作成させていただきました。 番環境でやらかしちゃった人のアドベントカレンダーです。 例) DB吹き飛ばした 番サーバをデストロイした ネットワーク設定をミスって番サーバにアクセス出来なくなり、サーバが世界から孤立した などなど... 以下の2点については必須項目なので、記述お願いします。 惨劇はなぜおこってしまったのか 二度と惨劇を起こさないためにどうしたのか もう二度とあの惨劇を繰り返さないために、みなで知見を共有しましょう。 過去 番環境でやらかしちゃった人 Advent Calendar 2019

    本番環境でやらかしちゃった人のカレンダー | Advent Calendar 2020 - Qiita
    muamqm
    muamqm 2020/11/27
  • にじさんじの配信者の類似性をチャットデータからネットワークグラフにして分析する - Qiita

    にじさんじの配信者間で"似ている"配信者はどういう人たちか 唐突ですが、一週間前は文化の日でしたね。せっかくだったので、文化らしいことをしたいなと思い、youtube data apiを使って遊んでみることにしました。 youtube のデータを使ってなにかしよう、となったとき、他の人はどういう分析をするんでしょうか。最近よくみるデータとしてはスパチャランキング・登録者数推移の予測などが思い当たります。 そしてまた唐突に語り始めるのですが、僕はvtuberの配信をラジオ代わりに流していることが多く、いわゆるvtuberオタクです。オタクのあり方には諸説ありますが、僕はラジオ代わりということもあり雑談配信やマイクラ配信を流していることが多いです。「にじさんじ」の配信を見ることが多い気がします。 さて、「にじさんじ」は言わずとしれた大所帯グループです。約100人の配信者が一つの箱に所属してい

    にじさんじの配信者の類似性をチャットデータからネットワークグラフにして分析する - Qiita
    muamqm
    muamqm 2020/11/10
  • 僕「PDFとは何か知りたい」 - Qiita

    追記情報 - (2020/11/7 18:30) @scivola さんのコメントに基づき、 ラスタースキャン、 ベクタースキャン、 ブラウン管 の説明を追加しました。 TL;DR PDFについて次のような内容を(私の好奇心の赴くままに)調べたので共有したいと思います。 「PostScript」とは? 高速ロードの仕組み フォント埋め込み 「PDFってどんなファイルなんだろう」 PDFを使ったこと無い人はいないと思います。 それほど、PDFは身近な存在となる一方で、その仕組みについて触れる機会はほとんどないと言っても過言ではないです。 何百ページにも渡るPDFで開いた時、ページ移動したときに、パッと表示されたりしますよね。 あれってなんでか知っていますか? 私はもちろん知りませんでした。 たまたま仕事PDFをあれこれいじるにあたって、仕様がわかってないこともあり、なかなかうまくいかず

    僕「PDFとは何か知りたい」 - Qiita
    muamqm
    muamqm 2020/11/07
  • Node.jsとはなにか?なぜみんな使っているのか? - Qiita

    この記事は 「JavaScriptの勉強してたらみんなNode.jsの存在を前提に話が進む。でもNode.jsってWebサーバじゃないの? なんでインストールしなきゃいけないの? なんでみんな使ってるの?」 といった疑問を解消することを目的としています。 基礎:JavaScriptの特徴 まずはJavaScriptと他のプログラミング言語の違いを知っておく必要があるので解説します。 JavaScriptChromeやFirefoxといった「ブラウザ上」で動作するプログラミング言語です。 対してPythonRubyのような一般的なプログラミング言語は通常「パソコン上」で動作します。1 このことが生み出す違いは、OSの機能にアクセスできるかどうかです。 「OSの機能」とは例えばファイルの読み書きや、ネットワーク通信などの機能のことです。 パソコン上で動作するアプリケーション(Python

    Node.jsとはなにか?なぜみんな使っているのか? - Qiita
    muamqm
    muamqm 2020/10/19
  • あなたがまだ使っていないかもしれないHTML5の便利機能10選 - Qiita

    こんにちは、たかとーです🧑‍🎤 こちらは、10 useful HTML5 features, you may not be usingの翻訳記事になります。 当記事は、Tapasさんの許可を得て翻訳しています。Tweet 10 useful HTML5 features, you may not be using HTML5は新しいものではありません。最初のリリース(2008年1月)以来いくつかの機能を使用してきました。100DaysOfCodeの取り組みの一環として、HTML5の機能リストをもう一度よく見てみました。何か見つけたかな?私は今のところあまり使っていません。 この記事では、過去にあまり使ったことがなかったが、今では便利になったHTML5の機能を10個挙げています。また、Netlifyホストされている、実際に動作する例を作成しました。参考になることを願っています。 htt

    あなたがまだ使っていないかもしれないHTML5の便利機能10選 - Qiita
    muamqm
    muamqm 2020/09/23
  • オブジェクト指向歴25年のオブジェクト指向おじさんが語るオブジェクト指向設計の処方箋 - Qiita

    この記事のターゲット この記事は以下の人々を対象としています。 オブジェクト指向を一通りわかっている人。 オブジェクト指向の設計力を高めたい人。 オブジェクト指向を使っているのに、設計が綺麗にならず悩んでいる人。 プログラムが大きくなるとオブジェクト指向設計が破綻する人。 オブジェクト指向に限界を感じている人。 共同開発メンバーの設計力に差があって困っている人。 以下の人は対象外です。 オブジェクト指向が何なのかわからない人。 オブジェクト指向を極めている人。 関数型など別のパラダイムに活路を既に見いだしている人。 オブジェクトは責任ベースで考える オブジェクト指向といえば、やれインターフェイスだメッセージだ隠蔽だカプセル化だ、みたいな用語がたくさん出て来て、どれも関連があるようでないようで意味が分からないですよね。気取ったこと言ってんじゃねぇよと。 日で社会人経験があれば、こんなものは

    オブジェクト指向歴25年のオブジェクト指向おじさんが語るオブジェクト指向設計の処方箋 - Qiita
    muamqm
    muamqm 2020/09/18
  • オブジェクト指向は単なる【整理術】だよ - Qiita

    概要 掲題の通りです。異論は認めますだからオブジェクト指向警察の皆さん見逃して下さいお願いします。 この投稿は「オブジェクト指向(OO/ object oriented)ようわからん」って人向けになるべくわかりやすく説明しようとする試みになります。一応は「1冊くらいは入門書読んだ人」を対象にしています。 ちなみにぼくのオブジェクト指向力は100メートル走で例えると多分12~13秒台くらいです。よくわからないけど。 オブジェクト指向は難しい? 初めてプログラミングに触れてオブジェクト指向について学び始める時、その概念を理解するのに苦労してる方は結構多いのではないかと思います。カプセル化だとか、ポリモーフィズムだとか、よくわからないアカデミックな名称が次々と出てくるのに比べ、実践的にはどうすれば良いかの説明に関しては結構貧弱な書籍が多いというのが理由のひとつだろうなと思ってるのですが、その大き

    オブジェクト指向は単なる【整理術】だよ - Qiita
    muamqm
    muamqm 2020/09/14
  • ポートフォリオや個人開発で使えそうなアイデア - Qiita

    はじめに 個人的にアイデアを考えるのが好きで思いつくたびにメモしたりツイートしたりしていたのですが、大量にたまってきたのでまとめて共有しようと思います。 「勉強やポートフォリオ作成のためになんか作りたいけど、これといって作りたいものはないな」という方、ぜひご利用ください。 ちなみに著作権とか諸々の権利を主張する気は一切ないのでご自由にどうぞ。 *技術記事ではないので消すかもしれません。 カテゴリ別 ビジネス 会社の元社員と繋がれるサービス。現役の人からは聞きにくい質問、やめた理由等を聞ける。転職、就活生向け リファラル採用専門サービス 社長の位置情報を常に見れるアプリ。社員向け。社長がなんの仕事をしてるかわかる。 ペルソナを設定すると当てはまる人10人くらいとのインタビューを自動で設定してくれるアプリ。商品出すときインタビュー開いて探す手間を省ける 学部長とか社長とかに提言できる社内ツール

    ポートフォリオや個人開発で使えそうなアイデア - Qiita
    muamqm
    muamqm 2020/08/30
  • C# 9.0 で条件式が革命を起こす - Qiita

    何が嬉しいかと言うと、i の評価が一回で済むところです。二番目のコードをよく見てください。i が一回しか書かれていませんよね? 評価が一回で済むということは、変数だけではなく、副作用を持つ関数などにも使えるということです。

    C# 9.0 で条件式が革命を起こす - Qiita
    muamqm
    muamqm 2020/08/10
  • 本当にあったやらかしDB設計シリーズ一覧 - Qiita

    当にあったやらかしDB設計シリーズをまとめてみました SQLアンチパターンで書かれているほど高尚な問題ではなく、もっと初歩的な、でもありがちな問題を取り上げています 初心者を脱出したと思っている人に是非読んでもらい、正しく設計してもらうことを目的としています もしここに載っていないパターンを経験したことのある方がいたら是非教えてください 当にあったやらかしDB設計①【R無しRDB当にあったやらかしDB設計②【囚人番号テーブル】 当にあったやらかしDB設計③【ロジカルクエリー】 当にあったやらかしDB設計④【テストチューニング】 当にあったやらかしDB設計⑤【第三正規化病】 当にあったやらかしDB設計⑥【見えない削除フラグ】 当にあったやらかしDB設計⑦【ステートフルDB当にあったやらかしDB設計⑧【ファンクションDB当にあったやらかしDB設計⑨【文字列日付】

    本当にあったやらかしDB設計シリーズ一覧 - Qiita
    muamqm
    muamqm 2020/08/10
  • 5歳娘「パパ、変なAPIを作らないで?」 - Qiita

    とある休日 娘(5歳)「パパ、一緒に技術ブログを始めない?」 娘「昔から私とパパがローカルに書き溜めてる技術記事が、かなり溜まってきたでしょ?」 娘「それをブログとして公開してみようよ」 ワイ「おお、それは楽しそうやな」 ワイ「どこのブログサービスを使おうかいな」 娘「せっかくなら、ブログシステムから自分たちで作ってみようよ」 娘「私はフロントエンドを担当するから」 娘「パパはRuby on Railsか何かで、APIを作ってよ」 ワイ「おお、Ruby on Railsなら昔やったことあるわ」 ワイ「RailsAPIモードで、ブログ記事を返すエンドポイントを作ればええんやな」 娘「そうそう」 次の日 ワイ「API、できたで!」 ワイ「/api/articlesっていうエンドポイントにアクセスしてくれたら」 ワイ「ブログ記事が取得できるようにしておいたわ」 娘「さすがパパ」 娘「そういえば

    5歳娘「パパ、変なAPIを作らないで?」 - Qiita
    muamqm
    muamqm 2020/07/21
  • .NET 系の DI コンテナ - Qiita

    やっとコードよりの話になれる!!過去の 2 記事は言語ごとの事情や、その人の経験などで色々ちょっとずつ異なることがあるので「〇〇の場合は違う」とか「こういう側面もある」とか色々コメントしやすい感じだったのですが、そのおかげで初めての Qiita のデイリーで No1 取れました。やったね! ということで、自分の主戦場の C# での DI コンテナ事情について書いてみたいと思います。 Microsoft.Extensions.DependencyInjection ASP.NET Core などで何も考えないと使うことになる、事実上の標準の DI コンテナです。 非常にシンプルで DI コンテナとして最低限これくらいは持ってるだろうと思われる機能だけ持ってます。 例えば、以下のようなクラスがあったとします。 interface IMyService { void Greet(); } cla

    .NET 系の DI コンテナ - Qiita
    muamqm
    muamqm 2020/07/13
  • DI って何でするのかわからない人向けに頑張って説明してみる「本来の意味」 - Qiita

    DI (依存性注入) って何のためにするのかわからない人向けに頑張って説明してみる を、単体テストにフォーカスしたら単体テストが来の目的では無い的なコメントが散見されました。 確かに DI コンテナは元々は SOLID 原則の D に該当する依存性逆転の原則 (Dependency inversion principle) の「具体ではなく、抽象に依存しなければならない」に大きく関係するものになります。 Wikipedia から引用します。 ソフトウエアモジュールを疎結合に保つための特定の形式を指す用語。 この原則に従うとソフトウェアの振る舞いを定義する上位レベルのモジュールから 下位レベルモジュールへの従来の依存関係は逆転し、結果として下位レベルモジュールの 実装の詳細から上位レベルモジュールを独立に保つことができるようになる。 例えば以下のように上位レベルのモジュール(Present

    DI って何でするのかわからない人向けに頑張って説明してみる「本来の意味」 - Qiita
    muamqm
    muamqm 2020/07/11