今週のQiita技術書まとめ
2025年1月19日配信
【技術書】現場で役立つシステム設計の原則 Chapter1 小さくまとめてわかりやすくする
この記事で得られるもの エンジニア6年目になり、設計について改めて学びたいと思い「現場で役立つシステム設計の原則」を読んでいます。 今回は、現場のソフトウェア開発で、コードをより修正しやすく安全で促進的にするための原則をまとめました。この記事を読めば、次のことが理解できます。 コードの設計を改善するための基本テクニック 変更をより安全にするコードの書き方
現場で役立つシステム設計の原則
日本最大級となる60万件以上の求人情報サイト「イーキャリアJobSearch」の主任設計者ほか数多くの経験を持つ著者が「現場でこんなことに困っていた」「解決策としてこうやった」「その結果こうなった」というリアルな経験と「なぜ、そうするのか」をふまえて解説!
その汚いコード、いつどこで整頓するの?"Tidy First?"を読んで解決した話
Tidy First? Kent Beckさんの本「Tidy First? -個人で実践する経験主義的ソフトウェア設計( - 翻訳版が2024/12/25に販売された - いつどこでコードを改善・整頓すれば良いのかを記述した本 - 3部作の1作目で、本作は"個人"に焦点を当てている
Tidy First?
コードを「整理」して読みやすくするための理論とテクニック! コードを整理して読みやすくするには、扱いやすい部分に分割する必要があります。本書は、XPの考案者でデザインパターンやテスト駆動開発のパイオニアであるケント・ベックが、システム全体の構造を考えて、どの段階で、どのように整理するかを提案します。たくさんのコードを含んだ大きな関数がある場合、それを論理的に小さなかたまりに分割する方法を解説し、結合性、凝集性、コード整理の費用対効果など、ソフトウェアデザインの背後にある理論を学びます。
2025年最新版1年目エンジニアが絶対に読むべき技術書10選
自分がエンジニア1年目だったころに読んでおけばよかったと思う技術書をまとめてみました。 これらを呼んでおくとWebアプリケーション開発の現場でもすぐに話についていけると思います。 綺麗なコードを書くための名著 リーダブルコード ―より良いコードを書くためのシンプルで実践的なテクニック( こちらは言わずと知れた名著です。
リーダブルコード
コードは理解しやすくなければならない。本書はこの原則を日々のコーディングの様々な場面に当てはめる方法を紹介する。名前の付け方、コメントの書き方など表面上の改善について。コードを動かすための制御フロー、論理式、変数などループとロジックについて。またコードを再構成するための方法。さらにテストの書き方などについて、楽しいイラストと共に説明する。日本語版ではRubyやgroongaのコミッタとしても著名な須藤功平氏による解説を収録。
プリンシプル オブ プログラミング 3年目までに身につけたい 一生役立つ101の原理原則
一通りプログラミングができるようになった。しかし、読みにくい、遅い、頻繁にエラーが発生する、書いたコードを修正すると動かなくなる等々、なかなか「よいコード」を書けないとお悩みではありませんか? 本書は、よいコードを書く上で指針となる前提・原則・思想、つまり「プリンシプル」を解説するプログラミングスキル改善書です。初心者向けの書籍では絶対に説明しない、古今東西のプログラマーの知恵をこの一冊に凝縮しました!
体系的に学ぶ 安全なWebアプリケーションの作り方 第2版
日本中の現場で支持されたベストセラーが、最新環境にあわせて全面刷新+大増ページ! Webアプリケーションにはなぜ脆弱性が生まれるのか? 脆弱性を解消するにはどうプログラミングすればよいか? PHPサンプルへの攻撃を通して脆弱性が生まれる原理と具体的な対処方法が学べる! Webアプリ開発者の必読書、待望の改訂版! OWASP Top 10 - 2017対応 <主な改訂内容> ・HTML5の普及に対応してWeb APIやJavaScriptに関する解説を新設 ・OWASP Top 10 - 2017に対応して、XXEや安全でないデシリアライゼーションなどを解説 ・脆弱性診断に対する関...
ネットワークはなぜつながるのか 第2版
『ネットワークはなぜつながるのか』5年ぶり、待望の改訂第2版! ブラウザにURLを入力してからWebページが表示されるまでの道筋をたどりながら、その裏側で働くTCP/IP、LAN、光ファイバなどの技術を説明していきます。インターネットを通ってサーバーまで行って帰ってくる道筋の途中には、今のネットワークの主要な技術要素が全部あります。そこでの機器やソフトウエアがどのように動き連携しているのかを探検すればネットワーク全体の動きがわかります。 第2版では、全体の構成を見直し、探検の途中で、今、ネットワークのどの部分にいるのかを明確にしました。また、各技術の基本的な考え方や成り立ちなど、基礎的な...
SQL 第2版 ゼロからはじめるデータベース操作
本書は、「データベースやSQLがはじめて」という初心者を対象に、プロのデータベース(DB)エンジニアである著者がSQLの基礎とコツをやさしく丁寧に教える入門書です。第2版では、解説・サンプルコードを最新DBのSQLに対応したほか、(PostgreSQLを例に)アプリケーションプログラムからSQLを実行する方法の解説章を新設。SQLの書き方からアプリケーションでの利用方法までフォローします。
達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ
SQLを扱うエンジニア必携のロングセラー、10年ぶりの改訂! ーーSQLの正しい書き方・考え方が学べる本 開発者のためのWebマガジン「CodeZine」の人気連載を大幅加筆・修正して2008年に刊行、好評を博した『達人に学ぶSQL徹底指南書』の改訂・第2版です。 第2版では、初版構成を生かしつつ、SQLの強力な機能ウインドウ関数を全面的に採用して多くのコードをリバイスしました。全体的な解説の見直しや最新化も行ない、CASE式、ウィンドウ関数、外部結合、HAVING句、EXISTS述語など、SQLを扱うエンジニアに必要な「正しい書き方・考え方」「ビッグデータ時代に対応したモダンな...
達人に学ぶDB設計徹底指南書 第2版
本書は、プロのDBエンジニアである著者が、DB設計の基礎と実践ノウハウをやさしく手ほどきする『達人に学ぶDB設計徹底指南書』の改訂・第2版です。第2版では、初期構成を活かしつつ、クラウド時代に対応した内容にアップデートしました。論理設計の基本から、正規化、パフォーマンスなど、押さえておくべき基礎知識やポイントを幅広く体系的に解説するだけでなく、やってはいけないアンチパターン、注意すべきグレーノウハウも丁寧に解説します。「ただ何となくやってはいけないと分かっている」「なぜかはちゃんと分かってないけど、注意するようにしている」で終わらせず、きちんと「なぜ」を理解することができます。また、豊富...
教養としてのコンピューターサイエンス講義 第2版 今こそ知っておくべき「デジタル世界」の基礎知識
デジタル時代に活躍するための「教養」をこの1冊で身につけよう! プリンストン大学の一般人向け「コンピューターサイエンス」の講義が1冊に。 デジタル社会をよりよく生きるための知識を伝説の計算機科学者がやさしくお伝えします。 好評をいただいた第1版から2年、早くも第2版が登場です。 第1版の「ハードウェア」「ソフトウェア」「コミュニケーション」の3部構成から、第2版では「データ」を新設、4部構成となりました。 第4部「データ」では、第1版では「コミュニケーション」に含まれていた「データと情報」「プライバシーとセキュリティ」が移設・補強されるとともに、「人工知能と機械学習」が加わりました。 ...
世界一流エンジニアの思考法
頭が先、手は後。一流の仕事のカギは順序にある。 ーー楠木建(経営学者) 知的生産へのリスペクトがイノベーションの源泉だ。 ーー落合陽一(メディアアーティスト) 「怠惰であれ!」「早く失敗せよ」-- 米マイクロソフトの現役ソフトウェアエンジニアの著者が、超巨大クラウドの開発の最前線で学んだ思考法とは? “三流プログラマ”でもできた〈生産性爆上がり〉の技術! ・試行錯誤は「悪」。“基礎の理解”に時間をかける ・より少ない時間で価値を最大化する考え方とは? ・「準備」と「持ち帰り」をやめて、その場で解決する ・マルチタスクは生産性が最低なのでやらない ・“脳の負荷を減らす”コミュニケーシ...
AWSコンテナ設計・構築[本格]入門を Terraform / GitHub Actions で構築した
Zennに書いてます! 詳細はZennを見てください! 概要 業務でECS on Fargate + GitHub Actionsを使用したコンテナ構築を担当することになった際に読んだAWSコンテナ設計・構築本格入門( Actionsを用いてCI/CDを実装しました。 構成図
【Effective-Rustlings-jp】Day 20:ユニットテスト以上のものを書こう(最終回!!)
はじめに こんにちは。細々とプログラミングをしているsotanengel( この記事は以下の記事の連載です。 <details <summary<strong他の連載記事</strong (<em詳細</em)</summary
Effective Rust
Rustの強みを最大限に生かすテクニックとヒント! Rustはいまもっとも勢いのある言語の1つ。特に、そのパフォーマンスの高さ、安全性、並行性から、C/C++に代わる言語として、システムプログラミングや低レイヤの開発では高く評価されています。Googleのソフトウェアエンジニアとして、さまざまなGoogleサービスのRust実装を担当してきた著者が、Rustへの深い理解と豊富な経験から得られた実用的なノウハウを共有。所有、借用、生存期間、トレイトといったRust特有の概念を具体例を示して詳しく説明するとともに、Cargoによる依存ライブラリ管理やClippyなどのエコシステムの活用方法を...
はじめてWindows11上でPythonのプログラミングをしたい方へ向けた:Anaconda × PyTorch / Tensorflow on Win11 の開発環境を構築する手順
この記事は 「本当にはじめて、今日からPythonを触ってみよう」 と思われている方に向けた記事です。なぜ書こうと思ったかと言いますと、Windows11上で "WSLを使わずに" GPUを利用してPythonで機械学習を勉強する旨の記事が 「WSLを利用する手順を紹介する記事」 が多いことにより、検索で埋もれてしまい、ヒットしにくくなっているためです。また、 すべてのスクリーンショットが明示され…
Python,TensorFlowで実践する深層学習入門
世界7カ国語に翻訳された深層学習入門書,日本上陸! 理論,必要最小限の数式,プログラムコード,そして視覚的な説明を組合わせて深層学習を包括的に解説した入門書. イラストを多用し,随所でいろいろな深層学習のコード例を具体的に結果を確認しながら紹介する. 目 次 第1部 深層学習の成立と発展 第1章 生物の視覚とマシンビジョン 第2章 人間の言葉とマシンランゲージ 第3章 マシン・アート 第4章 ゲームをするマシン 第2部 基礎理論のしくみと理解 第5章 手探りでコードを書いてみる 第6章 ホットドッグ判別用パーセプトロン 第7章 人工ニューラルネットワーク 第8章 深層ニューラルネッ...
PyTorch実践入門
ディープラーニングの重要な基礎概念と、PyTorchを用いたディープラーニングの実装方法について、細部まで掘り下げて解説。限られたデータでニューラルネットワークを訓練する方法、訓練済みモデルのデプロイ方法など『ディープラーニング・プロジェクトのベストプラクティス』を提示します。 ・ディープラーニングのメカニズムを解説 ・Jupyter Notebook上でサンプルコードを実行 ・PyTorchを用いたモデル訓練の実施 ・実データを使用するプロジェクトをベースに実践的解説 ・本番環境へのさまざまなモデルデプロイ方法 PyTorchで実際にどのように組み込まれて実現されているのか、細部...