サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
今年の「かわいい」
codezine.jp
では、Rustの基本情報から学んでいきましょう。 「Rust」の基本情報 「Rust」は、WindowsでもmacOSでもLinuxでもクロスプラットフォームに対応した高速でスマートなプログラミング言語です。「Rust(ラスト)」とは、錆という意味でロゴマークもそこからデザインされたのでしょう。 「Rust」のロゴ Rustのメモリの管理の仕方、「所有権」とは? Rustはメモリの管理の仕方がスマートな、とても優れたプログラミング言語です。 「所有権」という独特な概念でメモリを管理して、ビルド時にメモリリークが起こる可能性を排除するので、極めてメモリリークが起こりにくくなっています。例えば、次の図のように「スコープ」内だけ変数にメモリを所有する権利を与えて「スコープ」を抜けるときには、「所有権」を持つ変数のメモリを解放します。 「Rust」の「所有権」の仕組み Rustの追加機能、「クレー
PHPに関する日本最大のカンファレンスである「PHPカンファレンス2024」が2024年12月22日(日)に開催されます。カンファレンス盛り上げ企画として、開催までの5カ月間にわたりPHPの技術記事の連載を企画しました。この記事をお読みの皆さんには、PHPのさまざまな技術に触れながらカンファレンス当日を楽しみにしていただければと思います。第5回目の今回は、オープンソースのツールである「PlantUML」「php-class-diagram」を使って、既存のPHPのソースコードからソフトウェア設計の把握や改善に役立つクラス図を自動生成する方法を紹介します。 複雑なシステムの課題 PHPは伝統的に、シンプルなWebサイトを迅速に立ち上げるためのツールとして威力を発揮してきました。 迅速に立ち上げられたシステムも、機能追加を繰り返しながら運用を続けていると、プログラムが複雑化して修正や機能追加を
本連載では、VSCodeにフォーカスし、基本的な使い方から拡張機能の活用、そして本格的な開発現場での利用を想定した高度な機能までを紹介していくことで、読者がVSCodeマスターになるお手伝いをします。VSCodeは、プログラミング以外の用途にも使えます。第11回では、VSCodeをUML図やフローチャートなどのダイアグラム作成のツールとして使う方法を紹介します。 はじめに Microsoftの提供するVisual Studio Code(VSCode)は、2015年の最初のリリースから、今では開発用エディタの定番の座を占めるまでになりました。これには、無償で使えることも大きいですが、何よりエディタとしての使いやすさ、そしてさまざまな拡張機能によっていくらでも使い勝手を向上させたり、利用の領域を拡げたりできることも大きいでしょう。 本連載では、このVSCodeにフォーカスし、基本的な使い方か
調査結果によれば、調査対象者の年収中央値は850万円だった。2023年から横ばいとなり、年収2000万円以上は10%だった。 外資系企業で働いているエンジニアの年収中央値は、日本企業と比較して47%高い。また、経験年数10〜20年のエンジニアで比較すると外資系企業の年収中央値の方が、日本企業よりも75%以上高くなっている。 流暢にまたは常に英語を使うエンジニアの年収中央値は950万円でもっとも高くなった一方、英語をまったくまたはめったに使わないエンジニアの年収はもっとも低く、中央値は550万円だった。 転職活動についての質問では、リモートワークができないという回答者の39%、フルリモート可能なエンジニアの10%が転職活動中と答えており、リモートワークの機会や時間が少ないエンジニアほど、転職を希望する傾向が強い。 エンジニア経験年数の中央値は、男性が7年、女性が6年だった。男性の25%が13
ITエンジニア本大賞2025の一般Web投票、締切が12月8日(日)に迫っています。「おすすめしたい本がある!」というエンジニアの皆さん、投票はお済みでしょうか。まだの方はお忘れなく! 今回はITエンジニア本大賞を振り返り、これまでのどんな本が選ばれてきたのか、過去の技術書部門・ビジネス書部門の大賞をまとめて紹介します。 ITエンジニア本大賞はCodeZineを運営する翔泳社が主催。2014年から続いている「ITエンジニアがITエンジニアに読んでほしい技術書・ビジネス書を選ぶイベント」です。 これまで数々の名著が大賞を受賞してきましたが、皆さんが読んだことのある・知っている本は何冊あるでしょうか。今回は歴代の大賞を一挙に紹介しますので、読もうと思っていた本や、ノーチェックだった本があれば、この機会に読んでみてください! ITエンジニア本大賞2025の一般Web投票はまだ受付中(12月8日ま
一定の規模の開発であればドキュメントは必須です。ドキュメントを使わない開発が存在するならば、すべての情報を口頭やチャットを使い、ソースコードレベルで記述する必要があります。一方で、効果的に記述されて運用されているドキュメントには、開発組織・チームをスケールさせる力があります。ドキュメントは互いの時間を拘束せずに非同期で書いたり、読んだりできるからです。したがって、ドキュメントを効果的に使えるならば、開発組織・チームの生産性を向上できます。しかし、ドキュメントの書き方をしっかり学んでいる人は多くないです。もしドキュメントライティングの基礎技術を事前に身につけられるならば、今後の開発者人生において非常にレバレッジの効くスキルとなります。本記事では、ドキュメントライティング術を学んだことがない人向けに、「ここまでは最低限知っておくと良い」という知識をお伝えします。 対象読者 対象読者は、以下を想
キャリアの転換点に立つエンジニアにとって、コミュニティへの参加は新たな視座と人とのつながりをもたらします。2024年12月7日に翔泳社 CodeZine編集部が開催する、エンジニアの生きざまをブーストするカンファレンス「Developers CAREER Boost 2024」では、技術習得からマネジメントまで、多様な学びの場を提供する11のコミュニティが、エンジニアのキャリアと学びを共に応援するべく、コミュニティスポンサーをつとめています。Go言語やキーボード自作といった専門的な学びの場から、エンジニアリングマネージャー同士の経験共有の場、さらにはプロダクト開発やアジャイルの実践知を得られる場まで。本記事では、エンジニアの皆さんの今後のキャリアを深化させるのにふさわしい、オンライン・オフライン両方で活動するコミュニティをご紹介します。 コミュニティへの参加は、技術力の向上だけでなく、新た
まずは、アプリ開発を行える環境を整えるところからはじめていきましょう。 開発環境のセットアップ アプリ開発に必要なもの この連載のアプリ開発で必要になるのは、次の4点になります。 インターネット環境 Mac Apple Account Xcode iPhoneアプリを開発するためには実機のiPhoneが必要だと思われるかもしれませんが、この連載では実機のiPhoneを使用せずに進めていくため、持っていない方でも安心してアプリ開発を進めることができます。 インターネット環境 XcodeのダウンロードやApple Accountの作成にインターネットを使用します。 この連載のアプリ開発では、開発環境のセットアップ以外ではインターネット環境が必要ではありませんが、調べ物をしたり、本格的なアプリ開発を行う時には必要になってくるため、インターネット環境がある方が望ましいです。 Mac 執筆時点での最
Flutterアプリ開発における最大の利点は、各OS用のネイティブ言語を使わず開発できる点です。同様に、環境もほぼ気にせず、開発を進められます。しかし、いざ本番としてリリースしようとすると、アプリ名やアイコンなどのリリース設定の違いでさえ、各ネイティブ環境の違いに困惑してしまうケースがあります。今回は、こういった問題を解決するための便利なツールについて紹介します。 AndroidとiOSアプリの基本的設定の違い まず、最初にFlutterにおけるAndroidとiOSアプリの管理についておさらいします。 Flutterの場合、ターゲットとするAndroid、もしくはiOSのプロジェクトファイルが完全に内包されています。従って、Android向けのアプリ設定であれば、図1のようにAndroidプロジェクト内のファイルを開き、設定ファイルを編集すれば問題ありません。 図1:Android向けプ
正式リリースされた二つの機能 本連載は、フロントエンドフレームワークVueのアップデート内容を紹介しているものです。今回は、2023年12月にリリースされた3.4、および、2024年9月にリリースされた3.5の内容をまとめて紹介します。 3.4、3.5ともに、SFCのビルドの改善やリアクティブシステムの改善など、パフォーマンス面での改善もかなり行われていますが、こういった目に見えない部分だけでなく、目に見える機能面でもいくつか新しいものが導入されています。 その中から最初に紹介するのが、以前は実験的リリースだった機能が正式リリースとなったふたつの機能です。実はこれらの機能は、第1回ですでに詳細に紹介しています。 正式リリースとなったdefineModel() ひとつめは、defineModel()マクロです。これは、v-modelによる新しい値の自動格納の仕組みを簡潔に記述できるようにした
米GitHubは、AIアシスタントであるGitHub Copilotを使用して生成されたコードが、どの程度機能的で読みやすく、信頼性があり、保守しやすく、簡潔で、承認される可能性が高いかを明らかにすべく実施した、ランダム比較試験の結果を11月18日(現地時間)に発表した。 同試験では、5年以上の経験を有する開発者202名が参加し、半数にはGitHub Copilotへのアクセスがランダムに割り当てられ、残り半数にはAIツールを使用しないよう指示が与えられている。参加者全員に、WebサーバのAPIエンドポイントを記述するコーディングタスクを完了するよう依頼し、その後単体テストと専門家のレビューによってコードを評価した。 試験結果のうち、いくつの単体テストに合格したかをみると、GitHub Copilotを使用して作成されたコードは、AIツールを使用せずに書かれたコードと比較して、はるかに多く
ここ2〜3年で、GitHub Copilotなど、生成AIを利用した開発者支援サービスが続々登場した。すでに業務で利用されているという皆さんも少なくないだろう。一方で、「使ってはみたが、期待外れだった」と感じている人も多いに違いない。本セッションのスピーカーは、「現場では得意不得意を見極めて、使い道を考えている」と語る。そして、「ソフトウェアエンジニアリングの研究コミュニティでも研究が進んでおり、得意不得意が論文という形で表れつつある」ともいう。このセッションでは、開発現場でコンサルタントやエンジニアとして活躍を続ける和田卓人氏と、アジャイルコーチとして開発の現場を支援しているやっとむ氏の2人がモデレーターを務め、名古屋大学大学院情報学研究科の森崎修司氏が、最新の研究事例と、自身の研究を紹介しながら、生成AIの得意、不得意について語った。 研究者が語る、生成AIの得意/不得意とは? まず森
CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。
WebVMは、仮想化エンジンであるCheerpX、仮想ストレージバックエンド、ネットワーク層、エミュレートされたグラフィカルデバイスで構成されている。 CheerpXは、x86命令からWebAssemblyへの効率的なJust-In-Timeコンパイラと、Linuxシステムコールのエミュレーションレイヤに基づく、x86バイナリコード用のWebAssemblyをベースにした仮想化エンジン。標準のJavaScript/WebAssembly、およびブラウザAPIのみで実装されているため非常に安全で、CDNまたはNPMパッケージを使って、他のJavaScriptライブラリと同様に使用できる。 WebVMでは、WebSocketを使用してCloudflare Workerバックエンドからオンデマンドで128kbのディスクブロックをダウンロードする、ストリーミングディスクデバイスを実装している。Cl
「RAG・プロンプト管理」画面のイメージ RAG機能は、AIが回答を生成する際に外部データベースから情報を参照して、その情報に基づいて回答を生成する技術であり、従来の生成AIが抱える「ハルシネーション問題」(AIが事実でない情報を生成してしまう問題)を大幅に軽減し、より正確で信頼性の高い回答の提供を可能にする。同機能はとりわけ、社内ナレッジ活用や顧客サポートでの活用が期待される。 プロンプト管理機能は、企業内で使用するプロンプトを一元管理することで、それぞれの部門やチームが必要な情報へ直ちにアクセスできるようにする。プロンプトの履歴やバージョン管理を通じて、組織内のプロンプトの再利用性を高め、AI回答の一貫性と効率性の確保が可能になる。 RAG機能やプロンプト管理機能を使用することによって、zip形式で圧縮してアップロードするだけで、QA履歴やマニュアルなどを追加や変更でき、追加料金なしで
技術者の中には、「これは素晴らしい!」「みんなに勧めたい!」と感じる"推し"の技術を持っている人も少なくないだろう。一方で、その技術の素晴らしさを上司や経営層に熱心に提案しても、渋い顔をされたり、やんわり断られたりした経験があるかもしれない。技術的に優れているのは明白なのに、推しの技術はなぜ経営層に受け入れられないのか。その背景には、技術力だけでは乗り越えられないビジネスの壁が存在している可能性がある。本セッションでは、株式会社NTTデータグループ 技術革新統括本部 Apps & Data技術部の菅原 亮氏が、エンジニアが"推し"の技術を組織に採用させるための具体的な方法について語った。 戦略と戦術の違い、エンジニアが陥りがちな失敗とは? 初めに菅原氏は、自らのキャリア初期を振り返りながら、エンジニアが陥りがちな「推し技術を採用させる難しさ」について語った。駆け出しのエンジニア時代、技術へ
PHPに関する日本最大のカンファレンスである「PHPカンファレンス2024」が2024年12月22日(日)に開催されます。カンファレンス盛り上げ企画として、開催までの5カ月間にわたりPHPの技術記事の連載を企画しました。この記事をお読みの皆さんには、PHPのさまざまな技術に触れながらカンファレンス当日を楽しみにしていただければと思います。 第4回目の今回は、PHPのパッケージ管理ツールとしておなじみの「Composer」について、どのようにパッケージの存在を確認し、バージョンを解決するのか、一連の流れを見ていきましょう。 パッケージ管理ツール「Composer」 今日では、多くのプログラミング言語において、開発プロジェクトにパッケージ管理ツールが欠かせないものとなりました。 既存資産の活用で「車輪の再発明」を避け、開発の効率化を助けてくれます。また、セキュリティ意識が高まる中で、厳密なバー
現代的なアプリ開発において、高パフォーマンスを実現するには並行処理の知識が欠かせません。エンジニア初級者が学ぶような「逐次実行を前提にしたプログラム」では理解しづらい概念や特徴があるため、どのように並行処理プログラミングを行うのかはしっかり学ぶ必要があります。 本書では著者のユニークな語り口と楽しいイラストによって、並行処理プログラミングの核となる知識を徹底的に詳しく解説。様々なハードウェアアーキテクチャの長所と短所も理解でき、スケーラブルな並行処理システムの実装が可能になります。 エンジニアとしてある程度の実力がついてきたと感じている人がぶつかる壁を、本書で乗り越えましょう。 目次 Part 1 タコのオーケストラ:並行処理の交響曲 Chapter 1 並行処理 Chapter 2 直列実行と並列実行 Chapter 3 コンピュータの仕組み Chapter 4 並行処理の構成要素 Ch
テキストエディタとして活用(2) 禅モードを使う 禅モード(Zenモード)とは、エディタ上に表示されるUI要素をできるだけ少なくしてフルスクリーン表示とし、文章の入力・編集作業に集中できるようにするモードです。集中したいのは文章に限らずコーディングでも同じだと思いますが、書く、消す、以外の機能をあまり使わない文章の入力・編集作業では、特に禅モードは有用でしょう。 禅モードへの移行(切り替え)には、いくつかの方法があります(図3)。 メニューから[表示]-[外観]-[Zen Mode]を選択 コマンドパレットを開き([Command]+[Shift]+[P」/[Ctrl]+[Shift]+[P])、「zen」と入力すると「表示: Zen Modeの切り替え」がメニューに表示されるので選択 キーボードショートカットとして[Command]+[K][Z]/[Ctrl]+[K][Z] 図3:禅モー
Markdownエディタとして活用 Markdownは、軽量なマークアップ言語の一つです。Markdown形式のファイルは、Qiitaにおける記事作成や、GitHubのREADMEの記述にも用いられており、簡単に書けて表現力もあるフォーマットとして広く使われています。VSCodeでも、拡張子が.mdであるファイルをMarkdown形式として扱い、シンタックスハイライトなどの基本的な機能を提供しています。 プレビューを表示する Markdownに慣れないうちは、独特のマークアップ(記号)と見た目の対応がなかなかイメージできないので、プレビューを見ながら書けたら便利でしょう。VSCodeでは、Markdownファイルの編集中に、プレビューを表示させることができます。同一のエディタグループとするか、あるいは新たなエディターグループとして横に表示するか、2通りの操作があります(図8)。 同一エディ
本連載では、VSCodeにフォーカスし、基本的な使い方から拡張機能の活用、そして本格的な開発現場での利用を想定した高度な機能までを紹介していくことで、読者がVSCodeマスターになるお手伝いをします。VSCodeは、プログラミング以外の用途にも使えます。第10回では、VSCodeをドキュメント作成のためのテキストエディタ、Markdownエディタとして使う方法を紹介します。 はじめに Microsoftの提供するVisual Studio Code(VSCode)は、2015年の最初のリリースから、今では開発用エディタの定番の座を占めるまでになりました。これには、無償で使えることも大きいですが、何よりエディタとしての使いやすさ、そしてさまざまな拡張機能によっていくらでも使い勝手を向上させたり、利用の領域を拡げたりできることも大きいでしょう。 本連載では、このVSCodeにフォーカスし、基本
2015年にリリースされたRustが近年注目されています。RustはMozilla社の社員による個人プロジェクトから始まり、当初はFirefoxなどに使われていました。次第にパフォーマンス、安全性、生産性の高さが評価され、様々なソフトウェアやハードウェアへの組み込み、Webアプリやゲームなどに利用されるようになりました。Webサービスのバックエンド開発にも活用されており、利用を考えている方もいるのではないでしょうか。今回はRustの入門書『バックエンドエンジニアを目指す人のためのRust』(翔泳社)から、なぜRustが注目されているのか、その魅力を紹介します。 本記事は『バックエンドエンジニアを目指す人のためのRust』(著:安東一慈/大西諒/徳永裕介/中村謙弘/山中雄大)の「第1章 Rustはどういうところで使われているのか?」から抜粋したものです。掲載にあたって編集しています。 Rus
本記事では、React Nativeベースのフレームワーク「Expo」がどんな仕組みなのか、Expoによってどのようにモバイルアプリを開発・実行できるのかを解説します。ベースエンジンとなっているReact Nativeはどのようなものかを見た後、Expoはどのような側面からアプリ開発をサポートするのかを解説していきましょう。動作確認用のExpo Goアプリの使い方も解説します。 対象読者 モバイルアプリを作ってみたいReactエンジニア モバイルアプリのリリース作業を手軽に行いたい方 前提環境 筆者の検証環境は以下の通りです。 macOS Sonoma 14.6.1 Node.js 22.8.0 npm 10.8.2 Expo 51.0.32 React Native 0.74.5 Webに軸足を置いたモバイルアプリ開発の需要 モバイルアプリ開発の分野は、他の多くの分野と同じように進化を続
Gmailの新ガイドラインが目指すものとは? 2023年10月、Gmailからメール送信者向けの新しいガイドラインが発表された。それに対し、海外では相当な反応があった。メールは古くからある技術だが、新しい技術や環境への対応は常に行われており、時代の要請も踏まえてこれまでの常識が新常識に置き換わっている部分も多い。 実際、新ガイドラインが求めていることは、ネット社会の環境変化などを受けたもので、中井氏によれば「その要点は2つに絞ることができる」と言う。1点目は認証と信頼性の確保だ。送信者の身元が明確で、安全かつ信頼できる方法で送信している必要がある。2点目は送信者としての適切な振る舞いだ。受信者が必要としているメールを送ること、不要なメールは受け取らない選択ができることなど、受信者が快適であるような施策が求められている。 新ガイドラインでは、大きく2つの対応が求められた Gmailのようなメ
これまで本連載ではPlatform Engineeringについてさまざまな観点から解説してきました。前半では理論編として、既に提唱されているソフトウェア開発の重要な考え方(SREやTeam Topologies等)との関係を整理していくアプローチを中心に理解を深め、後半には実践編としてInternal Developer Portalのハンズオンや、プラットフォームをプロダクトとして構想し成長させる進め方について解説してきました。今回とその次の回では、「Platform Engineering Kaigi 2024」で共有された知見や、基調講演でも登壇した株式会社メルカリ 中島大一さんへのインタビューを通して、Platform Engineeringの実践のポイントについて紐解いていきます。 Platform Engineeringの先人に学ぶ──PEK2024の講演より 2024年7月
生成AIの急速な進化は、多くの分野で生産性の向上や人件費削減などの利益をもたらしている。しかしその反面、ソフトウェア開発におけるテスト工程の複雑化などにより、品質保証のプロセスにおいてさまざまな問題が発生している。こうした問題への対処として、開発プロセスの早い段階でテストを行うことで問題を早期に発見し修正する「シフトレフト」、リリース後の本番環境で、実際のユーザーデータを用いて問題を発見し迅速に修正する「シフトライト」の2種類のアプローチが試みられている。こうした複雑化の背景や、シフトレフト/ライトの考え方について、高橋寿一氏によるセッションが行われた。 生成AIで複雑化するテストプロセスとソフトウェア品質 セッションの冒頭、高橋氏は「AIの品質保証は、今後かなり面倒になる」としたうえで、「AIの台頭がさらに進むと、品質保証にかかるテスト費用は増える。このテスト費用はここ30年変わらなかっ
本書はRustを学びたい人のための入門書です。下記のようなプログラムを作りながら、Rustならではの生産性の高いプログラミング手法を解説します。 様々な課題を細分化してステップバイステップで解説するので、初心者でもじっくり理解しながら仕事に直結するスキルを身につけられます。 計算クイズ ポーカーゲーム メモリ付き電卓 家計簿プログラム 本棚ツール 勉強会カレンダーツール TODOアプリ 画像変換ツール また、バックエンドエンジニアとして就職・転職する際に必要となる入社試験を想定した問題も掲載しています。Rustによるバックエンドのスキルアップができるだけでなく、「仕事に活かす」「仕事にする」ための手法が学べる1冊です。 目次 第1章 Rust はどういうところで使われているのか? 第2章 Rust のプログラムを動かせるようになろう[ Hello, World ] 第3章 インタラクティブ
近年はソフトウェア開発技術の進化によって技術のコモディティ化が進み、エンジニアはより本質的なプロダクト的な価値に集中できるようになりました。本記事は、プロダクト的な価値を中心に置いた「プロダクトエンジニア」という職種について解説します。プロダクトエンジニアの出現の背景をひも解くとともに、フルスタックやフルサイクルエンジニアの役割と比較して理解を深め、プロダクトエンジニアがどういう職種なのか、具体的に紹介します。 プロダクトエンジニアの出現、領域の越境と拡大 こんにちは、アセンド株式会社CTOの丹羽です。突然ですが「プロダクトエンジニア」という言葉を聞いたことはありますか? プロダクトエンジニアとは、開発の中心にプロダクトの価値追求を置くソフトウェアエンジニアの職種を指します。近年、スタートアップ企業を中心にプロダクトエンジニアという職種を新たに設定し、採用募集を行う企業が増えています。 ソ
「スタディングテック」は、オンラインでプログラミングが学べる動画学習サービスで、基本コースは無料となっており、会員登録のみでプログラミングの学習動画を視聴できる。 提供コースとしては、人気プログラミング言語ランキングにて1位を獲得した「Python」や、近年需要が急速に高まっている「生成AI」などを用意しており、生成AIの活用、プログラミングの基礎からWeb開発・アプリ開発まで、未経験からITエンジニアになるためのスキルを身につけられる。 提供コースは以下の通り。 Python基礎 JavaScript入門 HTML/CSS入門 Astro入門 生成AI入門 Git/Githubの使い方 VSCodeの使い方 今後は、以下のコース提供も予定する。 PHP入門 Node.js入門 Next.js入門 Laravel入門 React入門 あわせて、現役エンジニアによるサポートが受けられる有料プ
次のページ
このページを最初にブックマークしてみませんか?
『CodeZine:プログラミングに役立つソースコードが満載な開発者のための実装系Webマ...』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く