ITエンジニアが読むべき技術書 2023年10月16日

ITエンジニアが読むべき技術書 2023年10月16日

個人的に勉強になった本やネット記事

# はじめに
個人的に学習を進めていく中で、勉強になったなと感じた本やネット記事がいくつか有りましたので、まとめてみたいと思います。

# 勉強になった本やネット記事たち
## SQL実践入門
– 発売日:2015/4/11
– 出版社:技術評論社
– 著者:ミック

この本では、「グルグル系のクエリ」「ガツンと系のクエリ」という著者独自の表現で、SQLで欲しいレコードを一発で取得する実装方法を解説してくれています。
SQLに慣れていないプログラマは、どうしてもSQLでクエリを実装する時も手続き的なループ処理で実装してしまうという問題に触れていて、SQLでクエリを実装するときは、そうではなく集合論の観点から欲しいレコードの集合を表現し「ガツンと」一発で取得する方法を解説してくれています。
SQLは実務でも使用することは多いのですが、この辺りの知見をちゃんとインプットできる機会は以外と少ないと思うのでとても勉強になりました。

## ふつうのLinuxプログラミング
– 発売日:2017/9/22
– 出版社:SBクリエイティブ
– 著者:青木峰郎

C言語でLinuxのシステムコー

元記事を表示

Kindleの技術書セールがヤバすぎる【Amazonプライム感謝祭】

半額以下で買えます。明日辺り終了なのでお早めに。

# Good Code, Bad Code ~持続可能な開発のためのソフトウェアエンジニア的思考

現代のリーダブルコードとも言われている良書。
Googleのソフトウェアエンジニア(テックリード)がまとめる良いコードとは何か?という解説。
変数/関数の命名、ネストの深さなど初歩的なことから、エラー設計やnullの扱い、ユニットテストなど上級者でもためになることが体系的に学べる。

# ドメイン駆動設計入門 ボトムアップでわかる!ドメイン駆動設計の基本

ドメイン(要件への知識)をコードに落とし込む手法について書かれている。

# プログラマー脳 ~優れたプログラマーになるための認知科学に基づくアプローチ

プログラミングを学ぶ、コードを読むということを脳科学の観点から解説。

# プリン

元記事を表示

Webとセキュリティの基礎学習メモ

# はじめに

こんにちは。takunと申します。

みなさんは「この一冊で全部わかるシリーズ」ご存じでしょうか。
この度とある案件参画の運びとなり、勧めていただいた本です。
– この一冊で全部わかるWeb技術の基本(2017/03/31初版第1刷)
– この一冊で全部わかるセキュリティの基本(2022/12/26初版第11刷)

上記の2冊を読み終えたので、個人的に学びをまとめていきます。
中古で買ったためやや古いですが、同じ初版なので内容は問題ないはず。
> 金欠エンジニアなので・・・

当方は初心者エンジニアです。間違ったことや不適切な内容となってしまう可能性もあることをご承知ください。また、助言など頂けると嬉しいです。

# RESTful
### RESTとは
REST(REpresentational State Transfer)はWebにおける設計思想の一つ。
このRESTに従って設計されたシステムを「RESTfulなシステム」と呼ぶ。

原則としては以下の4つ。
– 統一インターフェース
HTTPプロトコルのような共有された方法
– アドレス可能性
全てのURIがユ

元記事を表示

電子文書検出AI「Guide Bot」、 バックオフィスDX の道を切り開く

![Meet-the-Marketing-Team-Presentation-in-Blue-Green-Grey-Friendly-Professional-Style.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2746030/3873bc3e-847d-f93c-46f0-a09996997ec4.png)

【バックオフィス業務 がなぜか混乱になった?!】

多くの会社で、経理や総務のようなバックオフィス業務の複雑さが懸念されています。日常的に、旅費の申請や有給の残日数に関する繰り返しの問い合わせや、領収書の問題などがあります。

