Updated at: 2017-09-17
References of Programming / Technology
Wikipedia
読み物 / 特集
- 技術的負債
- Radium Software
- プログラミング言語人気TOP10の簡易解説
- 本質が分かるJavaScript FAQ
- Clojureの作者が作ったデータベースサービス Datomic.com が凄い
- 「JavaScriptの配列は参照渡し(call-by-reference)」は間違い
- これからRubyを始める人たちへ
- 因果律を否定するバグ
- よく Flash とか AIR とかの記事あげてるブログ
- 百年の言語
- 開発抽象化レイヤ
- ウェブ系エンジニアがおさえておきたい技術ブログまとめ
- プログラマーは文系の仕事か、理系の仕事か - 愛と勇気と缶ビール
- Yakst - プログラミング初心者に言ってはいけないこと
- プログラマ能力指標表 | コンピュータサイエンス | POSTD
- Webサービス - プログラマ向けニュースキュレーションサービスを作ってみた話 - Qiita
- The Little Printf : 「我々はなぜプログラミングをするのか?」を追う寓話 | キャリア・働き方 | POSTD
- ソフトウェア例え話、格言、小噺 - from scratch
- プログラマだけど異世界の開発会社に転生した - megamouthの葬列
- もう見た?GitHub最新人気リポジトリTop25総覧【2017年9月版】 - エンジニアHub|若手Webエンジニアのキャリアを考える!
- 40 Key Computer Science Concepts Explained In Layman’s Terms
- プログラマ必読感
- mr-mig/every-programmer-should-know: A collection of (mostly) technical things every software developer should know
- LEARN REGEX THE EASY WAY
- kdn251/interviews: Everything you need to know to get the job.
- 採用面接向けのアルゴリズム知識まとめ
- 「元グーグル」という肩書はいつか外したい――及川卓也さんが考える、日本の「残念なIT」からの脱出法 | HRナビ by リクルート
- Thank you for making 10 years of GitHub possible
- sdmg15/Best-websites-a-programmer-should-visit: Some useful websites for programmers.
- プログラマ向け Web サイト集
eBook
Coding
- ブール値を返す関数の命名規則
- 良いネーミングをするために覚えておきたい英語のルール5つ
- else句を禁止する
- 読みやすいコードとは何か
- パターン指向リファクタリング
- JSDoc の書き方
- Refactoring (カタログあり)
- (命名規則とか)Introduction to Coding Guidelines for Cocoa
- コードのネストを深くするな | anopara
- メソッド名をシンプルにするために、知っておくと便利な英語のprefixとsuffix - Ph by codic team
- Code Review Best Practices
- 良いコードとは
- ソシャゲエンジニアの自分がコードレビュー時に重視する箇所32選 - Qiita
- CallbackとListenerとObserverの違い - 前人未踏の領域へ
- プログラミングでよく使う英単語のまとめ【随時更新】 - Qiita
Development / Practice
- 小悪魔女子大生のサーバエンジニア日記
- crontabの書き方
- iPhoneで利用できるフォント一覧
- 高速で無駄のないソフトウェア開発を実現するための7つのポイント
- ゲームプログラミングでテストを書かない理由
- Test Driven Development with Perl
- 何かのときにすっと出したい、プログラミングに関する法則・原則一覧 - Qiita
- Abstracting key and game controller inputs in Adobe AIR – Zeh Fernando
- 開発速度と品質のトレードオフの判断基準の合意 - Hatena Developer Blog
- Big Sky :: Rob Pike のプログラミングに関する5つの掟
- モノリシックなバージョン管理の利点 | プログラミング | POSTD
- 初心者プログラマが犯しがちな過ち25選
Architecture / System
- 近代的タスクシステムの構築
- 【翻訳】2015年に向けたJavaScriptアプリケーションアーキテクチャ PART 1 | POSTD
- コンポーネント間のメッセージングについての言及がある
- 2015年に備えて知っておきたいリアクティブアーキテクチャの潮流 - Qiita
- これからの Microservices
- プログラミング :: 高速なプログラムを書く為に :: メモリ
- CPU とキャッシュのはなし - graphics.hatenablog.com
- 本当は恐ろしい分散システムの話
Entity-Component System / Data-Oriented
- エンティティ・コンポーネント・システム - Wikipedia
- 階層構造を進化させる
- Avoiding the Blob Antipattern: A Pragmatic Approach to Entity Composition - Tuts+ Game Development Tutorial
- データ指向設計 (または何故OOPで自爆してしまうのか) - 雑記帳
- Games And Entity Systems | Shaun Smith
- ゲーム パフォーマンス: データ指向プログラミング - Google Developer Japan Blog
- Component basedgameenginedesign
- Unity: Now You're Thinking With Components - Tuts+ Game Development Article
- Entity Systems in game development | rokatainment
- Overview of Entity Component System (ECS) variations with pseudo-code
- Entity Component System framework, redux | IceFall Games
- Managing game object hierarchy in an entity component system | IceFall Games
- より良いプログラムを書くための究極の奇策 – 「Data first, not code first」 | プログラミング | POSTD
- Gamasutra: Megan Fox's Blog - Game Engines 101: The Entity/Component Model
- What is the role of "systems" in a component-based entity architecture? - Game Development Stack Exchange
- From Game Objects to Entities | John Payne's Code Blog
- GameplayKit Programming Guide: Entities and Components
- Entity Systems — Entity Systems 2014.02.22 documentation
- データ指向設計 | Cygames Engineers' Blog
ECS なフレームワーク関連
- Ashフレームワーク説明記事の勝手訳・その1 : ぐりぺん
- Entity/Component Game Design That Works: The Artemis Framework | Piemaster.net
- Introduction to Entity Systems · junkdog/artemis-odb Wiki
- ebs - A component-based entity system framework — Python Utilities 0.0.0 documentation
- Entities and Components | Goo Learn
Paradigm / Convention / Languages
- RESTfulなWebサイトと拡張子を含むURLについて
- 2014年、オブジェクト指向vs関数型プログラミングの壮絶な宗教戦争は終結 OO陣営最後の牙城DOMというWeb標準のUIを破壊した巨砲Facebook-React - Qiita
- 雑把の UI アーキテクチャー史(MVCからMVVMへ) | プログラマーズ雑記帳
- 【翻訳】あなたが求めていたリアクティブプログラミング入門 - ninjinkun's diary
- 【翻訳】ReactをjQueryの数行に要約する | POSTD
- elab » Webフロントエンドでリアクティブプログラミング
- Less is more:プログラミング言語設計の進歩史 | POSTD
- 「なぜ関数プログラミングは重要か」を要約してみた(その1) - Okapies' Archive
- 「関数型プログラミングって何?」日本語訳 - Okapies' Archive
- 「プログラミングの常識」を時々見直す必要性について|Rui Ueyama|note
- HDD が SSD になったり、CPU よりメモリの方がずっと遅かったり
- Elixir から Elm の流れで、いよいよオブジェクト指向に対する懐疑心が無視できないレベルに達した2017年冬。 – ゆびてく
規格 / ガイドライン
Framework / SDK
- Electron(旧atom shell)基礎+入門
- Flambe
- RazorFlow - HTML5 Dashboard Framework
- KPI とかグラフとか表示するのによさそう
Newral Network
Library
Programming Technique
Debugging
- LLDB
Error Handling
Testing / Unit Test
- テストダブル - Wikipedia
- モック / スタブ / フェイク / ダミー / スパイ
Profiling
Network / 通信
- ネットワークの状況を確認するコマンド色々 | Developers.IO
- TCPを(少しは)理解しておくべきその理由 | コンピュータサイエンス | POSTD
- 遅延ACKの話
- ネットワークでなぜ遅延が生じるのか
- ネットワークゲームにおけるTCPとUDPの使い分け
- モノビット 中嶋謙互さんのスライド
- 今なぜHTTPS化なのか?インターネットの信頼性のために、技術者が知っておきたいTLSの歴史と技術背景 - エンジニアHub|若手Webエンジニアのキャリアを考える!
- Wi-Fi再入門〜見えない電波を知識で見抜く // Speaker Deck
Security / Cheat 対策
- ブラウザゲーム時代のチートとセキュリティ
- スマートフォンゲームのチート事情
- スマホネイティブゲームのチート対策 - nao-bambooの日記
- チート対策について | 株式会社オーツー|スタッフブログ
- エンジニアなら知っておきたい、絵で見てわかるセキュア通信の基本 - Qiita
- minimaxir/big-list-of-naughty-strings: The Big List of Naughty Strings is a list of strings which have a high probability of causing issues when used as user-input data.
- Gitのhashが衝突するのはどれくらいの確率か : mwSoft blog
- 誕生日攻撃 - Wikipedia
- 以下にも SHA-1 ハッシュ衝突可能性についての言及がある:
- 海外へのゲーム配信で注意すること - Qiita
- 安全なウェブサイトの作り方:IPA 独立行政法人 情報処理推進機構
- スマホゲームセキュリティ - IL2CPPは本当に安全なの?
- セキュリティエンジニアからみたUnityのこと : LINE Engineering Blog
- 【CEDEC 2017】Wright Flyer Studiosの不正アクセスによる影響とその対処法…実際にBANシステムを作ってみて苦労した点とは | Social Game Info
- 文字列(ハッシュ)の安全な比較方法 – hash_equals | yohgaki's blog
- タイミング攻撃への対策
インフラ / Server Architecture
Web Architecture / Web Programming
- 2015年Webサーバアーキテクチャ序論 - ゆううきブログ
- Webシステムにおけるデータベース接続アーキテクチャ概論 - ゆううきブログ
- Web開発の未来 – React、FalcorおよびES6 | プログラミング | POSTD
- Rails - 中規模Web開発のためのMVC分割とレイヤアーキテクチャ - Qiita
- Scalaコードでわかった気になるDDD | GREE Engineers' Blog
- コレオグラフィ vs オーケストレーション | フィオラノ ソフトウェア ジャパン ブログ
- マイクロサービスアーキテクチャにおけるオーケストレーションとコレオグラフィ - Qiita
- Serverless Architecture // Speaker Deck
- Scala and Play for game servers // Speaker Deck
- Kishi さんのスライド
- Web サービスにパスワードは必要ない - Frasco
- 伊藤直也氏が語る、サーバーレスアーキテクチャの性質を解剖する(前編)。QCon Tokyo 2016 - Publickey
- 真のサーバレスアーキテクトとサーバレス時代のゲーム開発・運用 // Speaker Deck
- RESTful API のおさらい - onk.ninja
- マイクロサービスはもう十分 – プログラミング
- 2.4. アプリケーションのレイヤ化 — TERASOLUNA Global Framework Development Guideline 1.0.0.publicreview documentation
Frontend
Web Framework
Rails
Server-Client / オンラインゲーム開発 / リアルタイム通信
- Nianticの求人から推測する『Pokémon GO(ポケモンGO)』のサーバ構成 - Qiita
- 【CEDEC2017】人気タイトル『アナザーエデン』になぜ通信待ちストレスがないか。その理由は非同期オートセーブにあった | Social Game Info
- わかる / でもガチャがどれだけセキュアか怪しい / あと障害調査がやりづらそう
- G-MODE Engineers' Blog — 通信が途切れてしまった場合の対応について
- トランザクション ID の話
- アイテム課金を実装する - Smartphone App - Mobage Developers Documentation Center
- マイクロトランザクション(ゲーム内購入)実装ガイド (Steamworks ドキュメント)
- ドリコムを支える中間ポイントシステム - くりにっき
リアルタイム通信
Database
- ACID 特性
- トランザクション分離レベル - Wikipedia
- 開発者はインデックスを知る必要がある
- リレーショナルデータベースの仕組み (1/3) | コンピュータサイエンス | POSTD
- カーディナリティについてまとめてみた - Qiita
- Webサービスにおける キャッシュ戦略 // Speaker Deck
- RDBアンチパターン // Speaker Deck
- N+1問題 / Eager Loading とは - Rails Webook
- 【決定版】RDBMSとNoSQLにみるDB近現代史 〜データベースに破壊的イノベーションは二度起きるか?〜 - エンジニアHub|若手Webエンジニアのキャリアを考える!
- SQLアンチパターン - 開発者を待ち受ける25の落とし穴 (拡大版)
- なぜ、SQLは重たくなるのか?──『SQLパフォーマンス詳解』の翻訳者が教える原因と対策 - エンジニアHub|若手Webエンジニアのキャリアを考える!
MySQL
- ヤフー社内でやってるMySQLチューニングセミナー大公開
- MySQL with InnoDB のインデックスの基礎知識とありがちな間違い - クックパッド開発者ブログ
- MySQLのIndexをはるコツ - Qiita
- Top 20+ MySQL Best Practices
Google App Engine / Datastore
- Datastoreの仕組み 〜Consistencyについて〜 - apps-gcp
- Google Cloud Platform Japan 公式ブログ: Google Cloud Datastoreでのデータ整理の考え方
- GAE/Go Ancestorクエリについて - The Round
分散システム
AWS
サーバ運用 / ロギング / 分析
- 秒間数万のログをいい感じにするアーキテクチャ // Speaker Deck
- AWS最先進ユーザーNetflix - 「サル軍団」にシステム障害を起こさせる、Netflixの驚異的なトラブル撲滅法:ITpro
i18n (Internationalization)
情報科学
設計思想
- 手続き - 構造化 - オブジェクト指向 - 宣言的記述
- Composition over inheritance
- 伽藍とバザール
- 【翻訳】クラスの「継承」より「合成」がよい理由とは?ゲーム開発におけるコードのフレキシビリティと可読性の向上
- ソフトウェア設計とは何か 〜 設計にはプログラミング経験が必要か否か
- Rule of thee – 汎用化のタイミング – Morizotter Blog
Design Pattern
- やっと理解できた!JSオブジェクト指向プログラミング再入門
- デザインパターンを読み解く
- Pythonによるデザインパターン
- デザインパターンのメタパターン
- ユニットテストのアンチパターン
- Inversion of Control コンテナと Dependency Injection パターン
- デザインパターン紹介 (GoF 以外)
- kamranahmedse/design-patterns-for-humans: Design Patterns for Humans™ - An ultra-simplified explanation
デザインパターン再考
- Design Patterns 15 Years Later: An Interview with Erich Gamma, Richard Helm, and Ralph Johnson | Design Patterns 15 Years Later: An Interview with Erich Gamma, Richard Helm, and Ralph Johnson | InformIT
- 再考: GoF デザインパターン
- ふと GoF のデザインパターンを再考しておく | Moonmile Solutions Blog
- シングルトンについて思うこと
Algorithm
- データマイニングで使われるトップ10アルゴリズム
- 衝突判定
- Chromeのなかのコンピュータ・サイエンス - Google Slides
- GC の話
- 文字列アルゴリズムの学びかた - Hatena Developer Blog
- Google Chromeが採用した、擬似乱数生成アルゴリズム「xorshift」の数理 – びりあるの研究ノート
- 効率的にゲームを更新する | コンピュータサイエンス | POSTD
- 【Unity】ソートアルゴリズム12種を可視化してみた - Qiita
- 初期化配列の実装 - Qiita
- 「ソート」を極める! 〜 なぜソートを学ぶのか 〜 - Qiita
- ビット演算 (bit 演算) の使い方を総特集! 〜 マスクビットから bit DP まで 〜 - Qiita
- ブロックチェーンを10分で理解するための資料 - メルミライ - 未来を見るメディア
圧縮
人工知能 / AI / 機械学習
- 人工知能が急に進化し始めた! | TheWave
- Is Google a Step Away from Developing a Computer that Can "Program Itself"? - Evolution News & Views
- 二次元画像を拡大したいと思ったことはありませんか? - デー
- ゲームの中の人工知能
- 21世紀に“洋ゲー”でゲームAIが遂げた驚異の進化史。その「敗戦」から日本のゲーム業界が再び立ち上がるには?【AI開発者・三宅陽一郎氏インタビュー】
- Deep Learning
- Goodfellow著「Deep Learning」の日本語翻訳
- ディープラーニングの限界 | POSTD
Git
個人的な勉強メモは こちら
- Webサイトをgithubで管理してpush時に自動的に同期する方法
- やる夫で学ぶ gitcore-tutorial
- Pro Git
- Git merge の基本
- git - 簡単ガイド
- GitHub人気レポジトリランキング Best50 全解説
- 提言: コミットメッセージの一行目には要求仕様を書け
- 巨大なリポジトリを Git で上手く扱う方法
- Yakst - より良いプルリクエストのための10のヒント
- 「Git補完をしらない」「git statusを1日100回は使う」そんなあなたに朗報【git-completionとgit-prompt】 - Qiita
- 巨大なリポジトリを Git で上手く扱う方法 - Atlassian Japan
- GitHub で使われる慣習的なリポジトリについてまとめてみた - Qiita
- GIT Commit Good Practice - OpenStack
- 英語コミットコメントに使えるオシャレフレーズ集
- git commit時のコメントを英語で書くための最初の一歩
- Changelogのための英文テンプレート集
- ネイティブと働いて分かった英語コミットメッセージの頻出動詞10つ - Qiita
- Git - 英語のコメントや issue で頻出する略語の意味 (FYI, AFAIK, ...) - Qiita
- Emojiで楽しく綺麗なコミットを手に入れる | MEMOPATCH
- Atom の絵文字ガイド : atom/CONTRIBUTING.md at master · atom/atom
- Gitのコミットメッセージの書き方 | POSTD
Command line
Makefile
- Makfile基本的書き方まとめ - KZKY memo
- Makefileを自己文書化する | プログラミング | POSTD
- makefileわりと便利だよという話 - podhmo's diary
Documentation
- PharkMillups/beautiful-docs
- イケてるドキュメントのリンク集
Language
- Python/Ruby基礎文法最速マスター
- Objective-C 最速基礎文法マスター
- 主要でもないプログラミング言語200種を一行で解説 - Qiita
- null安全でない言語は、もはやレガシー言語だ - Qiita
Golang
Flash / AS3
Adobe AIR 関連メモはこれ
Haxe / OpenFL
- Haxe + lime + openFL — kodemint technologies — Medium
- Gamasutra: Lars Doucet's Blog - Flash is dead, long live OpenFL!
JavaScript
- 【翻訳】JavaScriptのデバッグ方法 – JSを嫌いにならないためのTips | POSTD
- Chrome DevToolsを使ってJavaScriptのメモリリークを検出し、解消する - 人生dat落ち
C / C++
- ラムダ式をC++で実現する
- More C++ Idioms - Wikibooks
- ゲーム開発者のための C++11/C++14
- 2016年、C言語はどう書くべきか (前編) | プログラミング | POSTD
- 2016年、C言語はどう書くべきか (後編) | プログラミング | POSTD
- 本の虫: Old New Thing: 未定義動作はタイムトラベルを引き起こす(他にもいろいろあるけど、タイムトラベルが一番ぶっ飛んでる)