概要
第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章:関数の作り方を熟知しよう
関数宣言・関数式・アロー関数の違いを知ろう
……suin
- 第2章:意外と奥が深い引数の使い方
知っておくべき便利機能&気をつけるべき仕様
……suin
- 第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】災害時にエンジニアが活躍する,よりオープンな国家を作れ!……古橋 大地
サポート
ダウンロード
P.134 連載「UNIXテキスト処理の極意」サンプルコードのダウンロード
(2022年1月18日更新)
記事で使用しているサンプルコードを以下からダウンロードできます。ダウンロードファイル「07.zip」は圧縮ファイルです。解凍したうえでご利用ください。
詳細については,記事を参照してください。
なお,このサンプルは学習・実験用を目的としております。オリジナルの著作権は著者に帰属しますが,読者が断りなく任意に利用・改変することができることとします。
- ダウンロード
- サンプルコード(07.zip)
免責:本サンプルを使用することによって,使用者が受けたあらゆる不利益に対して,原著者および技術評論社はその責任を負いません。
正誤表
本書の掲載内容に下記の誤りがございました。読者の皆様,および関係者の方々にご迷惑をおかけしましたことをお詫び申し上げます。
P.27 第1特集第2章「意外と奥が深い引数の使い方」 リスト6 1行目
誤 | function foo(a, b, ...others) => {
|
---|
正 | const foo = (a, b, ...others) => {
|
---|
P.27 第1特集第2章「意外と奥が深い引数の使い方」 リスト11 2行目
誤 | console.log(typeof null); // "object"d
|
---|
正 | console.log(typeof null); // "object"
|
---|
最後の「d」が不要でした。
P.131 連載記事「Pythonモダン化計画」 脚注8
誤 |
https://github.com/psf/black/blob/main/.pre-commit-hooks.yam
|
---|
正 |
https://github.com/psf/black/blob/main/.pre-commit-hooks.yaml
|
---|