Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?

はじめに コードリーディングの重要性はそこらじゅうで語り尽くされてる感があります。 僕も地道にコードリーディングをしているのですが、いざやろうとするとハードルが高いことがままあります。そこで、個人的にコードリーディングがはかどったと感じたテクニックをまとめておこうと思います。 筆者環境の前提 ソースコードのバージョン管理は Git を使っている 開発 PC は Mac を使っている エディタは Vim を使っている ghq + peco で読みたいリポジトリに気軽にたどり着く 読みたいソースコードのリポジトリが増えてくると、ローカル環境でのリポジトリをどのディレクトリに置くか、またいざ読もうとするときにディレクトリを辿っていくのが煩雑になってきます。 そんな時、読みたいリポジトリに気軽にたどり着くことができれば、読むハードルが下がります。 僕は peco と ghq の組み合わせを使ってい
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに こちら、そろそろ知っておきたいHTTP/2の話という良くまとめられた記事を見ていて、色々と苦い記憶がよみがえってきたのですが、そういうHTTP/2仕様に困った系記事があまり見当たらなかったのでまとめました。 HTTP/2とは 機能 現在支流のHTTP 1/1よりもより効率よく、セキュアな通信をもらたす為に色々なアップグレードを施したHTTPの規格です。 特徴をざっというと、こんな感じ。 ストリーム、メッセージ、フレームという新しいデータの交換方式を利用することによる、実TCPセッション数削減 サーバー プッシュ機能により、複数
はじめに 最近HTTPについていろいろと勉強する機会があったので、これを機にHTTP/2についてまとめてみました。 HTTP/2は標準化から3年が経過し、意識こそしていないものの普通に使われるようになってきました。なんとなくサーバーをHTTP/2使うように設定したけど、なにが良くなったのかイマイチ知らないというような人が読んで、理解できる記事を目指してみたつもりです。 HTTP/2がもたらしてくれるものとその仕組みをなるべく簡潔に噛み砕いて書いてみました。そのため、この道の専門の方からすると、不十分な表現や不適切な表現、或いは私の誤った理解などがあるかもしれません。 そのような箇所を見つけたられた際には、ぜひコメントなどから指摘いただけると幸いです。 HTTPとは HTTPは皆さんもよくご存知であろうプロトコルの名称です。正式な名前はHyper Text Transfer Protoclと
使われてないCSSであればツールで見つけられますが、そうではなく、"実質的に"使われてないCSSを見つけるにはどうすればよいでしょうか。 という問題にスマートな解決方法を記載している記事を見つけたので訳してみます。 以下はFinding Dead CSSの日本語訳です。 Finding Dead CSS 私が今週開いていたパフォーマンスワークショップで、Webサイト上で死んだCSSを見つけるテクニックが頭をよぎりました。 今、故意に『未使用CSS ( unused CSS ) 』ではなく『死んだCSS ( dead CSS ) 』というフレーズを使いましたが、これは以下のようなシナリオを想定して使いました。 数十人規模の多数のチームが開発している、数十万行のコードを含む、長期にわたって運用されている大規模なプロジェクトがあるとしましょう。 そこには既に使われていないCSSがあるだけではなく
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? 主に非Web系のバックエンド開発者(C/C++, Java, Python等を使用)がReactとVueをそれぞれ簡単に触れて、感じたメリット、思ったことなどをまとめています。 色々と書いてますが、どちらも完成度の高いライブラリ/フレームワークですね。 結論 JavaScript等にあまり深入りせずにWebアプリを簡単に書きたい、あるいは効率的に書くことが目的であればVueの方がお勧めです。しかし開発者としてスキルや設計などについて中長期的にレベルアップを図りたいのであれば、Reactから学ぶことをお勧めします。 何故かと言うと、Rea
Introduction Rubyのラムダ式でアロー演算子を覚えて使うようになりました.そんなある日,Groovyに手を出したのですが,アロー演算子によるメソッド定義の書式がRubyと異なるので「?」となって,色々な言語のアロー演算子の書式について調べてみました. 調べてみると,「ラムダ式」「アロー演算子」「アロー関数」「クロージャ」など呼び方も仕組みもさまざまであり,同じものとして扱って良いのか悩みましたが,せっかく調べたので公開します.この投稿内容では,『「=>」か「->」を使ってメソッド(のようなもの)を定義して変数に代入し,(メソッドのように)実行できる』ものを対象としています. 他にもアロー演算子によりメソッド(のようなもの)を記述できる言語はありますが,短時間で調べたので抜けがあります.ご指摘いただければ徐々に改訂していきたいと思っています.できればサンプルプログラムとともにご
webpack とは webpack は WebApp に必要なリソースの依存関係を解決し、アセット(配布物)を生成するビルドツール(要するにコンパイラ)です。JavaScript だけでなく、CoffeeScript や TypeScript、CSS 系、画像ファイルなどを扱うことができます。 WebApp のビルドツールは Grunt や Gulp が有名です。これらは基本的に、ビルド手順をタスクという形で自ら定義する必要があり、フロントエンド開発に馴染みのない開発者にとっては敷居が高いものでした(少なくとも、自分はそうでした)。 webpack を使えば、Grunt も Gulp も必要ありません!覚えるべきことはほとんどありません。(必要なら)簡単な設定ファイルを書いて webpack コマンドを実行するだけです。 以下では基本的な使い方を見ていきます。 ※もちろん Grunt/G
Help us understand the problem. What is going on with this article? 2018/07/05 追記 JavaScript と漸進的型付について詳しい mizchi さんが記事を書いたので、併せて読むと良さそうです。 漸進的型付け言語の時代に必要なもの 前置き RubyKaigi2018 の発表で型の導入の検討についての話がいくつかあったものの、 Matz 自身は型アノテーションに否定的であるという発言をしているとのことを受けて、自分の意見の表明として書いている。 筆者は Ruby に育てられて Ruby は好きであるが、業務経験は主に JavaScript(TypeScript) や Python(Type Hinting) が多く、漸進的型付けによるコードの健全化を経験した上で、型付きの方が好きであるという立場である。 なお
(この記事はここからの転載です) 課題 日本語の長文をgitで管理していると、ほんのちょっとの変更でもdiffでは行丸ごと変更されたことになり、変更点がよくわからないことがある。 二泊三日で小説を書く過激なイベントNovelJam 2018参加作品である高橋文樹氏の「オートマティック クリミナル」は、GitHubを使って執筆されている。小説では、git diffの欠点がはっきりでる。高橋氏は参加レポートで、こう書いている。 あと、今回得た重要な知見なのですが、Githubではある程度以上テキストが長くなってくると、数文字の調整で全部差分として判定されたりするので、小説には向いてないかなーと思いました。小説は行の移動とかがよく発生するので、GithubじゃなくてGitとの相性かもしれません。 普通にdiffを取る 確かに、普通にdiffをとるとその通り。コマンドラインで「オートマティック ク
はじめに 技術書典4にて「DNSをはじめよう」が販売され、400部あったはずの紙の本の在庫がなくなり、その後まもなくしてダウンロード用のカードも溶けるようになくなるという現象が発生しました。 自分も午後に会場入りして買いに行ったら「ダウンロード版も売り切れた」と言われショックを受けるものの、ダウンロード版については追加生産をしているとの事なので、ほどなくして再度ブースを伺ったら無事に買う事ができました。 尚、今現在もBOOTHにてPDF版が販売されています。 内容については「さぁDNS!」…の前にドメイン名の取得から丁寧に書いており、ドメイン名の取得からDNS設定の流れを体感するにはちょうどいい本ではないかなと。 なお、ドメインを利用する為にはレジストラやどこかのリセラー経由で登録料を払いドメイン名を登録してもらう必要があり登録手順も様々であるなか、お名前.comからの取得を例にして説明し
参考文献 オープンソースソフトウェアとは - Weblio辞書 プロプライエタリソフトウェアとは - Weblio辞書 派生プログラムとは - Weblio辞書 フリーウェア - Wikipedia ソフトの配布とライセンス - 可知豊 OSSをライセンス的に正しく使う/プロプラだけの製品とするための11のチェックポイント - NEC GitHubを利用する際に注意したいOSSライセンスのポイントとは - Think IT オープンソースとは - 日本ユニシス 著作権審議会マルチメディア小委員会ワーキング・グループ中間まとめ - 公益社団法人著作権情報センター CRIC 企業技術者のためのOSSライセンス入門(1):訴訟が増えている!? OSSライセンス違反 - @IT 2.「オープンソースの定義」を理解する OSSを規定する上で重要となる「オープンソースの定義」を知っておくと、主要ライセ
仮想DOMとか、react.js とか最近聞くようになりました。フロントエンドに関わるものとして、UIパフォーマンス向上を志すなら、少し触って明日の糧にしようと思っていろいろ調べていたら、そもそもブラウザのレンダリングとは何かもよくわかっていなかったので出直そうと思った、というごくつまらない話です。 ブラウザのレンダリングとは DOMの読み込み、リサイズ、イベント発火で再描画、くらいふわっとわかったフリになっていた。 http://www.yoheim.net/blog.php?q=20140703 下のURLをわかりやすく解説 http://www.html5rocks.com/ja/tutorials/internals/howbrowserswork/ ごつい http://tokkono.cute.coocan.jp/blog/slow/index.php/web-technolo
なのでこの時期より古いタイミングで書かれた記事は 旧SeleniumIDEについて書かれています。 ちなみに Ver 1.1.0 から Ver 3.0.0に上がっていますが、FireFoxの公式に出すには旧SeleniumIDEである バージョン2.9.1よりも上にする必要があったからだそうです 公式のリリースノート https://github.com/SeleniumHQ/selenium-ide/releases 動作環境 旧SeleniumIDEは FireFox Add-on でしたので、 Firefoxでしか動きませんでした 新SeleniumIDEは ChromaとFireFoxどちらの環境でも動くようになりました。 インストールはどちらも、公式からになります Chrom https://chrome.google.com/webstore/detail/selenium-
※クロージャと変数のスコープ(追記)を追記しました。 ※コメント欄で環境という用語について議論がありましたが、そもそも環境は専門用語として存在します。詳しくは環境を持つというイメージに追記しました。 使い古された話題ではありますけど、わかりやすく説明できそうな気がしたので書いてみたいと思います。 先に方針だけ伝えておくと、クラスとモジュールと関数は、変数のスコープを切ることができるという共通の性質を持っている、という切り口からクロージャについて説明していきたいと思います。 これだけ読んで何となく先が予想できてしまった人は読まなくても大丈夫かと思います。 それでも読んでくださるという方は、助言なり意見なりをくださるととても嬉しいです。 実行環境 言語はJavaScript(ES2015 or later)を使いますけど、別に知らなくてもなんとかなるんじゃないでしょうか。 何か他の言語をやって
【翻訳】私がコーディングで垂直方向にそろえるインデントをとる理由という記事を読んで、自分も早速コードを垂直に揃えるようにし始めたが自動でやるのは非生産的過ぎるので、Emacsで簡単に行える方法を調べました。 M-x align-regexp を使う 以下のようなコードを垂直に揃えたいとします。 json.result ~ image.updated_atまでを範囲選択します。 次にM-x align-regexp コマンドを実行して、どの文字を基準にして縦を揃えるかを決めます。今回の場合はspaceなのでspaceを押して、Enterを押します。 すると綺麗に縦に並びます。 これで、楽して綺麗なコードの出来上がり!
ほぼすべてのブラウザやNode.jsでサポートされている数値をフォーマットするAPI「Intl.NumberFormat」を紹介する記事です。 JavaScriptで数値をカンマ区切りにしたいときにGoogleで検索してみると、正規表現を使っていたり、ループで回して3桁ごとにカンマ付ける実装を紹介する記事を多く見つけました。 しかし、それらは古い記事ということもあり、2018年現在は数値のフォーマットを実装する必要はありません。EcmaScriptで仕様策定されておりほとんどのブラウザやNode.jsで使える関数があるので紹介します。 今回紹介するコードの実行結果はすべてChromeでの結果になります。 TL;DR 「Intl.NumberFormat.prototype.format」を使います。 まだChromeとFirefoxだけですが、「Intl.NumberFormat.prot
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く