Spring BootによるAPIバックエンド構築実践ガイド 第2版 何千人もの開発者が、InfoQのミニブック「Practical Guide to Building an API Back End with Spring Boot」から、Spring Bootを使ったREST API構築の基礎を学んだ。この本では、出版時に新しくリリースされたバージョンである Spring Boot 2 を使用している。しかし、Spring Boot3が最近リリースされ、重要な変...
HTML5 vs ネイティブ。モバイルアプリはどちらで開発するべき?(後編) Google I/O 2011 モバイルアプリケーションを開発する方法として、JavaやC/C++とSDKを用いてネイティブアプリケーションを開発する以外に、HTML5/CSS/JavaScriptを用いて開発する方法が登場してきています。 この2つのアプリケーション開発にはどのような違いや利点があるのでしょうか? Androidを題材にして解説したセッション「HTML5 versus Android: Apps or Web for Mobile Development?」がイベントGoogle I/O 2011で行われました。 (この記事は「HTML5 vs ネイティブ。モバイルアプリはどちらで開発するべき?(前編) Google I/O 2011」の続きです) ネイティブアプリケーションを開発する理由 Re
グーグルが行っているビルドとテストの種類。続々、グーグルはあれほど多くのソフトウェアのテストをどのように行っているのか? グーグルでTest Engineering Directorを務めるJames A Whittaker氏が、ブログ「Google Testing Blog」に書いているグーグル社内のソフトウェア品質に関するノウハウ。最近の記事「How Google Tests Software - Part Four」「How Google Tests Software - Part Five」では、ビルドの種類とテストの種類について紹介しています。 One of the key ways Google achieves good results with fewer testers than many companies is that we rarely attempt to sh
言語を知らなくても簡単にAndroidアプリが作れる――。誰でもプログラマになれる“驚愕”の開発ツールが登場した。米Google社が提供する「App Inventor」だ。早速、開発のしやすさを体験してみた。 米Google社は2010年12月16日、Androidアプリを開発するためのツール「App Inventor」のベータ版を一般公開した。同年7月から登録者のみに提供していたものだ。ツールおよびWebサービス、Javaアプリの3つの組み合わせで実現している。 App Inventorの特徴は、プログラムをコーディングしなくても、Androidスマートフォンで動作するアプリが即席に作れること。パズルを組み合わせる感覚でプログラムを作成できる(図1)。Javaを知らない人でも、Androidスマートフォンを持っていれば、そのまま個人用のアプリが即製可能だ。
先日、友達の会社の勉強会で「初めてのGAE/J開発」というタイトルの発表をさせていただきました。準備不足や時間配分のミスがあったため、後半飛ばしぎみになって申し訳ありませんでした。 GAEの制限ばかりを強調しすぎて逆に使えないような印象をもってしまったかもしれませんが、決してそんなことは無いと思います。(だから、私もいまGAEに注目しているわけですし。)特にBigtableは今までとは違った考え方が必要なので、これまでのRDBのように考えるとうまく行かないのは間違いありせん。(私も何度も悩まされました。いや、今もですが。) しかし、だからといってそれはやり方の問題であって、そのままGAEが使えないという理由にはならないはずです。BigtableにはBigtableのやり方が必ずあるはずです。また、WikipediaやTechCrounchによると、GoogleのたくさんのサービスがBigt
プログラミングは様々なことを予め想定して組む必要があるが、余計なコードを埋め込むのはバグを含む結果につながりかねない。できるだけ短く、それでいて網羅的に記述されるのが一番だ。不要なコードがまぎれるとそれだけテストのコストも増えてしまう。 ソースコードのカバレッジ率を見られる 実際に使われるコードか否か、それを判断するのに良いのがコードカバレッジツールだ。GoogleではCoverStoryが使われているようだ。 今回紹介するオープンソース・ソフトウェアはCoverStory、C言語やC++、Objective-Cで利用できるコードカバレッジビューワーだ。 CoverStoryはgcovというC/C++向けのコードカバレッジツールが出力するgcovファイルを読み取って表示することができるビューワーアプリケーションだ。Objective-Cであっても使えるようで、対応SDKのリストにはiPho
ゴールデンウィークに特に予定のなかった筆者は,「ちまたで噂のGoogle App Engine for Java(GAE/J)とFlexでスケジュール共有ツールでも作ってみよう」と思い立ちました。およそ5日間かけて開発を進めたのち,2009年5月6日に「ご都合.com(画面1)」を公開しました。その後,はてなブックマークやニュースサイトなどでご紹介いただいたおかげで,公開後6日で約2000人の方にご利用いただいています。 そこで本稿では,この「ご都合.com」の開発で実際に筆者が得た経験を通じて,GAE/JによるWebアプリケーション開発の実際とそのポテンシャルについて紹介します。 米Googleが2008年4月に発表したGoogle App Engine(画面2)は,「自分が開発したWebアプリケーションをGoogleのデータセンターで運用できるクラウドコンピューティング・サービス」です
Google Code GoogleはWebブラウザプラグインを開発するためのツールNixysaをGoogle Codeにて公開した。NixysaはPythonで開発されたフレームワーク。Google ChromeやFirefoxで使われているプラグイン用APIであるNPAPIに対するグルーコードを自動的に生成するといった動きをする。 NixysaではIDL (Interface Description Language)を使ってAPIを定義できる仕組みになっているほか、プラグイン開発時に必要になる煩雑で面倒な部分のコードを自動生成し、機能の拡張といったプラグイン開発本来の部分に注力できるように工夫されている。なおNative Clientと連系しても動作するようになっているという。 チュートリアルやマニュアルといった資料はまだ整備されていない。開発する場合SVNリポジトリ経由で成果物を取
google-perftoolsはGoogleによって提供されている、C/C++アプリケーションのパフォーマンスを改善するための開発ツールキットである。2005年3月に初めて公開され、およそ4年を経て7日に正式版がリリースされた。The BSD Licenseの下で提供されており、LinuxをはじめとしてFreeBSD、Mac OS X、Solaris 10、Windows XPなど、各種プラットフォームでの動作が確認されている(ただし、Linux以外については一部機能を除く)。 google-perftoolsには次に挙げる4つのツールが含まれている。 高速メモリアロケータTCMalloc ヒープチェッカー ヒーププロファイラ CPUプロファイラ TCMalloc(Thread-Caching Malloc)は通常のmallocよりも高速なメモリ割り当てを実現するライブラリであり、テスト
NAISTにてMeCabの作者としても有名な工藤拓さんの講演が行われました。Googleの開発体制とそれを支えるツールのお話です。 学校と拓さんの双方からブログへの掲載許可が得られたので、まとめを公開します。この講義はNAISTのソフトウェア開発管理講義の一環です。 iPhoneカメラしかなかったので、画像が荒くて済みません・・・。 会場は大入り! 工藤拓さん NAIST自然言語処理学講座出身 Googleに入社してから大規模開発やインフラを経験 MeCabを開発 NTTコミュニケーション科学基礎研究所に所属 その後Googleへ 研究より開発寄り Googleでの仕事 日本語のウェブ検索 「もしかして」機能 ダジャレサーチ エイプリルフールネタを1ヶ月かけて実装 何千人もの開発者が単一のソースコードリポジトリの上で開発を行っている 大規模開発をサポートするインフラが不可欠 Mondria
Googleのコードレビューのプロセス、ツールの紹介がここ(Youtube)にある。55分と長いのでなかなか全部をみる時間がなかったが、休日に時間がとれたので観た。このエントリはそのときのメモだ。 Googleのコードレビューのプロセスはオープンソースのものと似ている。オープンソースのものより若干強制力のあるプロセスとそれをサポートするツール(Mondrian)があるそうだ。ビデオでプレゼンされているのは、Guido van Rossum氏、Pythonの作者でGoogleに就職して最初の仕事がMondrianの開発だったそうだ。定着しているプロセスの実行を支援するツールは非常に頼もしいだろうなぁと思う。 詳細はビデオをみていただきたいが、プレゼンの概要は以下のとおり。 プロセスはオープンソースのレビューのやり方がベースとなっている。 (前のバージョンとの差分をMLに投げるとレビュアがその
“Android”って何? 人造人間のこと? Androidは、Googleが発表した携帯電話のプラットフォームです。発表と同時にいろいろな媒体で紹介されましたから、ご存じの方も多いことでしょう。まだ、ご存じでない方は、ニュース記事「グーグルが「アンドロイド」SDK公開——動画デモも〜エミュレータも提供〜」が参考になるでしょう。 Linux 2.6カーネルをベースとしていて、アプリケーションの開発にはJavaを使うことができます。早速、SDK(ソフトウェア開発キット)をダウンロードして試用してみました。 携帯電話アプリ向けのJava MEとの互換性がない ところで、携帯電話などで動作するアプリケーション向けのJava Platformといえば、SunのJava ME(Java Platform, Micro Edition)があるわけですが、Androidで動作するJavaアプリケーション
GT Nitro: Car Game Drag Raceは、典型的なカーゲームではありません。これはスピード、パワー、スキル全開のカーレースゲームです。ブレーキは忘れて、これはドラッグレース、ベイビー!古典的なクラシックから未来的なビーストまで、最もクールで速い車とカーレースできます。スティックシフトをマスターし、ニトロを賢く使って競争を打ち破る必要があります。このカーレースゲームはそのリアルな物理学と素晴らしいグラフィックスであなたの心を爆発させます。これまでプレイしたことのないようなものです。 GT Nitroは、リフレックスとタイミングを試すカーレースゲームです。正しい瞬間にギアをシフトし、ガスを思い切り踏む必要があります。また、大物たちと競いつつ、車のチューニングとアップグレードも行わなければなりません。世界中で最高のドライバーと車とカーレースに挑むことになり、ドラッグレースの王冠
「情報の共有は善。Googleも全員がほとんどのコードにアクセスできる。そして少人数のチームであること。Googleでも,一つのプロジェクト・チームは5~6人以下」---Google ソフトウエアエンジニアの鵜飼文敏氏は9月7日,イベントITpro Challenge!で「ハッカーのソフトウエアエンジニアリング」と題し講演,高い生産性を実現するハッカー流の開発手法を解説した。 ハッカーと呼ばれるプログラマは,通常の数倍とも数十倍とも言われる生産性と,高い品質を実現していると言われる。鵜飼氏はボランティア・ベースのLinuxディストリビューションDebian ProjectオフィシャルメンバーとしてIPA OSS貢献者賞を受賞したほか,The Free Software Initiative of Japan副理事長,2003年と2004年度の「未踏ソフトウエア創造事業」プロジェクトマネージ
2007年06月07日 Google のソフトウェア・エンジニアリング Google Developer Day Tokyo の鵜飼さんのプレゼンより、「Google のエンジニアはどうやって開発しているのか?」 Google の研修 入社して最初の 3ヶ月は本社(Mountain View)で研修 研修中は、メンターがついて「Google での開発の仕方」を学ぶ 内部ウェブ・サイトで社内共有ライブラリの使い方などを説明する動画があるので、それで自習 Google のプロジェクト・チーム 開発拠点は米国、スイス、オーストラリア、インド、日本など 場所とプロジェクト・チームは関係なく、プロジェクト・チームが拠点をまたがることは普通。世界中の拠点全部合わせて、一つの Google エンジニアリング・チーム 開発はデザイン、コーディング、テスト、改善、デモの運用まで上流から下流まで同じチーム(同
Google 技術講演会「Developing Software in the Real World」に行ってきました。講演者は Google 東京 R&D センター ソフトウェアエンジニアの南野朋之さん。その 1 週間前に行われた、Mozilla Corporation の Seth Bindernagel と Seth Spitzer との講演会 (Mozilla Party JP 8.0 とは別物) には参加できなかったので、リベンジ (?) という形になります。 南野さんはインターンを経て Google へ入社、Google マップでの写真表示を開発された方で、今回の公演内容は Google でのソフトウェア開発体制、および Photos on Google Maps 開発の舞台裏に関してでした。 Google でのソフトウェア開発体制 OKR (Objectives and Ke
Google Testing Blog より,QA と QC とテストエンジニアリングの違いについて. Google Testing Blog: The difference between QA, QC, and Test Engineering コミュニケーションを円滑に進める為に「用語の定義」は非常に大切だが,重要なのは世間一般の定義よりも,その組織 (や関連組織間) で定義が統一され,役割が明確になることだと思う. ということで,これはあくまでも Google Testing Team の見解に過ぎないが,まあなにかの参考にはなるかな,と. まず QC (Quality Control) はというと… In the classic definition QC is short for Quality Control, a process of verifying predefine
昨日に続きますが、ディベロッパーサミットでgoogleの開発プロセスについて聴講してきました。Googleは一味異なるプロセスや組織をお持ちのようです。請負開発をされている方には新鮮なのではないでしょうか。工藤氏はGoogleのインフラ寄りの話、小松氏は開発プロセスの話で講演されていました。サービスインフラも開発プロセスも私にとっては身近な話ですが、ここでは、小松氏の講演について書こうと思います。講演では、極めて異例/エキセントリックというプロセスは話されていませんでしたが、以下は、特徴的と感じました。 異なる観点から複数のレビューを実施していること。いわゆるperspective-based readingを実施しているそうです。役割分担型レビュー(reviewというよりはおそらくinspection)で、セキュリティやユーザインタフェースの観点から見たデザイン/ソースコードの妥当性検証
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く