CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。
プログラミングで最も恐ろしい事態の1つはエラーでコードが動かないこと。数々の死線をくぐり抜けてきたプログラマーならまだしも、経験の少ないプログラマーにはエラー箇所を特定することもまた簡単ではありません。今回はそんなプログラマーのために、エラーが出たとき、実際にコードのどこに不具合があるのかを特定する「二分探索」という方法を書籍『コードが動かないので帰れません!』(翔泳社)から紹介します。 本記事は『コードが動かないので帰れません! 新人プログラマーのためのエラーが怖くなくなる本』(桜庭洋之/望月幸太郎)の「3-3 二分探索で効率的に探そう」を抜粋したものです。掲載にあたって一部を編集しています。 二分探索で効率的に探そう 小さなコードであればプリントデバッグだけですぐに不具合の原因を特定することができます。しかし、コードが大きかったり、複数のシステムが連携したりするような場合には、原因が潜
git-simは、Pythonで記述されたコマンドラインツールで、gitコマンドがローカルリポジトリに与える影響を示す画像(またはアニメーション)を、すばやく簡単に生成できる。 同ツールの利用によって、実際にコマンドを実行する前に、ユーザーがコマンドの処理内容を確認することが可能になり、リセット/マージがローカルリポジトリにどのように影響するかが、確実にわかるようになる。なお、動作のビジュアル化はJPEG形式の静止画のほか、MP4形式の動画としても出力できる。 同ツールのおもな目標は、開発者ワークフローの中断を最小限に抑えつつ、gitコマンドの効果をすばやく簡単に作成して視覚化することであり、今後の機能強化としては、 コマンドラインインターフェイスを提供して、開発者がローカルGitリポジトリ内のターミナルで直接git-simを実行可能にする gitコマンド(サブコマンドおよびオプション/フ
対象読者 RemixがNext.jsなどとはどんなところが違うのか知りたいJavaScriptエンジニア WebブラウザとNode.jsという異なるランタイムをそれぞれキャッチアップするのが辛くなってきたエンジニア 前提環境 筆者の検証環境は以下の通りです。 macOS Monterey 12.5.1 Remix 1.7.1 Webフロントエンド技術の広がり Webブラウザ上で動くアプリケーション周辺のエンジニアリング分野は、JavaScriptの進化とともにサーバーサイドの責務から分離され、「Webフロントエンド」という名前で呼ばれることが多くなりました。この分野は、Webブラウザをランタイムとしてリッチなアプリケーションを効率良く開発し、ユーザーに良い体験を与えることを主な目的としていると、筆者は認識しています。 ここで着目したいのが、このWebフロントエンド分野においては「Webブラ
はじめに 本連載では、Webフロントエンド開発において注目されているバイナリ形式のプログラムファイルWebAssemblyを、Rustで実装して活用する方法を説明しています。前回記事では、WebAssemblyに至るまでのWebフロントエンド高速化の歴史を紹介するとともに、RustでWebAssemblyを実装する大まかな流れを説明しました。 本記事では、WebAssemblyの実装で必要となるRust言語の基礎を説明していきます。 対象読者 話題のRust言語について学びたい方 動的なWebページにさらなる速度を求める方 WebAssemblyに興味があるが、Rustのハードルが高いと思っている方 必要な環境 本記事のサンプルコードは、以下の環境で動作を確認しています。 Windows 10 64bit版 rustup 1.24.3 cargo 1.55.0 サンプルコードを実行するには
大規模なデータを扱う解析サービスにおいて、データベースの性質の理解や選定、配置、活用方法などはクリティカルな問題であり、サービスとして大きく差をつくる要素にもなります。本稿では考慮すべきデータベースの性質の違いから始め、解析サービスにおける考え方や活用のテクニック、構成方法について紹介したいと思います。 解析サービスにおける重要な2つの仕事 ここでは大量のデータを収集する解析サービスの仕事の中でも、重要な2つの仕事についてフォーカスして話を進めていこうと思います。 一つ目は、データを単に収集し、スケーラビリティの高いデータベース(または分散ファイルシステム)に格納し、あとで(管理画面から、もしくはスケジュールバッチなどで)Aggregateするものです。こちらは解析サービスと言われるサービスの多くが行なっている仕事と考えられます。 二つ目は、データによって振る舞いを変える、リアクションする
たとえ国内で仕事をしていても、IT系の最新情報やドキュメントはほとんど英語のため、英語をすらすら読めるようになったほうがなにかと捗ります。そこで、翔泳社から刊行した『現場で困らない! ITエンジニアのための英語リーディング』よりテクニックを四つ紹介。さらにAPIリファレンスや仕様書などを実際に読んでいきましょう。 重要なテクニックはたった四つ 本書『現場で困らない! ITエンジニアのための英語リーディング』で紹介される、英語をすらすら読めるようになるテクニックはたった四つしかありません(もちろん英語の基礎やある程度の語彙は前提となります)。 一つ目は「英語の語順で理解する」。学生時代の名残からか、英語を読むときにどうしても日本語のように文章の後ろから前へ戻るように訳してしまいがちです。しかし、これはNG。英語の語順のまま意味を理解していくほうが素早く読めます。 二つ目は「スラッシュ・リーデ
ゲーム好きにはもちろん、普段はスマホゲームに興味がない人にも「グラブってる?」のTVCMでおなじみのタイトルとなったCygamesの「グランブルーファンタジー」。2017年1月には登録ユーザー数が1400万人を突破し、記念キャンペーンも開催された。これだけ大規模なソーシャルゲームの安定稼働を支えるためには、どのような技術や取り組みが求められるのか? インフラ構築・運用にかかわる人にとっては気になるところだろう。本セッションでは、Cygamesのインフラセクションマネージャーを務める佐藤太志氏が「膨大なログデータの収集・活用」「リアルタイム通信の高速化」「タグシステムによる運用効率化」という3つの取り組みを中心に紹介。グラブルを支えるさまざまなインフラ技術や大規模ゲームならではの運用の工夫を語った。 講演資料:グランブルーファンタジーを支えるインフラの技術(Cygames Engineers
こんにちは。アマゾンウェブサービス(AWS)サポートの有賀と申します。好きなサービスはAmazon Virtual Private Cloud(VPC)です。これからAWSサポートの各メンバーがそれぞれ「今一番AWSユーザーに伝えたいこと」を連載の形でお届けしていきます。筆者の担当する本稿では、AWSの「ネットワーク」について見ていきたいと思います。今回は、ネットワークの「論理設計」について解説します。 本稿でお伝えするのは下記の第2回の内容です。全3回に渡って解説していきます。 AWSのネットワークの物理的な側面 ⇒ 第1回 AWSのネットワークの論理的な側面 ⇒ 第2回 AWSのネットワークにおけるベストプラクティス ⇒ 第3回 AWSのネットワークにおいて過去に発生した問題の事例 ⇒ 第3回 必ずしもAWSの使い方といった内容ではないので、今日すぐに使える知識にはならないかもしれませ
これまで階層構造データはリレーショナルデータベースでうまく扱えませんでしたが、その解決策としてジョー・セルコが提案したのが「入れ子集合モデル」です。この手法を紹介した『プログラマのためのSQLグラフ原論』の刊行にあたり、翻訳されたDBエンジニアのミックさんに入れ子集合モデルの将来性についてうかがいました。 なぜRDBで木と階層構造を扱う手法が1冊の書籍に? ――『プログラマのためのSQLグラフ原論 リレーショナルデータベースで木と階層構造を扱うために』についてミックさんにうかがいます。最初に、本書がどういう本なのか教えていただけますか? ミック:内容としては、リレーショナルデータベース(RDB)でグラフ構造の一つである木と階層構造を扱うための方法論「入れ子集合モデル」をメインに解説しています。RDBには大きな問題があり、入れ子集合モデルがそれを解決しうる手法だと見込まれています。その問題と
はじめに ドメイン駆動設計(DDD)とは、2003年にエリック・エヴァンス氏が『Domain-driven design』という書籍にて提唱したソフトウェア開発手法です。DDDを簡単に説明すると「顧客と開発者が業務を戦略的に理解し、共通の言葉を使いながらシステムを発展させる手法」です。具体的には、チームの共通言語である「ユビキタス言語」を用いて「ドメインモデル」を構築し、それをコードとして実装します。また大規模で密結合なシステムにならないように「ドメイン」と「境界づけられたコンテキスト」にてシステムを分割し、「コアドメイン」という最重要領域に集中して開発を行います。 ソフトウェア開発の課題とDDDが解決すること DDDの登場から10年以上が経ち、DDDは着実に普及しつつあります。DDDが普及してきている背景として、システム開発がますます多機能/複雑になり、ビジネス的にも敏速な変更が求められ
JavaScriptのスペシャリストとして、ノンプログラミングでアプリケーションを作成するためのフロントエンドエンジン(2007年度の「IPA 未踏事業」に採択)などを開発してきた冨田慎一氏。「業務に合わせてエンドユーザー自身が構築できる」という理想のシステムを提供するため、2008年マッシュマトリックス社を設立してJavaScriptの腕を振るい続けている。本稿では、冨田氏がその理想に考え至った経緯や現実とのギャップ、クラウドサービスの将来像などを聞いた。 本記事の目次 (→シリーズの特集ページ) ▶ 1か月で数万ダウンロードのエンタープライズ向けnpmパッケージを開発 ▶ システムの調達・構築にITエンジニアを介さなくてもよくなってきている ▶ イメージは執事のような自分専用サービス ▶ サービスは自由度と理解のしやすさのバランスが肝心 ▶ エンドユーザー・開発者・コンシューマ・エンタ
はじめに 本連載では、Facebookモバイルアプリの定義、開発に取り組む意義、実際の企画方法、開発手順について紹介します。開発段階ではHTML5によるWebアプリ制作を効率化するJavaScriptライブラリ「jAction」を利用します。 対象読者 Facebookモバイルアプリの開発に興味のある方。 HTML+JavaScriptによるWebアプリ開発を経験したことがある方。 開発に必要な環境 Google Chrome推奨 JavaScript、HTMLを編集するテキストエディタ Facebookモバイルアプリには、ブラウザに関係なくアプリケーションとして起動するネイティブアプリとブラウザ内で動作するブラウザアプリの2種類があります。 ネイティブアプリは、ブラウザで動かないためにブラウザ上のFacebookページとは別に、専用アプリとして起動することになります。アプリを初めて起動す
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く