Software Design 2020年5月号

今号の特集概要

第1特集
データ型を正しく説明できますか?
静的型付け/動的型付け言語の違い

データ型を正しく扱うことは,プログラムの安全性・生産性の向上につながります。最近では動的型付け言語でも,型チェックや型アノテーションなどの機能により型の恩恵を受けられるものがあります。また,静的型付け言語でも型推論によって記述を楽にできるものがあります。動的型付け/静的型付け言語それぞれのアプローチで,型を効果的に使うための手段が提供されています。ただし,データ型は,使い方によってはかえって安全性・生産性を損ねることもあるデリケートなものです。型のメリットを最大限に引き出すには,動的型付け/静的型付け言語の違いや,各言語におけるデータ型の扱いへの理解が欠かせません。本特集で型についてもう一歩踏み込んで学んでみましょう。

第2特集
低レイヤソフトウェア開発入門(前編)
Linuxカーネルを読み解く,OS・ベアメタルアプリを創る

ITエンジニアとして渇いていませんか? いつもと同じOS,いつもと同じアプリ,いつもと同じプログラミング環境に飽きませんか。本特集はそんな方に向けた記事です。コンピュータ技術の結晶であるLinuxカーネルはまるで大きな図書館です。何から読んでいけばいいのか,わからないと思います。まず第0章では攻略方法を示します。続いて第1章ではLinuxカーネルへの機能追加の方法を紹介します。そして第2章では直接的にハードウェアをコントロールするプログラミング方法(ベアメタルアプリ開発)を解説します。第3章では自作OSを開発します。今こそコンピュータと向き合い研究してみましょう。新たな技術力の向上の手がかりが得られるでしょう。

第3特集
Ubuntu 20.04 LTS要点解説
デスクトップとサーバで何が変わった?

令和最初のLTSリリースとなるUbuntu 20.04 LTS。第1章では,そのデスクトップ版とフレーバーの変更点を解説し,第2章ではサーバ関連の変更点をメインに紹介します。Ubuntu 20.04 LTS Serverでは,安定性を重要視しつつ最新のコンテナ機能やソフトウェアを取り込んでいるバランスのとれたリリースとなりそうです。

一般記事
Jupyter Notebookで解決するインフラ管理の手順書づくり
LC4RI――再構築可能なインフラのための文芸的コンピューティングのすすめ

「Jupyter Notebook」を中心的なツールとして使う,情報システムの構築・運用のための方法論「LC4RI(Literate Computing for Reproducible Infrastructure;再構築可能なインフラのための文芸的コンピューティング)」について紹介しました。

短期連載
スタートアップのためのAWSテクノロジー講座
【1】コンテナの前提知識・比較検討の視点

昨今注目を集めるコンテナ技術ですが,適切な技術選定を行い正しく活用するには,さまざまな考慮が必要です。本連載では,AWSのソリューションアーキテクトが,コンテナ技術をより良く扱うためのノウハウを提供します。第1回では,コンテナ技術に関連して「コンテナを理解するための前提知識・比較検討の視点」というテーマで解説しました。

目次

第1特集
データ型を正しく説明できますか?
静的型付け/動的型付け言語の違い

  • 第1章:データ型は何のためにあるのか?
    正しく学ぶプログラマーの必修科目
    …… 前橋 和弥
  • 第2章:静的型付け/動的型付け言語の違い
    適材適所で使えていますか?
    …… 前橋 和弥
  • 第3章:Pythonでも型チェックしよう
    型ヒントの概要を押さえる
    …… 森本 哲也
  • 第4章:TypeScriptにみる漸進的型付けのハマりどころ
    安易な使用に注意! 型安全性を無に帰す機能とは
    …… うひょ
  • 第5章:クラスは独自の型を定義するしくみ
    Javaにおける型とオブジェクト指向の深い関係
    …… 増田 亨

第2特集
低レイヤソフトウェア開発入門(前編)
Linuxカーネルを読み解く,OS・ベアメタルアプリを創る

  • 第0章:プログラミングの力を育てる現場がそこにある
    低レイヤソフトウェア開発への招待
    …… 武内 覚
  • 第1章:恐れることなく試してみよう!
    Linuxカーネル開発入門
    …… 武内 覚
  • 第2章:Toshokanを武器に,CPUのしくみを深く知る
    ベアメタルプログラミング入門(前編)
    …… 粟本 真一
  • 第3章:Unikernelの研究でOSの進化を考える
    OSvを使ったOS開発体験
    …… 金津 穂

第3特集
Ubuntu 20.04 LTS要点解説
デスクトップとサーバで何が変わった?

  • 第1章:Ubuntu 20.04 LTSとそのフレーバーの変更点
    Snapストアが本格採用,テーマ変更もワンクリックで
    …… あわしろいくや
  • 第2章:コンテナ時代のUbuntu 20.04 LTS Server
    インストールの自動化とクラウド・コンテナプラットフォームとしての機能強化
    …… 柴田 充也

一般記事

  • Jupyter Notebookで解決するインフラ管理の手順書づくり
    LC4RI――再構築可能なインフラのための文芸的コンピューティングのすすめ
    …… 長久 勝, 政谷 好伸(監修)
  • 【新連載】[短期連載]スタートアップのためのAWSテクノロジー講座
    【1】コンテナの前提知識・比較検討の視点
    …… 松田 和樹

Catch Up Trend

  • コードの安全性・安定性を⾼める開発サイクル
    【6】Tricentis Toscaを使ったテスト自動化でE2Eテストを最適化する
    …… 奥村 和彦

連載

  • ITエンジニア必須の最新用語解説
    【137】Bottlerocket……杉山 貴章
  • 【最終回】digital gadget
    【257】21年を振り返り,この先21年を考える……安藤 幸央
  • 結城浩の再発見の発想法
    【84】コピー&ペースト……結城 浩
  • [試して理解]Linuxのしくみ
    【25】リソース管理機能cgroup……武内 覚
  • 宮原徹のオープンソース放浪記
    【51】新型コロナウイルスの影響でOSC開催中止……宮原 徹
  • 【最終回】平林万能IT技術研究所
    【24】世界にカメラを向けて「世界の未来」を予測する!~ビリヤード映像から,撞かれ・衝突するボールの動きを予測する~……平林 純
  • ひみつのLinux通信
    【75】Webミーティング……くつなりょうすけ
  • Prometheusではじめるシステム監視入門
    【2】PromQLでメトリクスを抽出しよう……仲亀 拓馬
  • Ansible問題解決マップ
    【10】AnsibleでWindows Serverの構築を自動化する……後藤 卓
  • iPhone&Androidで動く! スマホARアプリ開発入門
    【10】経験値による振る舞いの変化……高橋 憲一
  • 作品で魅せるGoプログラミング
    【16】Goでテキスト変換をしよう(後編)……上田 拓也
  • Visual Studio Code快適生活
    【19】VS CodeでKubernetesを使ってコンテナの世界に触れてみる……職業「戸倉彩」
  • Vimの細道
    【50】Language Server Protocolを深掘り(coc.nvim・中編)……mattn
  • Web開発のためのネットワークはじめの一歩
    【4】Ethernetと光ファイバ……川上 雄也
  • 【最終回】あなたの知らないファイルシステムの世界
    【19】NOVAとEROFS……青田 直大
  • Monthly News from jus
    【103】仕事納めの年末シェル芸勉強会……横田 結菜
  • Hack For Japan+Code for Japan~あなたのスキルは社会に役立つ
    【101】ごみ出し情報アプリ 5374(ゴミナシ)の開発とその広がりについて……福島 健一郎