WEB+DB PRESS Vol.127

今号の特集概要

特集1
実践リファクタリング
凝集度と結合度を学び,保守性と生産性を高める

凝集度と結合度は,保守性と生産性の高いコードを書くための尺度です。順次,選択,反復という要素を持つ構造化プログラミングをベースとした,現代の多くの言語に適用できます。オブジェクト指向固有のデザインパターンやSOLID原則以上に,日常的に使う機会が多いかもしれません。本特集では,関数の分け方の基準として凝集度と結合を学び,実際のコードをどのようにリファクタリングしていけば良いか解説します。

特集2
Elixirによる高速なWeb開発!
作って学ぶPhoenix

本特集では,ElixirとPhoenixでWebアプリケーションを開発する方法を解説します。Elixirは,低遅延で高い可用性を実現するプログラミング言語で,その文法はRubyから大きく影響を受けています。Phoenixは,ElixirにおけるデァクトスタンダードなWebアプリケーションフレームワークで,リッチなフロントエンドを持つ昨今の開発で求められる要素がすべて組み込まれています。特集を通してRealWorldという一つのWebアプリケーションを作ることで,ElixirとPhoenixについて実践的に学んでいきましょう。

特集3
入社した会社にすばやく適応する
事業構造,カルチャー,コードの把握

転職もしくは新卒エンジニアとして働き始めるとき,すばやく会社やチームに適応できるに越したことはありません。そのためには,その会社の事業や組織,開発についての情報のインプットと,自分自身の言葉によるアウトプットとで良い循環を生み出すことが重要です。本特集は,まったく違う文化,組織へ転職した筆者が,できるだけ早くパフォーマンスを出して貢献できるようになるために行ったことを紹介します。

目次

特集1
実践リファクタリング
凝集度と結合度を学び,保守性と生産性を高める

  • 第1章:良いコードとは何か
    リファクタリングで目指すべきもの……佐野 健介
  • 第2章:関数の役割の少なさを表す「凝集度」
    単機能を実現し,再利用性を高める……佐野 健介
  • 第3章:関数の独立性を表す「結合度」
    疎結合を実現し,意図せぬ影響を防ぐ……佐野 健介
  • 第4章:時間的凝集と論理的凝集への対応
    サーバサイド/クライアントサイドの実例で学ぶ……佐野 健介
  • 第5章:DRYと凝集度
    間違ったDRYと正しいDRYを見分ける……佐野 健介

特集2
Elixirによる高速なWeb開発!
作って学ぶPhoenix

  • 第1章:Elixirはじめの一歩
    インストール,よく使うコマンド,プログラミングスタイル……栗林 健太郎,高瀬 英希
  • 第2章:PhoenixによるWebアプリケーションの開発
    高性能! 高生産性! Elixir製のWebアプリケーションフレームワーク……大聖寺谷 一樹
  • 第3章:Ectoによるデータベースアプリケーションの開発
    使いやすくて高機能! Phoenixのデータベースライブラリ……山内 修
  • 第4章:phx.gen.authによる認証機能の開発
    カスタマイズも簡単! Phoenixの認証ライブラリ……隆藤 唯章
  • 第5章:LiveViewによるフロントエンドの開発
    JavaScriptほぼ不要! PhoenixのSPAライブラリ……齋藤 和也

特集3
入社した会社にすばやく適応する
事業構造,カルチャー,コードの把握

  • 第1章:適応の目的と基本戦略
    インプットとアウトプットの循環……丸山 亮
  • 第2章:知り方を知る
    人との会話,理解の言語化……丸山 亮
  • 第3章:事業を知る
    事業構造の俯瞰,ドメイン知識の吸収……丸山 亮
  • 第4章:組織を知る
    組織フレームワークの把握,カルチャーの体験……丸山 亮
  • 第5章:開発を知る
    開発スタイルの把握,施策のリリース……丸山 亮
  • 第6章:コードを知る
    メンタルモデルの構築,開発環境の改善……丸山 亮

一般記事

  • コミッタ直伝! 速習Ruby 3.1
    新文法,開発環境改善,性能向上……笹田 耕一
  • 速攻Laravel 9
    進化し続けるPHPフレームワーク,2年半ぶりのLTS!……後藤 和也

連載

  • 現場のPython ── システム開発も! 機械学習も!
    【第11回】データサイエンスのためのテスト入門 ……pandasやNumPyのテスト機能を使って快適に実験しよう……古木 友子
  • Goに入りては…… ── When In Go...
    【第29回】JSONストリーミングAPI ……複雑な構造体も楽々パース!……牧 大輔
  • Ruby 3標準添付ライブラリ紹介
    【第5回】HTTP,SMTPを手軽に扱う ……Net::HTTP/Net::SMTP……西山 和広
  • PHPで複雑さに立ち向かう
    【第5回】変更を容易にするコード部品化の技法……ファイル・関数での分割からOOP機能の活用,@psalm-internalまで……五十嵐 進士
  • 見なおそう! モダンJavaの流儀
    【最終回】今,覚えておくべき新しい言語仕様 ……レコードクラス,シールクラス,switch式,パターンマッチング……櫻庭 祐一
  • フロントエンド羅針盤 ── Web体験向上へのアプローチ
    【最終回】品質の優れたプロダクトを継続的に提供 ……チームで使えるデザインシステムを作る……原 一成

コラム

  • 縁の下のUIデザイン ── 少しの工夫で大きな改善!
    【最終回】ユーザーに使い方を文字で説明するためのUI……池田 拓司
  • 漫画から学ぶマネジメント
    【最終回】『宇宙兄弟』の南波六太から学ぶ逆境への立ち向かい方……是澤 太志
  • ちょっと気になる隣の技術畑
    【第4回】神話と楔形文字と,ときどきUnicode ……ゆーさん……日高 正博
  • はまちちゃんとわかばちゃんのREADER'S FORUM ── 読者のページ
    【第78回】……はまちや2,竹原