タグ

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

  • 無料で学ぶ『達人に学ぶSQL徹底指南書 第1版』 - Qiita

    はじめに 『達人に学ぶSQL徹底指南書 第1版』は、CodeZine連載とミック氏ウェブサイトの掲載記事をもとに、加筆・編集されたものです。 CodeZine連載、および、ミック氏ウェブサイトは、どちらもオンラインの無料公開コンテンツです。 今回、「書籍と元コンテンツの対応表」を作成しました。 書籍のために書き下ろされた一部コンテンツや演習問題は見れませんが、その一方、編集で割愛された内容などが含まれるので、書籍以上のことを学べる箇所もあります。 すでに新版『達人に学ぶSQL徹底指南書 第2版』が出ていますが、各テーマは第1版でも大きく変わっておらず、現在でも通用する基的で面白い内容なので、一見の価値はあると思います。 書籍と元コンテンツの対応表 No. 目次 CodeZine連載 ミック氏ウェブサイト テーブル定義 サポートページ

    無料で学ぶ『達人に学ぶSQL徹底指南書 第1版』 - Qiita
  • ぐるぐるSQLは止めてくださいという話 - Qiita

    1. はじめに 仕事の都合で DB/SQL の性能問題を調査する機会が少なくありませんが(決してメインの仕事ではないですが)、その中でよく出くわす問題の1つに「ぐるぐるSQL」(もしくは「ぐるぐる系」)といわれる、ループで大量の SQL 文を呼び出しているものがあります。 感覚ですが、私の周りでは OLTP 系システムの DB/SQL の性能問題の原因の割合は以下のように感じています。 30%:ぐるぐる SQL 20%:SQL 文の書き方が不適切 15%:索引がない or 不適切 15%:パーズが遅い 10%:データモデルがおかしい 10%:その他 (大昔は2番目 / 3番目がほとんどだったのですが、最近はなぜがぐるぐる SQL が多い…) ぐるぐる SQL の実装では、ネットワーク通信や、アプリ側のクエリ生成 / 結果データ構築、DB 側のクエリ受信 / 結果送信といった、処理の質的で

    ぐるぐるSQLは止めてくださいという話 - Qiita
    kzmts
    kzmts 2021/01/18
    題名からストアドプロシージャのアンチパターンについての話と思ったけど違った。[SQL][DB]
  • C#でまともなアプリ開発を行うために - Qiita

    はじめに C#は「Windowsでしか開発出来ない言語」などクローズドなイメージから一転し、.NET Coreの誕生によって様々なことが出来るようになりました。最近ではokazukiさんのC# で出来ること一覧が大きな反響を呼び、C#であらゆるアプリが作れることを多くの方に知ってもらえたかと思います。C#のよさを知ってもらうことは嬉しい限りではありますが、他言語をやってきた身としてはC#を取り巻くエコシステムの情報が少ないと感じることが多く、新たに参入される方にとって抵抗があるのも事実だと思います。この記事ではまともなアプリ開発を行うために必要なエコシステムなどご紹介し、C#でも快適に開発出来ることを知ってもらえれば嬉しいです。筆者はWEB開発を主としているので、WEB寄りな話が多くなる可能性がありますがご了承下さい。 「まとも」とは? タイトルにも書いたまともなアプリ開発とは、一定の品質

    C#でまともなアプリ開発を行うために - Qiita
    kzmts
    kzmts 2021/01/18
  • 【Linux】インフラエンジニアの僕が「hostname」コマンドを使わない理由とは? - Qiita

    はじめに Linuxの運用監視~設計構築迄経験している僕が、「hostname」コマンドを基的に使わない理由について書いていきたいと思います。 今回の対象OS Linux系OS全般(RHEL/CentOS/Solaris等) そもそも「hostname」コマンドとは? Linux系OSのホスト名を確認するコマンドになります。 使い方は、こんな感じになります。

    【Linux】インフラエンジニアの僕が「hostname」コマンドを使わない理由とは? - Qiita
    kzmts
    kzmts 2020/08/10
    qiitaのコメントにも書かれてたけど、安易にrootユーザーは使わない方が良いのでは。 環境構築時は仕方ないけど、運用フェーズに入ったら、私は保守用ユーザーを作って作業してます。/AIXだったら uname -s だったけ?
  • バッチ処理について考える - Qiita

    TL;DR ひとくちにバッチといっても色々ある 夜間バッチをもう作るな オンラインバッチはSQL以前にDB設計がんばれ はじめに Twitterのタイムラインで以下のようなツイートが回ってきました。 バッチ処理をみんな舐めてかかったり、ショボイとか思ってる人多い印象なんだけれども、数十万~数千万件規模のデータを処理したことあるのかな。テンプレ通りのコードじゃ動かないよ?ネットににも答え載ってないよ?低レイヤも意識しないと動かないよ? 2020年1月10日 ツイートされたわだっしーさんの意図がどこにあるかは確認してないですが、極限の世界でテンプレート的な処理では対応出来ないのはあるよな、と思いつつもある程度はバッチの作法としての書き方があると思っています。 このツイートとその関連ツイートを読みながら、そういえばバッチ処理に関して書いてある記事はあまり見ないなぁ、とおもったので他のネットや

    バッチ処理について考える - Qiita
  • .NET Core の WebAPI(C#)をIISにデプロイする(VisualStudioCode) - Qiita

    環境 Windows10 Pro Visual Studio Code (VSCodeUserSetup-x64-1.40.2.exe)・・・高機能テキストエディタ .NET Core (dotnet-sdk-3.1.100-win-x64.exe)・・・API作るためのもの .NET Core ホスティング バンドル (dotnet-hosting-3.1.1-win.exe)・・・APIがIISで動くようにするもの ※v3.1.0は環境によっては500 Internal Server Errortが発生する。 前提 Visual Studio Code インストール済み .NET Core 3.1 SDK ダウンロード済み ASP.NET Core 3.1 Runtime (v3.1.1) - Windows Hosting Bundle ダウンロード取得済み ※v3.1.0は環境によ

    .NET Core の WebAPI(C#)をIISにデプロイする(VisualStudioCode) - Qiita
  • GCPで永久無料枠を利用してサービスを立ち上げたときにしたことの備忘録 - Qiita

    はじめに 最近GCPWebサービスを立ち上げたので、そのときに実施したことをメモとして残しておきます。 今回はGCEで Debian + Nginx + Railsで環境を作りました。 ドメイン取得以外は終始無料で進めるための努力をしました。 また、今回はRailsアプリケーションを作成することは目的としていませんので、そこについてはあまり触れません。 やったこと GCEでインスタンスを立ち上げる アカウント作成時に貰える無料トライアル枠とは別に、無料で利用できるリソースがあります。 Always Free と呼ばれていて、GCEの場合は以下の要件を満たすインスタンスのみ永久に無料でインスタンスを立てることができます。 リージョンをus-*1から選択する 1つのf1-micro VM インスタンス 30GB以内 の永続ストレージ ※無料対象リージョンはus-*1のみというご指摘を受けまし

    GCPで永久無料枠を利用してサービスを立ち上げたときにしたことの備忘録 - Qiita
  • 変更に強いアーキテクチャについてIT業界19年目の僕が超ザックリ説明する - Qiita

    この記事は、設計・アーキテクチャ Advent Calendar 2018 の第7日目の記事である。 はじめに この記事では、IT業界19年目の僕が実践している変更に強いアーキテクチャについて、出来るだけ難しい表現を避け、教科書的なありきたりな内容ではなく現場の肌感覚に近い切り口で「超ザックリ」な解説を試みてみようと思う。 普段自分がよく用いている実装パターンの紹介ともいうべきかも知れない。 この記事で説明すること いざ「変更に強いアーキテクチャとは」とズバリ訊かれても、一概に「これだ!」という答えはない。 プログラミング言語や、フレームワークによっても条件が異なるし、利用可能な技術や開発チームの特性、業務要件や運用要件の特性によっても様々であるし、インフラや開発プロセスまで含めて考えると考慮すべきことは無限にある。 ここでは主にソフトウェアの構造という観点から、"変更に強い" ということ

    変更に強いアーキテクチャについてIT業界19年目の僕が超ザックリ説明する - Qiita
  • Swiftのエラーハンドリングはなぜ最先端なのか - Qiita

    Swiftのエラーハンドリングは他のメジャーなプログラミング言語のどれとも異なる新しい仕様を持っています。特に、検査例外を持っているのですが、これはJavaで採用された以降はほとんどの言語で採用されていないため、現代では否定されている過去の間違いだったと広く認識されていると思います。そのため、Swiftユーザーで無い人は、検査例外という言葉をみた瞬間に興味を失ってしまうため、その詳細がなかなか世の中に伝わっていないと感じています。一方、私はこんなSwiftのエラーハンドリングをとても気に入っていて、様々な言語の進化の歴史を踏まえた産まれた最も優れた最先端の仕様だと思っています。この記事ではその考えを説明します。 Javaのエラーハンドリング Javaは検査例外を持っています。これにより、あるメソッドがエラーを送出するかどうかを関数のシグネチャとして静的に表明できます。 // 検査例外の例

    Swiftのエラーハンドリングはなぜ最先端なのか - Qiita
  • 最近のJava界隈はとても良い感じ - Qiita

    はじめに 私はこれまでのエンジニア歴で継続的にJavaを使い続けていますが、以前と比較すると使い勝手の面で格段に良くなっていると実感しています。 また、JJUG、JSUGなどで講演を聞いたりしたりする中で、個人的に最近のJava界隈は非常に進歩的で良い感じだと感じています。 そんな中、「Javaは人口が多いだけで特別に採用するメリットが無い」「Javaはレガシーで生産性が低い」というツイートを見かけたので、その反論を込めて私の考えを書き連ねたいと思います。 なお、以下で述べる内容には、Javaが良いというよりは、特定のフレームワークが良いだけ、というものもありますが、あくまでJava「界隈」について述べているのであしからず 。 最近のJavaの良いと思う点 言語仕様、標準ライブラリの改善 プロジェクトの立ち上がりの早さ 型安全性の活用 マイクロサービスアーキテクチャへの対応 パフォーマンス

    最近のJava界隈はとても良い感じ - Qiita
  • Webアプリケーションフレームワーク導入時に考慮すべき22の観点 - Qiita

    記事では、 チームによる持続的に変更可能なWebアプリケーションの開発を目標に、フレームワーク導入時に考慮すべき22の観点を紹介する。 フレームワークによって特徴は異なるが、番導入にあたって、考慮すべきポイントはあまり変わらないので、極力フレームワーク1に依存しすぎないよう配慮する。また、話をシンプルにするため、REST APIを提供するアプリケーションを題材とする。 前提 ソフトウェアのエントロピー ソフトウェアがエントロピー増大の法則を避けられないことを、体感している開発者は多いだろう2。普通にアプリケーション開発を続けると、開発スピードは鈍化し、品質は低下してバグが増え、開発者からは技術的負債への怨嗟の声が聞かれるようになる。エントロピー増大というフォースは極めて強力で、意思を持って立ち向かわなければ、容易にダークサイドに堕ちてしまう。 関心事の分離 大規模Webアプリケーション

    Webアプリケーションフレームワーク導入時に考慮すべき22の観点 - Qiita
  • 「なぜDI(依存性注入)が必要なのか?」についてGoogleが解説しているページを翻訳した  - Qiita

    イマイチ理解しきれていなかったDIに関して調べていところ、Google Guiceの解説がすごく分かりやすかったので、和訳してみました。 (ところどころ意訳気味です。明らかに解釈の誤った訳がありましたら、ご指摘ください) ちなみにGoogle Guiceというのは、Googleが開発したDIライブラリです。この例ではJavaが使用されていますが、Scalaでも使用可能です。最近Play Frameworkでも採用されたので話題になっているようです。 用語の定義 文を読む前に目を通すことで、内容をスムーズに理解できます。 用語 意味 文中の例

    「なぜDI(依存性注入)が必要なのか?」についてGoogleが解説しているページを翻訳した  - Qiita
  • MyBatis 使い方メモ - Qiita

    MyBatis とは SQLJava オブジェクトを紐付ける永続化フレームワーク。 以前は iBATIS という名前で Apache プロジェクトの1つとして開発されていた。 しかし、 2010年6月に Apache ソフトウェア財団での開発が中止され、現在は MyBatis という名前で開発されている。 SQL 文を完全にコントロールしたい場合に使いやすいらしい。 環境 OS Windows 7 64bit

    MyBatis 使い方メモ - Qiita
  • Backbone.js の開発環境を構築し MVCパターンで書いてみた - Qiita

    これまで個人的に AngularJS、Knockout.js、Vue.js そのほか諸々を試してきたのですが、まだ Backbone.js はちゃんと触ってないな〜ということで試してみました。 今回は Yeoman の backbone ジェネレータを利用しました。ジェネレータを利用した理由としては、初めてなのでベストプラクティスっぽい構成をまずは知りたかったのと、CoffeeScript で書くための環境を、手軽に作りたかったからです。 Yeomanの ジェネレータを利用すると Grunt/Bower まわりの環境がある程度そろうので楽です。 環境構築 前提 手元の OS:Mac OS X 10.9.5 (Mavericks) Yeoman、Grunt、Bower を使います。もしまだインストールしていない場合、こちらの投稿を参考にインストールしてください。 Mac で Yeoman の

    Backbone.js の開発環境を構築し MVCパターンで書いてみた - Qiita
  • 初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita

    ここ最近、沢山シェルスクリプトを書くようになりました。 元々あまりシェルスクリプトを書いたこと無かったので、色々と勉強しつつ書いてるのですが、 他のプログラミング言語とはちょっと違って独特なクセというか、発見の度におぉー!ってなることが沢山あって楽しいです。 そんなわけで、最近学んだり参考にした中で特に感動したシェルの上手い書き方をまとめてみます。 きっとまだ知らないこととかもっと上手くやる方法なんかが沢山見つかりそうなので、 もっといいやり方あるよ!って方はコメントください 何もしない : (コロン)コマンド シェルを書いていた時に非常に欲しかったコマンドがこれ!何もしない! : というコマンド(?)を利用すると、何もせずに終了ステータス0(つまり正常終了)を返します。 これが様々な事に使える万能コマンドで、これによって面倒なエラー処理を簡潔にできたり、 入力や出力のリダイレクト元/先と

    初心者向け、「上手い」シェルスクリプトの書き方メモ - Qiita
  • そこそこセキュアなlinuxサーバーを作る - Qiita

    先日「サーバーのセキュリティ設定がなにすればいいかわからない」と相談をうけまして。 自分も初心者の時どこまでやればいいかわからず手当たりしだいにやって沼に入っていたのを思い出しながら自鯖構築したときのメモを元にまとめてみました。 注意 セキュリティ対策は用途や場合などによって違います。 自分で理解したうえで自己責任でおねがいします。 対象読者 Linuxのサーバーを建て慣れていない人 Linuxはある程度さわれる人(自分でパッケージを入れたり、サービスを止めたりできる) ラインナップ ☆は導入の重要度と導入の容易さから個人的偏見からつけた値です。 4つ以上が"最低限やること"だと思ってください。 sshd

    そこそこセキュアなlinuxサーバーを作る - Qiita
  • 最近の行儀のよい JavaScript の書き方 - Qiita

    JavaScriptは移り変わりの早い言語です。 もう1年以上経っていますし、記事のメンテもちゃんとできていないので、消し線を入れることにしました。 参考程度のために記事は一応残しますが、より新しい情報を読まれることをお勧めいたします。 はじめに --- 最近では JavaScript の実行環境はブラウザに限りません。(node.js, Web Workers) また、旧来のような <script> 経由でのロードもとうに古くなっています。今は CommonJS スタイルで、require を用いたモジュールのロードを行なうことがより良いとされています。 ですから、次のようなことは改める必要があります。 - var YourModule = {}; などとして、外部から YourModule.hoge(); などと呼び出す書き方 - this === window だと思うこと 今回は、

    最近の行儀のよい JavaScript の書き方 - Qiita
  • Mac始めて6年目にして、使い続けている開発ツール73選 - Qiita

    先日Macを再インストールするに当って、いい機会なので使ってないツールを省き使っているツールを厳選してインストールすることにした。あまり増やす気はなかったが、使うものだけ入れても73個になった。 コマンドライン ツール管理 brew-cask: HomebrewでMacアプリをインストールできる。 brew-gem: Homebrewでgemツールをインストールできる。 brew-pip: Homebrewでpipツールをインストールできる。 npm: Node.jsのパッケージ管理ツール。 DevOps ansible: Python製の構成管理ツール。Chefから乗り換え。 boot2docker: MacDockerを使える。 packer: 仮想マシンのイメージを作るのに便利。 Git git: バージョン管理ツール。 hub: GitHubのコマンドラインクライアント。プルリク

    Mac始めて6年目にして、使い続けている開発ツール73選 - Qiita
  • 1