この結果、バックオフィスのスタッフは本来の専門業務に集中できず、同じ訂正作業や問い合わせ対応に時間を割かざるを得ない状況が生じています。人手が足りない現状で、このような問題を克服することが求められており、今後、その必要性を感じる企業は増加するでしょう。

【電子検出AI「Guide Bot」で企業のバックオフィス業務の課題を一気に解決】

その全ての課題を

元記事を表示

「技術書の読書術」から得た本屋の立ち回り

# はじめに

「「技術書」の読書術」という本を読んで、本屋で本を探す時のアプローチについてまとめました。備忘録として残しますが、内容は非常に薄いです。

[「技術書」の読書術 達人が教える選び方・読み方・情報発信&共有のコツとテクニック – 翔泳社](https://www.shoeisha.co.jp/book/detail/9784798171548)

## 書籍の概要

1. 書籍は体系的、網羅的に学びを得ることができるので、たくさん読んだほうが良い。
2. 効果的に身につけるためには課題がある。
3. どうすれば良い体験を得られるか

本の探し方、読み方、成長への繋げ方が順序立てて説明されています。

# 本屋での技術書の探し方

## 自分が欲しい本を理解する

技術書は大きく次の3つに分類されます。自分が読みたいのはどれなのか?
まずは理解する。

| 難しさ | 内容 |
| —— | —————- |
| ★☆☆ | 概要を紹介する本 |
| ★★☆ | 手順を解説する本 |
| ★★★ |

元記事を表示

【技術書感想】テスト駆動開発

## 読んだ技術書紹介
[テスト駆動開発](https://www.amazon.co.jp/%E3%83%86%E3%82%B9%E3%83%88%E9%A7%86%E5%8B%95%E9%96%8B%E7%99%BA-Kent-Beck/dp/4274217884/ref=sr_1_1?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=1WVZOO1UKLMDL&keywords=%E3%83%86%E3%82%B9%E3%83%88%E9%A7%86%E5%8B%95%E9%96%8B%E7%99%BA&qid=1695742996&sprefix=%E3%83%86%E3%82%B9%E3%83%88%E9%A7%86%E5%8B%95%E9%96%8B%E7%99%BA%2Caps%2C230&sr=8-1)
![スクリーンショット 2023-09-27 0.50.06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1109509/d4d

元記事を表示

Web 業界 1 年目が Web を支える技術を読んだ感想

# Web 業界 1 年目が Web を支える技術を読んだ感想

## 読んだ経緯

今年から Web 業界の企業に入社をして、日々奮闘しているのですが基本的な Web の知見が足りておらず話についていけないと感じる場面がありました。そこで Web の基礎を養おうと思いこの本を読むことにしました。
Web を支える技術についての詳細は[こちら](https://www.amazon.co.jp/Web%E3%82%92%E6%94%AF%E3%81%88%E3%82%8B%E6%8A%80%E8%A1%93-HTTP%E3%80%81URI%E3%80%81HTML%E3%80%81%E3%81%9D%E3%81%97%E3%81%A6REST-WEB-PRESS-plus/dp/4774142042)

## 学びや気づき

### 簡潔な URI を設計しリンク切れを未然に防ぐ

以下の要素を含む URI の設計にしてしまうと、将来リファクタリング等で影響範囲に入ってしまい、URI を変更しなければならなくなる

– プログラム言語依存の拡張子を利用する(.pl,.rb など)

元記事を表示

Web 業界 1 年目が「良いコード/悪いコードで学ぶ設計入門」を読んだ感想

# Web 業界 1 年目が「良いコード/悪いコードで学ぶ設計入門」を読んだ感想

## 読んだ経緯

Web 業界の企業に開発未経験で入社し、日々開発業務に奮闘しているのですが基本的なオブジェクト指向、デザインパターンが定着していないことにより理解が進みにくいと感じていました。
そこで今後のキャッチアップの促進を目指したいと思い当時の部長にお薦めいただいたこの本を読むことにしました。
「良いコード/悪いコードで学ぶ設計入門」の詳細は[こちら](https://www.amazon.co.jp/%E8%89%AF%E3%81%84%E3%82%B3%E3%83%BC%E3%83%89-%E6%82%AA%E3%81%84%E3%82%B3%E3%83%BC%E3%83%89%E3%81%A7%E5%AD%A6%E3%81%B6%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80-%E2%80%95%E4%BF%9D%E5%AE%88%E3%81%97%E3%82%84%E3%81%99%E3%81%84-%E6%88%90%E9%95%B7%E3%81%97

元記事を表示

リーダブルコードを読んだ学び(プログラミング1年生

# はじめに

こんにちは。takunと申します。

プログラマー界隈では有名な著書、「リーダブルコード」を読みました。(1ヶ月前に…
やはり初学者からみても良著だと感じたので、忘れないために私のレベルで感じたこと・学んだことを記録していきます。

当方は初心者エンジニアです。間違ったことや不適切な内容となってしまう可能性もあることをご承知ください。また、助言など頂けると嬉しいです。
また、得意な言語はJavaです。この本では、様々な言語が出るため理解が及ばないところもあると思いますが、暖かく見守っていただけると幸いです。

# 1.名前を分かりやすく
抽象的な名前を使わない(例:getメソッド)
インターネットから取ってくるのならgetではなくfetch/Downloadの方がわかりやすい
> とはいっても、英語が苦手な方もいますよね。(私もです。)
そんな方に私がお勧めしたいのが[codic](https://codic.jp/engine)というサイト。
google翻訳感覚で使えて、キャメルケースやスネイクケースで出力できるのでありがたい。
tm

Webエンジニア1年目で取り組んだ教材53選を振り返る

## はじめに

皆さんこんにちは、[Webエンジニアのtomo](https://twitter.com/tomokn5)です。
2022年10月1日よりWeb系自社開発企業のエンジニアとして勤務し、ちょうど1年が経過しました。

この1年間は、とにかく土台作りに注力した1年間で、多くの技術書や教材にお世話になりました。
– 駆け出しの頃って、何を勉強すればいいんだろう?
– 駆け出しの頃って、どのぐらい勉強するものなんだろう?

こういった疑問を持つ方は多いかと思うので、個人の体験にはなりますが、1年間で学習してきた教材をカテゴリ別に振り返りたいと思います。

未経験〜内定までの記事はこちらから
– [【転職】未経験がWeb系自社開発企業の内定を得るまでにやったことすべて](https://qiita.com/tomo-kn/items/f6a2475474d268167ddf)
– [【個人開発】楽しみながら滑舌を鍛えることができるWebアプリ『早口言葉選手権』をリリースしました⚾?](https://qiita.com/tomo-kn/items/293280565b7ab69

C#プログラミング学習におすすめ本・技術書10選【2023年版】

C#学習におすすめの本をまとめました。

# 初心者向け
– なるほどなっとくC#入門 (新・標準プログラマーズライブラリ) – 出井秀行
– やさしいC# 第3版 – 高橋 麻奈

# 中級者向け
– 実戦で役立つC#プログラミングのイディオム/定石&パターン – 出井秀行
– C#コードレシピ集 – 出井秀行
– .NETのクラスライブラリ設計 改訂新版 開発チーム直伝の設計原則、コーディング標準、パターン – Krzysztof Cwalina

# ASP.NET Core
– C#フレームワーク ASP.NET Core入門 .NET 7対応 – 掌田津耶乃

# .NET MAUI
– .NET MAUIによるマルチプラットフォームアプリ開発 iOS、Android、Windows、macOS対応アプリをC#で開発 – 増田 智明

# 良いコードを書くためにおすすめな本
– リーダブルコード より良いコードを書くためのシンプルで実践的なテクニック – ダスティン・ボズウェル
– 良いコード/悪いコードで学ぶ設計入門 – 仙塲 大也
– 現場で役立つシステム設計の原則 変更

読書投稿『失敗から学ぶRDBの正しい歩き方』

# 本記事について
本記事では『失敗から学ぶRDBの正しい歩き方』(著:曽根壮大さん)についてまとめます。
ただ筆者は本書については二度目、今の自分に必要な知識や忘れておきたくない箇所についてまとめておくだけのため、書籍全体についてまとめる記事ではありません。

# 本書の章まとめ
1. データベースの迷宮
1. 失われた事実
1. やりすぎたJOIN
1. 効かないINDEX
1. フラグの闇
1. ソートの保存
1. 隠された状態
1. JSONの甘い罠
1. 強すぎる制約
1. 転んだ後のバックアップ
1. 見られないエラーログ
1. 監視されないデータベース
1. 知らないロック
1

リーダブルコード備忘録

## はじめに
リーダブルコードを読んで、アウトプット用として書いています。
何か間違いがありましたらコメントでお願いいたします。

## 1章 理解しやすいコード
コードを書く上で最も大切な原則は、

– **コードは理解しやすくなければならない**
– **コードは他の人が最短時間で理解できるように書かなければいけない**

コードを短く簡潔に書くことは大切だが、他の人が読んだ時にコードの理解に時間がかかるようであれば意味がない。

例えばif文を短く書ける三項演算子を使用すれば、コード自体は短くできるが、見る人によっては理解しづらいコードになってしまう可能性がある。

コメントをつけることでコードは長くなるがそのほうが理解しやすくなることもある。
あくまでもコードは短くしたほうがいいが、たとえコードが長くなっても**理解するまでにかかる時間**を短くするほうが優先度が高い。

## 2章 名前に情報を詰め込む
変数や関数、クラスなどの名前は**短いコメント**のようなもので、できるだけ多くの情報を詰め込む。

## 明確な単語を選ぶ
名前に情報を詰め込むには、空虚な単語は避け、*

おすすめ書籍 8選(2023年上半期)

## はじめに

この記事は、私が2023年の上半期に読んで「よかった」と感じた書籍をご紹介するものです!

前提として、私のスキルセットは以下の通りです。

:::note info
サーバーサイドエンジニア
– たまにプロジェクトリーダー
– 自社開発のWebアプリ開発
– 使用言語はPHP, JavaScript(TypeScript)
:::

似たスキルセットの方には特に参考になるのではないかと思います。

みなさまのスキルアップの参考にしていただければ嬉しいです:relaxed:

今回は 技術書 4冊、ビジネス書 4冊 ご紹介します。

## 技術書

まずは技術書からです。

### おすすめ書籍1. 単体テストの考え方/使い方

おすすめ度: :star::star::star::star::star:(テストに興味があれば絶対読んでほしい!)

https://book.mynavi.jp/ec/products/detail/id=134252

テストを書きたい開発者の方におすすめです。

「テストとは何か?なぜ書く必要があるのか?」から始まり、アンチパターンや

「良いコード/悪いコードで学ぶ設計入門」の重要ポイントまとめ

# 書物の紹介

[良いコード/悪いコードで学ぶ設計入門 ―保守しやすい 成長し続けるコードの書き方](https://gihyo.jp/book/2022/978-4-297-12783-1)

ITエンジニア本大賞2023で大賞に選ばれた本です。
感想としては、様々な基本的な知識を現代の状況に折り合いをつけてまとめた良書だと思います。
重要ポイントのみをまとめましたが、購入して読んでみるとより理解が深まると思います。

# 第1章 悪しき構造の弊害を知覚する
### ■悪しきコードとは
* コードを読み解くのに時間がかかる
* バグを埋め込みやすくなる
* 悪しき構造がさらに悪しき構造を誘発する
* 低凝集、生焼けオブジェクトにならない

■重要なワード
* 低凝集
*

『プロになるためのWeb技術入門』を読んだので。

# はじめに

[『プロになるためのWeb技術入門』――なぜ,あなたはWebシステムを開発できないのか](https://www.amazon.co.jp/%E3%80%8E%E3%83%97%E3%83%AD%E3%81%AB%E3%81%AA%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AEWeb%E6%8A%80%E8%A1%93%E5%85%A5%E9%96%80%E3%80%8F%E2%80%95%E2%80%95%E3%81%AA%E3%81%9C%EF%BC%8C%E3%81%82%E3%81%AA%E3%81%9F%E3%81%AFWeb%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%82%92%E9%96%8B%E7%99%BA%E3%81%A7%E3%81%8D%E3%81%AA%E3%81%84%E3%81%AE%E3%81%8B-%E5%B0%8F%E6%A3%AE-%E8%A3%95%E4%BB%8B-ebook/dp/B09MVGM99L/ref=sr_1_1?crid=2RUFI5FRBVD4D&ke

Primer on Latency and Bandwidth 日本語まとめ

# Speed Is a Feature
サイトが高速であることが求められています。サイトが高速であるとこのような利点があります。
– ユーザー エンゲージメントの向上につながります。
(ユーザー エンゲージメント:ウェブページがフォーカス状態にあった時間、またはアプリの画面がフォアグラウンド表示されていた時間の長さ)

– ユーザー維持率の向上につながります。

– コンバージョン率も高くなります。
サイトを高速にするためにはどこを改善すればいいでしょうか?
– レイテンシ
(データ転送における指標のひとつで、転送要求を出してから実際にデータが送られてくるまでに生じる、通信の遅延時間のこと)
– 帯域幅
(通信するときに使われる電波や光の周波数の範囲のこと)

要するに下の図のように長さを短く幅を太くすれば高速に多くつながるよねという考え
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1493403/936766a5-bd7b-0bb7-8709-7032f0048c27.png)

良いコード悪いコードで学ぶ設計入門 【8~9章】 まとめと感想

こちらの記事の続きです。

https://qiita.com/yuma_akita/items/48e88066a1cbdadcdb0f

## 8章 密結合
この章では密結合になるとどのような問題があるか、どのようにして密結合を解消するかが記述されていました。

結合度・・・クラス間の依存を表す指標

### 密結合の問題点
* 処理の一部を変更した時に密結合しているクラスの挙動に影響を与える可能性がある。
* 単一責任の原則を外れてしまう。

### どのようにして密結合を解消するか
* 責務が単一になるようにクラスを設計する
「クラスが担う責任はたった一つに限定すべき」という設計原則に基づきクラスを設計することで密結合を解消する手法が記載されていました。

### 感想
結構このあたりからボリュームが増えてきて紹介しきれなかったのですが、DRYにしすぎて異なった概念の処理を共通処理で書いたりすると、密結合に陥りやすいという内容の記述があり結構目からウロコでした。

## 9章 設計の健全性をそこなうさまざまな悪魔たち
この章ではよくある悪い設計を紹介していました。

Scalaスケーラブルプログラミング第4版 第07章 組み込みの制御構造 読書メモ

![組み込みの制御構造.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27987/94030edb-ad35-30c4-b770-741a2003acf9.png)

基本的には他の言語とそう変わらない感じ。
ローンパターンについては、関数値を受け取ってリソースを引数としてその関数に貸し出す形での実装だった気がする。

`Unit`がよくわからない。

Scalaスケーラブルプログラミング第4版 第06章 関数型スタイルのオブジェクト 読書メモ

![関数型スタイルのオブジェクト.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/27987/9e38967d-6841-08c3-aeaf-2af1e0916086.png)

基本的にはJavaと同じ、というよりJavaより簡潔になっているイメージですね。
あんまり`require`を使った事前条件はみたことがない。。。
Javaでいうところの`assert`みたいなものなのだろうか。表明の手段としてはよいと思うので使っていきたいですね。