WEBエンジニアが読んでおきたい技術書 2023年04月07日

WEBエンジニアが読んでおきたい技術書 2023年04月07日
目次

良いコード悪いコードで学ぶ設計入門 【4~5章】 まとめ

こちらの記事の続きです。
https://qiita.com/yuma_akita/items/fbe1aca566d7da335905

## 4章 不変の活用
この章では不変の有用さ、可変にしたときの悪影響が紹介されていました。

### 可変の悪影響
– 同じ変数を参照していたとき、変数に代入されると両方ともに影響が出てしまう
– 予期していなかった動作になってしまう

→ 不変はこれらの悪影響がない

### 不変の有用性
– 不変にすると可変のときと比べて考慮すべきことが減るため、変数名を固定できる。

### どんなときに可変にするべきか
– スコープ内で代入されることが決まっている時
– スコープが収束可能な時
– ループ文のカウント
– リソース制約の厳しい組み込みソフトウェア
– パフォーマンス要件が満たせない時

### 感想
私はプログラミングを始めた頃、「不変ってなんで存在するんやろ?? 柔軟性のある可変のほうがええやん」と思っていましたが、あの頃は型もしかり、縛るということの大切さをしらなかったんですよね、、。

## 5章 低凝縮
低凝縮・・・クラス内に

元記事を表示

リーダブルコードの感想などまとめ

![picture_large978-4-87311-565-8.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238817/2dff293c-c5f3-fe90-2703-9cd4b838bd8f.jpeg)

## リーダブルコード とは?

リーダブルコードは、**Dustin Boswell、Trevor Foucher 著、角 征典 訳** の書籍です。

https://www.oreilly.co.jp/books/9784873115658/

エンジニアであれば、間違いなく読むべき書籍であるといえるでしょう。

今回は、そんなリーダブルコード(以下本書)を読み直しましたので、内容をまとめつつ感想をお伝えしたいと思います。

## 要点まとめ

– コードは理解しやすくなければならない
– コードは**他の人が最短時間で理解できるように**書かないといけない
– 変数名、関数名に意味を込める
– 具体的かつ伝わりやすくする
– インデントを適切に配置する
– 最善の名前とは、**誤

元記事を表示

おすすめの技術書やツールについてのLT会【定期イベントレポート】

