タグ

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

  • AWSで2022に打破されたアンチパターン - Qiita

    TLDR AWS2022年の1月から9月までのアップデートが多数ありました。私(と、何人かのサポーター)が考えた、この期間内の打破されたアンチパターンを紹介します。32項目ありました! アンチパターンって何よ? 「AWSでこうしたい」という思いからAWSを使っていく方は多いはずです。 そのなかで、数多くのAWS使いこなしの工夫が生まれ、成功例が生まれていきました。AWSのサービスとして提供されていないことを工夫でなんとかした、そんな成功例たち。それが「秘伝のタレ」となり、「さわってはいけないもの」、あるいは「ロストテクノロジー」として、封をしたパターンとなっていないでしょうか? 動作やプロセス、構造について、当初は妥当であったのに、最終的に悪い結果が繰り返されるパターンであり、リファクタリングするための方法が存在するパターンこそがアンチパターンです。サービスアップデートされれば、いままで

    AWSで2022に打破されたアンチパターン - Qiita
  • Amazon VPCを「これでもか!」というくらい丁寧に解説 - Qiita

    はじめに AWS上で仮想ネットワークを構築できるAmazon VPCは、多くのAWSサービスが動作する基盤となる、非常に重要かつ多機能なサービスです。 多機能ゆえに公式ドキュメントやネット上の記事も断片的な機能の解説が多く、全体像を把握することが難しいサービスとも言えます。 そこで記事はVPCの全体像を理解できるよう、各機能のつながりや動作原理を丁寧に解説し、 「VPC界の百科事典」 (あくまで例えですが…笑) となるような記事を目指したいと思います。 【追記】 実践編の記事を追加しました VPCの実画面での構築方法は、以下の別記事にまとめました。「VPCを実際に触ってみたい!」という方は、こちらもご一読いただけると嬉しいです。 VPCとは 「Virtual Private Cloud」の略で、クラウド上に仮想的なネットワークを構築するためのサービスです。 例えば、オンプレ環境でWebア

    Amazon VPCを「これでもか!」というくらい丁寧に解説 - Qiita
  • 図解 OpenID Connect による ID 連携 - Qiita

    ID 連携フローの説明 1 ウェブブラウザを使い、ウェブサービスのログインページにアクセスします。 2 ウェブサービスはログインページを生成し、ウェブブラウザに返します。ウェブサービスが外部のアイデンティティプロバイダ(IdP)との ID 連携をサポートしていれば、ログインページ内に ID 連携を開始するためのリンクが埋め込まれます。 3 ID 連携を開始するためのリンクをクリックします。 4 ID 連携開始の要望を受けたウェブサービスは、対象となる IdP への認証リクエスト(OpenID Connect Core 1.0 Section 3.1.2.1. Authentication Request)を作成します。 認証リクエストの形式は、リクエストパラメーター群を含めた、IdP の認可エンドポイント(RFC 6749 Section 3.1. Authorization Endpoi

    図解 OpenID Connect による ID 連携 - Qiita
    yatata
    yatata 2022/06/16
  • API設計スキルを次のレベルに引き上げるベストプラクティス22選 - Qiita

    記事は、Mohammad Faisal氏による「22 Best Practices to Take Your API Design Skills to the Next Level」(2021年4月15日公開)の和訳を、著者の許可を得て掲載しているものです。 REST API設計のための実践的アドバイス Photo by Andrea Piacquadio from Pexels はじめに すべてが分かりにくく、ひどいAPIに不満を感じたことはありませんか?私はそうです。 マイクロサービスの世界では、バックエンドAPIの一貫した設計が不可欠です。 今日は、知っておくべきベストプラクティスについて、簡潔に説明します。さあ始めましょう! 用語 API設計は、リソース指向設計というものに従います。3つの重要な概念で構成されています。 リソース:データの一部(例:ユーザー) コレクション:リソー

    API設計スキルを次のレベルに引き上げるベストプラクティス22選 - Qiita
  • さぁ、firebaseでユーザーが管理者かどうかの判別を行おう! - Qiita

    皆さん、「管理者のユーザーだけこのテキスト、ボタンを表示したい」とか、「ユーザーにはこのテキスト、ボタンを表示したい」と思ったこと一度はありますよね??? firebaseの関数firebase.auth().currentUserやfirebase.auth().onAuthStateChanged()でユーザーの管理者かどうかを判断するプロパティは存在しないんです。悲しい。。。 なので、firebaseでユーザーの管理者かどうかを判別する方法をご紹介します!! そんなに難しくないので、是非学習の参考にしてください! それでは一緒に順を追って説明を見ていきましょう!!(ここからはfirebase-functionsを利用します。firebase-functionsの説明は致しませんのでご了承ください。) また、この記事を書くにあたってFirebase で公開するウェブサイトに「管理者機能

    さぁ、firebaseでユーザーが管理者かどうかの判別を行おう! - Qiita
    yatata
    yatata 2021/07/26
    “user.getIdTokenResult(true).then((idTokenResult) => { if (idTokenResult.claims.admin) { commit("userRights"); } });”
  • FirebaseのCustom Claimを利用する - Qiita

    といった感じで利用できるようになります。 多くの場合管理者とユーザーの区別等に利用されますが、もちろんadminというキーワード以外も利用できます。 Custom Claimの制限 Custom Claimにはいくつかの制限というか条件があります。 admin権限でしか利用できないので実運用ではfunctionsと組み合わせて利用することになるでしょう。 admin権限じゃないと付与・管理できない(クライアントライブラリからは操作できない) 1000バイト以下 Custom Claimの設定 では実際に設定してみます。 ここではuid直設定していますが、実際はプログラム中で取得することになるでしょう。 functionを作ればuidを引数で受けとるとか。 const admin = require('firebase-admin'); const serviceAccount = requ

    FirebaseのCustom Claimを利用する - Qiita
    yatata
    yatata 2021/07/25
  • フロントエンドの刺激的なコーディング課題6選 - Qiita

    素晴らしい課題でコーディング意欲を高めよう。 Photo by Ferenc Almasi on Unsplash. はじめに コーディングを上達させる最も効率的な方法の1つは、できるだけたくさん作ることです。 コーディング課題は、ものを作ることで自分のスキルアップする楽しい方法です。この記事のリストを参考に、何か選んで作り始めましょう! 急いでいる時や、コーディングのアイディアを枯渇させたくない時は、100以上の課題をここにまとめてあります。 課題には好きなツールを使えるので、練習したいものがあれば、気軽に挑戦してみてください。 1. タスクマネージャUI なんて美しいアプリケーションでしょう!クリーンでモダン、インテリジェントなUIです。 Aysenur Turkによる「CSSグリッドを使ったタスクマネージャーUI」 学べること HTMLCSSを使用する方法。新しいCSSグリッドを試

    フロントエンドの刺激的なコーディング課題6選 - Qiita
  • 2021年のTypeScript環境構築で絶対入れるべき「better-typescript-lib」の紹介 - Qiita

    こんにちは。この記事は筆者が開発した「better-typescript-lib」を宣伝する記事です。これは、導入するだけでTypeScriptプログラムがより型安全になるという素晴らしいライブラリです。あくまで型定義なので、導入してもランタイムの挙動は何も変わらず、バンドルサイズなどへの影響もありません。 better-typescript-libの導入法 ここに記載されているのはv1 (TypeScript 4.0 〜 4.4向け)のインストール方法です。v2 (TypeScript 4.5〜)ではインストール方法が変わり、最初のnpm installのみで良くなります。詳しくは次の記事をご覧ください。

    2021年のTypeScript環境構築で絶対入れるべき「better-typescript-lib」の紹介 - Qiita
  • もしあなたが急にAndroidアプリを業務で作るはめになった場合の選択肢(2021年初頭版) - Qiita

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

    もしあなたが急にAndroidアプリを業務で作るはめになった場合の選択肢(2021年初頭版) - Qiita
    yatata
    yatata 2020/12/02
  • Next.js 4年目の知見:SSRはもう古い、VercelにAPIサーバを置くな - Qiita

    Next.js by Vercel - The React Framework 画像は Next.js サイコー!っていう顔です。 Webフロントエンドエンジニアであれば、「Reactのフレームワーク」と聞いて真っ先に思いつくであろうNext.js。僕は小規模の趣味開発から中規模の業務まで、4年程度Next.jsを使い続けてきました。触りはじめの当時はバージョン4で、”SSR(Server-side Rendering)を提供するReact製フレームワーク”だったものが、執筆時時点の最新バージョン(10.0.1)ではガラッと異なるフレームワークへと進化しています。 この4年間は実務で利用するだけでなく、新しいものや廃止された機能、RFC止まりになった機能など、Next.jsに関する情報を追いかけており、ある程度の知見をためつつも、Next.js並びに開発元のVercelが目指す方向性を何と

    Next.js 4年目の知見:SSRはもう古い、VercelにAPIサーバを置くな - Qiita
  • Pythonのオブジェクト指向プログラミングを完全理解 - Qiita

    1. オブジェクト指向の起源 2003年チューリング賞の受賞者アラン・ケイさんはよくオブジェクト指向プログラミングの父と称されます。ご人も憚ることなく、幾度、公の場で発明権を宣言しています。しかし、ケイさんは「C++」や「Java」などの現代のオブジェクト指向言語を蔑ろにしています。これらの言語は「Simula 67」という言語を受け継いだもので、私が作った「Smalltalk」と関係ないのだとケイさんは考えています。 オブジェクト指向という名称は確かにアラン・ケイさんに由来するものです。しかし、C++Javaで使われている現代のオブジェクト指向は当初のと結構違います。ケイさん自身もこれらの言語を後継者として認めないです。では、ケイさん曰くC++Javaの親であるSimula 67という言語はどんな言語でしょうか。ここで、簡単なサンプルコードを見てみましょう。 Class Recta

    Pythonのオブジェクト指向プログラミングを完全理解 - Qiita
  • 個人開発・スタートアップで採用すべき最強のアーキテクチャを考えた - Qiita

    結論 「アジリティ」「コスト最適化」「スモールな構成」「開発スピード」という観点でWebアプリケーションのアーキテクチャを考えてみました。 ServerlessFrameworkを使い倒す フロントエンドはS3 hosting + CloudFrontで。SSRもLambda@Edgeでできます データベースはRDSは使わずにDynamoDBAPIは基的にGraphQL。必要に応じてRESTも簡単に追加できるよ。 補足(2022/04/12) 最近個人開発しているこちらのWebサービスはこのアーキテクチャに沿って作られています。 このアーキテクチャでどんなものができるのよ、という視点で見ていただくと面白いかもしれません。 ↓ 背景 アーキテクチャに絶対の正解はない アーキテクチャには絶対の正解はありません。 なぜなら、プロダクトやフェーズによって求められる要件が異なり、それに適したア

    個人開発・スタートアップで採用すべき最強のアーキテクチャを考えた - Qiita
    yatata
    yatata 2020/10/29
  • 個人開発で100ヵ国以上が参加するトーナメントで世界1位を獲るまで - Qiita

    はじめに Pioneerで1位を獲りました。このトーナメントは、世界100ヵ国以上から個人開発者/起業家が参加するアクセラレータープログラムとなっており、誰でも参加することができます。参加すると、週次で「その週どんなことをしたのか」、「どんなKPIを設定しているか」を提出し、他の参加者やメンター陣の評価によりポイントが付与され、順位が変動する仕組みが設けられています。 したがって、数日で終わるイベントではなく、1ヶ月〜半年以上かけて行なわれます。また、上位ランクに入ると、Pioneerからトップランカープログラムの招待があり、GoogleAmazonなど合計200K相当のクレジット、限定コミュニティへの参加や、著名起業家からのメンタリングを受けることもできるようになります。Pioneerの主催者が、シリアルアントレプレナーかつ、元Y CombinatorのパートナーでもあるDaniel

    個人開発で100ヵ国以上が参加するトーナメントで世界1位を獲るまで - Qiita
    yatata
    yatata 2020/10/09
  • 個人開発とかで成功したり、失敗してきたプロダクト22選 - Qiita

    はじめに プロダクトなんてデフォルト失敗します。でも、最初から失敗すると思って、作り始めるプロダクトなんてないというのが皮肉なものですよね。一方で、確率論というわけでもないので、作り続ければ、いつか上手くいくという保証があるような世界でもありません。なかなか、残酷です。 ですが、失敗の全てが辛かったかといえば、勿論、キツい局面の方が脳裏に残っているものですが、今思うと、あの時、こういうプロダクトをしていたから、こう気づけた、あの人と出会えたという思い出がいっぱいだったりもします。 今、私はようやく信じ続けられるプロダクト、Remotehourに出会い、チームたちと一つ目指すべき世界に向けて、走り出せています。それでも、毎日がプロダクトを出す以上に、一つの機能、仕様に試行錯誤を積み重ねています。 今回は、一つや、二つのプロダクトを閉じただけで、諦めている人の励みになればと思い、これに至るまで

    個人開発とかで成功したり、失敗してきたプロダクト22選 - Qiita
    yatata
    yatata 2020/10/09
  • フルスタックエンジニアになるためのモダンな8つのプロジェクト - Qiita

    こんにちは、たかとーです。 今日は8 Projects with modern designs to become a Full-stack Master 2020の日語訳記事です! *当記事は、Thuさんの許可を得て翻訳しています。 ブログでも読めます! 8 Projects with modern designs to become a Full-stack Master 自分のスキルを磨くためのプロジェクトを探していますか?新しいアイデアを思いつくのに行き詰っていませんか? 開発者として、私たちはコードを書くのが大好きですが、デザインやアイデアを見つけるのが難しいことがあります。 こんにちは、Thuです。ここ数ヶ月、私はデザインや要件を含む8つの実在するプロジェクトの作成に取り組んできました。 私は、あなたがスーパースターなフルスタックデベロッパーになるために必要な全てのスキルを鍛

    フルスタックエンジニアになるためのモダンな8つのプロジェクト - Qiita
    yatata
    yatata 2020/09/20
  • RESTful APIのURI設計(エンドポイント設計) - Qiita

    RESTful APIのリソース設計で述べた通り、何をリソースとするかを決めたらそのリソースを識別するURIを検討する必要がある。 エンドポイントとは何か エンドポイントとはAPIにアクセスするためのURIのこと。例えば、QiitaのAPIで自分の情報を取得する時のエンドポイントは以下となる。 http://qiita.com/api/v2/users/nagaokakenichi 似たような言葉に「エントリポイント」というものがある。エントリポイントとはプログラムやサブルーチンの実行を開始する場所のこと。 Qiita視点で考えると、 http://qiita.com/api/v2/users/nagaokakenichi を参照されることでプログラムが開始されるので、Qiitaからすると上記URIはエントリポイントとなる。 つまり、エンドポイントはAPIにアクセスする側からの、エントリポ

    RESTful APIのURI設計(エンドポイント設計) - Qiita
  • 本当にあったやらかしDB設計シリーズ一覧 - Qiita

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

    本当にあったやらかしDB設計シリーズ一覧 - Qiita
    yatata
    yatata 2020/08/10
  • アプリで「ログインしっぱなし」はどのように実現されているか? - Qiita

    このツイートを見て、「アプリで再ログインを頻繁要求されるってユーザビリティ良くないな。」と思ったのですが、普段裏側の仕組みは意識していなかったりテックリードの方に任せきりだったりしていたので、これを機に調べてみました。 そもそもスマホアプリ の時代、もはやauthenticationですらないと思うのよね。(何を言ってるかわからねえだろうと思うが。) — Hiromitsu Takagi (@HiromitsuTakagi) 2019年7月8日 この記事は「アプリでログインしっぱなしは、どのように実現されるの?」という疑問と調べた結果を共有するために書いていきます。 間違いや「もっとこんな仕組みが使われてるよ!」等のツッコミがあれば、どしどし貰えると助かります! 疑問1. アクセストークンという仕組みとは? 「なぜアクセストークンという概念が必要なのか?」 モバイルアプリでユーザー認証をし

    アプリで「ログインしっぱなし」はどのように実現されているか? - Qiita
  • スタートアップである弊社が全員ほぼ未経験でRuby on RailsをScalaに移行した理由、その効果と苦労点 - Qiita

    スタートアップである弊社が全員ほぼ未経験でRuby on RailsScalaに移行した理由、その効果と苦労点RubyRailsScalaポエムスタートアップ この記事を書くに至った経緯 僕が代表をしている株式会社KOSKAでは製造業の原価管理をIoTで自動化するGenkanというサービスを提供しております。 そんな弊社では半年前、バックエンドをRuby on RailsからScalaに移行したのですが、その効果が思ったよりだいぶ大きく、いずれこの効果を共有したいなーと思っていました。 弊社ではスタートアップで全員ほぼ未経験状態のScalaを採用するという挑戦をした結果、「Scalaを書きたい」というレベルの高い人材をかなりの確率で捕まえられるようになり、開発がものすごい加速した上に堅牢になったのでそのうちスタートアップでScalaを採用するメリットを記事にする予定。 https://t

    スタートアップである弊社が全員ほぼ未経験でRuby on RailsをScalaに移行した理由、その効果と苦労点 - Qiita
  • オニオンアーキテクチャとは何か - Qiita

    概要 オニオンアーキテクチャはJeffrey Palermo氏により考案されたアーキテクチャパターンである。伝統的な階層化アーキテクチャとオブジェクト指向の考え方を踏襲しつつ、これまでよりも保守性、テスト容易性、依存性の点で優れたアプリケーションを構築することを目的としている。記事ではこのオニオンアーキテクチャとは何かについてPalermo氏の記事を参考にして考察する。 前提となる知識 オニオンアーキテクチャを理解する上で前提となるいくつかの知識を挙げる。 オブジェクト指向 オニオンアーキテクチャはオブジェクト指向を前提としたアーキテクチャである。 階層化アーキテクチャ オニオンアーキテクチャは多層アーキテクチャを利用している。 依存性逆転の原則 オニオンアーキテクチャでは依存性逆転の原則がオブジェクトのモデリングに利用されている。 ドメイン駆動設計 Entity, Repository

    オニオンアーキテクチャとは何か - Qiita
    yatata
    yatata 2020/08/01