保守性の高いソフトウェアの開発に役立つ様々なTipsを書いた。 特定の言語にとらわれずあらゆる場面で役立つことを集めた。
近年の Node.js は API のサーバとしてはもちろん、Nuxt.js や Next.js といった SSR や BFF などフロントエンドのためのバックエンド言語としての人気が高まっています。 フロントエンドエンジニアがコンテキストスイッチ少なくバックエンドの整備ができることは非常に大きな利点です。 ですが、フロントエンド(ブラウザ側)とバックエンド(サーバ側)ではパフォーマンスチューニングで見るべき点が大きく違います。 しかし Node.js アプリケーションのパフォーマンスイシューの見つけ方などがまとまっている資料は少ないです。 そこで、本記事ではフロントエンドエンジニアが Node.js でパフォーマンスイシューを見つけ、改善するため自分が普段パフォーマンスチューニングを依頼されているときにみている基礎的なポイトをまとめていきます。 1. 計測ステップlink Node.js
はじめに 最近GCPでWebサービスを立ち上げたので、そのときに実施したことをメモとして残しておきます。 今回はGCEで Debian + Nginx + Railsで環境を作りました。 ドメイン取得以外は終始無料で進めるための努力をしました。 また、今回はRailsアプリケーションを作成することは目的としていませんので、そこについてはあまり触れません。 やったこと GCEでインスタンスを立ち上げる アカウント作成時に貰える無料トライアル枠とは別に、無料で利用できるリソースがあります。 Always Free と呼ばれていて、GCEの場合は以下の要件を満たすインスタンスのみ永久に無料でインスタンスを立てることができます。 リージョンをus-*1から選択する 1つのf1-micro VM インスタンス 30GB以内 の永続ストレージ ※無料対象リージョンはus-*1のみというご指摘を受けまし
私はコミットログの書き方に悩む英語の苦手な人間である。実際、似たような人は世の中に結構いるようで、頻出単語を集計したりまとめたものは既にあって役に立つのだけれど、これらはあくまで単語の話であり、具体的な文を構成する過程でやっぱり困る部分がかなりあった。 要するに、どういう時にどういう文が使われているのか、ということを示した例文集が欲しいのである。ググると他にも「例文集があればいいのに」みたいな声はあるくせして、しかし誰も作ろうとしない。何なんだお前ら。それじゃ私が楽できないじゃないか。 仕方なく自分でまとめたので、増田に垂れ流しておく。 はじめにここで挙げているコミットログは全て実際のコミットログからの転載である。当然ながら各コミットログの著作権はそれぞれの書き手にある。いずれも各英文でググれば出てくるし、フェアユースの範囲なら許してくれるだろうと考え名前とプロジェクト名は割愛したが、ここ
ものすごーく分かりやすく説明するために数字はかなり極端にした。 普通の商売ではS社の5万のパソコンがあるN社の5万のパソコンがあるどっちも仕入額は4万で、1台売れると量販店のC社は1万儲かる。 土日でパソコンが50台売れるとすると50万儲かる。 この儲け方を純利益と呼ぶことにする(本当は全然違うけど、ここではそうします)。 この50万円を目指すだけだったら、 S社が25台売れてN社が25台売れても良いし、 S社が49台売れてN社が1台売れても同じ。 こんなことやってたら量販店は儲からないそしてなによりメーカーも嬉しくない。←ここが重要。 いつまで経ってもシェア拡大ができないからだ。 インセンティブを出すメーカーが登場するそこでS社が「土日の2日間でうちのパソコンを51台売ってくれたら追加で200万円C社さんに支払います」という。 メーカー(この場合はS社)が一番欲しいのはシェアであり、S社
今年からAWS(Amazon Web Services)クラウドコンサルタントとして、中小規模のAWSデプロイの相談を受けています。その多くは典型的なWebアプリケーションです。ここで、ぜひ避けたい5つのよくある間違いを紹介します。 インフラストラクチャを手動で管理する。 Auto Scaling グループを使わない。 CloudWatchのメトリクスを分析しない。 Trusted Advisorを無視する。 仮想マシンを活用しない。 典型的なWebアプリケーションにおける間違いを防ぎたい人は、次に進んでください。 典型的なWebアプリケーション 典型的なWebアプリケーションは最低限次の要素で構成されているものを指します。 ロードバランサ スケーラブルなWebバックエンド データベース そしてこのアプリケーションは、次の図のような仕組みを持っています。 注釈:(左から)DNS、CDN、静
2018/5/10 追記: GitHub が公式にカスタムドメインの HTTPS での配信をサポートしたため、下記の手順を利用する必要がなくなりました 詳しくは Custom domains on GitHub Pages gain support for HTTPS | The GitHub Blog を参照してください。 GitHub Pages では *.github.io のドメインが割り当てられて HTTPS も有効になっていますが、カスタムドメインを使うと HTTPS を使うことができません。ここでは CloudFlare を使ってカスタムドメインの GitHub Pages で HTTPS を使う方法を紹介します。 GitHub Pages にサイトを構築する まず GitHub Pages でサイトを構築しないことには始まりません。今回はカスタムドメインで HTTPS を使
こんにちは、@nazomikanです (この記事はNode.js Advent Calendar 2013の10日めの記事です) nodeでテンプレートエンジンといえばjade その一方で公式ドキュメントで書かれていることだけではだいたい痒い所に手が届かないのでissueから拾い集めたノウハウとか将来的な話とかを書きます 属性の存在が条件によって分かれるケースの書き方 urlが存在するときdata-url属性をつける //truthy: <p data-url="xxx"> //falsy: <p> in jade: p(data-url=(url ? url : false)) 属性の値が条件によって分かれるケースの書き方 boolがtruthyの時はclass="is-show"を、そうでない時はclass="is-hide"をつける //truthy: <p class="is-sh
今開発中のPlayer!のログイン・登録画面で、こんな進捗表示をしていますが、これ実はフェイクだったりします( ´・‿・`) (Qiitaの画像サイズ制限が厳しくて粗いです。キレイなものは実際にアプリダウンロードしてご覧下さい。) 経緯 元々、この画面はこういう進捗表示では無く、単にインジケーターがクルクルするだけで、進捗状態が分からないものでした。 特にネットワークが悪いところだと、バグって固まってしまったのでは?とユーザーを不安にさせるようで、たまにそういう声を聞くことがありました。 登録フローは大事なところなので、そういうところでこれが原因で離脱してしまうと残念なので、改善が必要でした。 そこで、ネットワーク処理にもたつきつつもちゃんと正常に処理をしているということを示すために、進捗を表示することにしました。 ただ、例えば大きな画像などメディアファイルダウンロードなどならともかく、こ
4月から一人暮らしを始めた人も多いと思うが、新生活も慣れてきただろうか。 実家での生活では、勝手に食事が出てきて、風呂も沸いて、服は畳まれていたのを、すべて自分でやらなくてはいけなくなり苦労している人もいるだろう。 さて、4月も終わりに近づき、汗をかくようになる季節がやってきた。 電車や街などで、雑巾のような臭いを放っている人に遭遇したことはないだろうか? あれは、体臭などでは無く間違った洗濯の方法によって臭くなった服の臭いなのである。 もし君があの雑巾臭を放ちながら学校や会社に行けば、君のアダ名は雑巾君になることは間違いない。(女性ならモップちゃん) しかし、一人暮らしを始めたばかりの人は、あまり洗濯の手順についてわからないと思う。 そこで、服などが雑巾の臭いにならないための洗濯方法を伝授する。 臭くなる仕組みまずはなぜ臭くなるのか説明する。 結論からいうと、モラクセラ菌という細菌が原因
Join 150K+ monthly readers. In-depth articles on Node.js, Microservices, Kubernetes and DevOps. We get asked about Node.js best practices, tips all the time – so this post intends to clean things up, and summarizes the basics of how we write Node.jsNode.js is an asynchronous event-driven JavaScript runtime and is the most effective when building scalable network applications. Node.js is free of lo
Amazon S3のバケット(Bucket)に、アクセス元IPアドレスによるアクセスコントロールをかけられる、ってご存知でしたか? この記事では、AWSやS3のリクエスト認証の概要と、それを踏まえた「アクセス元IPアドレスによるバケットへのアクセスコントロール」の方法、その応用例を紹介します。 バケットに入れるオブジェクトの機密性によっては、デフォルトの 「認証情報をつける」以外の方法でアクセスコントロールができると便利です。 例えば、機密でもなんでもないファイルや静的サイトを、ロケーション的に同じオフィスにいる人にゆるく共有したい、 くらいの用途であれば、アクセス元IPアドレスが使えることがあります。 実際、弊社でも、このエンジニアブログを公開前にテスト・レビューするために、 アクセス元IPによる読み取り制限をかけたバケットにデプロイしています。 なお、情報セキュリティに関わることなので
サーバーとの定期的な疎通確認を setInterval で実装してたら、いつの間にか処理が停止してたという話。 setIntervalの中でエラーが飛ぶとタイマーが停止する。 ΩΩΩ process.on('uncaughtException', function (err) { console.error(err.stack); }); setInterval(function () { JSON.parse('{}}}'); // throw }, 1000); setInterval(function () { console.log('xxx'); }, 1000); $ node a.js SyntaxError: Unexpected token } at Object.parse (native) at null.<anonymous> (/home/ajido/a.js:6
こんにちは。5月から自転車通勤を始めたライターのあだちです。 とても気持ちいいですよ! ところで、皆さんは「話がわかりやすい」と言われたことはありますか? 会議然り、報告然り、「話がわかりやすい」ということには、さまざまなメリットがあります。 一方、「ものすごく話のわかりにくい人」がいるのも事実です。何を言っているのかわからなかったり、何度聞き返しても要領が得られなかったりと、コミュニケーションの難しさを痛感してしまうようなときもあります。 この二者の差は一体どのようなところにあるのでしょう。そこで今回は、かつて私がコンサルティング会社で働いているときに教わった、「話のわかりやすい人と、わかりにくい人の違い」を8つにまとめてご紹介したいと思います。 【こちらもおすすめ】 ☞ プレゼンが苦手な人でも人前で話すのが上手になる6つのコツ 「話がわかりやすい人」と「わかりにくい人」の違い8か条 1
Share: Error Handling in Node.js Error handling is a pain, and it’s easy to get by for a long time in Node.js without dealing with errors correctly. However, building robust Node.js applications requires dealing with errors properly, and it’s not hard to learn how. If you’re really impatient, skip down to the “Summary” section for a tl;dr. This document will answer several questions that programme
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く