# はじめに
こんにちは!**関西の女性エンジニア限定のコミュニティ**[TECH WOMAN KANSAI](https://twitter.com/TechWomanKansai)の公式アカウントです。
今回は、3/26(日)に開催された「**おすすめの技術書やツールについてのLT会**」についてのイベントレポートを掲載します。

# こんな人に読んでもらいたい
* 関西女性エンジニア限定コミュニティの活動について知りたい方
* 女性エンジニア限定のコミュニティについて知りたい方
* IT系コミュニティについて知りたい方
* 地域コミュニティについて知りたい方
* 女性エンジニアのみなさん、ITに興味のある女性の方

# そもそもどんなコミュニティ?
このコミュニティは**地域軸×女性×テクノロジー**で形成されたコミュニティです?
コミュニティの活動方針としては、**関西のIT企業で働くor関西在住の女性エンジニアの皆さんが集まれる「居場所」を作ること**です。
コミュニティタイプとしては、地域軸寄りのオープンなコミュニティです。
現在は約月1の頻度で定例のオフラインイベントを開

元記事を表示

良いコード悪いコードで学ぶ設計入門 【1~3章】 まとめ

[良いコード/悪いコードで学ぶ設計入門](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%E7%B6%9A%E3%81%91%E3%82%8B%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E6%9B%B8%E3%81%8D%E6%96%B9-%E4%BB%99%E5%A1%B2/dp/4297127830)を読んだので、内容をアウトプットとしてまとめていこうと思います。一旦1~3章のまとめです。
サンプルコードが豊富で読みやすく、非常に参考になる良書だと思いました。

#

元記事を表示

マルウェア解析入門

# はじめに
この記事はマルウェア解析について簡単にまとめた記事です。
自分用のメモでもあります。ちょっと入門に依りすぎているかもしれません。
ただし、悪用は厳禁。

# Who am i ?
しがないエンジニアです。

# 想定読者
– マルウェア解析初心者でやってみようと思っている方
– その他

# そもそもマルウェア解析をする目的は何か
インシデントレスポンス(IR)時の調査に役立てるのが目的です。マルウェアの挙動を知っておく必要があります。

# どのようなことを準備しておくべきか
まずやっておくことはマルウェア検体を解析する検体解析環境の準備です。
検体を動作させる専用の環境を用意しておく必要があり、専用のVM環境など、基本的にはオフラインの環境を用意すべきです。
ただし、インターネットに接続をしないと動作しないマルウェアも存在するため、複数の環境を用意すべきだと思います。
※基本的にインターネットへ接続しない理由はプロバイダーに怒られる場合もあるためです。
また、Sandboxの情報を元にマルウェアの情報を検索したり、調査する習慣もつけておくといいかもしれません。

元記事を表示

SQLの基本を学ベる入門書で0から学んでみた

## はじめに
本記事は私自身が書籍を用いて学んだことに関する備忘録であることをご理解ください。
SQLやデータベースについて、基礎的な部分から学んでみたいと思い、「スッキリわかるSQL入門」という書籍で学習をしてみました。

### きっかけ
Railsを書くことが多いのですが、RailsのModelにActiveRecordが適用されているおかげで、データベースから簡単にデータを出し入れすることが可能です。
一方で、このActiveRecordがあまりにも優秀なため、SQLをそこまで理解していなくとも、データの出し入れができてしまっている状態でした。
言わば、実装する上でどんなSQL文が発行されているかを意識しないでも実装ができてしまっていたのが個人的に感じた課題感です。

本質的には、SQLをきちんと理解できていることでパフォーマンス観点だけでなく、コードの品質を保つことができると考えたため、SQLの機能を正確に使えるようになりたいなと思ったことが始まりでした。

## データベースを使う立場
SQLはデータベースを操作するための言語ですが、大きく2つの立場が存在します。

1.

元記事を表示

O’REILLY Learning 日本語書籍 2022・2023年発売書籍で読めるもの一覧

O’REILLY Learning 日本語書籍 2022・2023年発売書籍で読めるもの一覧
なかなかのラインナップです。

https://learning.oreilly.com/home-new/

## 2023年
– SQLではじめるデータ分析
– オブザーバビリティ・エンジニアリング

## 2022年
– 大規模データ管理
– マスタリング・ライトニングネットワーク
– マスタリングLinuxシェルスクリプト
– マイクロサービスアーキテクチャ
– UX戦略 第2版
– 実践 Keycloak
– ソフトウェアアーキテクチャ・ハードパーツ
– マイクロフロントエンド
– AIファースト・ヘルスケア
– 初めてのGo言語
– Lean UX 第3版
– 機械学習エンジニアのためのTransformers
– リーダーの作法
– 動かして学ぶAI・機械学習の基礎
– カオスエンジニアリング
– 初めてのTensorFlow.js
– 推薦システム実践入門
– 実用 Go言語
– 戦略的UXライティング
– システム運用アンチパターン
– Pythonからはじめるアルゴリズムト

元記事を表示

?「良いコード/悪いコードで学ぶ設計入門」(第4章 不変の活用)を読んだ感想

## 前回の話
https://qiita.com/tomonac/items/0a135c2875eccd31e5a2

## 感想 (第4章 不変の活用)

![image.001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3144766/c91087c2-f2e9-3748-6872-0914a635f47d.png)

**[ 学んだこと ]**

– 可変、不変を用途に合わせて使い分けることが必要
– 意図しない挙動にならないように、不変になるように Java で言えば final 修飾子にする
– 変動してしまった時のように正常値しか処理が通らないようにバリデーションを実装する
– インスタンス変数の使い回しには、使い回した処理にも影響がある為注意する
– 基本、不変であるべき(変数の意味が変化しなくなるので、混乱しない。処理の結果が予測しやすくなる)
– 可変にする場合は、スコープが局所的である処理の場合、ローカル変数などである

元記事を表示

# 「ゲームで学ぶ探索アルゴリズム実践入門」のサンプルコードでAtCoderの問題を解いてみた

# 「ゲームで学ぶ探索アルゴリズム実践入門」のサンプルコードでAtCoderの問題を解いてみた

## はじめに

どうもこんにちは、thunderです。
私事ではありますが、2023/2/18に[「ゲームで学ぶ探索アルゴリズム実践入門~木探索とメタヒューリスティクス」](https://www.amazon.co.jp/dp/4297133601/)という技術書を出版しました!

– amazon https://www.amazon.co.jp/dp/4297133601/
– 技術評論社 https://gihyo.jp/book/2023/978-4-297-13360-3

本書の魅力は[speakerdeckにアップロードしたスライド](https://speakerdeck.com/thunderc/shi-jie-si-lian-ba-aienziniagajiao-eru-tan-suo-arugorizumu-nomei-li)にまとめているので、御覧いただけると幸いです。
さて、本書のサンプルコードは[サポートページ](https://gihyo.jp/book/

元記事を表示

?「良いコード/悪いコードで学ぶ設計入門」(第3章 クラス設計)を読んだ感想

## 前回の話
https://qiita.com/tomonac/items/1b290c380f80e7fdc60d

## 感想 (第3章 クラス設計)

![image.001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3144766/929d61da-9e30-ab1c-42bd-536dd20a5062.png)

– どのようなクラス設計を行えば、悪魔に対抗出来るのか学びがあり、潜む悪魔とそれに対抗出来る手段をサンプルコードを元に比較し理解することができました。問題解決に繋がる設計パターンが大事で、自己防衛が出来るクラス設計を行う事で様々な問題に対応できるようになります。

**[ 学んだこと ]**

– 完結したクラス設計を行うこと
– 複数のクラスと密結合な設計にしない
– 成熟したクラス設計を行うこと
– ガード節を用いた正常値のみ許容するような設計であること
– 関係するロジックは、別クラスに実装せずデータ保持側に寄せ高凝集な構造にする
– 不要なメソッド

元記事を表示

?「良いコード/悪いコードで学ぶ設計入門」(第2章 設計の初歩)を読んだ感想

## 前回の話
https://qiita.com/tomonac/items/c608d7afee03796e4db7

## 感想 (第2章 設計の初歩)
– 第1章の振り返りもありつつ、命名の重要性、クラス設計の重要性、変数の用途など「良いコード」「良い構造」にする為にどうすれば良いか理解することが出来ました。結局は、一貫性の無い書き方したり、その場しのぎの書き方すると時間が経った時に超難問として自分にブーメランで返ってくるから気を付けよう。。

![良いコード悪いコード.001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3144766/092d55b7-6209-375c-599f-e28b7047e217.png)

**[ 学んだこと ]**

– 伝わらない変数名を使用しないこと。悪しき命名(技術駆動命名、連番命名)にしない。
– 第三者がコードを見た時に、読み解くのに無駄に時間がかかることになる。
– 用途ごとに変数を用意する。使い回しをしない。
– 1つの変数で再代

元記事を表示

?「良いコード/悪いコードで学ぶ設計入門」(第1章 悪しき構造の弊害を知覚する)を読んだ感想

## はじめに
– 以下の書籍を読んだ感想などをまとめていきます。第1章〜第17章まであり、1章ごとに記事にしていきたいと思います。

https://gihyo.jp/book/2022/978-4-297-12783-1

## 読むきっかけ
– ITエンジニアのみなさんとおすすめの本を選ぶイベント「ITエンジニア本大賞2023」の「技術書部門大賞」に選ばれたことで読んでみようと思いました。

https://www.shoeisha.co.jp/campaign/award/result

## 感想 (第1章 悪しき構造の弊害を知覚する)

#### とにかく読みやすい、分かりやすい本でした!!

「悪いコード」を悪魔と例え、それを知覚することで退治できるような対応(設計技術)を学んでいくスタイル。「悪いコード」を知覚する為には、「良いコード」を理解した上でギャップ(違和感)を感じることが出来れば知覚に繋がる。

![良いコード悪いコード2.001.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.co

元記事を表示

技術書の読書術をざっくり読んで個人的に重要な部分をまとめてみた。

# 一章

## 書店で本を探すコツ

> 短時間で本の難易度や内容を把握するには、はじめにや前書きの部分を読んでみる。ここには著者がその本に込めた想いや読者ターゲット、書籍の概要などが書かれている。
>

重要なのはこの時点で自分が知りたい情報なのかを知ることです。

## 読者レベルを想定しているかどうか

>タイトルが『C言語入門』とあっても、これが「ほかのプログラミング言語を学んだ人のためのC言語の入門書」ということがある。こうなると、そもそも「プログラミングとは何か」、「変数とは」、「関数とは」という説明は簡素に書かれているため、入門書なのに理解できず挫折してしまう。

– C言語を学んだことがないけど、他の言語の基礎なら分かる初心者
– ぷろぐらみんぐ?おいしいの?な初心者

言葉の上では同じ**初心者**だが両者は大きく異なります。
事前にどういった層を対象にした本なのか調査しておくことで、ギャップを防ぐことができます。

## 全く違うジャンルの本を読む

> 技術書を読むような技術者は世の中全体では圧倒的に少数であり、ITと関係しない仕事をしている多くの人は、専門的

元記事を表示

良いコード/悪いコードで学ぶ設計入門 要約&感想

# はじめに

[良いコード/悪いコードで学ぶ設計入門](https://gihyo.jp/book/2022/978-4-297-12783-1)を読んだので自分にとって重要なことをメモとして残します。

## 本書の良かったところ

– リーダブルコード的な内容やswitch文、interfaceといった具体的なものから、設計や開発プロセスのような抽象的な話を展開しているのでとっつきやすい。
– サンプルコードが多い。
– 常にゲームを例に設計を説明しているのでわかりやすい。
– デザインパターン、レガシーコードとの向き合い方、組織的的な問題への対応などエンジニアとして役立つ情報が幅広く載っている。

# Javaの基礎知識
本書はJavaで書かれているのでJavaの記法を知っていないと読みにくいところがあります。
なので個人的に抑えておきたい記法を紹介します。
引用元が公式リファレンスでないのは許してください。(リファレンスの使い方がわかりませんでした…)

## final修飾子
コードの所々に書かれている`final`は再代入やオーバーライド、継承を禁止します。
このオブ

元記事を表示

【Node.js入門】いままで避けてきたから特徴だけはおさえておきたい

Node.jsをこれまでほとんど勉強してきませんでした。
普段触れることもある言語ですが、ないがしろにしてきたので改めて学んでみました。

:::note
【こんな方にオススメ】
・Node.jsについて勉強したことがない
・Node.jsを勉強しようと思っているけど1歩踏み出せない
:::

本記事は下記書籍の要約です。
気になった方はぜひ読んでみてください!

:::note note
解釈が間違っている場合は遠慮なくコメントをいただけると大変嬉しいです!
:::

https://gihyo.jp/book/2023/978-4-297-12956-9

## 本書の構成
ざっくり下記のような構成でした。
– Node.jsについて
– JavaScriptの基本的な構文
– Node.jsの活用
– フロントエンドとバックエンド
– 運用とチューニング

私は初学者なのでその中でもNode.jsの特徴について触れたいと思います。

## Node.jsってなに?

Node.jsはChromeに内蔵されているV8というJavaScriptの実行環境のこと。
2009年に登場して

元記事を表示

マスタリングTCP/IP入門 重要用語について自分の言葉で説明する Part1

# はじめに
ネットワーク知識習得のため、基本に立ち帰り[マスタリングTCP/IP―入門編―(第6版)](https://www.amazon.co.jp/%E3%83%9E%E3%82%B9%E3%82%BF%E3%83%AA%E3%83%B3%E3%82%B0TCP-IP%E2%80%95%E5%85%A5%E9%96%80%E7%B7%A8%E2%80%95-%E7%AC%AC6%E7%89%88-%E4%BA%95%E4%B8%8A-%E7%9B%B4%E4%B9%9F/dp/4274224473)を読むことにしました。
読んだ中で特に重要かなと思ったor興味を持った用語について、本書籍や他サイトの解説、自分の基礎知識と照らし合わせて超短く要約をしていきます。

# 1章 ネットワーク基礎知識

## OSI参照モデル
データ通信を7階層に分け、それぞれの機能、役割等を明確にしたモデル

| OSI参照モデル |
|:-:|
|アプリケーション層|
|プレゼンテーション層|
|セッション層|
|トランスポート層|
|ネットワーク層|
|データリンク層|
|物理層|

:::no

元記事を表示

プログラミング未経験からポートフォリオを完成させるまでの記録

# はじめに
2023年1月でプログラミングの学習を始めて約半年が経ちました。
初めてのポートフォリオが完成したということと、これからプログラミング学習を始める方に少しでもためになれば良いなと言う思いでこの記事を書きました!

まず私の紹介ですが、文系の大学を卒業後、製造業の営業職を約8年しており、ITとはまったく無縁の状態でした。
そんな中プログラミングの魅力に目覚め、初心者ながらポートフォリを完成させるまでに至りました!
その経過を振り返ってみたいと思い、教材や技術書、行ってきたこと等を記録にまとめてみます。

ちなみに完成したポートフォリオについてですが、GithubのREADMEに制作した経緯や、機能など詳しくまとめてあるので、もし気になった方がいたら見ていただけると幸いです。

https://github.com/takaya8522/Study_Support_App

# 半年間で学んだこと一覧
### ポートフォリオに採用したもの
– Ruby 3.0.1, Ruby on Rails 6.1.7 ( Puma ), Nginx
– HTML, CSS, JavaSc

元記事を表示

2022年に読んで良かった書籍 12選

## はじめに
この記事は、私が2022年に読んで良かったと感じた書籍の紹介記事です。

大きく、以下のカテゴリに分けてご紹介します。

– 技術書
– ライフハック・ビジネス
– その他

ちなみに、私は以下のような人間です。
– サーバーサイドエンジニア
– エンジニア歴4年ほど
– 文系出身
– 主にPHP(Laravel)使用
– Webアプリケーション(自社サービス)開発
– フルリモート勤務

ではここからは書籍の紹介です!

## 技術書
まずは技術書のご紹介です。

### 体系的に学ぶ 安全なWebアプリケーションの作り方 第2版

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/238817/a7230a7c-6431-cdf8-11d9-1977d44a919b.png)

いわゆる「**徳丸本**」です。

Webアプリケーションにおける脆弱性や攻撃手

元記事を表示

高専で本格的に動き出す前に読みたかった本

# 高専で本格的に動き出す前に読みたかった本たち
現在高専1年のゆくらが、もうすぐ一年が終わるということで、本格的にロボコン部や個人でプログラミング・電子工作を始める前に知っておきたかったことを知れる本を集めました。

GitとGithubの教科書

### GitとGithubの教科書
![81gQuzW7UQL._AC_UL320_.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3092474/3a6b9bc4-b068-c1e5-4221-00526597c3ad.jpeg)
[GitとGithubの教科書](https://www.amazon.co.jp/%E3%81%AF%E3%81%98%E3%82%81%E3%81%A6%E3%81%A7%E3%82%82%E3%81%A7%E3%81%8D%E3%82%8B-Git%E3%81%A8GitHub%E3%81%AE%E6%95%99%E7%A7%91%E6%9B%B8-%E3%81%

元記事を表示

2022年1月~12月に読んだ書籍紹介

# はじめに
未経験ながらエンジニア転職を目指している22歳のTunです!
自己紹介は一番最初の投稿に記載していますので、そちらをご覧いただければ幸いです。

今回は、昨年2022年の1月から12月まで読んだ書籍の紹介を、自分の感想を交えながら紹介していきたいと思います。
では早速、時系列順に紹介していきます
# 1月15日~31日
## HTML&CSS基礎編
① [1冊ですべて身につくHTML & CSSとWebデザイン入門講座](https://www.amazon.co.jp/1%E5%86%8A%E3%81%A7%E3%81%99%E3%81%B9%E3%81%A6%E8%BA%AB%E3%81%AB%E3%81%A4%E3%81%8FHTML-CSS%E3%81%A8Web%E3%83%87%E3%82%B6%E3%82%A4%E3%83%B3%E5%85%A5%E9%96%80%E8%AC%9B%E5%BA%A7-Mana/dp/4797398892/ref=asc_df_4797398892/?tag=jpgo-22&linkCode=df0&hvadid=295723

元記事を表示

OTHERカテゴリの最新記事