Software Design 2022年2月号
2022年1月18日紙版発売
2022年1月18日電子版発売
B5判/192ページ
定価1,342円(本体1,220円+税10%)
ただいま弊社在庫はございません。
今号の特集概要
第1特集
オブジェクト指向,関数型,それぞれのパラダイムに触れる
JavaScriptの関数を極める
初期のプログラミング言語では,関数というと処理の部品化・共通化の手段でした。しかし,徐々にオブジェクト指向や関数型プログラミングの考え方が各言語に実装されていき,いまや関数は実に多様で抽象的な存在になっています。関数の高度な機能を使いこなせるかどうかで,コードの記述量や実現できる処理に大きな違いが出てきます。
本特集では,JavaScriptの関数の豊富な機能と使いどころを紹介します。即時関数,再帰関数,高階関数,コールバック関数,クロージャなどの多様な機能・考え方に触れ,コーディングにおける視野を広げましょう。
第2特集
GitHub Actionsで簡単・快適CI/CD
GitHubベースの高機能な自動化ツールを体験しよう
開発作業を効率化し,負担を減らすために,CI/CDの導入は重要です。とはいえ目の前の作業に追われ,なかなか導入できていないという人もいるのではないでしょうか。
本特集では,そのような人を対象に,GitHubベースのCI/CDツール「GitHub Actions」を使ったCI/CDの始め方を説明します。CI/CDとGitHub Actionsの概要を紹介し,ハンズオン形式でCI/CDパイプラインの作り方を解説します。さらに,本格導入したい人向けの発展的な使い方も取り上げます。本特集で,時短開発の第一歩を踏み出しましょう。
なお,本特集のサンプルコードはhttps://github.com/yokawasa/software-design-github-actions-samplesからダウンロードできます。
特別企画
セキュリティキーITエンジニア流使いこなし術
[前編]Twitter,GitHub,AWSでセキュリティキーを使う
昨今のWebサービスでは二要素認証が当たり前になってきました。でも,パスワードとSMSの二要素認証ではもう危険かもしれません。より強固な対策として注目されているのがセキュリティキーというデバイスです。前後編の2回にわたり,日常のWeb閲覧のほか,GitHubなど開発でセキュリティキーを使う方法を紹介します。
短期連載
Cypressで作る“消耗しない”E2Eテスト環境
[2]実運用に効くコードの書き方&便利な機能
本連載ではE2Eテストのフレームワークである「Cypress」についてお話しします。Cypressの基本的な使い方やその特徴,さらにはアドバンスドな使い方まで,3人の筆者が紹介していきます。開発者フレンドリーなCypressを使って,消耗しないテスト環境を作りましょう。
短期連載
リアルタイム通信アプリを支える技術
[3]リアルタイム通信アプリの実装概念
マルチプレイヤーゲーム,バーチャルライブなど,いまや複数のユーザーが同時に利用するサービスやイベントは珍しくありません。そんなリアルタイム通信アプリを実現するためのフレームワークエンジンを開発するDiarkisのエンジニアが,リアルタイム通信の技術やアーキテクチャの今をダイジェストで解説します。
目次
第1特集
オブジェクト指向,関数型,それぞれのパラダイムに触れる
JavaScriptの関数を極める
- 第1章:関数の作り方を熟知しよう
関数宣言・関数式・アロー関数の違いを知ろう
- 第2章:意外と奥が深い引数の使い方
知っておくべき便利機能&気をつけるべき仕様
- 第3章:「関数は第一級オブジェクトである」とはどういうことか?
関数を関数の引数や戻り値にできると何が便利なの?
- 第4章:JavaScriptで関数型プログラミングを理解する
Reactの宣言的UIにも通ずるパラダイム
- 第5章:クロージャを理解する
関数がわかれば,クロージャがわかる
第2特集
GitHub Actionsで簡単・快適CI/CD
GitHubベースの高機能な自動化ツールを体験しよう
- 第1章:CI/CDにはGitHub Actionsをオススメする理由
豊富な機能と拡張性を兼ね備えた次世代自動化ツール - 第2章:GitHub Actionsによる自動化を体験
ビルド・テスト・デプロイを行うCI/CDパイプラインを構築 - 第3章:さらに自動化を進めるために知っておきたいこと
開発フローやタスク実行をすべてGitHubで効率化 - [特別企画]セキュリティキーITエンジニア流使いこなし術
【前編】Twitter,GitHub,AWSでセキュリティキーを使う - [短期連載]Cypressで作る“消耗しない”E2Eテスト環境
【2】実運用に効くコードの書き方&便利な機能 - [短期連載]リアルタイム通信アプリを支える技術
【3】リアルタイム通信アプリの実装概念 - ITエンジニア必須の最新用語解説
【157】Policy as Code - できる! 自作キーボード工房
【9】設計編<その6>配線しよう - 結城浩の再発見の発想法
【105】クラウドストレージ - Raspberry PiでエッジAI
【10】顔認識でプレイリスト自動再生 ~曲の再生 - 【最終回】イラストで明解Gitコマンド
【12】git cherry-pick - 明後日のコンピューティングを知ろう
【12】マイクロデータセンター - 分解教室
【9】高機能空撮ドローン「DJI MAVIC 3」 - ひみつのLinux通信
【96】ゴルゴB - 【新連載】データ生成技術で理解するディープフェイクのしくみ
【1】ディープフェイクと生成ディープラーニング - ディープラーニング高速化・軽量化技術の最前線
【5】分散学習による大規模深層学習への対応 - Pythonモダン化計画
【7】大規模Webアプリケーションの開発環境をモダナイズする - UNIXテキスト処理の極意
【7】sedを駆使して文字列を正規化する - チーム開発の視点が変わる アジャイル開発の新常識
【15】諦めてませんか? 大規模システムのテスト自動化 - ヤマハルーターネットワーク本格構築入門
【3】LAN構築編~WLX413/WLX212を使用したWiFi環境構築 - 【最終回】体系的に学ぶDockerネットワークのしくみ
【10】マルチホストネットワークの構築 - はじめよう,おうちクラウド
【4】Kubernetesクラスタをたてよう! - systemd詳解
【9】control group,slice unit,scope unit - こんなときどうする? エンジニアも知っておきたい法律知識
【6】第三者が開発したソフトウェアに不具合があった場合におけるベンダーの責任 - 【最終回】“学習する”チームで仕事をする
【12】なぜチームで働くのか 〜リソース効率からフロー効率への価値転換 - あなたのスキルは社会に役立つ~エンジニアだからできる社会貢献~
【122】災害時にエンジニアが活躍する,よりオープンな国家を作れ!