2020年4月5日のブックマーク (30件)

  • JavaScriptで「こいつ...できる...!!」と思わせる方法 - Qiita

    Node.jsのサーバサイドのソースや、browserifyやwebpackをでバンドルするのを前提にして、jsファイルごとにモジュール化されているならとにかく先頭に書きましょう。 これだけでヤバい実装はエラーで死ぬようになるので安心です。 エラーが出力されるのは幸福です(極論) なお、昔ながらのhtmlにscriptタグを並べてjsファイルを複数読み込ませるスタイルの際は注意が必要です。 ファイルの先頭に"use strict";を宣言すると、グローバルレベルでstrictモードが適用されるため、strictモードに対応していないライブラリが死ぬ可能性があります。 strict程度で死ぬライブラリなんて... そんな時はjsファイルの中身全体をfunctionでくくりましょう (function() { "use strict"; console.log("こいつ...できる...!")

    JavaScriptで「こいつ...できる...!!」と思わせる方法 - Qiita
    nagaitakeyuki
    nagaitakeyuki 2020/04/05
    ES6でもuse strictすべきか?に対する答え。
  • ECMAScript 2015 (ES6) とそれ以降のバージョン | Node.js

    ECMAScript 2015 (ES6) とそれ以降のバージョン Node.js は V8 のモダンなバージョンに対して作られています。V8 を最新の状態に保つことで JavaScript ECMA-262 の新機能を開発者にすみやかに提供し、継続的なパフォーマンスと安定性の向上を保証しています。 すべての ECMAScript 2015 (ES6) の機能は shipping(リリース済み)、staged(ステージング) と **in progress(開発中)**の3つに分けられています: V8 が安定しているとみなす shipping(リリース済み) の機能は Node.js では標準で有効になっているので、ランタイムフラグは必要ありません。 **staged(ステージング)**の機能は V8 チームによって安定しているとはみなされないほぼ完成した機能であり、ランタイムフラグを必要

    ECMAScript 2015 (ES6) とそれ以降のバージョン | Node.js
  • Node.js による Lambda 関数の構築 - AWS Lambda

    AWS Lambda の Node.js を使用して JavaScript コードを実行できます。Lambda は Node.js のランタイムを指定して、イベントを処理するコードを実行します。コードは、管理している AWS Identity and Access Management (IAM) ロールの認証情報を使用して、AWS SDK for JavaScript を含む環境で実行されます。Node.js ランタイムに含まれている SDK バージョンの詳細については、「ランタイムに含まれる SDK バージョン」を参照してください。 Lambda は、以下の Node.js ランタイムをサポートしています。

  • ECMAScript® 2019 Language Specification

    Introduction1 Scope2 Conformance3 Normative References◢4 Overview4.1 Web Scripting◢4.2 ECMAScript Overview4.2.1 Objects4.2.2 The Strict Variant of ECMAScript◢4.3 Terms and Definitions4.3.1 type4.3.2 primitive value4.3.3 object4.3.4 constructor4.3.5 prototype4.3.6 ordinary object4.3.7 exotic object4.3.8 standard object4.3.9 built-in object4.3.10 undefined value4.3.11 Undefined type4.3.12 null value

  • JavaScriptとECMAScriptの違いって何?その背景を徹底解説! | 侍エンジニアブログ

    JavaScriptとECMAScriptって何が違うの? そもそもECMAScriptってどういう仕組みで構成されているんだろう JavaScriptのバージョンってブラウザごとにどう対処するの? JavaScriptを勉強しているとECMAScriptという呼び名を見かけることが多いですよね? また一方で、ES2015(ES6)という記述もよく見かけます。これらはJavaScriptのバージョンに関連していることは何となく分かる方もいると思いますが、はっきりと意味を理解しているという方は少ないのではないでしょうか? そこで、この記事では初心者でも今日からJavaScriptとECMAScriptの違いや使い分けなどについて分かりやすく解説していきますので、ぜひ最後まで読んで理解を深めて頂ければ幸いです。 一人でも多くの方がJavaScriptの不安を解消できれば幸いです。 90年代にJ

    JavaScriptとECMAScriptの違いって何?その背景を徹底解説! | 侍エンジニアブログ
  • Gitの設定をgit configで確認・変更 | note.nkmk.me

    system, global, localの順に読み込まれる。例えば、systemとlocalで同じ項目が設定されている場合はlocalの値が有効になる。 なお、以下で説明するgit configコマンドでそれぞれの設定ファイルの確認・編集が可能なので、ファイルの置き場所を気にする必要は特にない。 git configコマンドによる設定の確認・変更 設定に対する確認や変更などの処理はgit configコマンドを使う。 設定項目 設定項目の一覧およびその詳細は以下のリンクから。 Git - git-config Documentation 山ほどあるが、例えば、 color.ui : Gitの出力の色分け(通常はautoと設定) core.editor : コミットメッセージなどの編集で用いるエディタ user.name : ユーザー名 user.email : Eメールアドレス などがあ

    Gitの設定をgit configで確認・変更 | note.nkmk.me
    nagaitakeyuki
    nagaitakeyuki 2020/04/05
    git config -l で、カレントディレクトリで有効になっている設定を一覧できる。
  • AWS Lambdaの開発 私のベストプラクティス - Qiita

    JavaのWebアプリケーション開発(JavaEE)をメインスキルとする私が考えるAWS Lambda開発のベストプラクティスと、開発環境の構築に関するTipsを書いてみます。 JavaEEの資格持ちなので、そこそこのプログラミングスキルはあるつもりですが、AWS Lambda歴は1ヵ月程度です。 java以外の言語については「リファレンスを読めばそれっぽく書けますよ」というレベルです。 サービス構成 実現するアプリケーション次第だと思いますが、私はAPI Gateway + Lambda + DynamoDB のserverlessアーキテクチャをチョイスしました。 サーバーのお世話をしなくて良いという、誘惑にのってみました。 ソースコード管理についてはCodeCommit(git)を利用し、AWSでまとめます。 言語の選択 AWS Lambdaで利用できる言語としては2017年5月時点

    AWS Lambdaの開発 私のベストプラクティス - Qiita
  • AWS Lambdaをいろいろ暴く - Qiita

    AWS LambdaではJavaScript/Node.jsで書いたスクリプトをイベントドリブンで実行できるサービスです。 今回はLambdaの外側からできる範囲でLambdaがどう動いているのか、実行環境がどうなっているのかいろいろと暴いてみようと思います。 ちなみにLambdaの環境はAmazon Linuxをベースに動いています。現時点ではami-8786c6b7というpublicなAMIが利用されています。なので基的にはLinuxのコマンドが通るはずです。 まずは外部コマンドが実行できるかどうかです。今回は簡単にイベントソースなしのLambda functionを以下のコードで作成してマネージメントコンソールからInvokeして試していこうと思います。 exports.handler = function(event, context) { var exec = require(

    AWS Lambdaをいろいろ暴く - Qiita
  • AWS Lambda 関数を使用するためのベストプラクティス - AWS Lambda

    Lambda アプリケーションのベストプラクティスの詳細については、Serverless Land の「アプリケーション設計」を参照してください。AWS アカウントチームに連絡し、アーキテクチャのレビューをリクエストすることもできます。 関数コード Lambda ハンドラーをコアロジックから分離します。これにより、関数の単体テストが実行しやすくなります。Node.js では、次のようになります。 exports.myHandler = function(event, context, callback) { var foo = event.foo; var bar = event.bar; var result = MyLambdaFunction (foo, bar); callback(null, result); } function MyLambdaFunction (foo, b

    nagaitakeyuki
    nagaitakeyuki 2020/04/05
    “関数ハンドラー外で SDK クライアントとデータベース接続を初期化”
  • Node.jsユーザーなら押さえておきたいnpm-scriptsのタスク実行方法まとめ - ICS MEDIA

    ウェブ制作の現場では作業の自動化を行うことが多いです。Node.jsインストール時に付属するnpm (Node Package Manager)を使用すれば、タスク処理が実現できます。 npmとはNode.jsのモジュールを管理するためのツールであり、タスク処理にはnpmの機能のnpm-scriptsを使用します。記事はnpm-scriptsを使ったタスク実行環境が構築できることを目標に解説します。 そもそもnpm-scriptsとは何か? npm-scriptsとは、package.jsonファイルに記述可能なシェルスクリプトのエイリアスです。エイリアスとはコマンド名を別のコマンド名に置き換えることです。以下のnpm-scriptsはHello world!!を表示させるコマンドのエイリアスを作成する例です。 ▼package.jsonファイル { "scripts": { "say"

    Node.jsユーザーなら押さえておきたいnpm-scriptsのタスク実行方法まとめ - ICS MEDIA
  • AWS Lambda ( Typescript ) の Lambda Layers 活用、開発、デプロイ考察 | DevelopersIO

    AWS Lambda ( Typescript ) の Lambda Layers 活用、開発、デプロイ考察 動機が2つあります。 Lambda Function を TypeScript で実装したい 2018年の re:Invent で発表された AWS Lambda Layers を使ってみたい TypeScript で これまでサーバーレスの業務では、Lambda Function をPythonで開発することが多かったのですが、どうしても型が欲しくなりました。特に、Lambda Function は AWS SDK を使うシーンが多いため、このパラメータや戻り値の型情報をドキュメントから得るか、コード補完できるかは、大きな違いです。いくつか選択肢がありますが TypeScript を選びました。 AWS Lambda Layers ちょっと触ってみたかったというのが正直なところで

    AWS Lambda ( Typescript ) の Lambda Layers 活用、開発、デプロイ考察 | DevelopersIO
  • mochaで始めるNode.jsを使ったテスト駆動開発の環境構築 - Qiita

  • Mocha - the fun, simple, flexible JavaScript test framework

    simple, flexible, fun Mocha is a feature-rich JavaScript test framework running on Node.js and in the browser, making asynchronous testing simple and fun. Mocha tests run serially, allowing for flexible and accurate reporting, while mapping uncaught exceptions to the correct test cases. Hosted on GitHub. # SponsorsUse Mocha at Work? Ask your manager or marketing team if they’d help support our pro

  • Node.js 外部ファイルに処理を記述する方法 - Qiita

    環境 Node.js:10.0.0 Express:4.16.0 やりたいこと 処理の一部を外部ファイルに記述することで、1つのファイル内のコード数を減らしたい ※Expressの勉強中、受け付けるURLパターンが増えてきたときに、 アプリごとに処理を記述出来たらよいなと思ったのがきっかけ 外部ファイルを呼び出す側 var express = require('express'), app = express(); var sub = require('./sub'); // ① app.get('/', sub.index); // ② app.listen(3000); console.log('server starting -> localhost:3000'); ポイント ①外部ファイルを読込む 「require('外部ファイル')」の形式で読み込むことができる。 同じ階層のファ

    Node.js 外部ファイルに処理を記述する方法 - Qiita
  • [Node.js][JavaScript]正規表現を使う

  • 正規表現:文字数や、文字数の範囲を指定する表現 | WWWクリエイターズ

    正規表現で文字数を指定する方法 正規表現において、文字数を指定するには、繰り返し回数を指定する「量指定子」を用いて表現できます。 文字数を指定する 文字数が固定されている場合、一定回数の繰り返しを表現する「{N}」を使って文字数を指定できます。 // 8文字の半角数字の表現 [0-9]{8} // 4文字の半角アルファベット [a-z]{4} 上記の「{}」を利用して、文字数の範囲を指定することもできます。 文字数の範囲の指定 範囲の指定にはカンマを利用して「{N,M}」と言った記述を利用します。(2019-4-27 訂正:ご報告ありがとうございました ) // 4文字以上、9文字以下の半角数字の表現 [0-9]{4,9} // 2文字か3文字の半角アルファベット [a-zA-Z]{2,3} 「〜文字以上」の指定 同様の括弧の表現で、最大値の指定を省いて最小のみを指定すれば「〜文字以上」と

  • ユニットテストって何?って人向けのmochaとchaiの使い方 - Qiita

    自動テストって意識高そうで恰好良いですよね! 普段ブラウザ用のJavaScriptしか書かない人なのですが、テストについて調べても、難しい話から始まる記事ばかりで「アサーションって何?」とか「何で通常のファイルとは別のjsが必要なの?」みたいな気持でした。この記事では簡単な前提条件から、mocha/chaiの使い方の概要が分かる部分までを説明したいと思います。 そもそもテストとは何? ソフトウェア開発におけるテストとは、ソフトウェアの振舞いが想定した通りであるかを検証することです。ソフトウェアのサブルーチンを取り出してテストする「単体テスト/ユニットテスト」と、ソフトウェア全体の挙動をテストする「結合テスト」があります。mocha・chaiはこのうちの「単体テスト」を対象としたツールです。 じゃあ単体テストって何をすることなの? 単体テストとは、ある特定の関数を対象に、入力値と出力値が仕様

    ユニットテストって何?って人向けのmochaとchaiの使い方 - Qiita
  • Node.js テストツール - Qiita

    Node.jsテストツール Mocha ユニットテスト用に使うのじゃ・・・ テストコードを軽く記述しておいて、入力値と返り値が等しいかチェックするのじゃ・・・ it('should add two numbers', () => { var result = utils.add(33, 11); if(result !== 44){ throw new Error(`44のはずが,結果が${result}だった`); } } 上記のようにitを使用してテストを記述するのじゃ・・・ 英語で書くと "it ~"と文になるのが特徴らしいのじゃ・・・ Expect Mochaに組み合わせて使用するのじゃ・・・ なんでかというと、いちいちifとかで場合分けしてエラーを投げるのがアホらしいので、Expectを使ってより簡単に書こうというわけじゃな・・・

    Node.js テストツール - Qiita
  • npm install の --save-dev って何? - Qiita

    npm install --save-dev の --save-dev ってなんだ?と思って調べたのでメモ。 --save-dev が気になったきっかけ Vue.jsのアプリを簡単にS3にアップロードする方法として以下のサイトを参考にしました。(とても簡単で便利) gulp で S3 へファイルアップロード こちらのサイトの手順に従い、 npm install --save-dev を実行して gulp をインストールし、 gulp publish を実行したところ、、、 -bash: gulp: command not found あれ、動かない。 --save-devってなに? --save-dev はローカルインストールするためのコマンドです。 正確に言うと npm install -gがグローバルインストールのコマンドで、 -gを付けないとローカルインストールになります。 ローカル

    npm install の --save-dev って何? - Qiita
  • ヘキサゴナルアーキテクチャ(Hexagonal architecture翻訳)

    Alistair Cockburn による Hexagonal architecture の翻訳です。PoEAAで言及されていることから、2002年ごろにはすでにC2 Wikiにページがあった模様。似たようなアーキテクチャである クリーンアーキテクチャ も翻訳したので参考にしてください。 この記事は著者から許可を得て公開しています。Thanks to Alistair Cockburn! 目次 パターン: Ports and Adapters (構造に関するパターン) 意図 動機 解決法の質 構造 サンプルコード ステージ1: FIT アプリ 定数をモックデータベースとして ステージ2: UI アプリ 定数をモックデータベースとして ステージ3: (FITまたはUI) アプリ モックデータベース 応用ノート 左右の非対称性 ユースケースとアプリケーションの境界 ポートはいくつ? 既知の用

    ヘキサゴナルアーキテクチャ(Hexagonal architecture翻訳)
    nagaitakeyuki
    nagaitakeyuki 2020/04/05
    “この六角形は、6という数字が重要だから六角形なのではなく、人々が、必要に応じて、ポートとアダプターを挿入するための余分を素描に持たせ、1次元レイヤーの素描に制限されないようにするから、六角形なのだ。ヘ
  • The best ways to test your serverless applications

    By Slobodan Stojanovic Serverless is more than a cloud computing execution model. It changes the way we plan, build, and deploy apps. But it also changes the way we test our apps. Meet Alex. Alex is an ordinary JavaScript developer, focused on Node.js lately. This is Alex Over the last couple of months, his good friends, Anna and Jeff, are always talking about that serverless thingy. Even through

    The best ways to test your serverless applications
  • Serverless Applications with Node.js

  • 【レポート】サーバーレスアーキテクチャパターンとベストプラクティス #reinvent #ARC401 | DevelopersIO

    こんにちは、虎塚です。 re:Invent 2017のセッション「Serverless Architectural Patterns and Best Practices」(サーバーレスアーキテクチャパターンとベストプラクティス) の動画を視聴したのでレポートします。発表は、AWSのDrew DennisさんとMaitreya Ranganathさんでした。 セッションでは、Webアプリケーション、データレイク、ストリーム処理、運用自動化 の4分野のインフラストラクチャについて、サーバーレスで構築する場合にどのAWSサービスをどう使うか、パターン を紹介してくれます。これらの用途でサーバーレス構成を検討している方には、参考になる部分があると思います。 AWS re:Invent 2017: Serverless Architectural Patterns and Best Practi

    【レポート】サーバーレスアーキテクチャパターンとベストプラクティス #reinvent #ARC401 | DevelopersIO
  • [AWS] DynamoDBでシーケンス用テーブルを作る (Node.js) - Qiita

    DynamoDBはシーケンス発行の仕組みを持っていませんが、アトミックカウンターの使ってインクリメントすることができます。 シーケンス用テーブル作成 まずはシーケンス用のテーブルを作成します。 ここでは「sequences」という名前にします。 プライマリキーは「name」で文字列です。 テーブルができたら、項目を作成します。 name:シーケンス発行したいテーブル名 current_number:現在のシーケンス値(最初だから0)を設定 DynamoDBの準備は完了です。 シーケンス発行方法 Node.jsでの例です。 Lambdaで実行することを想定したコードです。 'use strict'; const table = 'test_table'; const AWS = require('aws-sdk'); const docClient = new AWS.DynamoDB.Do

    [AWS] DynamoDBでシーケンス用テーブルを作る (Node.js) - Qiita
    nagaitakeyuki
    nagaitakeyuki 2020/04/05
    data.Attributes の例
  • Class: AWS.DynamoDB.DocumentClient — AWS SDK for JavaScript

    We announced the upcoming end-of-support for AWS SDK for JavaScript v2. We recommend that you migrate to AWS SDK for JavaScript v3. For dates, additional details, and information on how to migrate, please refer to the linked announcement. The document client simplifies working with items in Amazon DynamoDB by abstracting away the notion of attribute values. This abstraction annotates native JavaSc

  • API Gateway から Lambda にパラメータを渡す | iret.media

    10月で入社して半年が経ちました、streampackチームのminsuです。 いきなり寒くなってきて秋を感じますね、春に東京に引っ越してきた私はまだ冬服を揃えてないのでもう少し緩やかに気温が変化して欲しかったです。 今回の記事は先日API Gateway + Lambdaを触ることがあったため、自分用にまとめたものです。 /{foo}/{bar}のようなパスパラメータやGET,POSTパラメータを渡そうとしたところ、 マッピングテンプレートを設定する方法もありますがLambdaプロキシ統合を使うとよしなに設定してくれて楽でした。 Lambda 関数の作成 Lambda関数を作成します。 関数名はparams-testとしました。 アクセス権限は用途に沿って設定してください。 API Gateway 作成 APIの作成から API を作成します、API名はURLに反映されません。 リソース

    API Gateway から Lambda にパラメータを渡す | iret.media
    nagaitakeyuki
    nagaitakeyuki 2020/04/05
    パスパラメータの設定方法
  • そのリクエストパラメータ、クエリストリングに入れますか、それともボディに入れますか - Qiita

    今回は、何らかのパラメータを扱うAPIを設計する際に、どこにパラメータを含めるべきかという問題について。 選択肢は3つあります。 1. クエリストリングに含める 2. リクエストボディに含める 3. パスに含める それぞれどんなユースケースに適しているのか例を挙げます。 1. クエリストリングに含める 何らかのリソースのフィルタリング、ソート、ページングを実現したいときに用います。 クエリ と名前がついているくらいですからね。 一覧や検索が主ですね。ゆえに GET 以外で見ることはほぼありません。 ただし、認証のような例外もあります。これは後述します。 検索

    そのリクエストパラメータ、クエリストリングに入れますか、それともボディに入れますか - Qiita
  • データベースオブジェクトの命名規約 - Qiita

    DB設計によく携わっていた頃に多くのプロジェクトで共通で規定されていた規約をまとめてみました。 ここでは オブジェクト として以下のものを対象としています。 (カラムはテーブルの一部ではありますが、別で切りだしています。) テーブル カラム インデックス 制約 1.全般 大文字を利用しない テーブル名、カラム名ともに大文字を利用しない。 (DBにより大文字小文字を区別するもの、しないものなどがあるため小文字で統一を図る) 名前 OK/NG

    データベースオブジェクトの命名規約 - Qiita
  • DynamoDB および AWS SDK の使用開始 - Amazon DynamoDB

    このセクションの実践的チュートリアルを使用することで、Amazon DynamoDBAWS SDK の使用を開始します。DynamoDB のダウンロード可能バージョン、または DynamoDB ウェブサービスのいずれかでコード例を実行できます。

  • AWS Lambda入門②(Node編)〜DynamoDBにアクセスする〜 - Qiita

    概要 AWS Lambda入門①(Node編)〜関数をデプロイして動かす〜の続編です 今回はLambdaからDynamoDBにアクセスしてデータを保存したり取得したりしてみます テーブルから全件取得、1件取得、1件登録の3つの関数を作成します DynamoDBとは AWSが提供するマネージドなデータベースサービスです RDBとは異なりkey-value形式なドキュメントデータベースです LambdaからDynamoDBにアクセスしてみる DynamoDBの設定 まずはDynamoDBを使うためにServerlesFrameworkの設定をします DynamoDBのテーブル定義の設定 DynamoDBはデータベースなのでテーブルの作成からはじめます これまでと同じようにこれもServerlessFrameworkの機能で行うことができます 今回はHelloテーブルを作ってみます server

    AWS Lambda入門②(Node編)〜DynamoDBにアクセスする〜 - Qiita